From 6dc4b53a79747d857ffbe5d42266ae32987da264 Mon Sep 17 00:00:00 2001 From: cryptoAtwill Date: Tue, 25 Jul 2023 11:46:36 +0800 Subject: [PATCH 01/17] update registry abi --- contracts/SubnetRegistry.json | 1073 +++++++++++++++++---------------- 1 file changed, 544 insertions(+), 529 deletions(-) diff --git a/contracts/SubnetRegistry.json b/contracts/SubnetRegistry.json index 786493d9..389826c8 100644 --- a/contracts/SubnetRegistry.json +++ b/contracts/SubnetRegistry.json @@ -223,13 +223,13 @@ } ], "bytecode": { - "object": "0x60a03461008857601f61589938819003918201601f19168301916001600160401b0383118484101761008d5780849260209460405283398101031261008857516001600160a01b0381168082036100885715610076576080526040516157f590816100a4823960805181818160b901526105e70152f35b60405163609a8af960e01b8152600490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe60808060405260043610156200001457600080fd5b60003560e01c908163116191b614620005d2575080631163dca5146200055e5780632f7801f414620005185780639836b75f14620004a0578063b67c7b4a14620004435763f9daddd2146200006857600080fd5b34620003e957600319602036820112620003e9576001600160401b0360043511620003e9576101409060043536030112620003e957604460043501356001600160a01b03811690819003620003e9577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03160362000431576040516151516001600160401b03818301908111908311176200041b57806200066f833960208183015260043560040135604219600435360301811215620003e95760043501610140602083850101526101a0828401019060018060401b03620001546004830162000659565b168484016101600152602219906024810135368290038301811215620003e9570160248101926001600160401b03600483013511620003e957600482013560051b36038413620003e95760406101808688010152600482013590526101c084860101929060005b60048201358110620003ee575050506004356024810135858501604001526001600160a01b0390620001f0906044016200062d565b1660608486010152606460043501356001811015620003e957608084860101526084600435013560a0848601015260018060401b036200023560a46004350162000659565b1684840160c001526001600160401b036200025560043560c40162000659565b1684840160e001526001600160401b036200027560043560e40162000659565b166101008486010152610104600435013560ff8116809103620003e9576101208486010152610124600435013590600435360301811215620003e95760043501906024600483013592019260018060401b038311620003e9578236038413620003e957601f83869460209683199461014086828a0189030191890101528186528786013760008682860101520116010301906000f08015620003dd5733600081815260208181526040808320600180845282852080546001600160401b03908116875292855292852080546001600160a01b0319166001600160a01b039890981697881790559490935292905281548082169392918414620003c7576001600160401b03191660019093016001600160401b031692909217909155604051818152602091907f0431ea4d93af299b92f2c606ddcaf4b31cb0013c5ed1fdea837b8a912347c965908390a1604051908152f35b634e487b7160e01b600052601160045260246000fd5b6040513d6000823e3d90fd5b600080fd5b9091936001602080600493838060a01b036200040a8a6200062d565b1681520196019392019050620001bb565b634e487b7160e01b600052604160045260246000fd5b604051633bed049960e01b8152600490fd5b34620003e9576040366003190112620003e95760206200046262000616565b6200046c62000642565b6001600160a01b03918216600090815280845260408082206001600160401b03909316825291845281902054905191168152f35b34620003e9576040366003190112620003e957620004bd62000616565b620004c762000642565b6001600160a01b039182166000908152602081815260408083206001600160401b03909416835292905220541680156200050657602090604051908152f35b60405163609a8af960e01b8152600490fd5b34620003e9576020366003190112620003e9576001600160a01b036200053d62000616565b166000526001602052602060018060401b0360406000205416604051908152f35b34620003e9576020366003190112620003e9576001600160a01b03806200058462000616565b1660005260006020526040600020600160205260018060401b03600019816040600020541601818111620003c757166000526020526040600020541680156200050657602090604051908152f35b34620003e9576000366003190112620003e9577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b600435906001600160a01b0382168203620003e957565b35906001600160a01b0382168203620003e957565b602435906001600160401b0382168203620003e957565b35906001600160401b0382168203620003e95756fe6101c08060405234620008025762005151803803809162000021828562000823565b83396020828281010312620008025781516001600160401b0381116200080257610140818401838501031262000802576040519261014084016001600160401b038111858210176200074257604052808201516001600160401b03811162000802576200009690848301908484010162000871565b8452602082820101516020850152620000b46040838301016200085c565b604085015260608282010151600181101562000802576060850152608082820101516080850152620000eb60a08383010162000847565b60a08501526200010060c08383010162000847565b60c08501526200011560e08383010162000847565b60e0850152610100828201015160ff81168103620008025761010085015280820161012001516001600160401b0381116200080257838201601f82858501010112156200080257818301810151926001600160401b0384116200074257604051946200018c601f8601601f19166020018762000823565b84865283016020858484870101010111620008025760005b848110620007e857868660006020888301015261012082015260ff6101008201511660018060401b0360c08301511690600160005560648111620007d657608052600a811015620007cd57506020600a5b60a0819052600280546001600160401b03199081166001600160401b039384161790915583518051600f805490931690841617909155919091015180519182116200074257680100000000000000008211620007425760209060105483601055808410620007ac575b50016010600052602060002060005b8381106200078e57602085015161018052604085015185906001600160a01b0316156200077c5760408101516001600160a01b0316610140526060810151906001821015620007665761012091610160526080810151670de0b6b3a7640000908181106000146200075e57505b60c05260a08101516001600160401b03908116835260e082015116600a811015620007585750600a5b60e05260a0516001600160401b03908116610100526005805460ff60401b1916680100000000000000001790559101518051909181116200074257601154600181811c9116801562000737575b60208210146200072157601f8111620006c2575b50602091601f821160011462000658579181926000926200064c575b50508160011b916000199060031b1c1916176011555b604051620003a48162000807565b600f546001600160401b031681526040516010805480835260009182527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae67291839160208301915b81811062000629575050620004039250038262000823565b602082015262000447600073__$a0fe38a9a81205afccc10810b09a4d3f45$__926040518093819263aa5106cb60e01b835260406004840152604483019062000940565b3060248301520381855af4908115620005c857600091620005d4575b506020906200048f9260405180809581946390ba52cf60e01b8352866004840152602483019062000940565b03915af4908115620005c8576000916200058d575b506101a090815260018054600160401b600160801b03191690556040516147b391826200099e8339608051828181612554015261468b015260a05182818161194b0152818161281e0152614656015260c0518281816102f301528181611bb80152611f05015260e05182611dec015261010051826129a3015261012051826106d3015261014051828181610261015281816103f001528181611f7c01528181611ff3015281816125ea0152818161269901528181612dc30152818161415c015261427201526101605182611cb50152610180518261296a01525181818161071a01526108cf0152f35b906020823d602011620005bf575b81620005aa6020938362000823565b81010312620005bc57505181620004a4565b80fd5b3d91506200059b565b6040513d6000823e3d90fd5b903d8082843e620005e6818462000823565b82019160208184031262000625578051916001600160401b038311620005bc57506020926200048f94926200061c920162000871565b91509162000463565b5080fd5b84546001600160a01b0316835260019485019486945060209093019201620003eb565b01519050828062000380565b601f19821692601160005260206000209160005b858110620006a9575083600195106200068f575b505050811b0160115562000396565b015160001960f88460031b161c1916905582808062000680565b919260206001819286850151815501940192016200066c565b60116000526200070f907f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68601f840160051c8101916020851062000716575b601f0160051c019062000927565b8262000364565b909150819062000701565b634e487b7160e01b600052602260045260246000fd5b90607f169062000350565b634e487b7160e01b600052604160045260246000fd5b62000303565b9050620002da565b634e487b7160e01b600052602160045260246000fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160a01b0316818301556020909201916001016200026d565b620007c69060106000528484600020918201910162000927565b846200025e565b602090620001f5565b6040516375c3b42760e01b8152600490fd5b8060208092858588010101015182828901015201620001a4565b600080fd5b604081019081106001600160401b038211176200074257604052565b601f909101601f19168101906001600160401b038211908210176200074257604052565b51906001600160401b03821682036200080257565b51906001600160a01b03821682036200080257565b9190916040818403126200080257604051926200088e8462000807565b836200089a8362000847565b81526020838101516001600160401b039491939185821162000802570181601f820112156200080257805194851162000742578460051b9060405195620008e48684018862000823565b86528480870192820101928311620008025784809101915b8383106200090c57505050500152565b819062000919846200085c565b8152019101908490620008fc565b81811062000933575050565b6000815560010162000927565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b8281106200097f575050505090565b83516001600160a01b0316855293810193928101926001016200097056fe60a0806040526004361015610025575b50361561001b57600080fd5b610023612dc1565b005b600090813560e01c90816304fda3d4146129d25750806306c468531461298d57806306fdde03146129525780630f43a6771461293457806310d500e1146128f7578063133f74ea1461284d578063185fde7e14612808578063200d2ed2146127d957806323a357051461279e578063264762041461276557806332e0aa1f1461272d5780633ccfd60b1461265b57806341c0e1b5146125a357806351392fc014612578578063599c7bd11461253a5780635f832dbf1461251c57806366d7bbbc146124b15780636cb2ecee146122825780636cf6970a14611e5457806373f273fc14611e1b5780637d9740f414611dd657806380f7602114611d175780638b0e9f3f14611cf95780638ef3f76114611c9f57806391be4d4114611c7c5780639890374814611bdb5780639e33bd0214611ba0578063a1ada30314611b84578063a7f0b3de14611aa2578063a9fb763c14611a06578063ad81e244146119dd578063b10836ee146107c7578063b7ab4db51461073d578063c18f64aa14610702578063c5ab2241146106bd578063cf3312501461041f578063cfca2824146103da578063d4e25bab146103695763d66d9e190361000f573461036657806003193601126103665760028154146103545760028155610200612f7c565b610208612fff565b338152600b6020526040812054801561034257338252600b60205281604081205561023581600454613042565b600455610241336130e4565b5060055460ff8160401c16600681101561032e576002146102ee575b50817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156102df578180916024604051809481936345f5448560e01b83528860048401525af180156102e3576102cb575b506102c4823361306a565b6001815580f35b6102d490612a85565b6102df5781386102b9565b5080fd5b6040513d84823e3d90fd5b6004547f0000000000000000000000000000000000000000000000000000000000000000111561025d5760ff60401b1916600360401b176005553861025d565b634e487b7160e01b84526021600452602484fd5b604051632ec5b44960e01b8152600490fd5b604051633ee5aeb560e01b8152600490fd5b80fd5b5034610366576020366003190112610366576001906040906001600160a01b03610391612a21565b168152600e602052206103ba60ff825416916103b36040518095819301612d2b565b0383612b1a565b6103d66040519283928352604060208401526040830190612be3565b0390f35b50346103665780600319360112610366576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461036657806003193601126103665760405161043c81612ac9565b60608082528260208093015260085492610455846131f7565b936104636040519586612b1a565b808552601f19610472826131f7565b01825b81811061067d575050815b81811061056d5750506005546040516001600160401b03918216959192916104a782612ac9565b815284810195865260405194808652848601915194604082880152855180935260808088019083818660051b8b0101980195925b8584106104f1578a51881660408b01528989038af35b90919293949597858061055c6001938d607f199082030188528c5190858060a01b03825116815283820151848201528661054c8560408501518b604086015260ff8151168c8601520151604060a085015260c0840190612be3565b9201519087818403910152612be3565b9a01940194019295949391906104db565b61063961057e829794959697612eb6565b9190549161058b84612eb6565b9054600391821b1c6001600160a01b039081168952600b8b52604089205491949190806105b788612eb6565b905490881b1c168a52600e8c5260408a2092816105d389612eb6565b905490891b1c168b52600d8d5260408b2094604051976105f289612aff565b1b1c1685528a850152600161062b6040519261060d84612ac9565b60ff81541684526106246040518094819301612d2b565b0382612b1a565b8a8201526040840152612b3d565b86820152610647828561344a565b52610652818461344a565b506000198114610669576001019493929194610480565b634e487b7160e01b84526011600452602484fd5b9480809794959660405161069081612aff565b87815287838201526106a0613430565b604082015288808201528282880101520190509594939295610475565b50346103665780600319360112610366576040517f00000000000000000000000000000000000000000000000000000000000000006001600160401b03168152602090f35b503461036657806003193601126103665760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b503461036657806003193601126103665760085461075a816131f7565b916107686040519384612b1a565b818352601f19610777836131f7565b013660208501375b81811061079c57604051602080825281906103d690820186612c23565b806107a8600192612eb6565b838060a01b0391549060031b1c166107c0828661344a565b520161077f565b5034610366576003196020368201126102df576001600160401b03600435116102df5760e0906004353603011261036657610800612f7c565b61080e6024600435016131ce565b6001546001600160401b039182169181168211156119cb5760401c6001600160401b03169081811161193a575b505060ff60055460401c16600681101561192657600203611914573381526009602052604081205415610342576108a560206108843661087f6004803501806131e2565b61320e565b604051809381926390ba52cf60e01b835284600484015260248301906132b1565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156102e35782916118e2575b507f0000000000000000000000000000000000000000000000000000000000000000036118d05761090760646004350160043560040161330c565b906040518092638984147560e01b825280602483016020600485015252604482019060448160051b84010193809287915b888484106117975786602081808b038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af49081156102e3578291611778575b5015611766576001600160401b036109896004356024016131ce565b168152600a60205260408120338252600b60205260408220546040516109ae81612aae565b6004803501356001600160401b038111611539576109d390600436918135010161320e565b81526109e3602460043501612a0d565b602082015260043560448101356040830152606401356001600160401b03811161153957366023826004350101121561153957600481813501013590610a28826131f7565b91610a366040519384612b1a565b80835260208301913660248360051b8360043501010111611637576024816004350101925b60248360051b83600435010101841061163b57505050506060820152600435608401356001600160401b03811161153957366023826004350101121561153957600481813501013590610aad826131f7565b91610abb6040519384612b1a565b80835260208301913660248360051b8360043501010111611637576024816004350101925b60248360051b83600435010101841061153d5750505050608082015260043560a481013560a083015260c401356001600160401b03811161153957610b5191610b3260209260043691813501016139c4565b60c0820152604051809381926339aa47fb60e01b835260048301613774565b038173__$1cd67d4dc9e627f0bec7928aa480e7d951$__5af490811561152e5784916114f7575b50610b876024600435016131ce565b600454928593855480885260038701602052604088203360005260205260ff604060002054166114e557610c54928186928a526003890160205260408a20336000526020526040600020600160ff1982541617905560018901610beb838254612e05565b90556004890191818b528260205260408b20848c52602052610c1260408c20918254612e05565b9055808a528160205260408a209160028a019283548c5260205260408b2054918b5260205260408a20838b5260205260408a2054116114dd575b505085614687565b60048110156114c957859190600381036114735750610c7281614646565b156113f8575060019250505b80845260058301602052610cb36020610c99604087206134c9565b604051809381926322ea8d8960e11b835260048301613774565b038173__$1cd67d4dc9e627f0bec7928aa480e7d951$__5af49081156113ed5785916113be575b50610d26575b5015610cf257610cef906140a2565b80f35b5060025460401c6001600160401b0316610d0b81614646565b610d13575080f35b8152600a602052610cef604082206140a2565b83526005820160205260408320610d70610d446004803501806131e2565b6001600160401b03610d55826131ce565b84546001600160401b0319169116178355602081019061330c565b906001600160401b038211610f35576001830190610d8e8383613a2f565b90865260208620865b8381106113a3575050506002820190506001600160401b03610dbd6004356024016131ce565b82546001600160401b0319169116179055600480356044810135600384015582820191610def9160648101910161330c565b90610dfa8284613a77565b918652602086208692805b83851061106857505050505060058101610e2960846004350160043560040161330c565b9190610e358383613bdb565b908652602086208691805b848410610f4957505050505060079060a46004350135600682015501610e7060c460043501600435600401612e84565b906001600160401b038211610f35578190610e9582610e8f8654612a4b565b86612e3f565b8690601f8311600114610ecf578792610ec4575b50508160011b916000199060031b1c19161790555b83610ce0565b013590508680610ea9565b84885260208820925090601f198416885b818110610f1d5750908460019594939210610f03575b505050811b019055610ebe565b0135600019600384901b60f8161c19169055868080610ef6565b91936020600181928787013581550195019201610ee0565b634e487b7160e01b86526041600452602486fd5b610f5381836131e2565b610f8c610f6082806131e2565b6001600160401b03610f71826131ce565b87546001600160401b0319169116178655602081019061330c565b906001600160401b038211611054576001860190610faa8383613a2f565b908c5260208c208c5b8381106110395750505050806020610fcc92019061330c565b906001600160401b038211611025576002850190610fea8383613b98565b908b5260208b208b5b83811061101157505050506003602060019201930193019291610e40565b600190602084359401938184015501610ff3565b634e487b7160e01b8b52604160045260248bfd5b600190602061104785613a63565b9401938184015501610fb3565b634e487b7160e01b8c52604160045260248cfd5b61107281836131e2565b803560be198236030181121561139f5761108e828201806131e2565b6110c761109b82806131e2565b6001600160401b036110ac826131ce565b89546001600160401b0319169116178855602081019061330c565b906001600160401b038211611370578d9060018901906110e78483613a2f565b915260208e208e5b8381106113845750505060028701916001600160a01b03915061111490602001613a63565b82546001600160a01b03191691161790556003850161117461113c84840160208101906131e2565b9161114783806131e2565b906001600160401b03611159836131ce565b82546001600160401b0319169116179055602081019061330c565b906001600160401b038211611370578d9060048901906111948483613a2f565b915260208e208e5b8381106113555750505060058701916001600160a01b0391506111c190602001613a63565b82546001600160a01b0319169116179055818101604081013560068701556007860191906001600160401b03906111fa906060016131ce565b83546001600160401b031916911617825582810160800135916001600160e01b0319831683036113515761123d9261123191613b75565b820160a0810190612e84565b906001600160401b038211611054576112668261125d6008890154612a4b565b60088901612e3f565b8b908c601f84116001146112e05791839291602095946112d5575b50508160011b916000199060031b1c19161760088601555b01359081151582036112d1576020600a916112c5600194600988019060ff801983541691151516179055565b01930194019391610e05565b8980fd5b013590508d80611281565b50600887018d5260208d20918d5b601f1985168110611339575091839160019360209695601f1981161061131f575b505050811b016008860155611299565b0135600019600384901b60f8161c191690558d808061130f565b909260206001819286860135815501940191016112ee565b8c80fd5b600190602061136385613a63565b940193818401550161119c565b634e487b7160e01b8e52604160045260248efd5b600190602061139285613a63565b94019381840155016110ef565b8a80fd5b60019060206113b185613a63565b9401938184015501610d97565b6113e0915060203d6020116113e6575b6113d88183612b1a565b810190612f64565b85610cda565b503d6113ce565b6040513d87823e3d90fd5b73__$b7b8687e33476c74e3b4e0a64c4768a343$__90813b1561146f5760405163199b9ca560e01b8152600260048201526001600160401b039091166024820152908290829060449082905af480156102e357611457575b5050610c7e565b61146090612a85565b61146b578385611450565b8380fd5b8280fd5b90506002915003610c7e578373__$e0f829f5071d7e628aa77eca0c12e35bc2$__803b156102df578160249160405192838092635a27a53960e11b82528960048301525af480156102e357611457575050610c7e565b634e487b7160e01b86526021600452602486fd5b558388610c4c565b6040516337138f5f60e11b8152600490fd5b90506020813d602011611526575b8161151260209383612b1a565b81010312611521575184610b78565b600080fd5b3d9150611505565b6040513d86823e3d90fd5b8480fd5b83356001600160401b0381116112d157826004350101604060231982360301126112d1576040519061156e82612ac9565b60248101356001600160401b03811161163357611591906024369184010161320e565b825260448101356001600160401b038111611633573660438284010112156116335760248183010135906115c4826131f7565b926115d26040519485612b1a565b82845260208401913660448560051b83850101011161162f57604481830101925b60448560051b8385010101841061161f5750505050602080840192909252509082529384019301610ae0565b83358152602093840193016115f3565b8e80fd5b8b80fd5b8780fd5b83356001600160401b0381116112d15782600435010160231991604083833603011261139f576040519061166e82612ac9565b60248301356001600160401b0381116113515760c0908401948536030112611633576040519161169d83612ae4565b60248501356001600160401b038111611762576116c09060243691880101613973565b835260448501356001600160401b038111611762576116e59060243691880101613973565b60208401526064850135604084015261170060848601612a0d565b606084015261171160a4860161340e565b608084015260c48501356001600160401b03811161176257604460209586956117446024998a61175196369201016139c4565b60a0820152845201613423565b838201528152019401939050610a5b565b8d80fd5b604051630bd9169f60e01b8152600490fd5b611791915060203d6020116113e6576113d88183612b1a565b8261096d565b919395509193956043198882030184526117b18784613341565b90813560be198336030181121561146b57604082528201916117d38380613341565b6117ea60c091826040860152610100850190613355565b936117f86020820182613341565b611810603f1996606092888883030184890152613355565b9260809160408401358388015261182f60018060401b03918501612a0d565b169160a0928388015261184b63ffffffff60e01b91850161340e565b1690860152810135601e19823603018112156118cc57018035906001600160401b0382116118cc576020019381360385136118cc5760206118ad8180989660019a86839a849a888b030160e0890152818a52848a013782878901015201613423565b1515910152601f80199101160101970193019301909286949293610938565b8680fd5b6040516375ecc72d60e01b8152600490fd5b90506020813d60201161190c575b816118fd60209383612b1a565b810103126115215751386108cc565b3d91506118f0565b60405163c18316bf60e01b8152600490fd5b634e487b7160e01b82526021600452602482fd5b036001600160401b0381116119b7577f00000000000000000000000000000000000000000000000000000000000000006001600160401b031680156119a3576001600160401b03918216061661199157388061083b565b60405163b4f68f9760e01b8152600490fd5b634e487b7160e01b83526012600452602483fd5b634e487b7160e01b82526011600452602482fd5b604051631f30cc6360e21b8152600490fd5b50346103665780600319360112610366576001546040516001600160401b039091168152602090f35b5034610366576020806003193601126102df5760043590611a25612dc1565b600854918215611a9057828110611a7e5782900490835b838110611a47578480f35b80611a53600192612eb6565b838060a01b0391549060031b1c168652600c835260408620611a76858254612e05565b905501611a3c565b604051633074cabf60e11b8152600490fd5b60405163efa9c8f160e01b8152600490fd5b5034610366578060031936011261036657604051600090601154611ac581612a4b565b808352600191808316908115611b5c5750600114611b02575b6103d683611aee81870382612b1a565b604051918291602083526020830190612be3565b6011600090815260209450917f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c685b828410611b4957505050810190910190611aee81611ade565b8054858501870152928501928101611b30565b6103d69550611aee93506020915091849260ff191682840152151560051b8201019350611ade565b50346103665780600319360112610366576020604051600a8152f35b503461036657806003193601126103665760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b503461036657602036600319011261036657611c5f906001600160401b03906103d69060409083611c0a6129f7565b1681526007602052206007611c1e82612cf6565b93600283015416916003810154611c4b600683015492611c446040518096819301612d2b565b0384612b1a565b60405196879660a0885260a0880190612c60565b936020870152604086015260608501528382036080850152612be3565b50346103665780600319360112610366576020604051670de0b6b3a76400008152f35b50346103665780600319360112610366576040517f00000000000000000000000000000000000000000000000000000000000000006001811015611ce557602092508152f35b634e487b7160e01b83526021600452602483fd5b50346103665780600319360112610366576020600454604051908152f35b5034610366578060031936011261036657611d30613430565b50604051611d3d81612ac9565b600f546001600160401b03168152604051601080548083526000918252602092917f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae67291839185830191905b86828210611db757505050611d9f92500382612b1a565b818301526103d6604051928284938452830190612c60565b85546001600160a01b0316845260019586019587955093019201611d88565b50346103665780600319360112610366576040517f00000000000000000000000000000000000000000000000000000000000000006001600160401b03168152602090f35b5034610366576020366003190112610366576020906040906001600160a01b03611e43612a21565b168152600c83522054604051908152f35b5060031990604036830112610366576001600160401b039160043583811161146f573660238201121561146f5780600401359184831161146b57602494368685850101116115395785359281841161227e5760408460040193853603011261227e57611ebe612f7c565b611ec6612fff565b341561226c57338652602090600b825260408720611ee5348254612e05565b9055611ef334600454612e05565b600455338752600b82526040872054957f000000000000000000000000000000000000000000000000000000000000000080971015612087575b50505050505060055460ff8160401c1660068110156120735783945060018114600014611fe257505060045490811015611f67575b505080f35b6005805460ff60401b1916600160411b1790557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b15611fde578290600460405180948193630354740160e31b83525af180156102e35715611f62575b611fd790612a85565b6103665780f35b5050fd5b60039193501461204d575b508190507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561204a5781600491604051928380926316989f6f60e21b825234905af180156102e357611fce57505080f35b50fd5b600454101561205d575b80611fed565b60ff60401b1916600160411b1760055538612057565b5050634e487b7160e01b8252506021600452fd5b3360005260098352604060002054611f2d576120a233612ee7565b50338852600d8352808960408a20936120c5836120bf8754612a4b565b87612e3f565b8a90601f84116001146121ff578b936121f2575b5050508160011b916000199060031b1c19161790555b338652600e81526040862092803560ff811680910361163757845460ff19161784556001938401946121249190890190612e84565b9283116121df57612139836120bf8754612a4b565b8691601f841160011461217c57509282939183928894612171575b50501b916000199060031b1c19161790555b388080808080611f2d565b013592503880612154565b9183601f198116878a52848a20948a905b888383106121c557505050106121ab575b505050811b019055612166565b0135600019600384901b60f8161c1916905538808061219e565b86860135885590960195938401938793509081019061218d565b634e487b7160e01b875260416004528787fd5b01013590508938806120d9565b858c52868c20601f19851695509250908c908c5b888782106122515750508460019610612235575b50505050811b0190556120ef565b60001960f88660031b161c199201013516905538808b81612227565b8483019093013585556001909401938e929182019101612213565b604051635a78c58160e11b8152600490fd5b8580fd5b5034610366576020366003190112610366576122a461229f6129f7565b613688565b9160405192839215158352604060208401526122cd815160e06040860152610120850190612c60565b9160018060401b03602083015116606085015260408201516080850152606082015192603f198582030160a0860152835180825260208201916020808360051b83010196019284915b8383106123fa575050505050608082015192603f198582030160c0860152835190818152602081016020808460051b84010196019380925b84841061237c5788806103d68a60c08b60a081015160e08601520151603f1984830301610100850152612be3565b919395969092949750601f19828203018452875160206123a58251604085526040850190612c60565b910151828203602093840152805180835291830192019084905b8082106123e257505050602080600192990194019401918897969593949161234e565b909192602080600192865181520194019201906123bf565b919395966001919395985060208091601f19858203018652885190828061249484516040855260a081519161245461243f60c0948560408b01526101008a0190612c87565b82870151898203603f190160608b0152612c87565b92604082015160808901528b8060401b036060830151168389015263ffffffff60e01b608083015116908801520151603f198683030160e0870152612be3565b930151151591015297019301930190928897949293969596612316565b5034610366576040366003190112610366576124cb6129f7565b6024356001600160a01b038116929083900361152157604091600180841b03168152600a602052600382822080548352016020522090600052602052602060ff604060002054166040519015158152f35b50346103665780600319360112610366576020600654604051908152f35b5034610366578060031936011261036657602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346103665780600319360112610366576001546040805191901c6001600160401b03168152602090f35b50346103665780600319360112610366576125bc612f7c565b6125c4612fff565b60085415801590612650575b61263e576005805460ff60401b1916600560401b179055807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561204a578180916004604051809481936341c0e1b560e01b83525af180156102e357611fce5750f35b604051636b62255160e11b8152600490fd5b5060045415156125d0565b5034610366578060031936011261036657612674612f7c565b338152600c6020526040812054801561271b57338252600c60205260408220829055817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156102df578190602460405180948193631f0e077760e31b83528760048401525af18015612710576126fb575b50610cef903361306a565b91612709610cef9293612a85565b91906126f0565b6040513d85823e3d90fd5b6040516367300f9160e11b8152600490fd5b503461036657602036600319011261036657602061274c600435612eb6565b905460405160039290921b1c6001600160a01b03168152f35b5034610366576020366003190112610366576020906040906001600160a01b0361278d612a21565b168152600b83522054604051908152f35b5034610366576020366003190112610366576103d690611aee906040906001600160a01b036127cb612a21565b168152600d60205220612b3d565b503461036657806003193601126103665760ff60055460401c16604051906006811015611ce557602092508152f35b50346103665780600319360112610366576040517f00000000000000000000000000000000000000000000000000000000000000006001600160401b03168152602090f35b5034610366576020806003193601126102df5761288c8161286f61229f6129f7565b604094919451809481926339aa47fb60e01b835260048301613774565b038173__$1cd67d4dc9e627f0bec7928aa480e7d951$__5af491821561152e5784926128c4575b506040809450519215158352820152f35b9080925081813d83116128f0575b6128dc8183612b1a565b8101031261146b57604093505190386128b3565b503d6128d2565b503461036657806003193601126103665760606002546040519060018060401b03908181168352818160401c16602084015260801c166040820152f35b50346103665780600319360112610366576020600854604051908152f35b503461036657806003193601126103665760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b50346103665780600319360112610366576040517f00000000000000000000000000000000000000000000000000000000000000006001600160401b03168152602090f35b9050346102df57816003193601126102df576005546001600160401b03168152602090f35b600435906001600160401b038216820361152157565b35906001600160401b038216820361152157565b600435906001600160a01b038216820361152157565b35906001600160a01b038216820361152157565b90600182811c92168015612a7b575b6020831014612a6557565b634e487b7160e01b600052602260045260246000fd5b91607f1691612a5a565b6001600160401b038111612a9857604052565b634e487b7160e01b600052604160045260246000fd5b60e081019081106001600160401b03821117612a9857604052565b604081019081106001600160401b03821117612a9857604052565b60c081019081106001600160401b03821117612a9857604052565b608081019081106001600160401b03821117612a9857604052565b601f909101601f19168101906001600160401b03821190821017612a9857604052565b9060405191826000825492612b5184612a4b565b908184526001948581169081600014612bc05750600114612b7d575b5050612b7b92500383612b1a565b565b9093915060005260209081600020936000915b818310612ba8575050612b7b93508201013880612b6d565b85548884018501529485019487945091830191612b90565b915050612b7b94506020925060ff191682840152151560051b8201013880612b6d565b919082519283825260005b848110612c0f575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201612bee565b90815180825260208080930193019160005b828110612c43575050505090565b83516001600160a01b031685529381019392810192600101612c35565b9060406020612c8493600180841b0381511684520151918160208201520190612c23565b90565b906020612c9d8351604084526040840190612c60565b928101516001600160a01b031691015290565b90815480825260208092019260005281600020916000905b828210612cd6575050505090565b83546001600160a01b031685529384019360019384019390910190612cc8565b9060016020604051612d0781612ac9565b612d278195848060401b038154168352611c446040518096819301612cb0565b0152565b9060009291805491612d3c83612a4b565b918282526001938481169081600014612d9e5750600114612d5e575b50505050565b90919394506000526020928360002092846000945b838610612d8a575050505001019038808080612d58565b805485870183015294019385908201612d73565b9294505050602093945060ff191683830152151560051b01019038808080612d58565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303612df357565b60405163e7e601db60e01b8152600490fd5b91908201809211612e1257565b634e487b7160e01b600052601160045260246000fd5b818110612e33575050565b60008155600101612e28565b9190601f8111612e4e57505050565b612b7b926000526020600020906020601f840160051c83019310612e7a575b601f0160051c0190612e28565b9091508190612e6d565b903590601e198136030182121561152157018035906001600160401b0382116115215760200191813603831361152157565b600854811015612ed157600860005260206000200190600090565b634e487b7160e01b600052603260045260246000fd5b600081815260096020526040812054612f5f57600854600160401b811015612f4b579082612f37612f2084600160409601600855612eb6565b819391549060031b91821b91600019901b19161790565b905560085492815260096020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b90816020910312611521575180151581036115215790565b604051630972932760e21b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115612ff357600091612fd5575b5015612fc357565b60405163b7150de560e01b8152600490fd5b612fed915060203d81116113e6576113d88183612b1a565b38612fbb565b6040513d6000823e3d90fd5b60ff60055460401c16600681101561302c5760051461301a57565b60405163248c8efb60e11b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b91908203918211612e1257565b6001600160401b038111612a9857601f01601f191660200190565b8147106130cc576000918291829182916001600160a01b03165af13d156130c7573d6130958161304f565b906130a36040519283612b1a565b8152600060203d92013e5b156130b557565b604051630a12f52160e11b8152600490fd5b6130ae565b60405163cd78605960e01b8152306004820152602490fd5b60008181526009602052604081205490919080156131c957600019908082018181116131b557600854908382019182116131a15780820361316d575b50505060085480156131595781019061313882612eb6565b909182549160031b1b19169055600855815260096020526040812055600190565b634e487b7160e01b84526031600452602484fd5b61318b61317c612f2093612eb6565b90549060031b1c928392612eb6565b9055845260096020526040842055388080613120565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b356001600160401b03811681036115215790565b903590603e1981360301821215611521570190565b6001600160401b038111612a985760051b60200190565b9190604083820312611521576040519261322784612ac9565b8361323182612a0d565b815260209180830135906001600160401b03821161152157019280601f85011215611521578335613261816131f7565b9461326f6040519687612b1a565b818652848087019260051b8201019283116115215784809101915b83831061329957505050500152565b81906132a484612a37565b815201910190849061328a565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b8281106132ef575050505090565b83516001600160a01b0316855293810193928101926001016132e1565b903590601e198136030182121561152157018035906001600160401b03821161152157602001918160051b3603831361152157565b9035603e1982360301811215611521570190565b906133608280613341565b604082526001600160401b0392608083018461337b84612a0d565b16604085015260209283810135601e19823603018112156115215701908382359201958211611521578160051b36038613611521578190604060608701525260a08401949060005b8181106133e957506001600160a01b03926133e2925084019050612a37565b1691015290565b9091958480600192838060a01b036134008b612a37565b1681520197019291016133c3565b35906001600160e01b03198216820361152157565b3590811515820361152157565b6040519061343d82612ac9565b6060602083600081520152565b8051821015612ed15760209160051b010190565b9060405161346b81612ac9565b6020819361347881612cf6565b8352600201546001600160a01b0316910152565b90815480825260208092019260005281600020916000905b8282106134b2575050505090565b8354855293840193600193840193909101906134a4565b906040918251906134d982612aae565b81936134e482612cf6565b835260018060401b0360029080828501541660209081870152600390818601548588015260048601928354613518816131f7565b9161352588519384612b1a565b818352600095865283862086918585015b8484106135e957505050505060608801526005860190815493613558856131f7565b9561356588519788612b1a565b85875282870193825282822091935b8685106135aa575050505050505060c092611c448593612d279360806007980152600683015460a0860152518096819301612d2b565b85846001928b516135ba81612ac9565b6135c387612cf6565b81528c516135d781610624818a8c0161348c565b83820152815201930194019391613574565b600a876001928d8b6008829e9c9e519261360284612ac9565b61362381519361361185612ae4565b61361a8c61345e565b85528b0161345e565b8684015260068a0154818401526136648a6103b36007820154938c8516606088015260a09463ffffffff60e01b90861b166080880152518095819301612d2b565b820152815260ff600988015416151583820152815201930193019291979597613536565b6040519061369582612aae565b61369d613430565b8252600090606060c0602094848682015284604082015282808201528260808201528460a0820152015260018060401b03168152600782526137096136e4604083206134c9565b9280845160405180948192630c133d1360e31b835284600484015260248301906132b1565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49283156137525792613735575b50501591565b61374b9250803d106113e6576113d88183612b1a565b388061372f565b604051903d90823e3d90fd5b906020612c9d83516040845260408401906132b1565b919060209081845280519360e08382015261379561010095868301906132b1565b9160018060401b0380858301511690604091828501528183015197606098898601528884015198601f19966080938888830301858901528b51928383528a8301948b808660051b8601019e016080526000935b8585106138c3575050505050505082015194848489030160a08501528551908189528089019281808460051b8c01019801936000915b84831061384e57505050505050612c8494955060c08160a060e09301518285015201519282850301910152612be3565b90919289898d8397989c030184528a51826138708251868552868501906132b1565b91015191838183039101528280835192838152019201906000905b8082106138aa5750505090806001929b0193019301919493929061381e565b919380600192948651815201940192018793929161388b565b9091929394959d8c8f82828f6139558e8a8f8d9786958c60019c030190528b8360805151996139048b5193838c528451908c60c095869101528c019061375e565b88840151603f198c83038101888e0152969161391f9161375e565b96840151858c0152830151169260a093848b015263ffffffff60e01b9083015116908901520151908683030160e0870152612be3565b930151151591015260808051830190529f01969501939291906137e8565b919091604081840312611521576040519061398d82612ac9565b90928391908135906001600160401b03821161152157826139b7602094926139bf9486940161320e565b855201612a37565b910152565b81601f82011215611521578035906139db8261304f565b926139e96040519485612b1a565b8284526020838301011161152157816000926020809301838601378301015290565b80546000825580613a1a575050565b612b7b91600052602060002090810190612e28565b90600160401b8111612a9857815490808355818110613a4d57505050565b612b7b9260005260206000209182019101612e28565b356001600160a01b03811681036115215790565b600160401b8211612a9857805490828155818310613a9457505050565b600a928284029284840403612e12578084029084820403612e1257600091825260209081832093840193015b838110613ace575050505050565b8083869255836001613ae1818401613a0b565b816002840155816003840155613af960048401613a0b565b60059082828501558260068501558260078501556008840190613b1c8254612a4b565b9081613b32575b50505050600982015501613ac0565b8490601f94858411600114613b5357505050509050555b8338808080613b23565b8493958395613b6e94528a86209601901c8501908501612e28565b5555613b49565b805463ffffffff60401b191660a09290921c63ffffffff60401b16919091179055565b600160401b8211612a9857805491808255828110613bb557505050565b60009182526020822092830192015b828110613bd057505050565b818155600101613bc4565b600160401b8211612a9857805490828155818310613bf857505050565b6003928284029284840403612e12578084029084820403612e1257600091825260209081832093840193015b838110613c32575050505050565b80838692556001613c44818301613a0b565b6002820180549086815581613c5d575b50505001613c24565b8652848620908101905b81811015613c54578681558894508201613c67565b818114613ce5578154916001600160401b038311612a9857613c9e8383613a2f565b60005260206000209060005260206000208154916000925b848410613cc4575050505050565b600191820180546001600160a01b0390921684860155939091019290613cb6565b5050565b90808214613ce557613cfb8154612a4b565b906001600160401b038211612a98578190613d1a82610e8f8654612a4b565b600090601f8311600114613d5157600092613d46575b50508160011b916000199060031b1c1916179055565b015490503880613d30565b81526020808220858352818320935090601f1985169083905b828210613da4575050908460019594939210613d8b575b505050811b019055565b015460001960f88460031b161c19169055388080613d81565b8495819295850154815560018091019601940190613d6a565b818114613ce557815491613dd18383613a77565b6000526020600020906000526020600020906000905b838210613df45750505050565b8060019184141580613e12575b50600a809101930191019091613de7565b80613e3f575b50613e39600960ff81840154169086019060ff801983541691151516179055565b38613e01565b80613f0a575b5060038085019082018082141580613eb0575b50505060068082015490850155613e9a6007808601908301848060401b03815416858060401b031983541617825563ffffffff60e01b905460a01b1690613b75565b613eaa6008808301908601613ce9565b38613e18565b613edd575b5050600580850190838060a01b039083015416838060a01b0319825416179055388080613e58565b838060401b03905416838060401b0319825416179055613f036004808301908601613c7c565b3880613eb5565b613f33575b600280850190838060a01b039083015416838060a01b031982541617905538613e45565b818060401b03815416828060401b0319855416178455613f5882808301908601613c7c565b613f0f565b818114613ce5578154916001600160401b038311612a9857613f7f8383613b98565b60005260206000209060005260206000208154916000925b848410613fa5575050505050565b6001809192019384549281850155019290613f97565b818114613ce557815491613fcf8383613bdb565b6000526020600020906000526020600020906000905b838210613ff25750505050565b8060019184141580614010575b506003809101930191019091613fe5565b61402b575b6140256002808301908601613f5d565b38613fff565b818060401b03815416828060401b031985541617845561405082808301908601613c7c565b614015565b80546001600160401b03168252604060208301819052612c84920190600101612cb0565b9060408152602061408d6040830184614055565b6002909301546001600160a01b031691015290565b6002810154906000918252600581016020526040822060065491600682019283540361449357506002810180549091906140e4906001600160401b0316614548565b81546001600160401b031684526007602052604084208181141590816143f0575b505061412f6020614115836134c9565b604051809381926339aa47fb60e01b835260048301613774565b038173__$1cd67d4dc9e627f0bec7928aa480e7d951$__5af49081156113ed5785916143be575b506006557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163b1561146b57604051635926519560e01b81526020600482015260e06024820152928492849290916141ba610104850183614055565b92546001600160401b03166044850152600382015460648501528383036023190160848501526004820180548085529086526020808720600583901b86018201959092918891908101905b83831061430c57505050505060058201926023198582030160a48601528354808252602082019160208260051b820101958852602088209288915b8383106142bb575050925460c48701525050508282036023190160e4840152829161426d91600701612d2b565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af180156102e3576142aa575050565b6142b48291612a85565b6103665750565b929597509297509294602060036142f9600193601f19868203018752604081526142e8604082018d614055565b908481830391015260028c0161348c565b9901930193018997959389979592614240565b9295975092975092946020600a89600193601f19868203018752604081528360ff60096143a260c0806040870152614348610100870188614079565b614362603f1991828982030160608a015260038a01614079565b9160068901546080890152600789015460a0908d8060401b038116828b015263ffffffff60e01b911b16908801528682030160e087015260088701612d2b565b9401541615159101529901930193018997959389979592614205565b90506020813d6020116143e8575b816143d960209383612b1a565b81010312611521575138614156565b3d91506143cc565b61445a91614461575b83546002820180546001600160401b0319166001600160401b0392909216919091179055600383810154908201556144376004808501908301613dbd565b6144476005840160058301613fbb565b8454600682015560078084019101613ce9565b3880614105565b825481546001600160401b0319166001600160401b039190911617815561448e6001848101908301613c7c565b6143f9565b9092915073__$e0f829f5071d7e628aa77eca0c12e35bc2$__90813b1561146f578290602460405180948193635a27a53960e11b835260048301525af480156102e357614539575b5060029091015473__$b7b8687e33476c74e3b4e0a64c4768a343$__906001600160401b0316813b1561146f5782906044604051809481936394ecccfd60e01b83526002600484015260248301525af480156102e3576142aa575050565b61454290612a85565b386144db565b61455181614646565b1561464357604051634953836d60e11b8152600260048201526001600160401b03918216602482018190529173__$b7b8687e33476c74e3b4e0a64c4768a343$__9190602082604481865af48015612ff3578492600091614625575b50614612575b5050803b15611521576000604491604051928380926394ecccfd60e01b8252600260048301528660248301525af48015612ff357614603575b50600180546001600160401b031916919091179055565b61460c90612a85565b386145ec565b60025460401c1603613ce55781386145b3565b61463d915060203d81116113e6576113d88183612b1a565b386145ad565b50565b6001546001600160401b039081167f0000000000000000000000000000000000000000000000000000000000000000821601818111612e1257811691161490565b60ff7f000000000000000000000000000000000000000000000000000000000000000016808302908382041483151715612e12576064900460405191637d2ef4e560e11b835280600484015260208360248173__$e0f829f5071d7e628aa77eca0c12e35bc2$__5af4928315612ff357600093614749575b5060010154908082111561474057808311614737576147279261472191613042565b92613042565b111561473257600190565b600290565b50505050600390565b50505050600090565b90926020823d8211614775575b8161476360209383612b1a565b810103126103665750519160016146ff565b3d915061475656fea2646970667358221220acd1b89ac3b99a4890d0e7b2ea9774cdf998f538a4518f928eb323427aecced564736f6c63430008130033a2646970667358221220a036dc995c174e67e27b395cc185adf0b6c39448f6bef51799b03bf05bd0972064736f6c63430008130033", - "sourceMap": "216:1960:27:-:0;;;;;;;;;;;;;-1:-1:-1;;216:1960:27;;;;-1:-1:-1;;;;;216:1960:27;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;216:1960:27;;;;;;;978:22;974:80;;1063:18;;216:1960;;;;;;;;1063:18;216:1960;;;;;;;;;;;974:80;216:1960;;-1:-1:-1;;;1023:20:27;;;;;216:1960;-1:-1:-1;216:1960:27;;;;;;-1:-1:-1;216:1960:27;;;;;-1:-1:-1;216:1960:27", + "object": "0x60a060405234801561001057600080fd5b5060405161786b38038061786b83398101604081905261002f91610067565b6001600160a01b0381166100565760405163609a8af960e01b815260040160405180910390fd5b6001600160a01b0316608052610097565b60006020828403121561007957600080fd5b81516001600160a01b038116811461009057600080fd5b9392505050565b6080516177b36100b8600039600081816075015261025501526177b36000f3fe60806040523480156200001157600080fd5b50600436106200006a5760003560e01c8063116191b6146200006f5780631163dca514620000b45780632f7801f414620000cb5780639836b75f1462000110578063b67c7b4a1462000127578063f9daddd2146200015b575b600080fd5b620000977f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b62000097620000c5366004620003df565b62000172565b620000f7620000dc366004620003df565b6001602052600090815260409020546001600160401b031681565b6040516001600160401b039091168152602001620000ab565b62000097620001213660046200041c565b620001f7565b62000097620001383660046200041c565b60006020818152928152604080822090935290815220546001600160a01b031681565b620000976200016c36600462000454565b62000249565b6001600160a01b0381166000908152602081815260408083206001928390529083205490918391620001ae91906001600160401b0316620004a8565b6001600160401b031681526020810191909152604001600020546001600160a01b0316905080620001f25760405163609a8af960e01b815260040160405180910390fd5b919050565b6001600160a01b038083166000908152602081815260408083206001600160401b03861684529091529020541680620002435760405163609a8af960e01b815260040160405180910390fd5b92915050565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016620002876060840160408501620003df565b6001600160a01b031614620002af57604051633bed049960e01b815260040160405180910390fd5b81604051620002be90620003b9565b620002ca919062000662565b604051809103906000f080158015620002e7573d6000803e3d6000fd5b5033600081815260208181526040808320600180845282852080546001600160401b03908116875292855292852080546001600160a01b0319166001600160a01b03891617905594845293909152805493945092909162000349911662000798565b91906101000a8154816001600160401b0302191690836001600160401b031602179055507f0431ea4d93af299b92f2c606ddcaf4b31cb0013c5ed1fdea837b8a912347c96581604051620003ac91906001600160a01b0391909116815260200190565b60405180910390a1919050565b616fbc80620007c283390190565b80356001600160a01b0381168114620001f257600080fd5b600060208284031215620003f257600080fd5b620003fd82620003c7565b9392505050565b80356001600160401b0381168114620001f257600080fd5b600080604083850312156200043057600080fd5b6200043b83620003c7565b91506200044b6020840162000404565b90509250929050565b6000602082840312156200046757600080fd5b81356001600160401b038111156200047e57600080fd5b82016101408185031215620003fd57600080fd5b634e487b7160e01b600052601160045260246000fd5b6001600160401b03828116828216039080821115620004cb57620004cb62000492565b5092915050565b60008235603e19833603018112620004e957600080fd5b90910192915050565b6000604083016001600160401b03806200050c8562000404565b168552602080850135601e198636030181126200052857600080fd5b85018181019035838111156200053d57600080fd5b8060051b36038213156200055057600080fd5b60408884015293849052926060870192506000905b8082101562000599576001600160a01b036200058186620003c7565b16845293820193928201926001919091019062000565565b50919695505050505050565b803560018110620001f257600080fd5b60018110620005d457634e487b7160e01b600052602160045260246000fd5b9052565b803560ff81168114620001f257600080fd5b6000808335601e198436030181126200060257600080fd5b83016020810192503590506001600160401b038111156200062257600080fd5b8036038213156200063257600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000620006748384620004d2565b6101408060208501526200068d610160850183620004f2565b915060208501356040850152620006a760408601620003c7565b6001600160a01b038116606086015250620006c560608601620005a5565b620006d46080860182620005b5565b50608085013560a0850152620006ed60a0860162000404565b6001600160401b03811660c0860152506200070b60c0860162000404565b6001600160401b03811660e0860152506200072960e0860162000404565b61010062000741818701836001600160401b03169052565b6200074e818801620005d8565b915050610120620007638187018360ff169052565b6200077181880188620005ea565b878603601f190185890152925090506200078d84838362000639565b979650505050505050565b60006001600160401b03808316818103620007b757620007b762000492565b600101939250505056fe6101c06040523480156200001257600080fd5b5060405162006fbc38038062006fbc833981016040819052620000359162000682565b61010081015160c08201516001600055606460ff831611156200006b576040516375c3b42760e01b815260040160405180910390fd5b60ff8216608052600a6001600160401b038216106200008b57806200008e565b600a5b6001600160401b0390811660a0819052600280546001600160401b0319908116909217905584518051600f80549190941692169190911782556020808201518051929550929350620000e692601092910190620003a9565b50505060208101516101805260408101516001600160a01b03166200011e57604051638b3ddc3360e01b815260040160405180910390fd5b60408101516001600160a01b03166101405260608101518015620001465762000146620007a9565b6101608180156200015b576200015b620007a9565b81525050670de0b6b3a76400008160800151106200017e57806080015162000188565b670de0b6b3a76400005b60c05260a08101516001600160401b039081166101205260e0820151600a911610620001b9578060e00151620001bc565b600a5b6001600160401b0390811660e05260a05116610100526005805460ff60401b191668050000000000000000179055610120810151601190620001ff90826200084e565b50604080518082018252600f80546001600160401b031682526010805484516020828102820181019096528181529394929383860193909291908301828280156200027457602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831162000255575b50505091909252505060405163aa5106cb60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263aa5106cb9250620002b791309060040162000983565b600060405180830381865af4158015620002d5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620002ff9190810190620009af565b6040516390ba52cf60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__916390ba52cf91620003379190600401620009ef565b602060405180830381865af415801562000355573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037b919062000a0b565b6101a0525060018054600160401b600160801b0319169055600580546001600160401b031916905562000a25565b82805482825590600052602060002090810192821562000401579160200282015b828111156200040157825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190620003ca565b506200040f92915062000413565b5090565b5b808211156200040f576000815560010162000414565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156200046557620004656200042a565b60405290565b60405161014081016001600160401b03811182821017156200046557620004656200042a565b604051601f8201601f191681016001600160401b0381118282101715620004bc57620004bc6200042a565b604052919050565b80516001600160401b0381168114620004dc57600080fd5b919050565b80516001600160a01b0381168114620004dc57600080fd5b6000604082840312156200050c57600080fd5b6200051662000440565b90506200052382620004c4565b81526020828101516001600160401b03808211156200054157600080fd5b818501915085601f8301126200055657600080fd5b8151818111156200056b576200056b6200042a565b8060051b91506200057e84830162000491565b81815291830184019184810190888411156200059957600080fd5b938501935b83851015620005c257620005b285620004e1565b825293850193908501906200059e565b808688015250505050505092915050565b805160018110620004dc57600080fd5b805160ff81168114620004dc57600080fd5b600082601f8301126200060757600080fd5b81516001600160401b038111156200062357620006236200042a565b602062000639601f8301601f1916820162000491565b82815285828487010111156200064e57600080fd5b60005b838110156200066e57858101830151828201840152820162000651565b506000928101909101919091529392505050565b6000602082840312156200069557600080fd5b81516001600160401b0380821115620006ad57600080fd5b908301906101408286031215620006c357600080fd5b620006cd6200046b565b825182811115620006dd57600080fd5b620006eb87828601620004f9565b825250602083015160208201526200070660408401620004e1565b60408201526200071960608401620005d3565b6060820152608083015160808201526200073660a08401620004c4565b60a08201526200074960c08401620004c4565b60c08201526200075c60e08401620004c4565b60e082015261010062000771818501620005e3565b9082015261012083810151838111156200078a57600080fd5b6200079888828701620005f5565b918301919091525095945050505050565b634e487b7160e01b600052602160045260246000fd5b600181811c90821680620007d457607f821691505b602082108103620007f557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200084957600081815260208120601f850160051c81016020861015620008245750805b601f850160051c820191505b81811015620008455782815560010162000830565b5050505b505050565b81516001600160401b038111156200086a576200086a6200042a565b62000882816200087b8454620007bf565b84620007fb565b602080601f831160018114620008ba5760008415620008a15750858301515b600019600386901b1c1916600185901b17855562000845565b600085815260208120601f198616915b82811015620008eb57888601518255948401946001909101908401620008ca565b50858210156200090a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80516001600160401b03168252602080820151604082850181905281519085018190526000929182019190839060608701905b80831015620009785784516001600160a01b031682529383019360019290920191908301906200094d565b509695505050505050565b6040815260006200099860408301856200091a565b905060018060a01b03831660208301529392505050565b600060208284031215620009c257600080fd5b81516001600160401b03811115620009d957600080fd5b620009e784828501620004f9565b949350505050565b60208152600062000a0460208301846200091a565b9392505050565b60006020828403121562000a1e57600080fd5b5051919050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516164b262000b0a600039600081816107ed0152611f5a015260006102cb0152600061069f0152600081816108770152818161090701528181610b0701528181610bd50152818161151a015281816115f801528181611e5501526134ed01526000610821015260006102970152600061063301526000818161072d01528181611427015281816114d7015281816115bb0152611dfe0152600081816103b9015281816123ef0152613a730152600081816104fc0152613ac801526164b26000f3fe6080604052600436106102345760003560e01c806373f273fc1161012e578063a9fb763c116100ab578063cf3312501161006f578063cf33125014610843578063cfca282414610865578063d4e25bab14610899578063d66d9e19146108c7578063f6fd8381146108dc57600080fd5b8063a9fb763c14610779578063ad81e24414610799578063b7ab4db5146107b9578063c18f64aa146107db578063c5ab22411461080f57600080fd5b806391be4d41116100f257806391be4d41146106ce57806398903748146106ea5780639e33bd021461071b578063a1ada3031461074f578063a7f0b3de1461076457600080fd5b806373f273fc146105f45780637d9740f41461062157806380f76021146106555780638b0e9f3f146106775780638ef3f7611461068d57600080fd5b806326476204116101bc578063599c7bd111610180578063599c7bd1146104ea5780635f832dbf1461053057806366d7bbbc146105465780636cb2ecee146105b35780636cf6970a146105e157600080fd5b8063264762041461043657806332e0aa1f146104635780633ccfd60b1461049b57806341c0e1b5146104b057806351392fc0146104c557600080fd5b806310d500e11161020357806310d500e114610310578063133f74ea14610370578063185fde7e146103a7578063200d2ed2146103db57806323a357051461040957600080fd5b806304fda3d41461024857806306c468531461028557806306fdde03146102b95780630f43a677146102fb57600080fd5b36610243576102416108fc565b005b600080fd5b34801561025457600080fd5b50600554610268906001600160401b031681565b6040516001600160401b0390911681526020015b60405180910390f35b34801561029157600080fd5b506102687f000000000000000000000000000000000000000000000000000000000000000081565b3480156102c557600080fd5b506102ed7f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161027c565b34801561030757600080fd5b506102ed610947565b34801561031c57600080fd5b50600254610346906001600160401b0380821691600160401b8104821691600160801b9091041683565b604080516001600160401b039485168152928416602084015292169181019190915260600161027c565b34801561037c57600080fd5b5061039061038b36600461402f565b610958565b60408051921515835260208301919091520161027c565b3480156103b357600080fd5b506102687f000000000000000000000000000000000000000000000000000000000000000081565b3480156103e757600080fd5b506005546103fc90600160401b900460ff1681565b60405161027c9190614062565b34801561041557600080fd5b50610429610424366004614091565b6109f1565b60405161027c91906140f4565b34801561044257600080fd5b506102ed610451366004614091565b600b6020526000908152604090205481565b34801561046f57600080fd5b5061048361047e366004614107565b610a8b565b6040516001600160a01b03909116815260200161027c565b3480156104a757600080fd5b50610241610a9e565b3480156104bc57600080fd5b50610241610b73565b3480156104d157600080fd5b50600154600160401b90046001600160401b0316610268565b3480156104f657600080fd5b5061051e7f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200161027c565b34801561053c57600080fd5b506102ed60065481565b34801561055257600080fd5b506105a3610561366004614120565b6001600160401b0382166000908152600a602090815260408083208054845260030182528083206001600160a01b038516845290915290205460ff1692915050565b604051901515815260200161027c565b3480156105bf57600080fd5b506105d36105ce36600461402f565b610c48565b60405161027c9291906143ba565b6102416105ef36600461446a565b611392565b34801561060057600080fd5b506102ed61060f366004614091565b600c6020526000908152604090205481565b34801561062d57600080fd5b506102687f000000000000000000000000000000000000000000000000000000000000000081565b34801561066157600080fd5b5061066a611672565b60405161027c9190614504565b34801561068357600080fd5b506102ed60045481565b34801561069957600080fd5b506106c17f000000000000000000000000000000000000000000000000000000000000000081565b60405161027c9190614517565b3480156106da57600080fd5b506102ed670de0b6b3a764000081565b3480156106f657600080fd5b5061070a61070536600461402f565b611707565b60405161027c95949392919061452b565b34801561072757600080fd5b506102ed7f000000000000000000000000000000000000000000000000000000000000000081565b34801561075b57600080fd5b5061051e600a81565b34801561077057600080fd5b50610429611844565b34801561078557600080fd5b50610241610794366004614107565b611851565b3480156107a557600080fd5b50600154610268906001600160401b031681565b3480156107c557600080fd5b506107ce61190e565b60405161027c9190614577565b3480156107e757600080fd5b506102ed7f000000000000000000000000000000000000000000000000000000000000000081565b34801561081b57600080fd5b506102687f000000000000000000000000000000000000000000000000000000000000000081565b34801561084f57600080fd5b506108586119b3565b60405161027c919061458a565b34801561087157600080fd5b506104837f000000000000000000000000000000000000000000000000000000000000000081565b3480156108a557600080fd5b506108b96108b4366004614091565b611caf565b60405161027c92919061464a565b3480156108d357600080fd5b50610241611d58565b3480156108e857600080fd5b506102416108f7366004614666565b611ed1565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109455760405163e7e601db60e01b815260040160405180910390fd5b565b60006109536008612183565b905090565b60008060008061096785610c48565b6040516339aa47fb60e01b81529193509150829073__$1cd67d4dc9e627f0bec7928aa480e7d951$__906339aa47fb906109a59085906004016148c8565b602060405180830381865af41580156109c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e69190614965565b935093505050915091565b600d6020526000908152604090208054610a0a9061497e565b80601f0160208091040260200160405190810160405280929190818152602001828054610a369061497e565b8015610a835780601f10610a5857610100808354040283529160200191610a83565b820191906000526020600020905b815481529060010190602001808311610a6657829003601f168201915b505050505081565b6000610a9860088361218d565b92915050565b610aa66121a0565b336000908152600c602052604081205490819003610ad7576040516367300f9160e11b815260040160405180910390fd5b336000908152600c60205260408082209190915551631f0e077760e31b8152600481018290526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f8703bb890602401600060405180830381600087803b158015610b4b57600080fd5b505af1158015610b5f573d6000803e3d6000fd5b50610b709250339150839050612230565b50565b610b7b6121a0565b610b836122d0565b610b8d6008612183565b151580610b9b575060045415155b15610bb957604051636b62255160e11b815260040160405180910390fd5b600580546003919060ff60401b1916600160401b8302179055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341c0e1b56040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c2e57600080fd5b505af1158015610c42573d6000803e3d6000fd5b50505050565b6000610c986040805161012081018252600060e0820181815260606101008401819052908352602083018290529282018190528282018390526080820183905260a082015260c081019190915290565b6001600160401b03808416600090815260076020908152604091829020825161012081018452815490941660e0850190815260018201805485518186028101860190965280865292948694929386936101008701939190830182828015610d2857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d0a575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156111325760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015610e3957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e1b575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610e739061497e565b80601f0160208091040260200160405190810160405280929190818152602001828054610e9f9061497e565b8015610eec5780601f10610ec157610100808354040283529160200191610eec565b820191906000526020600020905b815481529060010190602001808311610ecf57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015610f7d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610f5f575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610fb79061497e565b80601f0160208091040260200160405190810160405280929190818152602001828054610fe39061497e565b80156110305780601f1061100557610100808354040283529160200191611030565b820191906000526020600020905b81548152906001019060200180831161101357829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161108b9061497e565b80601f01602080910402602001604051908101604052809291908181526020018280546110b79061497e565b80156111045780601f106110d957610100808354040283529160200191611104565b820191906000526020600020905b8154815290600101906020018083116110e757829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101610d93565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015611269576000848152602090819020604080516080810182526003860290920180546001600160401b0316838301908152600182018054845181880281018801909552808552949592948694929386936060870193909290918301828280156111f557602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116111d7575b50505050508152505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561125157602002820191906000526020600020905b81548152602001906001019080831161123d575b5050505050815250508152602001906001019061115f565b5050505081526020016006820154815260200160078201805461128b9061497e565b80601f01602080910402602001604051908101604052809291908181526020018280546112b79061497e565b80156113045780601f106112d957610100808354040283529160200191611304565b820191906000526020600020905b8154815290600101906020018083116112e757829003601f168201915b5050509190925250508151604051630c133d1360e31b815292935073__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e898925061134991906004016149b8565b602060405180830381865af4158015611366573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138a91906149d9565b159150915091565b61139a6121a0565b6113a26122d0565b343360008290036113c657604051635a78c58160e11b815260040160405180910390fd5b6001600160a01b0381166000908152600b6020526040812080548492906113ee908490614a0c565b9250508190555081600460008282546114079190614a0c565b90915550506001600160a01b0381166000908152600b60205260409020547f0000000000000000000000000000000000000000000000000000000000000000116114b15761145660088261230e565b6114b157611465600882612330565b506001600160a01b0381166000908152600d60205260409020611489858783614a9c565b506001600160a01b0381166000908152600e6020526040902083906114ae8282614bb1565b50505b6005808054600160401b900460ff16908111156114d0576114d061404c565b03611594577f00000000000000000000000000000000000000000000000000000000000000006004541061158f57600580546001919060ff60401b1916600160401b8302179055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631aa3a0086004546040518263ffffffff1660e01b81526004016000604051808303818588803b15801561157557600080fd5b505af1158015611589573d6000803e3d6000fd5b50505050505b61166b565b600260058054600160401b900460ff16908111156115b4576115b461404c565b036115f6577f0000000000000000000000000000000000000000000000000000000000000000600454106115f6576005805460ff60401b1916600160401b1790555b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635a627dbc836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561165157600080fd5b505af1158015611665573d6000803e3d6000fd5b50505050505b5050505050565b604080518082019091526000815260606020820152604080518082018252600f80546001600160401b031682526010805484516020828102820181019096528181529394929383860193909291908301828280156116f957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116116db575b505050505081525050905090565b6007602090815260009182526040918290208251808401845281546001600160401b0316815260018201805485518186028101860190965280865292949193859385820193929183018282801561178757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611769575b5050509190925250505060028201546003830154600684015460078501805494956001600160401b0390941694929391926117c19061497e565b80601f01602080910402602001604051908101604052809291908181526020018280546117ed9061497e565b801561183a5780601f1061180f5761010080835404028352916020019161183a565b820191906000526020600020905b81548152906001019060200180831161181d57829003601f168201915b5050505050905085565b60118054610a0a9061497e565b6118596108fc565b60006118656008612183565b9050806000036118885760405163efa9c8f160e01b815260040160405180910390fd5b808210156118a957604051633074cabf60e11b815260040160405180910390fd5b60006118b58284614cac565b905060005b82811015610c425781600c60006118d260088561218d565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546119019190614a0c565b90915550506001016118ba565b6060600061191c6008612183565b90506000816001600160401b0381111561193857611938614a1f565b604051908082528060200260200182016040528015611961578160200160208202803683370190505b50905060005b828110156119ac5761197a60088261218d565b82828151811061198c5761198c614cc0565b6001600160a01b0390921660209283029190910190910152600101611967565b5092915050565b60408051808201909152606081526000602082015260006119d46008612183565b90506000816001600160401b038111156119f0576119f0614a1f565b604051908082528060200260200182016040528015611a5557816020015b60408051608081018252600080825260208083018290528351808501855291825260609082018190529282015281810191909152815260200190600190039081611a0e5790505b50905060005b82811015611c8a57604080516080810190915280611a7a60088461218d565b6001600160a01b03168152602001600b6000611a9760088661218d565b6001600160a01b03166001600160a01b03168152602001908152602001600020548152602001600e6000611ad585600861218d90919063ffffffff16565b6001600160a01b0316815260208082019290925260409081016000208151808301909252805460ff1682526001810180549293919291840191611b179061497e565b80601f0160208091040260200160405190810160405280929190818152602001828054611b439061497e565b8015611b905780601f10611b6557610100808354040283529160200191611b90565b820191906000526020600020905b815481529060010190602001808311611b7357829003601f168201915b505050919092525050508152602001600d6000611bae60088661218d565b6001600160a01b03166001600160a01b031681526020019081526020016000208054611bd99061497e565b80601f0160208091040260200160405190810160405280929190818152602001828054611c059061497e565b8015611c525780601f10611c2757610100808354040283529160200191611c52565b820191906000526020600020905b815481529060010190602001808311611c3557829003601f168201915b5050505050815250828281518110611c6c57611c6c614cc0565b60200260200101819052508080611c8290614cd6565b915050611a5b565b50604080518082019091529081526005546001600160401b0316602082015292915050565b600e602052600090815260409020805460018201805460ff9092169291611cd59061497e565b80601f0160208091040260200160405190810160405280929190818152602001828054611d019061497e565b8015611d4e5780601f10611d2357610100808354040283529160200191611d4e565b820191906000526020600020905b815481529060010190602001808311611d3157829003601f168201915b5050505050905082565b611d60612345565b611d686121a0565b611d706122d0565b336000908152600b602052604081205490819003611da157604051632ec5b44960e01b815260040160405180910390fd5b336000908152600b6020526040812081905560048054839290611dc5908490614cef565b90915550611dd6905060083361236f565b50600160058054600160401b900460ff1690811115611df757611df761404c565b03611e3f577f00000000000000000000000000000000000000000000000000000000000000006004541015611e3f576005805460ff60401b1916680200000000000000001790555b6040516345f5448560e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906345f5448590602401600060405180830381600087803b158015611ea157600080fd5b505af1158015611eb5573d6000803e3d6000fd5b50611ec69250339150839050612230565b506109456001600055565b611ed96121a0565b611ee9604082016020830161402f565b611ef281612384565b600160058054600160401b900460ff1690811115611f1257611f1261404c565b14611f305760405163c18316bf60e01b815260040160405180910390fd5b611f3b60083361230e565b611f5857604051632ec5b44960e01b815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000611f838380614d02565b611f8c90614e9e565b6040516390ba52cf60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__916390ba52cf91611fc291906004016149b8565b602060405180830381865af4158015611fdf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120039190614965565b14612021576040516375ecc72d60e01b815260040160405180910390fd5b73__$33b79814e84bf6cf5e47244090b19ce5f8$__63898414756120486060850185614eaa565b6040518363ffffffff1660e01b81526004016120659291906150c3565b602060405180830381865af4158015612082573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a691906149d9565b6120c357604051630bd9169f60e01b815260040160405180910390fd5b6000600a816120d8604086016020870161402f565b6001600160401b03166001600160401b031681526020019081526020016000209050600061212d828533600b6000336001600160a01b03166001600160a01b031681526020019081526020016000205461245a565b905080156121435761213e82612c1a565b610c42565b60008061214e613550565b91509150801561217b576001600160401b0382166000908152600a6020526040902061217981612c1a565b505b505050505050565b6000610a98825490565b60006121998383613574565b9392505050565b604051630972932760e21b815233600482015273__$e800e3908cdbb6b1b5bd452383a17b18f7$__906325ca4c9c90602401602060405180830381865af41580156121ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061221391906149d9565b6109455760405163b7150de560e01b815260040160405180910390fd5b804710156122575760405163cd78605960e01b815230600482015260240160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146122a4576040519150601f19603f3d011682016040523d82523d6000602084013e6122a9565b606091505b50509050806122cb57604051630a12f52160e11b815260040160405180910390fd5b505050565b600360058054600160401b900460ff16908111156122f0576122f061404c565b036109455760405163248c8efb60e11b815260040160405180910390fd5b6001600160a01b03811660009081526001830160205260408120541515612199565b6000612199836001600160a01b03841661359e565b60026000540361236857604051633ee5aeb560e01b815260040160405180910390fd5b6002600055565b6000612199836001600160a01b0384166135ed565b6001546001600160401b03908116908216116123b357604051631f30cc6360e21b815260040160405180910390fd5b6001546001600160401b03600160401b909104811690821610156123ea5760405163b4f68f9760e01b815260040160405180910390fd5b6001547f00000000000000000000000000000000000000000000000000000000000000009061242990600160401b90046001600160401b031683615206565b6124339190615226565b6001600160401b031615610b705760405163b4f68f9760e01b815260040160405180910390fd5b6000806124668561561e565b6040516339aa47fb60e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__916339aa47fb9161249c91906004016148c8565b602060405180830381865af41580156124b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124dd9190614965565b90506124fe868286866124f660408b0160208c0161402f565b6004546136e0565b600082815260058801602090815260409182902082516101208101845281546001600160401b031660e082019081526001830180548651818702810187019097528087529698509195929486949193869361010087019390919083018282801561259157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612573575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b8282101561299b5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d019390918301828280156126a257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612684575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906126dc9061497e565b80601f01602080910402602001604051908101604052809291908181526020018280546127089061497e565b80156127555780601f1061272a57610100808354040283529160200191612755565b820191906000526020600020905b81548152906001019060200180831161273857829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156127e657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116127c8575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906128209061497e565b80601f016020809104026020016040519081016040528092919081815260200182805461284c9061497e565b80156128995780601f1061286e57610100808354040283529160200191612899565b820191906000526020600020905b81548152906001019060200180831161287c57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916128f49061497e565b80601f01602080910402602001604051908101604052809291908181526020018280546129209061497e565b801561296d5780601f106129425761010080835404028352916020019161296d565b820191906000526020600020905b81548152906001019060200180831161295057829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016125fc565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015612ad2576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015612a5e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612a40575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015612aba57602002820191906000526020600020905b815481526020019060010190808311612aa6575b505050505081525050815260200190600101906129c8565b50505050815260200160068201548152602001600782018054612af49061497e565b80601f0160208091040260200160405190810160405280929190818152602001828054612b209061497e565b8015612b6d5780601f10612b4257610100808354040283529160200191612b6d565b820191906000526020600020905b815481529060010190602001808311612b5057829003601f168201915b5050509190925250506040516322ea8d8960e11b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__926345d51b129250612bac916004016148c8565b602060405180830381865af4158015612bc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bed91906149d9565b15612c1157600081815260058701602052604090208590612c0e8282615f17565b50505b50949350505050565b600281015460009081526005820160205260409020600680820154905414612d1357604051635a27a53960e11b81526004810183905273__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063b44f4a729060240160006040518083038186803b158015612c8757600080fd5b505af4158015612c9b573d6000803e3d6000fd5b505050506002818101546040516394ecccfd60e01b815260048101929092526001600160401b0316602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__906394ecccfd9060440160006040518083038186803b158015612cff57600080fd5b505af415801561217b573d6000803e3d6000fd5b6002810154612d2a906001600160401b031661391b565b60028101546001600160401b039081166000908152600760205260409020825481546001600160401b03191692169190911781556001808301805484939284928492612d799284019190613bd1565b50505060028281015490820180546001600160401b0319166001600160401b039092169190911790556003808301549082015560048083018054612dc09284019190613c21565b5060058281018054612dd59284019190613de7565b506006820154816006015560078201816007019081612df49190616046565b5050604080516101208101825283546001600160401b031660e0820190815260018501805484516020828102820181019096528181529395508694869486936101008701939192909190830182828015612e7757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612e59575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156132815760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015612f8857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f6a575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190612fc29061497e565b80601f0160208091040260200160405190810160405280929190818152602001828054612fee9061497e565b801561303b5780601f106130105761010080835404028352916020019161303b565b820191906000526020600020905b81548152906001019060200180831161301e57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156130cc57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116130ae575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906131069061497e565b80601f01602080910402602001604051908101604052809291908181526020018280546131329061497e565b801561317f5780601f106131545761010080835404028352916020019161317f565b820191906000526020600020905b81548152906001019060200180831161316257829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916131da9061497e565b80601f01602080910402602001604051908101604052809291908181526020018280546132069061497e565b80156132535780601f1061322857610100808354040283529160200191613253565b820191906000526020600020905b81548152906001019060200180831161323657829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101612ee2565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b828210156133b8576000848152602090819020604080516080810182526003860290920180546001600160401b03168383019081526001820180548451818802810188019095528085529495929486949293869360608701939092909183018282801561334457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613326575b5050505050815250508152602001600282018054806020026020016040519081016040528092919081815260200182805480156133a057602002820191906000526020600020905b81548152602001906001019080831161338c575b505050505081525050815260200190600101906132ae565b505050508152602001600682015481526020016007820180546133da9061497e565b80601f01602080910402602001604051908101604052809291908181526020018280546134069061497e565b80156134535780601f1061342857610100808354040283529160200191613453565b820191906000526020600020905b81548152906001019060200180831161343657829003601f168201915b5050509190925250506040516339aa47fb60e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__926339aa47fb9250613492916004016148c8565b602060405180830381865af41580156134af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134d39190614965565b600655604051631a9c293560e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d4e149a8906135229084906004016163b6565b600060405180830381600087803b15801561353c57600080fd5b505af115801561217b573d6000803e3d6000fd5b600254600160401b90046001600160401b0316600061356e82613a67565b90509091565b600082600001828154811061358b5761358b614cc0565b9060005260206000200154905092915050565b60008181526001830160205260408120546135e557508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610a98565b506000610a98565b600081815260018301602052604081205480156136d6576000613611600183614cef565b855490915060009061362590600190614cef565b905081811461368a57600086600001828154811061364557613645614cc0565b906000526020600020015490508087600001848154811061366857613668614cc0565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061369b5761369b616446565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610a98565b6000915050610a98565b8554600081815260038801602090815260408083206001600160a01b038916845290915281205490919060ff161561372b576040516337138f5f60e11b815260040160405180910390fd5b600081815260038901602090815260408083206001600160a01b038a1684529091528120805460ff191660019081179091558901805487929061376f908490614a0c565b9091555050600081815260048901602090815260408083208a84529091528120805487929061379f908490614a0c565b90915550506000818152600489016020908152604080832060028c0154845290915280822054898352912054808210156137db5760028a018990555b60006137e78b87613abc565b905060038160038111156137fd576137fd61404c565b036138905761380b87613a67565b15613819576001945061390d565b60405163199b9ca560e01b8152600260048201526001600160401b038816602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__9063199b9ca59060440160006040518083038186803b15801561387357600080fd5b505af4158015613887573d6000803e3d6000fd5b5050505061390d565b60028160038111156138a4576138a461404c565b0361390d57604051635a27a53960e11b8152600481018c905273__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063b44f4a729060240160006040518083038186803b1580156138f457600080fd5b505af4158015613908573d6000803e3d6000fd5b505050505b505050509695505050505050565b61392481613a67565b61392b5750565b604051634953836d60e11b8152600260048201526001600160401b038216602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__906392a706da90604401602060405180830381865af415801561398a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139ae91906149d9565b156139d2576002546001600160401b03828116600160401b90920416146139d25750565b6040516394ecccfd60e01b8152600260048201526001600160401b038216602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__906394ecccfd9060440160006040518083038186803b158015613a2c57600080fd5b505af4158015613a40573d6000803e3d6000fd5b5050600180546001600160401b0319166001600160401b0394909416939093179092555050565b600154600090613aa1907f0000000000000000000000000000000000000000000000000000000000000000906001600160401b031661645c565b6001600160401b0316826001600160401b0316149050919050565b6000806064613aee60ff7f00000000000000000000000000000000000000000000000000000000000000001685615706565b613af89190614cac565b604051637d2ef4e560e11b81526004810186905290915060009073__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063fa5de9ca90602401602060405180830381865af4158015613b4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b729190614965565b905081856001015411613b8a57600092505050610a98565b81811115613b9d57600392505050610a98565b6001850154613bac9085614cef565b613bb68284614cef565b10613bc657600292505050610a98565b506001949350505050565b828054828255906000526020600020908101928215613c115760005260206000209182015b82811115613c11578254825591600101919060010190613bf6565b50613c1d929150613e87565b5090565b82805482825590600052602060002090600c028101928215613ddb57600052602060002091600c0282015b82811115613ddb57825482546001600160401b0319166001600160401b039091161782556001808401805485928592849284928492849284928492613c949291840191613bd1565b50505060028281018054918301805460ff191660ff90931692909217825590600380840190613cc590860182616046565b505050506004838101805491840180546001600160401b0319166001600160401b039093169290921782556005808601805492945084928492613d0b9290880191613bd1565b50505060028281018054918301805460ff191660ff90931692909217825590600380840190613d3c90860182616046565b5050505060088381015490830155506009808301805491830180546001600160401b031981166001600160401b039094169384178255915463ffffffff600160401b9182900416026bffffffffffffffffffffffff19909216909217179055600a80820190613dad90840182616046565b505050600b918201549101805460ff191660ff9092161515919091179055600c928301929190910190613c4c565b50613c1d929150613e9c565b828054828255906000526020600020906003028101928215613e7b5760005260206000209160030282015b82811115613e7b57825482546001600160401b0319166001600160401b03909116178255600180840180548592859284928492613e529290840191613bd1565b50505060028281018054613e699284019190613bd1565b50505091600301919060030190613e12565b50613c1d929150613f71565b5b80821115613c1d5760008155600101613e88565b80821115613c1d5780546001600160401b03191681556000818181818181613ec76001830182613fb2565b505060028201805460ff191681556000613ee46003850182613fd0565b505050506004820180546001600160401b031916815560008181613f0b6005870182613fb2565b505060028201805460ff191681556000613f286003850182613fd0565b50506000600885018190556009850180546bffffffffffffffffffffffff19169055613f5a9250600a85019150613fd0565b505050600b8101805460ff19169055600c01613e9c565b80821115613c1d5780546001600160401b031916815560008181613f986001830182613fb2565b50613fa99050600283016000613fb2565b50600301613f71565b5080546000825590600052602060002090810190610b709190613e87565b508054613fdc9061497e565b6000825580601f10613fec575050565b601f016020900490600052602060002090810190610b709190613e87565b6001600160401b0381168114610b7057600080fd5b803561402a8161400a565b919050565b60006020828403121561404157600080fd5b81356121998161400a565b634e487b7160e01b600052602160045260246000fd5b60208101600683106140765761407661404c565b91905290565b6001600160a01b0381168114610b7057600080fd5b6000602082840312156140a357600080fd5b81356121998161407c565b6000815180845260005b818110156140d4576020818501810151868301820152016140b8565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600061219960208301846140ae565b60006020828403121561411957600080fd5b5035919050565b6000806040838503121561413357600080fd5b823561413e8161400a565b9150602083013561414e8161407c565b809150509250929050565b600081518084526020808501945080840160005b838110156141925781516001600160a01b03168752958201959082019060010161416d565b509495945050505050565b6001600160401b03815116825260006020820151604060208501526141c56040850182614159565b949350505050565b60ff815116825260006020820151604060208501526141c560408501826140ae565b6000815160408452614204604085018261419d565b90506020830151848203602086015261421d82826141cd565b95945050505050565b600081518084526020808501808196508360051b8101915082860160005b8581101561430d578284038952815160408151818752805160c080848a01526142716101008a01836141ef565b915089830151603f196060818c860301818d015261428f85846141ef565b9686015160808d810191909152908601516001600160401b031660a0808e0191909152908601516001600160e01b031916938c0193909352918401518a860390920160e08b0152509290506142e481846140ae565b93890151801515898b01529392506142fa915050565b9986019994505090840190600101614244565b5091979650505050505050565b600081518084526020808501808196508360051b810191508286016000805b868110156143ac578385038a5282516040815181885261435b8289018261419d565b92890151888403898b01528051808552908a01938693508a0191505b808310156143975783518252928901926001929092019190890190614377565b509b88019b9650505091850191600101614339565b509298975050505050505050565b8215158152604060208201526000825160e060408401526143df61012084018261419d565b90506001600160401b036020850151166060840152604084015160808401526060840151603f19808584030160a086015261441a8383614226565b925060808601519150808584030160c0860152614437838361431a565b925060a086015160e086015260c0860151915080858403016101008601525061446082826140ae565b9695505050505050565b60008060006040848603121561447f57600080fd5b83356001600160401b038082111561449657600080fd5b818601915086601f8301126144aa57600080fd5b8135818111156144b957600080fd5b8760208285010111156144cb57600080fd5b6020928301955093509085013590808211156144e657600080fd5b508401604081870312156144f957600080fd5b809150509250925092565b602081526000612199602083018461419d565b60208101600183106140765761407661404c565b60a08152600061453e60a083018861419d565b6001600160401b0387166020840152856040840152846060840152828103608084015261456b81856140ae565b98975050505050505050565b6020815260006121996020830184614159565b600060208083526060808401855160408085880152828251808552608094508489019150848160051b8a0101878501945060005b82811015614628578a8203607f19018452855180516001600160a01b03168352898101518a840152858101518684018990526145fc898501826141cd565b918a0151848303858c015291905061461481836140ae565b978b0197958b0195935050506001016145be565b50968a01516001600160401b038116848b0152969a9950505050505050505050565b60ff831681526040602082015260006141c560408301846140ae565b60006020828403121561467857600080fd5b81356001600160401b0381111561468e57600080fd5b820160e0818503121561219957600080fd5b6000604083016001600160401b0383511684526020808401516040828701528281518085526060880191508383019450600092505b808310156146fe5784516001600160a01b031682529383019360019290920191908301906146d5565b509695505050505050565b600081516040845261471e60408501826146a0565b90506020830151848203602086015260ff8151168252602081015190506040602083015261421d60408301826140ae565b600081518084526020808501808196508360051b8101915082860160005b8581101561430d578284038952815160408151818752805160c080848a015261479a6101008a0183614709565b915089830151603f196060818c860301818d01526147b88584614709565b9686015160808d810191909152908601516001600160401b031660a0808e0191909152908601516001600160e01b031916938c0193909352918401518a860390920160e08b01525092905061480d81846140ae565b93890151801515898b0152939250614823915050565b998601999450509084019060010161476d565b600081518084526020808501808196508360051b810191508286016000805b868110156143ac578385038a52825160408151818852614877828901826146a0565b92890151888403898b01528051808552908a01938693508a0191505b808310156148b35783518252928901926001929092019190890190614893565b509b88019b9650505091850191600101614855565b602081526000825160e060208401526148e56101008401826146a0565b90506001600160401b036020850151166040840152604084015160608401526060840151601f1980858403016080860152614920838361474f565b925060808601519150808584030160a086015261493d8383614836565b925060a086015160c086015260c08601519150808584030160e08601525061421d82826140ae565b60006020828403121561497757600080fd5b5051919050565b600181811c9082168061499257607f821691505b6020821081036149b257634e487b7160e01b600052602260045260246000fd5b50919050565b60208152600061219960208301846146a0565b8015158114610b7057600080fd5b6000602082840312156149eb57600080fd5b8151612199816149cb565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a9857610a986149f6565b634e487b7160e01b600052604160045260246000fd5b5b81811015614a4a5760008155600101614a36565b5050565b601f8211156122cb57806000526020600020601f840160051c81016020851015614a755750805b61166b601f850160051c830182614a35565b600019600383901b1c191660019190911b1790565b6001600160401b03831115614ab357614ab3614a1f565b614ac783614ac1835461497e565b83614a4e565b6000601f841160018114614af55760008515614ae35750838201355b614aed8682614a87565b84555061166b565b600083815260209020601f19861690835b82811015614b265786850135825560209485019460019092019101614b06565b5086821015614b435760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60ff81168114610b7057600080fd5b6000808335601e19843603018112614b7b57600080fd5b8301803591506001600160401b03821115614b9557600080fd5b602001915036819003821315614baa57600080fd5b9250929050565b8135614bbc81614b55565b60ff811660ff198354161782555060018082016020614bdd81860186614b64565b6001600160401b03811115614bf457614bf4614a1f565b614c0881614c02865461497e565b86614a4e565b6000601f821160018114614c365760008315614c245750838201355b614c2e8482614a87565b875550614c8b565b600086815260209020601f19841690835b82811015614c645786850135825593870193908901908701614c47565b5084821015614c815760001960f88660031b161c19848701351681555b50508683881b0186555b505050505050505050565b634e487b7160e01b600052601260045260246000fd5b600082614cbb57614cbb614c96565b500490565b634e487b7160e01b600052603260045260246000fd5b600060018201614ce857614ce86149f6565b5060010190565b81810381811115610a9857610a986149f6565b60008235603e19833603018112614d1857600080fd5b9190910192915050565b604080519081016001600160401b0381118282101715614d4457614d44614a1f565b60405290565b60405160c081016001600160401b0381118282101715614d4457614d44614a1f565b60405160e081016001600160401b0381118282101715614d4457614d44614a1f565b604051601f8201601f191681016001600160401b0381118282101715614db657614db6614a1f565b604052919050565b60006001600160401b03821115614dd757614dd7614a1f565b5060051b60200190565b600060408284031215614df357600080fd5b614dfb614d22565b90508135614e088161400a565b81526020828101356001600160401b03811115614e2457600080fd5b8301601f81018513614e3557600080fd5b8035614e48614e4382614dbe565b614d8e565b81815260059190911b82018301908381019087831115614e6757600080fd5b928401925b82841015614e8e578335614e7f8161407c565b82529284019290840190614e6c565b8085870152505050505092915050565b6000610a983683614de1565b6000808335601e19843603018112614ec157600080fd5b8301803591506001600160401b03821115614edb57600080fd5b6020019150600581901b3603821315614baa57600080fd5b60008235603e19833603018112614f0957600080fd5b90910192915050565b6000808335601e19843603018112614f2957600080fd5b83016020810192503590506001600160401b03811115614f4857600080fd5b803603821315614baa57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008135614f8d81614b55565b60ff168352614f9f6020830183614f12565b6040602086015261421d604086018284614f57565b6000614fc08283614ef3565b60408452608084018135614fd38161400a565b6001600160401b0390811660408701526020908382013536859003601e19018112614ffd57600080fd5b9093018181019390358181111561501357600080fd5b8060051b360385131561502557600080fd5b60406060890152928390525060009160a08701905b8084101561506c57843561504d8161407c565b6001600160a01b0316825293820193600193909301929082019061503a565b5061507982870187614ef3565b93508681038288015261508c8185614f80565b979650505050505050565b6001600160e01b031981168114610b7057600080fd5b803561402a81615097565b803561402a816149cb565b60208082528181018390526000906040808401600586901b850182018785805b898110156151f757603f19808a86030186526150ff848d614ef3565b803560be19823603018112615112578485fd5b88875281016151218180614ef3565b60c0808b8a01526151366101008a0183614fb4565b91506151448c840184614ef3565b6060868b850301818c01526151598483614fb4565b9350608091508c850135828c01528085013590506151768161400a565b60a06001600160401b038216818d015282860135925061519583615097565b6001600160e01b031983168c8501526151b086820187614f12565b96509350505050848983030160e08a01526151cc828483614f57565b94505050506151dc8982016150b8565b151595890195909552948701949350918601916001016150e3565b50919998505050505050505050565b6001600160401b038281168282160390808211156119ac576119ac6149f6565b60006001600160401b038084168061524057615240614c96565b92169190910692915050565b600082601f83011261525d57600080fd5b81356001600160401b0381111561527657615276614a1f565b615289601f8201601f1916602001614d8e565b81815284602083860101111561529e57600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156152cd57600080fd5b6152d5614d22565b905081356001600160401b03808211156152ee57600080fd5b6152fa85838601614de1565b8352602084013591508082111561531057600080fd5b908301906040828603121561532457600080fd5b61532c614d22565b823561533781614b55565b815260208301358281111561534b57600080fd5b6153578782860161524c565b60208301525080602085015250505092915050565b600082601f83011261537d57600080fd5b8135602061538d614e4383614dbe565b82815260059290921b840181019181810190868411156153ac57600080fd5b8286015b848110156146fe5780356001600160401b03808211156153cf57600080fd5b90880190601f196040838c03820112156153e857600080fd5b6153f0614d22565b878401358381111561540157600080fd5b840160c0818e038401121561541557600080fd5b61541d614d4a565b9250888101358481111561543057600080fd5b61543e8e8b838501016152bb565b84525060408101358481111561545357600080fd5b6154618e8b838501016152bb565b8a850152506060810135604084015261547c6080820161401f565b606084015261548d60a082016150ad565b608084015260c0810135848111156154a457600080fd5b6154b28e8b8385010161524c565b60a085015250508181526154c8604085016150b8565b8189015286525050509183019183016153b0565b600082601f8301126154ed57600080fd5b813560206154fd614e4383614dbe565b828152600592831b850182019282820191908785111561551c57600080fd5b8387015b858110156156115780356001600160401b03808211156155405760008081fd5b908901906040828c03601f190181131561555a5760008081fd5b615562614d22565b88840135838111156155745760008081fd5b6155828e8b83880101614de1565b82525081840135838111156155975760008081fd5b8085019450508c603f8501126155af57600092508283fd5b8884013592506155c1614e4384614dbe565b83815292861b8401820192898101908e8511156155de5760008081fd5b948301945b848610156155fc5785358252948a0194908a01906155e3565b828b0152508752505050928401928401615520565b5090979650505050505050565b600060e0823603121561563057600080fd5b615638614d6c565b82356001600160401b038082111561564f57600080fd5b61565b36838701614de1565b83526156696020860161401f565b602084015260408501356040840152606085013591508082111561568c57600080fd5b6156983683870161536c565b606084015260808501359150808211156156b157600080fd5b6156bd368387016154dc565b608084015260a085013560a084015260c08501359150808211156156e057600080fd5b506156ed3682860161524c565b60c08301525092915050565b60008135610a988161400a565b8082028115828204841417610a9857610a986149f6565b8054600082558015614a4a578160005260206000206122cb82820182614a35565b600160401b82111561575257615752614a1f565b8054828255808310156122cb57816000526020600020610c42828201858301614a35565b60008155610b706001820161571d565b615790815461497e565b8015614a4a57601f8111600181146157aa57505060009055565b8260005260206000206157c8601f840160051c820160018301614a35565b60008085559055505050565b600081556157e46001820161571d565b60006002820155610b7060038201615786565b6158018283614d02565b803561580c8161400a565b82546001600160401b0319166001600160401b038216178355506001808301602061583981850185614eaa565b94506001600160401b038086111561585357615853614a1f565b61585d868561573e565b600093845282842093805b8781101561588a57833561587b8161407c565b86820155928401928601615868565b5060028801965061589d848a018a614d02565b9450843592506158ac83614b55565b865460ff191660ff84161790965560038701956158cb85850186614b64565b95509250818511156158df576158df614a1f565b6158f3856158ed895461497e565b89614a4e565b809150601f8511600181146159215781861561590f5750838301355b6159198782614a87565b895550611665565b600088815260209020601f19871690835b8281101561594f5786860135825594870194908901908701615932565b508782101561596c5760001960f88960031b161c19858701351681555b505050505091831b90920190925550505050565b60008135610a9881615097565b60008135610a98816149cb565b813560be198336030181126159ae57600080fd5b82016159ba8180614d02565b6159c48182614d02565b80356159cf8161400a565b84546001600160401b0319166001600160401b03821617855550600180850160206159fc81850185614eaa565b94506001600160401b0380861115615a1657615a16614a1f565b615a20868561573e565b600093845282842093805b87811015615a4d578335615a3e8161407c565b86820155928401928601615a2b565b5060028a019650615a6084890189614d02565b975087359450615a6f85614b55565b865460ff191660ff8616179096556003890195615a8e88850189614b64565b9850945081881115615aa257615aa2614a1f565b615ab0886158ed895461497e565b809250601f881160018114615ae0578192508815615acf578386013592505b615ad98984614a87565b8855615b35565b600088815260209020601f198a169350825b84811015615b0f5787860135825594860194908801908601615af2565b5089841015615b2c5760001960f88b60031b161c19858801351681555b508689881b0188555b50505050615b51615b4882880188614d02565b600489016157f7565b60408601356008880155600987019450615b8d615b70606088016156f9565b86546001600160401b0319166001600160401b0391909116178655565b615bc6615b9c60808801615980565b86546bffffffff0000000000000000191660a09190911c6bffffffff000000000000000016178655565b615bd360a0870187614b64565b96509450615be58686600a8a01614a9c565b615c0c615bf3828a0161598d565b600b890160ff1981541660ff8315151681178255505050565b5050505050505050565b600160401b831115615c2a57615c2a614a1f565b805483825580841015615cbe57600c8181028181048314615c4d57615c4d6149f6565b8582028281048714615c6157615c616149f6565b6000858152602081209283019291909101905b82821015615cb957615c85826157d4565b615c91600483016157d4565b806008830155806009830155615ca9600a8301615786565b80600b8301558382019150615c74565b505050505b5060008181526020812083915b8581101561217b57615ce6615ce08487614d02565b8361599a565b60209290920191600c9190910190600101615ccb565b8054600080835581156122cb57828152602081208281015b8082101561166b57828255600182019150615d14565b600160401b821115615d3e57615d3e614a1f565b8054828255808310156122cb576000828152602081208481019083015b8082101561217b57828255600182019150615d5b565b615d7b8283614d02565b8035615d868161400a565b82546001600160401b0319166001600160401b0382161783555060018083016020615db381850185614eaa565b94506001600160401b0380861115615dcd57615dcd614a1f565b615dd7868561573e565b600093845282842093805b87811015615e04578335615df58161407c565b86820155928401928601615de2565b50600288019650615e17848a018a614eaa565b9550925081851115615e2b57615e2b614a1f565b615e358588615d2a565b95865250818520945b83811015615c0c57813586820155908201908401615e3e565b600160401b831115615e6b57615e6b614a1f565b805483825580841015615ed95760038181028181048314615e8e57615e8e6149f6565b8582028281048714615ea257615ea26149f6565b60008581526020902091820191015b81811015615ed557615ec281615776565b615ece60028201615cfc565b8201615eb1565b5050505b5060008181526020812083915b8581101561217b57615f01615efb8487614d02565b83615d71565b6020929092019160039190910190600101615ee6565b615f218283614d02565b8035615f2c8161400a565b82546001600160401b0319166001600160401b0382161783555060018083016020615f5981850185614eaa565b94506001600160401b03851115615f7257615f72614a1f565b615f7c858461573e565b6000928352818320925b85811015615fa8578135615f998161407c565b84820155908201908401615f86565b5050615fd9615fb88288016156f9565b600287016001600160401b0382166001600160401b03198254161781555050565b5050505060408201356003820155615ff46060830183614eaa565b616002818360048601615c16565b50506160116080830183614eaa565b61601f818360058601615e57565b505060a0820135600682015561603860c0830183614b64565b610c42818360078601614a9c565b818103616051575050565b61605b825461497e565b6001600160401b0381111561607257616072614a1f565b61608681616080845461497e565b84614a4e565b6000601f8211600181146160b457600083156160a25750848201545b6160ac8482614a87565b85555061166b565b600085815260209020601f19841690600086815260209020845b838110156160ee57828601548255600195860195909101906020016160ce565b508583101561610c5781850154600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000604083016001600160401b0383541684526001808401602060408188015283825480865260608901915083600052826000209550600093505b8084101561617d5785546001600160a01b03168252948401949284019290820190616157565b50979650505050505050565b600081546161968161497e565b8085526020600183811680156161b357600181146161cd576161fb565b60ff1985168884015283151560051b8801830195506161fb565b866000528260002060005b858110156161f35781548a82018601529083019084016161d8565b890184019650505b505050505092915050565b604082526000616219604084018361611c565b838103602085015260ff6002840154168152604060208201526141c56040820160038501616189565b600081548084526020808501808196508360051b81019150856000528260002060005b8581101561430d578284038952604080855260c0808287015261628c610100870185616206565b9150603f19808784030160608801526162a88360048701616206565b6008860154608089015260098601546001600160401b03811660a0808b01919091521b6001600160e01b031916928801929092528682030160e087015290506162f481600a8501616189565b9050616304600b84015460ff1690565b15159486019490945297840197600c9190910190600101616265565b600081548084526020808501808196508360051b810191506000868152838120815b868110156143ac578385038a5260408086526163608187018461611c565b86810388880152600284018054808352908652888620925085918901905b8083101561639e578354825260019384019392909201919089019061637e565b509b88019b9650505060039190910190600101616342565b6020815260e0602082015260006163d161010083018461611c565b60028401546001600160401b0316604084015260038401546060840152828103601f1990810160808501526164098260048701616242565b9150808483030160a08501526164228260058701616320565b9150600685015460c0850152808483030160e0850152506141c58160078601616189565b634e487b7160e01b600052603160045260246000fd5b6001600160401b038181168382160190808211156119ac576119ac6149f656fea2646970667358221220a6ae00ab06eb511a33065da6f3c80edd7e51f0e0a341be0e5e1ee1e842337f6f64736f6c63430008130033a26469706673582212206c77824a426a509a1f1234d3fddf5886350bf7bcf7bb41313e835d9cb45fd8ed64736f6c63430008130033", + "sourceMap": "216:1960:29:-:0;;;934:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;978:22:29;;974:80;;1023:20;;-1:-1:-1;;;1023:20:29;;;;;;;;;;;974:80;-1:-1:-1;;;;;1063:18:29;;;216:1960;;14:290:83;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:83;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:83:o;:::-;216:1960:29;;;;;;;;;;;;;;;;;", "linkReferences": { "src/lib/AccountHelper.sol": { "AccountHelper": [ { - "start": 16456, + "start": 13625, "length": 20 } ] @@ -237,19 +237,19 @@ "src/lib/CheckpointHelper.sol": { "CheckpointHelper": [ { - "start": 7174, + "start": 7425, "length": 20 }, { - "start": 7528, + "start": 14329, "length": 20 }, { - "start": 14657, + "start": 16137, "length": 20 }, { - "start": 20964, + "start": 18415, "length": 20 } ] @@ -257,7 +257,7 @@ "src/lib/CrossMsgHelper.sol": { "CrossMsgHelper": [ { - "start": 6651, + "start": 13223, "length": 20 } ] @@ -265,15 +265,15 @@ "src/lib/EpochVoteSubmissionHelper.sol": { "EpochVoteSubmissionHelper": [ { - "start": 9522, + "start": 16342, "length": 20 }, { - "start": 21834, + "start": 19523, "length": 20 }, { - "start": 22412, + "start": 20120, "length": 20 } ] @@ -281,15 +281,19 @@ "src/lib/ExecutableQueueHelper.sol": { "ExecutableQueueHelper": [ { - "start": 9387, + "start": 16462, "length": 20 }, { - "start": 21909, + "start": 19394, "length": 20 }, { - "start": 22064, + "start": 19668, + "length": 20 + }, + { + "start": 19835, "length": 20 } ] @@ -297,15 +301,19 @@ "src/lib/SubnetIDHelper.sol": { "SubnetIDHelper": [ { - "start": 2851, + "start": 2822, + "length": 20 + }, + { + "start": 2952, "length": 20 }, { - "start": 6490, + "start": 9893, "length": 20 }, { - "start": 18366, + "start": 13087, "length": 20 } ] @@ -313,13 +321,13 @@ } }, "deployedBytecode": { - "object": "0x60808060405260043610156200001457600080fd5b60003560e01c908163116191b614620005d2575080631163dca5146200055e5780632f7801f414620005185780639836b75f14620004a0578063b67c7b4a14620004435763f9daddd2146200006857600080fd5b34620003e957600319602036820112620003e9576001600160401b0360043511620003e9576101409060043536030112620003e957604460043501356001600160a01b03811690819003620003e9577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03160362000431576040516151516001600160401b03818301908111908311176200041b57806200066f833960208183015260043560040135604219600435360301811215620003e95760043501610140602083850101526101a0828401019060018060401b03620001546004830162000659565b168484016101600152602219906024810135368290038301811215620003e9570160248101926001600160401b03600483013511620003e957600482013560051b36038413620003e95760406101808688010152600482013590526101c084860101929060005b60048201358110620003ee575050506004356024810135858501604001526001600160a01b0390620001f0906044016200062d565b1660608486010152606460043501356001811015620003e957608084860101526084600435013560a0848601015260018060401b036200023560a46004350162000659565b1684840160c001526001600160401b036200025560043560c40162000659565b1684840160e001526001600160401b036200027560043560e40162000659565b166101008486010152610104600435013560ff8116809103620003e9576101208486010152610124600435013590600435360301811215620003e95760043501906024600483013592019260018060401b038311620003e9578236038413620003e957601f83869460209683199461014086828a0189030191890101528186528786013760008682860101520116010301906000f08015620003dd5733600081815260208181526040808320600180845282852080546001600160401b03908116875292855292852080546001600160a01b0319166001600160a01b039890981697881790559490935292905281548082169392918414620003c7576001600160401b03191660019093016001600160401b031692909217909155604051818152602091907f0431ea4d93af299b92f2c606ddcaf4b31cb0013c5ed1fdea837b8a912347c965908390a1604051908152f35b634e487b7160e01b600052601160045260246000fd5b6040513d6000823e3d90fd5b600080fd5b9091936001602080600493838060a01b036200040a8a6200062d565b1681520196019392019050620001bb565b634e487b7160e01b600052604160045260246000fd5b604051633bed049960e01b8152600490fd5b34620003e9576040366003190112620003e95760206200046262000616565b6200046c62000642565b6001600160a01b03918216600090815280845260408082206001600160401b03909316825291845281902054905191168152f35b34620003e9576040366003190112620003e957620004bd62000616565b620004c762000642565b6001600160a01b039182166000908152602081815260408083206001600160401b03909416835292905220541680156200050657602090604051908152f35b60405163609a8af960e01b8152600490fd5b34620003e9576020366003190112620003e9576001600160a01b036200053d62000616565b166000526001602052602060018060401b0360406000205416604051908152f35b34620003e9576020366003190112620003e9576001600160a01b03806200058462000616565b1660005260006020526040600020600160205260018060401b03600019816040600020541601818111620003c757166000526020526040600020541680156200050657602090604051908152f35b34620003e9576000366003190112620003e9577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b600435906001600160a01b0382168203620003e957565b35906001600160a01b0382168203620003e957565b602435906001600160401b0382168203620003e957565b35906001600160401b0382168203620003e95756fe6101c08060405234620008025762005151803803809162000021828562000823565b83396020828281010312620008025781516001600160401b0381116200080257610140818401838501031262000802576040519261014084016001600160401b038111858210176200074257604052808201516001600160401b03811162000802576200009690848301908484010162000871565b8452602082820101516020850152620000b46040838301016200085c565b604085015260608282010151600181101562000802576060850152608082820101516080850152620000eb60a08383010162000847565b60a08501526200010060c08383010162000847565b60c08501526200011560e08383010162000847565b60e0850152610100828201015160ff81168103620008025761010085015280820161012001516001600160401b0381116200080257838201601f82858501010112156200080257818301810151926001600160401b0384116200074257604051946200018c601f8601601f19166020018762000823565b84865283016020858484870101010111620008025760005b848110620007e857868660006020888301015261012082015260ff6101008201511660018060401b0360c08301511690600160005560648111620007d657608052600a811015620007cd57506020600a5b60a0819052600280546001600160401b03199081166001600160401b039384161790915583518051600f805490931690841617909155919091015180519182116200074257680100000000000000008211620007425760209060105483601055808410620007ac575b50016010600052602060002060005b8381106200078e57602085015161018052604085015185906001600160a01b0316156200077c5760408101516001600160a01b0316610140526060810151906001821015620007665761012091610160526080810151670de0b6b3a7640000908181106000146200075e57505b60c05260a08101516001600160401b03908116835260e082015116600a811015620007585750600a5b60e05260a0516001600160401b03908116610100526005805460ff60401b1916680100000000000000001790559101518051909181116200074257601154600181811c9116801562000737575b60208210146200072157601f8111620006c2575b50602091601f821160011462000658579181926000926200064c575b50508160011b916000199060031b1c1916176011555b604051620003a48162000807565b600f546001600160401b031681526040516010805480835260009182527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae67291839160208301915b81811062000629575050620004039250038262000823565b602082015262000447600073__$a0fe38a9a81205afccc10810b09a4d3f45$__926040518093819263aa5106cb60e01b835260406004840152604483019062000940565b3060248301520381855af4908115620005c857600091620005d4575b506020906200048f9260405180809581946390ba52cf60e01b8352866004840152602483019062000940565b03915af4908115620005c8576000916200058d575b506101a090815260018054600160401b600160801b03191690556040516147b391826200099e8339608051828181612554015261468b015260a05182818161194b0152818161281e0152614656015260c0518281816102f301528181611bb80152611f05015260e05182611dec015261010051826129a3015261012051826106d3015261014051828181610261015281816103f001528181611f7c01528181611ff3015281816125ea0152818161269901528181612dc30152818161415c015261427201526101605182611cb50152610180518261296a01525181818161071a01526108cf0152f35b906020823d602011620005bf575b81620005aa6020938362000823565b81010312620005bc57505181620004a4565b80fd5b3d91506200059b565b6040513d6000823e3d90fd5b903d8082843e620005e6818462000823565b82019160208184031262000625578051916001600160401b038311620005bc57506020926200048f94926200061c920162000871565b91509162000463565b5080fd5b84546001600160a01b0316835260019485019486945060209093019201620003eb565b01519050828062000380565b601f19821692601160005260206000209160005b858110620006a9575083600195106200068f575b505050811b0160115562000396565b015160001960f88460031b161c1916905582808062000680565b919260206001819286850151815501940192016200066c565b60116000526200070f907f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68601f840160051c8101916020851062000716575b601f0160051c019062000927565b8262000364565b909150819062000701565b634e487b7160e01b600052602260045260246000fd5b90607f169062000350565b634e487b7160e01b600052604160045260246000fd5b62000303565b9050620002da565b634e487b7160e01b600052602160045260246000fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160a01b0316818301556020909201916001016200026d565b620007c69060106000528484600020918201910162000927565b846200025e565b602090620001f5565b6040516375c3b42760e01b8152600490fd5b8060208092858588010101015182828901015201620001a4565b600080fd5b604081019081106001600160401b038211176200074257604052565b601f909101601f19168101906001600160401b038211908210176200074257604052565b51906001600160401b03821682036200080257565b51906001600160a01b03821682036200080257565b9190916040818403126200080257604051926200088e8462000807565b836200089a8362000847565b81526020838101516001600160401b039491939185821162000802570181601f820112156200080257805194851162000742578460051b9060405195620008e48684018862000823565b86528480870192820101928311620008025784809101915b8383106200090c57505050500152565b819062000919846200085c565b8152019101908490620008fc565b81811062000933575050565b6000815560010162000927565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b8281106200097f575050505090565b83516001600160a01b0316855293810193928101926001016200097056fe60a0806040526004361015610025575b50361561001b57600080fd5b610023612dc1565b005b600090813560e01c90816304fda3d4146129d25750806306c468531461298d57806306fdde03146129525780630f43a6771461293457806310d500e1146128f7578063133f74ea1461284d578063185fde7e14612808578063200d2ed2146127d957806323a357051461279e578063264762041461276557806332e0aa1f1461272d5780633ccfd60b1461265b57806341c0e1b5146125a357806351392fc014612578578063599c7bd11461253a5780635f832dbf1461251c57806366d7bbbc146124b15780636cb2ecee146122825780636cf6970a14611e5457806373f273fc14611e1b5780637d9740f414611dd657806380f7602114611d175780638b0e9f3f14611cf95780638ef3f76114611c9f57806391be4d4114611c7c5780639890374814611bdb5780639e33bd0214611ba0578063a1ada30314611b84578063a7f0b3de14611aa2578063a9fb763c14611a06578063ad81e244146119dd578063b10836ee146107c7578063b7ab4db51461073d578063c18f64aa14610702578063c5ab2241146106bd578063cf3312501461041f578063cfca2824146103da578063d4e25bab146103695763d66d9e190361000f573461036657806003193601126103665760028154146103545760028155610200612f7c565b610208612fff565b338152600b6020526040812054801561034257338252600b60205281604081205561023581600454613042565b600455610241336130e4565b5060055460ff8160401c16600681101561032e576002146102ee575b50817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156102df578180916024604051809481936345f5448560e01b83528860048401525af180156102e3576102cb575b506102c4823361306a565b6001815580f35b6102d490612a85565b6102df5781386102b9565b5080fd5b6040513d84823e3d90fd5b6004547f0000000000000000000000000000000000000000000000000000000000000000111561025d5760ff60401b1916600360401b176005553861025d565b634e487b7160e01b84526021600452602484fd5b604051632ec5b44960e01b8152600490fd5b604051633ee5aeb560e01b8152600490fd5b80fd5b5034610366576020366003190112610366576001906040906001600160a01b03610391612a21565b168152600e602052206103ba60ff825416916103b36040518095819301612d2b565b0383612b1a565b6103d66040519283928352604060208401526040830190612be3565b0390f35b50346103665780600319360112610366576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461036657806003193601126103665760405161043c81612ac9565b60608082528260208093015260085492610455846131f7565b936104636040519586612b1a565b808552601f19610472826131f7565b01825b81811061067d575050815b81811061056d5750506005546040516001600160401b03918216959192916104a782612ac9565b815284810195865260405194808652848601915194604082880152855180935260808088019083818660051b8b0101980195925b8584106104f1578a51881660408b01528989038af35b90919293949597858061055c6001938d607f199082030188528c5190858060a01b03825116815283820151848201528661054c8560408501518b604086015260ff8151168c8601520151604060a085015260c0840190612be3565b9201519087818403910152612be3565b9a01940194019295949391906104db565b61063961057e829794959697612eb6565b9190549161058b84612eb6565b9054600391821b1c6001600160a01b039081168952600b8b52604089205491949190806105b788612eb6565b905490881b1c168a52600e8c5260408a2092816105d389612eb6565b905490891b1c168b52600d8d5260408b2094604051976105f289612aff565b1b1c1685528a850152600161062b6040519261060d84612ac9565b60ff81541684526106246040518094819301612d2b565b0382612b1a565b8a8201526040840152612b3d565b86820152610647828561344a565b52610652818461344a565b506000198114610669576001019493929194610480565b634e487b7160e01b84526011600452602484fd5b9480809794959660405161069081612aff565b87815287838201526106a0613430565b604082015288808201528282880101520190509594939295610475565b50346103665780600319360112610366576040517f00000000000000000000000000000000000000000000000000000000000000006001600160401b03168152602090f35b503461036657806003193601126103665760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b503461036657806003193601126103665760085461075a816131f7565b916107686040519384612b1a565b818352601f19610777836131f7565b013660208501375b81811061079c57604051602080825281906103d690820186612c23565b806107a8600192612eb6565b838060a01b0391549060031b1c166107c0828661344a565b520161077f565b5034610366576003196020368201126102df576001600160401b03600435116102df5760e0906004353603011261036657610800612f7c565b61080e6024600435016131ce565b6001546001600160401b039182169181168211156119cb5760401c6001600160401b03169081811161193a575b505060ff60055460401c16600681101561192657600203611914573381526009602052604081205415610342576108a560206108843661087f6004803501806131e2565b61320e565b604051809381926390ba52cf60e01b835284600484015260248301906132b1565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156102e35782916118e2575b507f0000000000000000000000000000000000000000000000000000000000000000036118d05761090760646004350160043560040161330c565b906040518092638984147560e01b825280602483016020600485015252604482019060448160051b84010193809287915b888484106117975786602081808b038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af49081156102e3578291611778575b5015611766576001600160401b036109896004356024016131ce565b168152600a60205260408120338252600b60205260408220546040516109ae81612aae565b6004803501356001600160401b038111611539576109d390600436918135010161320e565b81526109e3602460043501612a0d565b602082015260043560448101356040830152606401356001600160401b03811161153957366023826004350101121561153957600481813501013590610a28826131f7565b91610a366040519384612b1a565b80835260208301913660248360051b8360043501010111611637576024816004350101925b60248360051b83600435010101841061163b57505050506060820152600435608401356001600160401b03811161153957366023826004350101121561153957600481813501013590610aad826131f7565b91610abb6040519384612b1a565b80835260208301913660248360051b8360043501010111611637576024816004350101925b60248360051b83600435010101841061153d5750505050608082015260043560a481013560a083015260c401356001600160401b03811161153957610b5191610b3260209260043691813501016139c4565b60c0820152604051809381926339aa47fb60e01b835260048301613774565b038173__$1cd67d4dc9e627f0bec7928aa480e7d951$__5af490811561152e5784916114f7575b50610b876024600435016131ce565b600454928593855480885260038701602052604088203360005260205260ff604060002054166114e557610c54928186928a526003890160205260408a20336000526020526040600020600160ff1982541617905560018901610beb838254612e05565b90556004890191818b528260205260408b20848c52602052610c1260408c20918254612e05565b9055808a528160205260408a209160028a019283548c5260205260408b2054918b5260205260408a20838b5260205260408a2054116114dd575b505085614687565b60048110156114c957859190600381036114735750610c7281614646565b156113f8575060019250505b80845260058301602052610cb36020610c99604087206134c9565b604051809381926322ea8d8960e11b835260048301613774565b038173__$1cd67d4dc9e627f0bec7928aa480e7d951$__5af49081156113ed5785916113be575b50610d26575b5015610cf257610cef906140a2565b80f35b5060025460401c6001600160401b0316610d0b81614646565b610d13575080f35b8152600a602052610cef604082206140a2565b83526005820160205260408320610d70610d446004803501806131e2565b6001600160401b03610d55826131ce565b84546001600160401b0319169116178355602081019061330c565b906001600160401b038211610f35576001830190610d8e8383613a2f565b90865260208620865b8381106113a3575050506002820190506001600160401b03610dbd6004356024016131ce565b82546001600160401b0319169116179055600480356044810135600384015582820191610def9160648101910161330c565b90610dfa8284613a77565b918652602086208692805b83851061106857505050505060058101610e2960846004350160043560040161330c565b9190610e358383613bdb565b908652602086208691805b848410610f4957505050505060079060a46004350135600682015501610e7060c460043501600435600401612e84565b906001600160401b038211610f35578190610e9582610e8f8654612a4b565b86612e3f565b8690601f8311600114610ecf578792610ec4575b50508160011b916000199060031b1c19161790555b83610ce0565b013590508680610ea9565b84885260208820925090601f198416885b818110610f1d5750908460019594939210610f03575b505050811b019055610ebe565b0135600019600384901b60f8161c19169055868080610ef6565b91936020600181928787013581550195019201610ee0565b634e487b7160e01b86526041600452602486fd5b610f5381836131e2565b610f8c610f6082806131e2565b6001600160401b03610f71826131ce565b87546001600160401b0319169116178655602081019061330c565b906001600160401b038211611054576001860190610faa8383613a2f565b908c5260208c208c5b8381106110395750505050806020610fcc92019061330c565b906001600160401b038211611025576002850190610fea8383613b98565b908b5260208b208b5b83811061101157505050506003602060019201930193019291610e40565b600190602084359401938184015501610ff3565b634e487b7160e01b8b52604160045260248bfd5b600190602061104785613a63565b9401938184015501610fb3565b634e487b7160e01b8c52604160045260248cfd5b61107281836131e2565b803560be198236030181121561139f5761108e828201806131e2565b6110c761109b82806131e2565b6001600160401b036110ac826131ce565b89546001600160401b0319169116178855602081019061330c565b906001600160401b038211611370578d9060018901906110e78483613a2f565b915260208e208e5b8381106113845750505060028701916001600160a01b03915061111490602001613a63565b82546001600160a01b03191691161790556003850161117461113c84840160208101906131e2565b9161114783806131e2565b906001600160401b03611159836131ce565b82546001600160401b0319169116179055602081019061330c565b906001600160401b038211611370578d9060048901906111948483613a2f565b915260208e208e5b8381106113555750505060058701916001600160a01b0391506111c190602001613a63565b82546001600160a01b0319169116179055818101604081013560068701556007860191906001600160401b03906111fa906060016131ce565b83546001600160401b031916911617825582810160800135916001600160e01b0319831683036113515761123d9261123191613b75565b820160a0810190612e84565b906001600160401b038211611054576112668261125d6008890154612a4b565b60088901612e3f565b8b908c601f84116001146112e05791839291602095946112d5575b50508160011b916000199060031b1c19161760088601555b01359081151582036112d1576020600a916112c5600194600988019060ff801983541691151516179055565b01930194019391610e05565b8980fd5b013590508d80611281565b50600887018d5260208d20918d5b601f1985168110611339575091839160019360209695601f1981161061131f575b505050811b016008860155611299565b0135600019600384901b60f8161c191690558d808061130f565b909260206001819286860135815501940191016112ee565b8c80fd5b600190602061136385613a63565b940193818401550161119c565b634e487b7160e01b8e52604160045260248efd5b600190602061139285613a63565b94019381840155016110ef565b8a80fd5b60019060206113b185613a63565b9401938184015501610d97565b6113e0915060203d6020116113e6575b6113d88183612b1a565b810190612f64565b85610cda565b503d6113ce565b6040513d87823e3d90fd5b73__$b7b8687e33476c74e3b4e0a64c4768a343$__90813b1561146f5760405163199b9ca560e01b8152600260048201526001600160401b039091166024820152908290829060449082905af480156102e357611457575b5050610c7e565b61146090612a85565b61146b578385611450565b8380fd5b8280fd5b90506002915003610c7e578373__$e0f829f5071d7e628aa77eca0c12e35bc2$__803b156102df578160249160405192838092635a27a53960e11b82528960048301525af480156102e357611457575050610c7e565b634e487b7160e01b86526021600452602486fd5b558388610c4c565b6040516337138f5f60e11b8152600490fd5b90506020813d602011611526575b8161151260209383612b1a565b81010312611521575184610b78565b600080fd5b3d9150611505565b6040513d86823e3d90fd5b8480fd5b83356001600160401b0381116112d157826004350101604060231982360301126112d1576040519061156e82612ac9565b60248101356001600160401b03811161163357611591906024369184010161320e565b825260448101356001600160401b038111611633573660438284010112156116335760248183010135906115c4826131f7565b926115d26040519485612b1a565b82845260208401913660448560051b83850101011161162f57604481830101925b60448560051b8385010101841061161f5750505050602080840192909252509082529384019301610ae0565b83358152602093840193016115f3565b8e80fd5b8b80fd5b8780fd5b83356001600160401b0381116112d15782600435010160231991604083833603011261139f576040519061166e82612ac9565b60248301356001600160401b0381116113515760c0908401948536030112611633576040519161169d83612ae4565b60248501356001600160401b038111611762576116c09060243691880101613973565b835260448501356001600160401b038111611762576116e59060243691880101613973565b60208401526064850135604084015261170060848601612a0d565b606084015261171160a4860161340e565b608084015260c48501356001600160401b03811161176257604460209586956117446024998a61175196369201016139c4565b60a0820152845201613423565b838201528152019401939050610a5b565b8d80fd5b604051630bd9169f60e01b8152600490fd5b611791915060203d6020116113e6576113d88183612b1a565b8261096d565b919395509193956043198882030184526117b18784613341565b90813560be198336030181121561146b57604082528201916117d38380613341565b6117ea60c091826040860152610100850190613355565b936117f86020820182613341565b611810603f1996606092888883030184890152613355565b9260809160408401358388015261182f60018060401b03918501612a0d565b169160a0928388015261184b63ffffffff60e01b91850161340e565b1690860152810135601e19823603018112156118cc57018035906001600160401b0382116118cc576020019381360385136118cc5760206118ad8180989660019a86839a849a888b030160e0890152818a52848a013782878901015201613423565b1515910152601f80199101160101970193019301909286949293610938565b8680fd5b6040516375ecc72d60e01b8152600490fd5b90506020813d60201161190c575b816118fd60209383612b1a565b810103126115215751386108cc565b3d91506118f0565b60405163c18316bf60e01b8152600490fd5b634e487b7160e01b82526021600452602482fd5b036001600160401b0381116119b7577f00000000000000000000000000000000000000000000000000000000000000006001600160401b031680156119a3576001600160401b03918216061661199157388061083b565b60405163b4f68f9760e01b8152600490fd5b634e487b7160e01b83526012600452602483fd5b634e487b7160e01b82526011600452602482fd5b604051631f30cc6360e21b8152600490fd5b50346103665780600319360112610366576001546040516001600160401b039091168152602090f35b5034610366576020806003193601126102df5760043590611a25612dc1565b600854918215611a9057828110611a7e5782900490835b838110611a47578480f35b80611a53600192612eb6565b838060a01b0391549060031b1c168652600c835260408620611a76858254612e05565b905501611a3c565b604051633074cabf60e11b8152600490fd5b60405163efa9c8f160e01b8152600490fd5b5034610366578060031936011261036657604051600090601154611ac581612a4b565b808352600191808316908115611b5c5750600114611b02575b6103d683611aee81870382612b1a565b604051918291602083526020830190612be3565b6011600090815260209450917f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c685b828410611b4957505050810190910190611aee81611ade565b8054858501870152928501928101611b30565b6103d69550611aee93506020915091849260ff191682840152151560051b8201019350611ade565b50346103665780600319360112610366576020604051600a8152f35b503461036657806003193601126103665760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b503461036657602036600319011261036657611c5f906001600160401b03906103d69060409083611c0a6129f7565b1681526007602052206007611c1e82612cf6565b93600283015416916003810154611c4b600683015492611c446040518096819301612d2b565b0384612b1a565b60405196879660a0885260a0880190612c60565b936020870152604086015260608501528382036080850152612be3565b50346103665780600319360112610366576020604051670de0b6b3a76400008152f35b50346103665780600319360112610366576040517f00000000000000000000000000000000000000000000000000000000000000006001811015611ce557602092508152f35b634e487b7160e01b83526021600452602483fd5b50346103665780600319360112610366576020600454604051908152f35b5034610366578060031936011261036657611d30613430565b50604051611d3d81612ac9565b600f546001600160401b03168152604051601080548083526000918252602092917f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae67291839185830191905b86828210611db757505050611d9f92500382612b1a565b818301526103d6604051928284938452830190612c60565b85546001600160a01b0316845260019586019587955093019201611d88565b50346103665780600319360112610366576040517f00000000000000000000000000000000000000000000000000000000000000006001600160401b03168152602090f35b5034610366576020366003190112610366576020906040906001600160a01b03611e43612a21565b168152600c83522054604051908152f35b5060031990604036830112610366576001600160401b039160043583811161146f573660238201121561146f5780600401359184831161146b57602494368685850101116115395785359281841161227e5760408460040193853603011261227e57611ebe612f7c565b611ec6612fff565b341561226c57338652602090600b825260408720611ee5348254612e05565b9055611ef334600454612e05565b600455338752600b82526040872054957f000000000000000000000000000000000000000000000000000000000000000080971015612087575b50505050505060055460ff8160401c1660068110156120735783945060018114600014611fe257505060045490811015611f67575b505080f35b6005805460ff60401b1916600160411b1790557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b15611fde578290600460405180948193630354740160e31b83525af180156102e35715611f62575b611fd790612a85565b6103665780f35b5050fd5b60039193501461204d575b508190507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561204a5781600491604051928380926316989f6f60e21b825234905af180156102e357611fce57505080f35b50fd5b600454101561205d575b80611fed565b60ff60401b1916600160411b1760055538612057565b5050634e487b7160e01b8252506021600452fd5b3360005260098352604060002054611f2d576120a233612ee7565b50338852600d8352808960408a20936120c5836120bf8754612a4b565b87612e3f565b8a90601f84116001146121ff578b936121f2575b5050508160011b916000199060031b1c19161790555b338652600e81526040862092803560ff811680910361163757845460ff19161784556001938401946121249190890190612e84565b9283116121df57612139836120bf8754612a4b565b8691601f841160011461217c57509282939183928894612171575b50501b916000199060031b1c19161790555b388080808080611f2d565b013592503880612154565b9183601f198116878a52848a20948a905b888383106121c557505050106121ab575b505050811b019055612166565b0135600019600384901b60f8161c1916905538808061219e565b86860135885590960195938401938793509081019061218d565b634e487b7160e01b875260416004528787fd5b01013590508938806120d9565b858c52868c20601f19851695509250908c908c5b888782106122515750508460019610612235575b50505050811b0190556120ef565b60001960f88660031b161c199201013516905538808b81612227565b8483019093013585556001909401938e929182019101612213565b604051635a78c58160e11b8152600490fd5b8580fd5b5034610366576020366003190112610366576122a461229f6129f7565b613688565b9160405192839215158352604060208401526122cd815160e06040860152610120850190612c60565b9160018060401b03602083015116606085015260408201516080850152606082015192603f198582030160a0860152835180825260208201916020808360051b83010196019284915b8383106123fa575050505050608082015192603f198582030160c0860152835190818152602081016020808460051b84010196019380925b84841061237c5788806103d68a60c08b60a081015160e08601520151603f1984830301610100850152612be3565b919395969092949750601f19828203018452875160206123a58251604085526040850190612c60565b910151828203602093840152805180835291830192019084905b8082106123e257505050602080600192990194019401918897969593949161234e565b909192602080600192865181520194019201906123bf565b919395966001919395985060208091601f19858203018652885190828061249484516040855260a081519161245461243f60c0948560408b01526101008a0190612c87565b82870151898203603f190160608b0152612c87565b92604082015160808901528b8060401b036060830151168389015263ffffffff60e01b608083015116908801520151603f198683030160e0870152612be3565b930151151591015297019301930190928897949293969596612316565b5034610366576040366003190112610366576124cb6129f7565b6024356001600160a01b038116929083900361152157604091600180841b03168152600a602052600382822080548352016020522090600052602052602060ff604060002054166040519015158152f35b50346103665780600319360112610366576020600654604051908152f35b5034610366578060031936011261036657602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346103665780600319360112610366576001546040805191901c6001600160401b03168152602090f35b50346103665780600319360112610366576125bc612f7c565b6125c4612fff565b60085415801590612650575b61263e576005805460ff60401b1916600560401b179055807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561204a578180916004604051809481936341c0e1b560e01b83525af180156102e357611fce5750f35b604051636b62255160e11b8152600490fd5b5060045415156125d0565b5034610366578060031936011261036657612674612f7c565b338152600c6020526040812054801561271b57338252600c60205260408220829055817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156102df578190602460405180948193631f0e077760e31b83528760048401525af18015612710576126fb575b50610cef903361306a565b91612709610cef9293612a85565b91906126f0565b6040513d85823e3d90fd5b6040516367300f9160e11b8152600490fd5b503461036657602036600319011261036657602061274c600435612eb6565b905460405160039290921b1c6001600160a01b03168152f35b5034610366576020366003190112610366576020906040906001600160a01b0361278d612a21565b168152600b83522054604051908152f35b5034610366576020366003190112610366576103d690611aee906040906001600160a01b036127cb612a21565b168152600d60205220612b3d565b503461036657806003193601126103665760ff60055460401c16604051906006811015611ce557602092508152f35b50346103665780600319360112610366576040517f00000000000000000000000000000000000000000000000000000000000000006001600160401b03168152602090f35b5034610366576020806003193601126102df5761288c8161286f61229f6129f7565b604094919451809481926339aa47fb60e01b835260048301613774565b038173__$1cd67d4dc9e627f0bec7928aa480e7d951$__5af491821561152e5784926128c4575b506040809450519215158352820152f35b9080925081813d83116128f0575b6128dc8183612b1a565b8101031261146b57604093505190386128b3565b503d6128d2565b503461036657806003193601126103665760606002546040519060018060401b03908181168352818160401c16602084015260801c166040820152f35b50346103665780600319360112610366576020600854604051908152f35b503461036657806003193601126103665760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b50346103665780600319360112610366576040517f00000000000000000000000000000000000000000000000000000000000000006001600160401b03168152602090f35b9050346102df57816003193601126102df576005546001600160401b03168152602090f35b600435906001600160401b038216820361152157565b35906001600160401b038216820361152157565b600435906001600160a01b038216820361152157565b35906001600160a01b038216820361152157565b90600182811c92168015612a7b575b6020831014612a6557565b634e487b7160e01b600052602260045260246000fd5b91607f1691612a5a565b6001600160401b038111612a9857604052565b634e487b7160e01b600052604160045260246000fd5b60e081019081106001600160401b03821117612a9857604052565b604081019081106001600160401b03821117612a9857604052565b60c081019081106001600160401b03821117612a9857604052565b608081019081106001600160401b03821117612a9857604052565b601f909101601f19168101906001600160401b03821190821017612a9857604052565b9060405191826000825492612b5184612a4b565b908184526001948581169081600014612bc05750600114612b7d575b5050612b7b92500383612b1a565b565b9093915060005260209081600020936000915b818310612ba8575050612b7b93508201013880612b6d565b85548884018501529485019487945091830191612b90565b915050612b7b94506020925060ff191682840152151560051b8201013880612b6d565b919082519283825260005b848110612c0f575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201612bee565b90815180825260208080930193019160005b828110612c43575050505090565b83516001600160a01b031685529381019392810192600101612c35565b9060406020612c8493600180841b0381511684520151918160208201520190612c23565b90565b906020612c9d8351604084526040840190612c60565b928101516001600160a01b031691015290565b90815480825260208092019260005281600020916000905b828210612cd6575050505090565b83546001600160a01b031685529384019360019384019390910190612cc8565b9060016020604051612d0781612ac9565b612d278195848060401b038154168352611c446040518096819301612cb0565b0152565b9060009291805491612d3c83612a4b565b918282526001938481169081600014612d9e5750600114612d5e575b50505050565b90919394506000526020928360002092846000945b838610612d8a575050505001019038808080612d58565b805485870183015294019385908201612d73565b9294505050602093945060ff191683830152151560051b01019038808080612d58565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303612df357565b60405163e7e601db60e01b8152600490fd5b91908201809211612e1257565b634e487b7160e01b600052601160045260246000fd5b818110612e33575050565b60008155600101612e28565b9190601f8111612e4e57505050565b612b7b926000526020600020906020601f840160051c83019310612e7a575b601f0160051c0190612e28565b9091508190612e6d565b903590601e198136030182121561152157018035906001600160401b0382116115215760200191813603831361152157565b600854811015612ed157600860005260206000200190600090565b634e487b7160e01b600052603260045260246000fd5b600081815260096020526040812054612f5f57600854600160401b811015612f4b579082612f37612f2084600160409601600855612eb6565b819391549060031b91821b91600019901b19161790565b905560085492815260096020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b90816020910312611521575180151581036115215790565b604051630972932760e21b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115612ff357600091612fd5575b5015612fc357565b60405163b7150de560e01b8152600490fd5b612fed915060203d81116113e6576113d88183612b1a565b38612fbb565b6040513d6000823e3d90fd5b60ff60055460401c16600681101561302c5760051461301a57565b60405163248c8efb60e11b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b91908203918211612e1257565b6001600160401b038111612a9857601f01601f191660200190565b8147106130cc576000918291829182916001600160a01b03165af13d156130c7573d6130958161304f565b906130a36040519283612b1a565b8152600060203d92013e5b156130b557565b604051630a12f52160e11b8152600490fd5b6130ae565b60405163cd78605960e01b8152306004820152602490fd5b60008181526009602052604081205490919080156131c957600019908082018181116131b557600854908382019182116131a15780820361316d575b50505060085480156131595781019061313882612eb6565b909182549160031b1b19169055600855815260096020526040812055600190565b634e487b7160e01b84526031600452602484fd5b61318b61317c612f2093612eb6565b90549060031b1c928392612eb6565b9055845260096020526040842055388080613120565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b356001600160401b03811681036115215790565b903590603e1981360301821215611521570190565b6001600160401b038111612a985760051b60200190565b9190604083820312611521576040519261322784612ac9565b8361323182612a0d565b815260209180830135906001600160401b03821161152157019280601f85011215611521578335613261816131f7565b9461326f6040519687612b1a565b818652848087019260051b8201019283116115215784809101915b83831061329957505050500152565b81906132a484612a37565b815201910190849061328a565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b8281106132ef575050505090565b83516001600160a01b0316855293810193928101926001016132e1565b903590601e198136030182121561152157018035906001600160401b03821161152157602001918160051b3603831361152157565b9035603e1982360301811215611521570190565b906133608280613341565b604082526001600160401b0392608083018461337b84612a0d565b16604085015260209283810135601e19823603018112156115215701908382359201958211611521578160051b36038613611521578190604060608701525260a08401949060005b8181106133e957506001600160a01b03926133e2925084019050612a37565b1691015290565b9091958480600192838060a01b036134008b612a37565b1681520197019291016133c3565b35906001600160e01b03198216820361152157565b3590811515820361152157565b6040519061343d82612ac9565b6060602083600081520152565b8051821015612ed15760209160051b010190565b9060405161346b81612ac9565b6020819361347881612cf6565b8352600201546001600160a01b0316910152565b90815480825260208092019260005281600020916000905b8282106134b2575050505090565b8354855293840193600193840193909101906134a4565b906040918251906134d982612aae565b81936134e482612cf6565b835260018060401b0360029080828501541660209081870152600390818601548588015260048601928354613518816131f7565b9161352588519384612b1a565b818352600095865283862086918585015b8484106135e957505050505060608801526005860190815493613558856131f7565b9561356588519788612b1a565b85875282870193825282822091935b8685106135aa575050505050505060c092611c448593612d279360806007980152600683015460a0860152518096819301612d2b565b85846001928b516135ba81612ac9565b6135c387612cf6565b81528c516135d781610624818a8c0161348c565b83820152815201930194019391613574565b600a876001928d8b6008829e9c9e519261360284612ac9565b61362381519361361185612ae4565b61361a8c61345e565b85528b0161345e565b8684015260068a0154818401526136648a6103b36007820154938c8516606088015260a09463ffffffff60e01b90861b166080880152518095819301612d2b565b820152815260ff600988015416151583820152815201930193019291979597613536565b6040519061369582612aae565b61369d613430565b8252600090606060c0602094848682015284604082015282808201528260808201528460a0820152015260018060401b03168152600782526137096136e4604083206134c9565b9280845160405180948192630c133d1360e31b835284600484015260248301906132b1565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49283156137525792613735575b50501591565b61374b9250803d106113e6576113d88183612b1a565b388061372f565b604051903d90823e3d90fd5b906020612c9d83516040845260408401906132b1565b919060209081845280519360e08382015261379561010095868301906132b1565b9160018060401b0380858301511690604091828501528183015197606098898601528884015198601f19966080938888830301858901528b51928383528a8301948b808660051b8601019e016080526000935b8585106138c3575050505050505082015194848489030160a08501528551908189528089019281808460051b8c01019801936000915b84831061384e57505050505050612c8494955060c08160a060e09301518285015201519282850301910152612be3565b90919289898d8397989c030184528a51826138708251868552868501906132b1565b91015191838183039101528280835192838152019201906000905b8082106138aa5750505090806001929b0193019301919493929061381e565b919380600192948651815201940192018793929161388b565b9091929394959d8c8f82828f6139558e8a8f8d9786958c60019c030190528b8360805151996139048b5193838c528451908c60c095869101528c019061375e565b88840151603f198c83038101888e0152969161391f9161375e565b96840151858c0152830151169260a093848b015263ffffffff60e01b9083015116908901520151908683030160e0870152612be3565b930151151591015260808051830190529f01969501939291906137e8565b919091604081840312611521576040519061398d82612ac9565b90928391908135906001600160401b03821161152157826139b7602094926139bf9486940161320e565b855201612a37565b910152565b81601f82011215611521578035906139db8261304f565b926139e96040519485612b1a565b8284526020838301011161152157816000926020809301838601378301015290565b80546000825580613a1a575050565b612b7b91600052602060002090810190612e28565b90600160401b8111612a9857815490808355818110613a4d57505050565b612b7b9260005260206000209182019101612e28565b356001600160a01b03811681036115215790565b600160401b8211612a9857805490828155818310613a9457505050565b600a928284029284840403612e12578084029084820403612e1257600091825260209081832093840193015b838110613ace575050505050565b8083869255836001613ae1818401613a0b565b816002840155816003840155613af960048401613a0b565b60059082828501558260068501558260078501556008840190613b1c8254612a4b565b9081613b32575b50505050600982015501613ac0565b8490601f94858411600114613b5357505050509050555b8338808080613b23565b8493958395613b6e94528a86209601901c8501908501612e28565b5555613b49565b805463ffffffff60401b191660a09290921c63ffffffff60401b16919091179055565b600160401b8211612a9857805491808255828110613bb557505050565b60009182526020822092830192015b828110613bd057505050565b818155600101613bc4565b600160401b8211612a9857805490828155818310613bf857505050565b6003928284029284840403612e12578084029084820403612e1257600091825260209081832093840193015b838110613c32575050505050565b80838692556001613c44818301613a0b565b6002820180549086815581613c5d575b50505001613c24565b8652848620908101905b81811015613c54578681558894508201613c67565b818114613ce5578154916001600160401b038311612a9857613c9e8383613a2f565b60005260206000209060005260206000208154916000925b848410613cc4575050505050565b600191820180546001600160a01b0390921684860155939091019290613cb6565b5050565b90808214613ce557613cfb8154612a4b565b906001600160401b038211612a98578190613d1a82610e8f8654612a4b565b600090601f8311600114613d5157600092613d46575b50508160011b916000199060031b1c1916179055565b015490503880613d30565b81526020808220858352818320935090601f1985169083905b828210613da4575050908460019594939210613d8b575b505050811b019055565b015460001960f88460031b161c19169055388080613d81565b8495819295850154815560018091019601940190613d6a565b818114613ce557815491613dd18383613a77565b6000526020600020906000526020600020906000905b838210613df45750505050565b8060019184141580613e12575b50600a809101930191019091613de7565b80613e3f575b50613e39600960ff81840154169086019060ff801983541691151516179055565b38613e01565b80613f0a575b5060038085019082018082141580613eb0575b50505060068082015490850155613e9a6007808601908301848060401b03815416858060401b031983541617825563ffffffff60e01b905460a01b1690613b75565b613eaa6008808301908601613ce9565b38613e18565b613edd575b5050600580850190838060a01b039083015416838060a01b0319825416179055388080613e58565b838060401b03905416838060401b0319825416179055613f036004808301908601613c7c565b3880613eb5565b613f33575b600280850190838060a01b039083015416838060a01b031982541617905538613e45565b818060401b03815416828060401b0319855416178455613f5882808301908601613c7c565b613f0f565b818114613ce5578154916001600160401b038311612a9857613f7f8383613b98565b60005260206000209060005260206000208154916000925b848410613fa5575050505050565b6001809192019384549281850155019290613f97565b818114613ce557815491613fcf8383613bdb565b6000526020600020906000526020600020906000905b838210613ff25750505050565b8060019184141580614010575b506003809101930191019091613fe5565b61402b575b6140256002808301908601613f5d565b38613fff565b818060401b03815416828060401b031985541617845561405082808301908601613c7c565b614015565b80546001600160401b03168252604060208301819052612c84920190600101612cb0565b9060408152602061408d6040830184614055565b6002909301546001600160a01b031691015290565b6002810154906000918252600581016020526040822060065491600682019283540361449357506002810180549091906140e4906001600160401b0316614548565b81546001600160401b031684526007602052604084208181141590816143f0575b505061412f6020614115836134c9565b604051809381926339aa47fb60e01b835260048301613774565b038173__$1cd67d4dc9e627f0bec7928aa480e7d951$__5af49081156113ed5785916143be575b506006557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163b1561146b57604051635926519560e01b81526020600482015260e06024820152928492849290916141ba610104850183614055565b92546001600160401b03166044850152600382015460648501528383036023190160848501526004820180548085529086526020808720600583901b86018201959092918891908101905b83831061430c57505050505060058201926023198582030160a48601528354808252602082019160208260051b820101958852602088209288915b8383106142bb575050925460c48701525050508282036023190160e4840152829161426d91600701612d2b565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af180156102e3576142aa575050565b6142b48291612a85565b6103665750565b929597509297509294602060036142f9600193601f19868203018752604081526142e8604082018d614055565b908481830391015260028c0161348c565b9901930193018997959389979592614240565b9295975092975092946020600a89600193601f19868203018752604081528360ff60096143a260c0806040870152614348610100870188614079565b614362603f1991828982030160608a015260038a01614079565b9160068901546080890152600789015460a0908d8060401b038116828b015263ffffffff60e01b911b16908801528682030160e087015260088701612d2b565b9401541615159101529901930193018997959389979592614205565b90506020813d6020116143e8575b816143d960209383612b1a565b81010312611521575138614156565b3d91506143cc565b61445a91614461575b83546002820180546001600160401b0319166001600160401b0392909216919091179055600383810154908201556144376004808501908301613dbd565b6144476005840160058301613fbb565b8454600682015560078084019101613ce9565b3880614105565b825481546001600160401b0319166001600160401b039190911617815561448e6001848101908301613c7c565b6143f9565b9092915073__$e0f829f5071d7e628aa77eca0c12e35bc2$__90813b1561146f578290602460405180948193635a27a53960e11b835260048301525af480156102e357614539575b5060029091015473__$b7b8687e33476c74e3b4e0a64c4768a343$__906001600160401b0316813b1561146f5782906044604051809481936394ecccfd60e01b83526002600484015260248301525af480156102e3576142aa575050565b61454290612a85565b386144db565b61455181614646565b1561464357604051634953836d60e11b8152600260048201526001600160401b03918216602482018190529173__$b7b8687e33476c74e3b4e0a64c4768a343$__9190602082604481865af48015612ff3578492600091614625575b50614612575b5050803b15611521576000604491604051928380926394ecccfd60e01b8252600260048301528660248301525af48015612ff357614603575b50600180546001600160401b031916919091179055565b61460c90612a85565b386145ec565b60025460401c1603613ce55781386145b3565b61463d915060203d81116113e6576113d88183612b1a565b386145ad565b50565b6001546001600160401b039081167f0000000000000000000000000000000000000000000000000000000000000000821601818111612e1257811691161490565b60ff7f000000000000000000000000000000000000000000000000000000000000000016808302908382041483151715612e12576064900460405191637d2ef4e560e11b835280600484015260208360248173__$e0f829f5071d7e628aa77eca0c12e35bc2$__5af4928315612ff357600093614749575b5060010154908082111561474057808311614737576147279261472191613042565b92613042565b111561473257600190565b600290565b50505050600390565b50505050600090565b90926020823d8211614775575b8161476360209383612b1a565b810103126103665750519160016146ff565b3d915061475656fea2646970667358221220acd1b89ac3b99a4890d0e7b2ea9774cdf998f538a4518f928eb323427aecced564736f6c63430008130033a2646970667358221220a036dc995c174e67e27b395cc185adf0b6c39448f6bef51799b03bf05bd0972064736f6c63430008130033", - "sourceMap": "216:1960:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;216:1960:27;;;;;;;-1:-1:-1;;;;;216:1960:27;;;;;;;;;;;;;;;1215:21;216:1960;;1215:21;216:1960;-1:-1:-1;;;;;216:1960:27;;;;;;;;1240:7;-1:-1:-1;;;;;216:1960:27;1215:32;1211:84;;216:1960;;1326:23;-1:-1:-1;;;;;1326:23:27;;;;;;;;-1:-1:-1;1326:23:27;;;;;;;216:1960;1326:23;;;216:1960;;;;;;;;;;;;;;;;;;;;;;;1326:23;;;216:1960;;;1326:23;;;216:1960;;;;;;;;;;;;:::i;:::-;;1326:23;;;216:1960;;;-1:-1:-1;;216:1960:27;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;216:1960:27;;;;;;;;;;;;;;;;;;;;;1326:23;;;216:1960;;;;;;;;;1326:23;;;216:1960;;;;;;;;;;;;;-1:-1:-1;;;216:1960:27;;;;;;1326:23;;;216:1960;;;-1:-1:-1;;;;;216:1960:27;;;1215:21;;216:1960;:::i;:::-;;;1326:23;;;216:1960;;;;;;;;;;;;;;1326:23;;;216:1960;;;;;;;;1326:23;;;216:1960;;;;;;;;;;;;;:::i;:::-;;1326:23;;;216:1960;;;-1:-1:-1;;;;;216:1960:27;;;;;;:::i;:::-;;1326:23;;;216:1960;;;-1:-1:-1;;;;;216:1960:27;;;;;;:::i;:::-;;;1326:23;;;216:1960;;;;;;;;;;;;;;;;1326:23;;;216:1960;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1326:23;216:1960;1326:23;;;;216:1960;;;1326:23;;;216:1960;;;;;;;;;;;;;;;;;;;1326:23;;;216:1960;1326:23;;;;;1369:10;216:1960;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;216:1960:27;;;;;;;;;;;;;-1:-1:-1;;;;;;216:1960:27;-1:-1:-1;;;;;216:1960:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;216:1960:27;;;;;-1:-1:-1;;;;;216:1960:27;;;;;;;;;;;;;;;;1467:26;;216:1960;;1467:26;216:1960;;;;;;;;;;;;;;;;;;1326:23;216:1960;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;216:1960:27;;1326:23;216:1960;;;;;;;;;;;1211:84;216:1960;;-1:-1:-1;;;1270:14:27;;216:1960;;1270:14;216:1960;;;;;;-1:-1:-1;;216:1960:27;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;216:1960:27;;;;;;;;;;;;;;-1:-1:-1;;;;;216:1960:27;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;216:1960:27;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;216:1960:27;;;;;;;;;;;;;;;-1:-1:-1;;;;;216:1960:27;;;;;;;;;;;2094:20;;2090:78;;216:1960;;;;;;;;2090:78;216:1960;;-1:-1:-1;;;2137:20:27;;216:1960;;2137:20;216:1960;;;;;;-1:-1:-1;;216:1960:27;;;;-1:-1:-1;;;;;216:1960:27;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;216:1960:27;;;;-1:-1:-1;;;;;216:1960:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1750:20;;1746:78;;216:1960;;;;;;;;;;;;;;-1:-1:-1;;216:1960:27;;;;701:32;-1:-1:-1;;;;;216:1960:27;;;;;;;;;;-1:-1:-1;;;;;216:1960:27;;;;;;:::o;:::-;;;-1:-1:-1;;;;;216:1960:27;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;216:1960:27;;;;;;:::o;:::-;;;-1:-1:-1;;;;;216:1960:27;;;;;;:::o", + "object": "0x60806040523480156200001157600080fd5b50600436106200006a5760003560e01c8063116191b6146200006f5780631163dca514620000b45780632f7801f414620000cb5780639836b75f1462000110578063b67c7b4a1462000127578063f9daddd2146200015b575b600080fd5b620000977f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b62000097620000c5366004620003df565b62000172565b620000f7620000dc366004620003df565b6001602052600090815260409020546001600160401b031681565b6040516001600160401b039091168152602001620000ab565b62000097620001213660046200041c565b620001f7565b62000097620001383660046200041c565b60006020818152928152604080822090935290815220546001600160a01b031681565b620000976200016c36600462000454565b62000249565b6001600160a01b0381166000908152602081815260408083206001928390529083205490918391620001ae91906001600160401b0316620004a8565b6001600160401b031681526020810191909152604001600020546001600160a01b0316905080620001f25760405163609a8af960e01b815260040160405180910390fd5b919050565b6001600160a01b038083166000908152602081815260408083206001600160401b03861684529091529020541680620002435760405163609a8af960e01b815260040160405180910390fd5b92915050565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016620002876060840160408501620003df565b6001600160a01b031614620002af57604051633bed049960e01b815260040160405180910390fd5b81604051620002be90620003b9565b620002ca919062000662565b604051809103906000f080158015620002e7573d6000803e3d6000fd5b5033600081815260208181526040808320600180845282852080546001600160401b03908116875292855292852080546001600160a01b0319166001600160a01b03891617905594845293909152805493945092909162000349911662000798565b91906101000a8154816001600160401b0302191690836001600160401b031602179055507f0431ea4d93af299b92f2c606ddcaf4b31cb0013c5ed1fdea837b8a912347c96581604051620003ac91906001600160a01b0391909116815260200190565b60405180910390a1919050565b616fbc80620007c283390190565b80356001600160a01b0381168114620001f257600080fd5b600060208284031215620003f257600080fd5b620003fd82620003c7565b9392505050565b80356001600160401b0381168114620001f257600080fd5b600080604083850312156200043057600080fd5b6200043b83620003c7565b91506200044b6020840162000404565b90509250929050565b6000602082840312156200046757600080fd5b81356001600160401b038111156200047e57600080fd5b82016101408185031215620003fd57600080fd5b634e487b7160e01b600052601160045260246000fd5b6001600160401b03828116828216039080821115620004cb57620004cb62000492565b5092915050565b60008235603e19833603018112620004e957600080fd5b90910192915050565b6000604083016001600160401b03806200050c8562000404565b168552602080850135601e198636030181126200052857600080fd5b85018181019035838111156200053d57600080fd5b8060051b36038213156200055057600080fd5b60408884015293849052926060870192506000905b8082101562000599576001600160a01b036200058186620003c7565b16845293820193928201926001919091019062000565565b50919695505050505050565b803560018110620001f257600080fd5b60018110620005d457634e487b7160e01b600052602160045260246000fd5b9052565b803560ff81168114620001f257600080fd5b6000808335601e198436030181126200060257600080fd5b83016020810192503590506001600160401b038111156200062257600080fd5b8036038213156200063257600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000620006748384620004d2565b6101408060208501526200068d610160850183620004f2565b915060208501356040850152620006a760408601620003c7565b6001600160a01b038116606086015250620006c560608601620005a5565b620006d46080860182620005b5565b50608085013560a0850152620006ed60a0860162000404565b6001600160401b03811660c0860152506200070b60c0860162000404565b6001600160401b03811660e0860152506200072960e0860162000404565b61010062000741818701836001600160401b03169052565b6200074e818801620005d8565b915050610120620007638187018360ff169052565b6200077181880188620005ea565b878603601f190185890152925090506200078d84838362000639565b979650505050505050565b60006001600160401b03808316818103620007b757620007b762000492565b600101939250505056fe6101c06040523480156200001257600080fd5b5060405162006fbc38038062006fbc833981016040819052620000359162000682565b61010081015160c08201516001600055606460ff831611156200006b576040516375c3b42760e01b815260040160405180910390fd5b60ff8216608052600a6001600160401b038216106200008b57806200008e565b600a5b6001600160401b0390811660a0819052600280546001600160401b0319908116909217905584518051600f80549190941692169190911782556020808201518051929550929350620000e692601092910190620003a9565b50505060208101516101805260408101516001600160a01b03166200011e57604051638b3ddc3360e01b815260040160405180910390fd5b60408101516001600160a01b03166101405260608101518015620001465762000146620007a9565b6101608180156200015b576200015b620007a9565b81525050670de0b6b3a76400008160800151106200017e57806080015162000188565b670de0b6b3a76400005b60c05260a08101516001600160401b039081166101205260e0820151600a911610620001b9578060e00151620001bc565b600a5b6001600160401b0390811660e05260a05116610100526005805460ff60401b191668050000000000000000179055610120810151601190620001ff90826200084e565b50604080518082018252600f80546001600160401b031682526010805484516020828102820181019096528181529394929383860193909291908301828280156200027457602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831162000255575b50505091909252505060405163aa5106cb60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263aa5106cb9250620002b791309060040162000983565b600060405180830381865af4158015620002d5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620002ff9190810190620009af565b6040516390ba52cf60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__916390ba52cf91620003379190600401620009ef565b602060405180830381865af415801562000355573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037b919062000a0b565b6101a0525060018054600160401b600160801b0319169055600580546001600160401b031916905562000a25565b82805482825590600052602060002090810192821562000401579160200282015b828111156200040157825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190620003ca565b506200040f92915062000413565b5090565b5b808211156200040f576000815560010162000414565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156200046557620004656200042a565b60405290565b60405161014081016001600160401b03811182821017156200046557620004656200042a565b604051601f8201601f191681016001600160401b0381118282101715620004bc57620004bc6200042a565b604052919050565b80516001600160401b0381168114620004dc57600080fd5b919050565b80516001600160a01b0381168114620004dc57600080fd5b6000604082840312156200050c57600080fd5b6200051662000440565b90506200052382620004c4565b81526020828101516001600160401b03808211156200054157600080fd5b818501915085601f8301126200055657600080fd5b8151818111156200056b576200056b6200042a565b8060051b91506200057e84830162000491565b81815291830184019184810190888411156200059957600080fd5b938501935b83851015620005c257620005b285620004e1565b825293850193908501906200059e565b808688015250505050505092915050565b805160018110620004dc57600080fd5b805160ff81168114620004dc57600080fd5b600082601f8301126200060757600080fd5b81516001600160401b038111156200062357620006236200042a565b602062000639601f8301601f1916820162000491565b82815285828487010111156200064e57600080fd5b60005b838110156200066e57858101830151828201840152820162000651565b506000928101909101919091529392505050565b6000602082840312156200069557600080fd5b81516001600160401b0380821115620006ad57600080fd5b908301906101408286031215620006c357600080fd5b620006cd6200046b565b825182811115620006dd57600080fd5b620006eb87828601620004f9565b825250602083015160208201526200070660408401620004e1565b60408201526200071960608401620005d3565b6060820152608083015160808201526200073660a08401620004c4565b60a08201526200074960c08401620004c4565b60c08201526200075c60e08401620004c4565b60e082015261010062000771818501620005e3565b9082015261012083810151838111156200078a57600080fd5b6200079888828701620005f5565b918301919091525095945050505050565b634e487b7160e01b600052602160045260246000fd5b600181811c90821680620007d457607f821691505b602082108103620007f557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200084957600081815260208120601f850160051c81016020861015620008245750805b601f850160051c820191505b81811015620008455782815560010162000830565b5050505b505050565b81516001600160401b038111156200086a576200086a6200042a565b62000882816200087b8454620007bf565b84620007fb565b602080601f831160018114620008ba5760008415620008a15750858301515b600019600386901b1c1916600185901b17855562000845565b600085815260208120601f198616915b82811015620008eb57888601518255948401946001909101908401620008ca565b50858210156200090a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80516001600160401b03168252602080820151604082850181905281519085018190526000929182019190839060608701905b80831015620009785784516001600160a01b031682529383019360019290920191908301906200094d565b509695505050505050565b6040815260006200099860408301856200091a565b905060018060a01b03831660208301529392505050565b600060208284031215620009c257600080fd5b81516001600160401b03811115620009d957600080fd5b620009e784828501620004f9565b949350505050565b60208152600062000a0460208301846200091a565b9392505050565b60006020828403121562000a1e57600080fd5b5051919050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516164b262000b0a600039600081816107ed0152611f5a015260006102cb0152600061069f0152600081816108770152818161090701528181610b0701528181610bd50152818161151a015281816115f801528181611e5501526134ed01526000610821015260006102970152600061063301526000818161072d01528181611427015281816114d7015281816115bb0152611dfe0152600081816103b9015281816123ef0152613a730152600081816104fc0152613ac801526164b26000f3fe6080604052600436106102345760003560e01c806373f273fc1161012e578063a9fb763c116100ab578063cf3312501161006f578063cf33125014610843578063cfca282414610865578063d4e25bab14610899578063d66d9e19146108c7578063f6fd8381146108dc57600080fd5b8063a9fb763c14610779578063ad81e24414610799578063b7ab4db5146107b9578063c18f64aa146107db578063c5ab22411461080f57600080fd5b806391be4d41116100f257806391be4d41146106ce57806398903748146106ea5780639e33bd021461071b578063a1ada3031461074f578063a7f0b3de1461076457600080fd5b806373f273fc146105f45780637d9740f41461062157806380f76021146106555780638b0e9f3f146106775780638ef3f7611461068d57600080fd5b806326476204116101bc578063599c7bd111610180578063599c7bd1146104ea5780635f832dbf1461053057806366d7bbbc146105465780636cb2ecee146105b35780636cf6970a146105e157600080fd5b8063264762041461043657806332e0aa1f146104635780633ccfd60b1461049b57806341c0e1b5146104b057806351392fc0146104c557600080fd5b806310d500e11161020357806310d500e114610310578063133f74ea14610370578063185fde7e146103a7578063200d2ed2146103db57806323a357051461040957600080fd5b806304fda3d41461024857806306c468531461028557806306fdde03146102b95780630f43a677146102fb57600080fd5b36610243576102416108fc565b005b600080fd5b34801561025457600080fd5b50600554610268906001600160401b031681565b6040516001600160401b0390911681526020015b60405180910390f35b34801561029157600080fd5b506102687f000000000000000000000000000000000000000000000000000000000000000081565b3480156102c557600080fd5b506102ed7f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161027c565b34801561030757600080fd5b506102ed610947565b34801561031c57600080fd5b50600254610346906001600160401b0380821691600160401b8104821691600160801b9091041683565b604080516001600160401b039485168152928416602084015292169181019190915260600161027c565b34801561037c57600080fd5b5061039061038b36600461402f565b610958565b60408051921515835260208301919091520161027c565b3480156103b357600080fd5b506102687f000000000000000000000000000000000000000000000000000000000000000081565b3480156103e757600080fd5b506005546103fc90600160401b900460ff1681565b60405161027c9190614062565b34801561041557600080fd5b50610429610424366004614091565b6109f1565b60405161027c91906140f4565b34801561044257600080fd5b506102ed610451366004614091565b600b6020526000908152604090205481565b34801561046f57600080fd5b5061048361047e366004614107565b610a8b565b6040516001600160a01b03909116815260200161027c565b3480156104a757600080fd5b50610241610a9e565b3480156104bc57600080fd5b50610241610b73565b3480156104d157600080fd5b50600154600160401b90046001600160401b0316610268565b3480156104f657600080fd5b5061051e7f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200161027c565b34801561053c57600080fd5b506102ed60065481565b34801561055257600080fd5b506105a3610561366004614120565b6001600160401b0382166000908152600a602090815260408083208054845260030182528083206001600160a01b038516845290915290205460ff1692915050565b604051901515815260200161027c565b3480156105bf57600080fd5b506105d36105ce36600461402f565b610c48565b60405161027c9291906143ba565b6102416105ef36600461446a565b611392565b34801561060057600080fd5b506102ed61060f366004614091565b600c6020526000908152604090205481565b34801561062d57600080fd5b506102687f000000000000000000000000000000000000000000000000000000000000000081565b34801561066157600080fd5b5061066a611672565b60405161027c9190614504565b34801561068357600080fd5b506102ed60045481565b34801561069957600080fd5b506106c17f000000000000000000000000000000000000000000000000000000000000000081565b60405161027c9190614517565b3480156106da57600080fd5b506102ed670de0b6b3a764000081565b3480156106f657600080fd5b5061070a61070536600461402f565b611707565b60405161027c95949392919061452b565b34801561072757600080fd5b506102ed7f000000000000000000000000000000000000000000000000000000000000000081565b34801561075b57600080fd5b5061051e600a81565b34801561077057600080fd5b50610429611844565b34801561078557600080fd5b50610241610794366004614107565b611851565b3480156107a557600080fd5b50600154610268906001600160401b031681565b3480156107c557600080fd5b506107ce61190e565b60405161027c9190614577565b3480156107e757600080fd5b506102ed7f000000000000000000000000000000000000000000000000000000000000000081565b34801561081b57600080fd5b506102687f000000000000000000000000000000000000000000000000000000000000000081565b34801561084f57600080fd5b506108586119b3565b60405161027c919061458a565b34801561087157600080fd5b506104837f000000000000000000000000000000000000000000000000000000000000000081565b3480156108a557600080fd5b506108b96108b4366004614091565b611caf565b60405161027c92919061464a565b3480156108d357600080fd5b50610241611d58565b3480156108e857600080fd5b506102416108f7366004614666565b611ed1565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109455760405163e7e601db60e01b815260040160405180910390fd5b565b60006109536008612183565b905090565b60008060008061096785610c48565b6040516339aa47fb60e01b81529193509150829073__$1cd67d4dc9e627f0bec7928aa480e7d951$__906339aa47fb906109a59085906004016148c8565b602060405180830381865af41580156109c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e69190614965565b935093505050915091565b600d6020526000908152604090208054610a0a9061497e565b80601f0160208091040260200160405190810160405280929190818152602001828054610a369061497e565b8015610a835780601f10610a5857610100808354040283529160200191610a83565b820191906000526020600020905b815481529060010190602001808311610a6657829003601f168201915b505050505081565b6000610a9860088361218d565b92915050565b610aa66121a0565b336000908152600c602052604081205490819003610ad7576040516367300f9160e11b815260040160405180910390fd5b336000908152600c60205260408082209190915551631f0e077760e31b8152600481018290526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f8703bb890602401600060405180830381600087803b158015610b4b57600080fd5b505af1158015610b5f573d6000803e3d6000fd5b50610b709250339150839050612230565b50565b610b7b6121a0565b610b836122d0565b610b8d6008612183565b151580610b9b575060045415155b15610bb957604051636b62255160e11b815260040160405180910390fd5b600580546003919060ff60401b1916600160401b8302179055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341c0e1b56040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c2e57600080fd5b505af1158015610c42573d6000803e3d6000fd5b50505050565b6000610c986040805161012081018252600060e0820181815260606101008401819052908352602083018290529282018190528282018390526080820183905260a082015260c081019190915290565b6001600160401b03808416600090815260076020908152604091829020825161012081018452815490941660e0850190815260018201805485518186028101860190965280865292948694929386936101008701939190830182828015610d2857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d0a575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156111325760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015610e3957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e1b575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610e739061497e565b80601f0160208091040260200160405190810160405280929190818152602001828054610e9f9061497e565b8015610eec5780601f10610ec157610100808354040283529160200191610eec565b820191906000526020600020905b815481529060010190602001808311610ecf57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015610f7d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610f5f575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610fb79061497e565b80601f0160208091040260200160405190810160405280929190818152602001828054610fe39061497e565b80156110305780601f1061100557610100808354040283529160200191611030565b820191906000526020600020905b81548152906001019060200180831161101357829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161108b9061497e565b80601f01602080910402602001604051908101604052809291908181526020018280546110b79061497e565b80156111045780601f106110d957610100808354040283529160200191611104565b820191906000526020600020905b8154815290600101906020018083116110e757829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101610d93565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015611269576000848152602090819020604080516080810182526003860290920180546001600160401b0316838301908152600182018054845181880281018801909552808552949592948694929386936060870193909290918301828280156111f557602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116111d7575b50505050508152505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561125157602002820191906000526020600020905b81548152602001906001019080831161123d575b5050505050815250508152602001906001019061115f565b5050505081526020016006820154815260200160078201805461128b9061497e565b80601f01602080910402602001604051908101604052809291908181526020018280546112b79061497e565b80156113045780601f106112d957610100808354040283529160200191611304565b820191906000526020600020905b8154815290600101906020018083116112e757829003601f168201915b5050509190925250508151604051630c133d1360e31b815292935073__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e898925061134991906004016149b8565b602060405180830381865af4158015611366573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138a91906149d9565b159150915091565b61139a6121a0565b6113a26122d0565b343360008290036113c657604051635a78c58160e11b815260040160405180910390fd5b6001600160a01b0381166000908152600b6020526040812080548492906113ee908490614a0c565b9250508190555081600460008282546114079190614a0c565b90915550506001600160a01b0381166000908152600b60205260409020547f0000000000000000000000000000000000000000000000000000000000000000116114b15761145660088261230e565b6114b157611465600882612330565b506001600160a01b0381166000908152600d60205260409020611489858783614a9c565b506001600160a01b0381166000908152600e6020526040902083906114ae8282614bb1565b50505b6005808054600160401b900460ff16908111156114d0576114d061404c565b03611594577f00000000000000000000000000000000000000000000000000000000000000006004541061158f57600580546001919060ff60401b1916600160401b8302179055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631aa3a0086004546040518263ffffffff1660e01b81526004016000604051808303818588803b15801561157557600080fd5b505af1158015611589573d6000803e3d6000fd5b50505050505b61166b565b600260058054600160401b900460ff16908111156115b4576115b461404c565b036115f6577f0000000000000000000000000000000000000000000000000000000000000000600454106115f6576005805460ff60401b1916600160401b1790555b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635a627dbc836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561165157600080fd5b505af1158015611665573d6000803e3d6000fd5b50505050505b5050505050565b604080518082019091526000815260606020820152604080518082018252600f80546001600160401b031682526010805484516020828102820181019096528181529394929383860193909291908301828280156116f957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116116db575b505050505081525050905090565b6007602090815260009182526040918290208251808401845281546001600160401b0316815260018201805485518186028101860190965280865292949193859385820193929183018282801561178757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611769575b5050509190925250505060028201546003830154600684015460078501805494956001600160401b0390941694929391926117c19061497e565b80601f01602080910402602001604051908101604052809291908181526020018280546117ed9061497e565b801561183a5780601f1061180f5761010080835404028352916020019161183a565b820191906000526020600020905b81548152906001019060200180831161181d57829003601f168201915b5050505050905085565b60118054610a0a9061497e565b6118596108fc565b60006118656008612183565b9050806000036118885760405163efa9c8f160e01b815260040160405180910390fd5b808210156118a957604051633074cabf60e11b815260040160405180910390fd5b60006118b58284614cac565b905060005b82811015610c425781600c60006118d260088561218d565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546119019190614a0c565b90915550506001016118ba565b6060600061191c6008612183565b90506000816001600160401b0381111561193857611938614a1f565b604051908082528060200260200182016040528015611961578160200160208202803683370190505b50905060005b828110156119ac5761197a60088261218d565b82828151811061198c5761198c614cc0565b6001600160a01b0390921660209283029190910190910152600101611967565b5092915050565b60408051808201909152606081526000602082015260006119d46008612183565b90506000816001600160401b038111156119f0576119f0614a1f565b604051908082528060200260200182016040528015611a5557816020015b60408051608081018252600080825260208083018290528351808501855291825260609082018190529282015281810191909152815260200190600190039081611a0e5790505b50905060005b82811015611c8a57604080516080810190915280611a7a60088461218d565b6001600160a01b03168152602001600b6000611a9760088661218d565b6001600160a01b03166001600160a01b03168152602001908152602001600020548152602001600e6000611ad585600861218d90919063ffffffff16565b6001600160a01b0316815260208082019290925260409081016000208151808301909252805460ff1682526001810180549293919291840191611b179061497e565b80601f0160208091040260200160405190810160405280929190818152602001828054611b439061497e565b8015611b905780601f10611b6557610100808354040283529160200191611b90565b820191906000526020600020905b815481529060010190602001808311611b7357829003601f168201915b505050919092525050508152602001600d6000611bae60088661218d565b6001600160a01b03166001600160a01b031681526020019081526020016000208054611bd99061497e565b80601f0160208091040260200160405190810160405280929190818152602001828054611c059061497e565b8015611c525780601f10611c2757610100808354040283529160200191611c52565b820191906000526020600020905b815481529060010190602001808311611c3557829003601f168201915b5050505050815250828281518110611c6c57611c6c614cc0565b60200260200101819052508080611c8290614cd6565b915050611a5b565b50604080518082019091529081526005546001600160401b0316602082015292915050565b600e602052600090815260409020805460018201805460ff9092169291611cd59061497e565b80601f0160208091040260200160405190810160405280929190818152602001828054611d019061497e565b8015611d4e5780601f10611d2357610100808354040283529160200191611d4e565b820191906000526020600020905b815481529060010190602001808311611d3157829003601f168201915b5050505050905082565b611d60612345565b611d686121a0565b611d706122d0565b336000908152600b602052604081205490819003611da157604051632ec5b44960e01b815260040160405180910390fd5b336000908152600b6020526040812081905560048054839290611dc5908490614cef565b90915550611dd6905060083361236f565b50600160058054600160401b900460ff1690811115611df757611df761404c565b03611e3f577f00000000000000000000000000000000000000000000000000000000000000006004541015611e3f576005805460ff60401b1916680200000000000000001790555b6040516345f5448560e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906345f5448590602401600060405180830381600087803b158015611ea157600080fd5b505af1158015611eb5573d6000803e3d6000fd5b50611ec69250339150839050612230565b506109456001600055565b611ed96121a0565b611ee9604082016020830161402f565b611ef281612384565b600160058054600160401b900460ff1690811115611f1257611f1261404c565b14611f305760405163c18316bf60e01b815260040160405180910390fd5b611f3b60083361230e565b611f5857604051632ec5b44960e01b815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000611f838380614d02565b611f8c90614e9e565b6040516390ba52cf60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__916390ba52cf91611fc291906004016149b8565b602060405180830381865af4158015611fdf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120039190614965565b14612021576040516375ecc72d60e01b815260040160405180910390fd5b73__$33b79814e84bf6cf5e47244090b19ce5f8$__63898414756120486060850185614eaa565b6040518363ffffffff1660e01b81526004016120659291906150c3565b602060405180830381865af4158015612082573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a691906149d9565b6120c357604051630bd9169f60e01b815260040160405180910390fd5b6000600a816120d8604086016020870161402f565b6001600160401b03166001600160401b031681526020019081526020016000209050600061212d828533600b6000336001600160a01b03166001600160a01b031681526020019081526020016000205461245a565b905080156121435761213e82612c1a565b610c42565b60008061214e613550565b91509150801561217b576001600160401b0382166000908152600a6020526040902061217981612c1a565b505b505050505050565b6000610a98825490565b60006121998383613574565b9392505050565b604051630972932760e21b815233600482015273__$e800e3908cdbb6b1b5bd452383a17b18f7$__906325ca4c9c90602401602060405180830381865af41580156121ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061221391906149d9565b6109455760405163b7150de560e01b815260040160405180910390fd5b804710156122575760405163cd78605960e01b815230600482015260240160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146122a4576040519150601f19603f3d011682016040523d82523d6000602084013e6122a9565b606091505b50509050806122cb57604051630a12f52160e11b815260040160405180910390fd5b505050565b600360058054600160401b900460ff16908111156122f0576122f061404c565b036109455760405163248c8efb60e11b815260040160405180910390fd5b6001600160a01b03811660009081526001830160205260408120541515612199565b6000612199836001600160a01b03841661359e565b60026000540361236857604051633ee5aeb560e01b815260040160405180910390fd5b6002600055565b6000612199836001600160a01b0384166135ed565b6001546001600160401b03908116908216116123b357604051631f30cc6360e21b815260040160405180910390fd5b6001546001600160401b03600160401b909104811690821610156123ea5760405163b4f68f9760e01b815260040160405180910390fd5b6001547f00000000000000000000000000000000000000000000000000000000000000009061242990600160401b90046001600160401b031683615206565b6124339190615226565b6001600160401b031615610b705760405163b4f68f9760e01b815260040160405180910390fd5b6000806124668561561e565b6040516339aa47fb60e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__916339aa47fb9161249c91906004016148c8565b602060405180830381865af41580156124b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124dd9190614965565b90506124fe868286866124f660408b0160208c0161402f565b6004546136e0565b600082815260058801602090815260409182902082516101208101845281546001600160401b031660e082019081526001830180548651818702810187019097528087529698509195929486949193869361010087019390919083018282801561259157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612573575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b8282101561299b5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d019390918301828280156126a257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612684575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906126dc9061497e565b80601f01602080910402602001604051908101604052809291908181526020018280546127089061497e565b80156127555780601f1061272a57610100808354040283529160200191612755565b820191906000526020600020905b81548152906001019060200180831161273857829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156127e657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116127c8575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906128209061497e565b80601f016020809104026020016040519081016040528092919081815260200182805461284c9061497e565b80156128995780601f1061286e57610100808354040283529160200191612899565b820191906000526020600020905b81548152906001019060200180831161287c57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916128f49061497e565b80601f01602080910402602001604051908101604052809291908181526020018280546129209061497e565b801561296d5780601f106129425761010080835404028352916020019161296d565b820191906000526020600020905b81548152906001019060200180831161295057829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016125fc565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015612ad2576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015612a5e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612a40575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015612aba57602002820191906000526020600020905b815481526020019060010190808311612aa6575b505050505081525050815260200190600101906129c8565b50505050815260200160068201548152602001600782018054612af49061497e565b80601f0160208091040260200160405190810160405280929190818152602001828054612b209061497e565b8015612b6d5780601f10612b4257610100808354040283529160200191612b6d565b820191906000526020600020905b815481529060010190602001808311612b5057829003601f168201915b5050509190925250506040516322ea8d8960e11b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__926345d51b129250612bac916004016148c8565b602060405180830381865af4158015612bc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bed91906149d9565b15612c1157600081815260058701602052604090208590612c0e8282615f17565b50505b50949350505050565b600281015460009081526005820160205260409020600680820154905414612d1357604051635a27a53960e11b81526004810183905273__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063b44f4a729060240160006040518083038186803b158015612c8757600080fd5b505af4158015612c9b573d6000803e3d6000fd5b505050506002818101546040516394ecccfd60e01b815260048101929092526001600160401b0316602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__906394ecccfd9060440160006040518083038186803b158015612cff57600080fd5b505af415801561217b573d6000803e3d6000fd5b6002810154612d2a906001600160401b031661391b565b60028101546001600160401b039081166000908152600760205260409020825481546001600160401b03191692169190911781556001808301805484939284928492612d799284019190613bd1565b50505060028281015490820180546001600160401b0319166001600160401b039092169190911790556003808301549082015560048083018054612dc09284019190613c21565b5060058281018054612dd59284019190613de7565b506006820154816006015560078201816007019081612df49190616046565b5050604080516101208101825283546001600160401b031660e0820190815260018501805484516020828102820181019096528181529395508694869486936101008701939192909190830182828015612e7757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612e59575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156132815760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015612f8857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f6a575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190612fc29061497e565b80601f0160208091040260200160405190810160405280929190818152602001828054612fee9061497e565b801561303b5780601f106130105761010080835404028352916020019161303b565b820191906000526020600020905b81548152906001019060200180831161301e57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156130cc57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116130ae575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906131069061497e565b80601f01602080910402602001604051908101604052809291908181526020018280546131329061497e565b801561317f5780601f106131545761010080835404028352916020019161317f565b820191906000526020600020905b81548152906001019060200180831161316257829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916131da9061497e565b80601f01602080910402602001604051908101604052809291908181526020018280546132069061497e565b80156132535780601f1061322857610100808354040283529160200191613253565b820191906000526020600020905b81548152906001019060200180831161323657829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101612ee2565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b828210156133b8576000848152602090819020604080516080810182526003860290920180546001600160401b03168383019081526001820180548451818802810188019095528085529495929486949293869360608701939092909183018282801561334457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613326575b5050505050815250508152602001600282018054806020026020016040519081016040528092919081815260200182805480156133a057602002820191906000526020600020905b81548152602001906001019080831161338c575b505050505081525050815260200190600101906132ae565b505050508152602001600682015481526020016007820180546133da9061497e565b80601f01602080910402602001604051908101604052809291908181526020018280546134069061497e565b80156134535780601f1061342857610100808354040283529160200191613453565b820191906000526020600020905b81548152906001019060200180831161343657829003601f168201915b5050509190925250506040516339aa47fb60e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__926339aa47fb9250613492916004016148c8565b602060405180830381865af41580156134af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134d39190614965565b600655604051631a9c293560e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d4e149a8906135229084906004016163b6565b600060405180830381600087803b15801561353c57600080fd5b505af115801561217b573d6000803e3d6000fd5b600254600160401b90046001600160401b0316600061356e82613a67565b90509091565b600082600001828154811061358b5761358b614cc0565b9060005260206000200154905092915050565b60008181526001830160205260408120546135e557508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610a98565b506000610a98565b600081815260018301602052604081205480156136d6576000613611600183614cef565b855490915060009061362590600190614cef565b905081811461368a57600086600001828154811061364557613645614cc0565b906000526020600020015490508087600001848154811061366857613668614cc0565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061369b5761369b616446565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610a98565b6000915050610a98565b8554600081815260038801602090815260408083206001600160a01b038916845290915281205490919060ff161561372b576040516337138f5f60e11b815260040160405180910390fd5b600081815260038901602090815260408083206001600160a01b038a1684529091528120805460ff191660019081179091558901805487929061376f908490614a0c565b9091555050600081815260048901602090815260408083208a84529091528120805487929061379f908490614a0c565b90915550506000818152600489016020908152604080832060028c0154845290915280822054898352912054808210156137db5760028a018990555b60006137e78b87613abc565b905060038160038111156137fd576137fd61404c565b036138905761380b87613a67565b15613819576001945061390d565b60405163199b9ca560e01b8152600260048201526001600160401b038816602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__9063199b9ca59060440160006040518083038186803b15801561387357600080fd5b505af4158015613887573d6000803e3d6000fd5b5050505061390d565b60028160038111156138a4576138a461404c565b0361390d57604051635a27a53960e11b8152600481018c905273__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063b44f4a729060240160006040518083038186803b1580156138f457600080fd5b505af4158015613908573d6000803e3d6000fd5b505050505b505050509695505050505050565b61392481613a67565b61392b5750565b604051634953836d60e11b8152600260048201526001600160401b038216602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__906392a706da90604401602060405180830381865af415801561398a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139ae91906149d9565b156139d2576002546001600160401b03828116600160401b90920416146139d25750565b6040516394ecccfd60e01b8152600260048201526001600160401b038216602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__906394ecccfd9060440160006040518083038186803b158015613a2c57600080fd5b505af4158015613a40573d6000803e3d6000fd5b5050600180546001600160401b0319166001600160401b0394909416939093179092555050565b600154600090613aa1907f0000000000000000000000000000000000000000000000000000000000000000906001600160401b031661645c565b6001600160401b0316826001600160401b0316149050919050565b6000806064613aee60ff7f00000000000000000000000000000000000000000000000000000000000000001685615706565b613af89190614cac565b604051637d2ef4e560e11b81526004810186905290915060009073__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063fa5de9ca90602401602060405180830381865af4158015613b4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b729190614965565b905081856001015411613b8a57600092505050610a98565b81811115613b9d57600392505050610a98565b6001850154613bac9085614cef565b613bb68284614cef565b10613bc657600292505050610a98565b506001949350505050565b828054828255906000526020600020908101928215613c115760005260206000209182015b82811115613c11578254825591600101919060010190613bf6565b50613c1d929150613e87565b5090565b82805482825590600052602060002090600c028101928215613ddb57600052602060002091600c0282015b82811115613ddb57825482546001600160401b0319166001600160401b039091161782556001808401805485928592849284928492849284928492613c949291840191613bd1565b50505060028281018054918301805460ff191660ff90931692909217825590600380840190613cc590860182616046565b505050506004838101805491840180546001600160401b0319166001600160401b039093169290921782556005808601805492945084928492613d0b9290880191613bd1565b50505060028281018054918301805460ff191660ff90931692909217825590600380840190613d3c90860182616046565b5050505060088381015490830155506009808301805491830180546001600160401b031981166001600160401b039094169384178255915463ffffffff600160401b9182900416026bffffffffffffffffffffffff19909216909217179055600a80820190613dad90840182616046565b505050600b918201549101805460ff191660ff9092161515919091179055600c928301929190910190613c4c565b50613c1d929150613e9c565b828054828255906000526020600020906003028101928215613e7b5760005260206000209160030282015b82811115613e7b57825482546001600160401b0319166001600160401b03909116178255600180840180548592859284928492613e529290840191613bd1565b50505060028281018054613e699284019190613bd1565b50505091600301919060030190613e12565b50613c1d929150613f71565b5b80821115613c1d5760008155600101613e88565b80821115613c1d5780546001600160401b03191681556000818181818181613ec76001830182613fb2565b505060028201805460ff191681556000613ee46003850182613fd0565b505050506004820180546001600160401b031916815560008181613f0b6005870182613fb2565b505060028201805460ff191681556000613f286003850182613fd0565b50506000600885018190556009850180546bffffffffffffffffffffffff19169055613f5a9250600a85019150613fd0565b505050600b8101805460ff19169055600c01613e9c565b80821115613c1d5780546001600160401b031916815560008181613f986001830182613fb2565b50613fa99050600283016000613fb2565b50600301613f71565b5080546000825590600052602060002090810190610b709190613e87565b508054613fdc9061497e565b6000825580601f10613fec575050565b601f016020900490600052602060002090810190610b709190613e87565b6001600160401b0381168114610b7057600080fd5b803561402a8161400a565b919050565b60006020828403121561404157600080fd5b81356121998161400a565b634e487b7160e01b600052602160045260246000fd5b60208101600683106140765761407661404c565b91905290565b6001600160a01b0381168114610b7057600080fd5b6000602082840312156140a357600080fd5b81356121998161407c565b6000815180845260005b818110156140d4576020818501810151868301820152016140b8565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600061219960208301846140ae565b60006020828403121561411957600080fd5b5035919050565b6000806040838503121561413357600080fd5b823561413e8161400a565b9150602083013561414e8161407c565b809150509250929050565b600081518084526020808501945080840160005b838110156141925781516001600160a01b03168752958201959082019060010161416d565b509495945050505050565b6001600160401b03815116825260006020820151604060208501526141c56040850182614159565b949350505050565b60ff815116825260006020820151604060208501526141c560408501826140ae565b6000815160408452614204604085018261419d565b90506020830151848203602086015261421d82826141cd565b95945050505050565b600081518084526020808501808196508360051b8101915082860160005b8581101561430d578284038952815160408151818752805160c080848a01526142716101008a01836141ef565b915089830151603f196060818c860301818d015261428f85846141ef565b9686015160808d810191909152908601516001600160401b031660a0808e0191909152908601516001600160e01b031916938c0193909352918401518a860390920160e08b0152509290506142e481846140ae565b93890151801515898b01529392506142fa915050565b9986019994505090840190600101614244565b5091979650505050505050565b600081518084526020808501808196508360051b810191508286016000805b868110156143ac578385038a5282516040815181885261435b8289018261419d565b92890151888403898b01528051808552908a01938693508a0191505b808310156143975783518252928901926001929092019190890190614377565b509b88019b9650505091850191600101614339565b509298975050505050505050565b8215158152604060208201526000825160e060408401526143df61012084018261419d565b90506001600160401b036020850151166060840152604084015160808401526060840151603f19808584030160a086015261441a8383614226565b925060808601519150808584030160c0860152614437838361431a565b925060a086015160e086015260c0860151915080858403016101008601525061446082826140ae565b9695505050505050565b60008060006040848603121561447f57600080fd5b83356001600160401b038082111561449657600080fd5b818601915086601f8301126144aa57600080fd5b8135818111156144b957600080fd5b8760208285010111156144cb57600080fd5b6020928301955093509085013590808211156144e657600080fd5b508401604081870312156144f957600080fd5b809150509250925092565b602081526000612199602083018461419d565b60208101600183106140765761407661404c565b60a08152600061453e60a083018861419d565b6001600160401b0387166020840152856040840152846060840152828103608084015261456b81856140ae565b98975050505050505050565b6020815260006121996020830184614159565b600060208083526060808401855160408085880152828251808552608094508489019150848160051b8a0101878501945060005b82811015614628578a8203607f19018452855180516001600160a01b03168352898101518a840152858101518684018990526145fc898501826141cd565b918a0151848303858c015291905061461481836140ae565b978b0197958b0195935050506001016145be565b50968a01516001600160401b038116848b0152969a9950505050505050505050565b60ff831681526040602082015260006141c560408301846140ae565b60006020828403121561467857600080fd5b81356001600160401b0381111561468e57600080fd5b820160e0818503121561219957600080fd5b6000604083016001600160401b0383511684526020808401516040828701528281518085526060880191508383019450600092505b808310156146fe5784516001600160a01b031682529383019360019290920191908301906146d5565b509695505050505050565b600081516040845261471e60408501826146a0565b90506020830151848203602086015260ff8151168252602081015190506040602083015261421d60408301826140ae565b600081518084526020808501808196508360051b8101915082860160005b8581101561430d578284038952815160408151818752805160c080848a015261479a6101008a0183614709565b915089830151603f196060818c860301818d01526147b88584614709565b9686015160808d810191909152908601516001600160401b031660a0808e0191909152908601516001600160e01b031916938c0193909352918401518a860390920160e08b01525092905061480d81846140ae565b93890151801515898b0152939250614823915050565b998601999450509084019060010161476d565b600081518084526020808501808196508360051b810191508286016000805b868110156143ac578385038a52825160408151818852614877828901826146a0565b92890151888403898b01528051808552908a01938693508a0191505b808310156148b35783518252928901926001929092019190890190614893565b509b88019b9650505091850191600101614855565b602081526000825160e060208401526148e56101008401826146a0565b90506001600160401b036020850151166040840152604084015160608401526060840151601f1980858403016080860152614920838361474f565b925060808601519150808584030160a086015261493d8383614836565b925060a086015160c086015260c08601519150808584030160e08601525061421d82826140ae565b60006020828403121561497757600080fd5b5051919050565b600181811c9082168061499257607f821691505b6020821081036149b257634e487b7160e01b600052602260045260246000fd5b50919050565b60208152600061219960208301846146a0565b8015158114610b7057600080fd5b6000602082840312156149eb57600080fd5b8151612199816149cb565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a9857610a986149f6565b634e487b7160e01b600052604160045260246000fd5b5b81811015614a4a5760008155600101614a36565b5050565b601f8211156122cb57806000526020600020601f840160051c81016020851015614a755750805b61166b601f850160051c830182614a35565b600019600383901b1c191660019190911b1790565b6001600160401b03831115614ab357614ab3614a1f565b614ac783614ac1835461497e565b83614a4e565b6000601f841160018114614af55760008515614ae35750838201355b614aed8682614a87565b84555061166b565b600083815260209020601f19861690835b82811015614b265786850135825560209485019460019092019101614b06565b5086821015614b435760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60ff81168114610b7057600080fd5b6000808335601e19843603018112614b7b57600080fd5b8301803591506001600160401b03821115614b9557600080fd5b602001915036819003821315614baa57600080fd5b9250929050565b8135614bbc81614b55565b60ff811660ff198354161782555060018082016020614bdd81860186614b64565b6001600160401b03811115614bf457614bf4614a1f565b614c0881614c02865461497e565b86614a4e565b6000601f821160018114614c365760008315614c245750838201355b614c2e8482614a87565b875550614c8b565b600086815260209020601f19841690835b82811015614c645786850135825593870193908901908701614c47565b5084821015614c815760001960f88660031b161c19848701351681555b50508683881b0186555b505050505050505050565b634e487b7160e01b600052601260045260246000fd5b600082614cbb57614cbb614c96565b500490565b634e487b7160e01b600052603260045260246000fd5b600060018201614ce857614ce86149f6565b5060010190565b81810381811115610a9857610a986149f6565b60008235603e19833603018112614d1857600080fd5b9190910192915050565b604080519081016001600160401b0381118282101715614d4457614d44614a1f565b60405290565b60405160c081016001600160401b0381118282101715614d4457614d44614a1f565b60405160e081016001600160401b0381118282101715614d4457614d44614a1f565b604051601f8201601f191681016001600160401b0381118282101715614db657614db6614a1f565b604052919050565b60006001600160401b03821115614dd757614dd7614a1f565b5060051b60200190565b600060408284031215614df357600080fd5b614dfb614d22565b90508135614e088161400a565b81526020828101356001600160401b03811115614e2457600080fd5b8301601f81018513614e3557600080fd5b8035614e48614e4382614dbe565b614d8e565b81815260059190911b82018301908381019087831115614e6757600080fd5b928401925b82841015614e8e578335614e7f8161407c565b82529284019290840190614e6c565b8085870152505050505092915050565b6000610a983683614de1565b6000808335601e19843603018112614ec157600080fd5b8301803591506001600160401b03821115614edb57600080fd5b6020019150600581901b3603821315614baa57600080fd5b60008235603e19833603018112614f0957600080fd5b90910192915050565b6000808335601e19843603018112614f2957600080fd5b83016020810192503590506001600160401b03811115614f4857600080fd5b803603821315614baa57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008135614f8d81614b55565b60ff168352614f9f6020830183614f12565b6040602086015261421d604086018284614f57565b6000614fc08283614ef3565b60408452608084018135614fd38161400a565b6001600160401b0390811660408701526020908382013536859003601e19018112614ffd57600080fd5b9093018181019390358181111561501357600080fd5b8060051b360385131561502557600080fd5b60406060890152928390525060009160a08701905b8084101561506c57843561504d8161407c565b6001600160a01b0316825293820193600193909301929082019061503a565b5061507982870187614ef3565b93508681038288015261508c8185614f80565b979650505050505050565b6001600160e01b031981168114610b7057600080fd5b803561402a81615097565b803561402a816149cb565b60208082528181018390526000906040808401600586901b850182018785805b898110156151f757603f19808a86030186526150ff848d614ef3565b803560be19823603018112615112578485fd5b88875281016151218180614ef3565b60c0808b8a01526151366101008a0183614fb4565b91506151448c840184614ef3565b6060868b850301818c01526151598483614fb4565b9350608091508c850135828c01528085013590506151768161400a565b60a06001600160401b038216818d015282860135925061519583615097565b6001600160e01b031983168c8501526151b086820187614f12565b96509350505050848983030160e08a01526151cc828483614f57565b94505050506151dc8982016150b8565b151595890195909552948701949350918601916001016150e3565b50919998505050505050505050565b6001600160401b038281168282160390808211156119ac576119ac6149f6565b60006001600160401b038084168061524057615240614c96565b92169190910692915050565b600082601f83011261525d57600080fd5b81356001600160401b0381111561527657615276614a1f565b615289601f8201601f1916602001614d8e565b81815284602083860101111561529e57600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156152cd57600080fd5b6152d5614d22565b905081356001600160401b03808211156152ee57600080fd5b6152fa85838601614de1565b8352602084013591508082111561531057600080fd5b908301906040828603121561532457600080fd5b61532c614d22565b823561533781614b55565b815260208301358281111561534b57600080fd5b6153578782860161524c565b60208301525080602085015250505092915050565b600082601f83011261537d57600080fd5b8135602061538d614e4383614dbe565b82815260059290921b840181019181810190868411156153ac57600080fd5b8286015b848110156146fe5780356001600160401b03808211156153cf57600080fd5b90880190601f196040838c03820112156153e857600080fd5b6153f0614d22565b878401358381111561540157600080fd5b840160c0818e038401121561541557600080fd5b61541d614d4a565b9250888101358481111561543057600080fd5b61543e8e8b838501016152bb565b84525060408101358481111561545357600080fd5b6154618e8b838501016152bb565b8a850152506060810135604084015261547c6080820161401f565b606084015261548d60a082016150ad565b608084015260c0810135848111156154a457600080fd5b6154b28e8b8385010161524c565b60a085015250508181526154c8604085016150b8565b8189015286525050509183019183016153b0565b600082601f8301126154ed57600080fd5b813560206154fd614e4383614dbe565b828152600592831b850182019282820191908785111561551c57600080fd5b8387015b858110156156115780356001600160401b03808211156155405760008081fd5b908901906040828c03601f190181131561555a5760008081fd5b615562614d22565b88840135838111156155745760008081fd5b6155828e8b83880101614de1565b82525081840135838111156155975760008081fd5b8085019450508c603f8501126155af57600092508283fd5b8884013592506155c1614e4384614dbe565b83815292861b8401820192898101908e8511156155de5760008081fd5b948301945b848610156155fc5785358252948a0194908a01906155e3565b828b0152508752505050928401928401615520565b5090979650505050505050565b600060e0823603121561563057600080fd5b615638614d6c565b82356001600160401b038082111561564f57600080fd5b61565b36838701614de1565b83526156696020860161401f565b602084015260408501356040840152606085013591508082111561568c57600080fd5b6156983683870161536c565b606084015260808501359150808211156156b157600080fd5b6156bd368387016154dc565b608084015260a085013560a084015260c08501359150808211156156e057600080fd5b506156ed3682860161524c565b60c08301525092915050565b60008135610a988161400a565b8082028115828204841417610a9857610a986149f6565b8054600082558015614a4a578160005260206000206122cb82820182614a35565b600160401b82111561575257615752614a1f565b8054828255808310156122cb57816000526020600020610c42828201858301614a35565b60008155610b706001820161571d565b615790815461497e565b8015614a4a57601f8111600181146157aa57505060009055565b8260005260206000206157c8601f840160051c820160018301614a35565b60008085559055505050565b600081556157e46001820161571d565b60006002820155610b7060038201615786565b6158018283614d02565b803561580c8161400a565b82546001600160401b0319166001600160401b038216178355506001808301602061583981850185614eaa565b94506001600160401b038086111561585357615853614a1f565b61585d868561573e565b600093845282842093805b8781101561588a57833561587b8161407c565b86820155928401928601615868565b5060028801965061589d848a018a614d02565b9450843592506158ac83614b55565b865460ff191660ff84161790965560038701956158cb85850186614b64565b95509250818511156158df576158df614a1f565b6158f3856158ed895461497e565b89614a4e565b809150601f8511600181146159215781861561590f5750838301355b6159198782614a87565b895550611665565b600088815260209020601f19871690835b8281101561594f5786860135825594870194908901908701615932565b508782101561596c5760001960f88960031b161c19858701351681555b505050505091831b90920190925550505050565b60008135610a9881615097565b60008135610a98816149cb565b813560be198336030181126159ae57600080fd5b82016159ba8180614d02565b6159c48182614d02565b80356159cf8161400a565b84546001600160401b0319166001600160401b03821617855550600180850160206159fc81850185614eaa565b94506001600160401b0380861115615a1657615a16614a1f565b615a20868561573e565b600093845282842093805b87811015615a4d578335615a3e8161407c565b86820155928401928601615a2b565b5060028a019650615a6084890189614d02565b975087359450615a6f85614b55565b865460ff191660ff8616179096556003890195615a8e88850189614b64565b9850945081881115615aa257615aa2614a1f565b615ab0886158ed895461497e565b809250601f881160018114615ae0578192508815615acf578386013592505b615ad98984614a87565b8855615b35565b600088815260209020601f198a169350825b84811015615b0f5787860135825594860194908801908601615af2565b5089841015615b2c5760001960f88b60031b161c19858801351681555b508689881b0188555b50505050615b51615b4882880188614d02565b600489016157f7565b60408601356008880155600987019450615b8d615b70606088016156f9565b86546001600160401b0319166001600160401b0391909116178655565b615bc6615b9c60808801615980565b86546bffffffff0000000000000000191660a09190911c6bffffffff000000000000000016178655565b615bd360a0870187614b64565b96509450615be58686600a8a01614a9c565b615c0c615bf3828a0161598d565b600b890160ff1981541660ff8315151681178255505050565b5050505050505050565b600160401b831115615c2a57615c2a614a1f565b805483825580841015615cbe57600c8181028181048314615c4d57615c4d6149f6565b8582028281048714615c6157615c616149f6565b6000858152602081209283019291909101905b82821015615cb957615c85826157d4565b615c91600483016157d4565b806008830155806009830155615ca9600a8301615786565b80600b8301558382019150615c74565b505050505b5060008181526020812083915b8581101561217b57615ce6615ce08487614d02565b8361599a565b60209290920191600c9190910190600101615ccb565b8054600080835581156122cb57828152602081208281015b8082101561166b57828255600182019150615d14565b600160401b821115615d3e57615d3e614a1f565b8054828255808310156122cb576000828152602081208481019083015b8082101561217b57828255600182019150615d5b565b615d7b8283614d02565b8035615d868161400a565b82546001600160401b0319166001600160401b0382161783555060018083016020615db381850185614eaa565b94506001600160401b0380861115615dcd57615dcd614a1f565b615dd7868561573e565b600093845282842093805b87811015615e04578335615df58161407c565b86820155928401928601615de2565b50600288019650615e17848a018a614eaa565b9550925081851115615e2b57615e2b614a1f565b615e358588615d2a565b95865250818520945b83811015615c0c57813586820155908201908401615e3e565b600160401b831115615e6b57615e6b614a1f565b805483825580841015615ed95760038181028181048314615e8e57615e8e6149f6565b8582028281048714615ea257615ea26149f6565b60008581526020902091820191015b81811015615ed557615ec281615776565b615ece60028201615cfc565b8201615eb1565b5050505b5060008181526020812083915b8581101561217b57615f01615efb8487614d02565b83615d71565b6020929092019160039190910190600101615ee6565b615f218283614d02565b8035615f2c8161400a565b82546001600160401b0319166001600160401b0382161783555060018083016020615f5981850185614eaa565b94506001600160401b03851115615f7257615f72614a1f565b615f7c858461573e565b6000928352818320925b85811015615fa8578135615f998161407c565b84820155908201908401615f86565b5050615fd9615fb88288016156f9565b600287016001600160401b0382166001600160401b03198254161781555050565b5050505060408201356003820155615ff46060830183614eaa565b616002818360048601615c16565b50506160116080830183614eaa565b61601f818360058601615e57565b505060a0820135600682015561603860c0830183614b64565b610c42818360078601614a9c565b818103616051575050565b61605b825461497e565b6001600160401b0381111561607257616072614a1f565b61608681616080845461497e565b84614a4e565b6000601f8211600181146160b457600083156160a25750848201545b6160ac8482614a87565b85555061166b565b600085815260209020601f19841690600086815260209020845b838110156160ee57828601548255600195860195909101906020016160ce565b508583101561610c5781850154600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000604083016001600160401b0383541684526001808401602060408188015283825480865260608901915083600052826000209550600093505b8084101561617d5785546001600160a01b03168252948401949284019290820190616157565b50979650505050505050565b600081546161968161497e565b8085526020600183811680156161b357600181146161cd576161fb565b60ff1985168884015283151560051b8801830195506161fb565b866000528260002060005b858110156161f35781548a82018601529083019084016161d8565b890184019650505b505050505092915050565b604082526000616219604084018361611c565b838103602085015260ff6002840154168152604060208201526141c56040820160038501616189565b600081548084526020808501808196508360051b81019150856000528260002060005b8581101561430d578284038952604080855260c0808287015261628c610100870185616206565b9150603f19808784030160608801526162a88360048701616206565b6008860154608089015260098601546001600160401b03811660a0808b01919091521b6001600160e01b031916928801929092528682030160e087015290506162f481600a8501616189565b9050616304600b84015460ff1690565b15159486019490945297840197600c9190910190600101616265565b600081548084526020808501808196508360051b810191506000868152838120815b868110156143ac578385038a5260408086526163608187018461611c565b86810388880152600284018054808352908652888620925085918901905b8083101561639e578354825260019384019392909201919089019061637e565b509b88019b9650505060039190910190600101616342565b6020815260e0602082015260006163d161010083018461611c565b60028401546001600160401b0316604084015260038401546060840152828103601f1990810160808501526164098260048701616242565b9150808483030160a08501526164228260058701616320565b9150600685015460c0850152808483030160e0850152506141c58160078601616189565b634e487b7160e01b600052603160045260246000fd5b6001600160401b038181168382160190808211156119ac576119ac6149f656fea2646970667358221220a6ae00ab06eb511a33065da6f3c80edd7e51f0e0a341be0e5e1ee1e842337f6f64736f6c63430008130033a26469706673582212206c77824a426a509a1f1234d3fddf5886350bf7bcf7bb41313e835d9cb45fd8ed64736f6c63430008130033", + "sourceMap": "216:1960:29:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;701:32;;;;;;;;-1:-1:-1;;;;;287:32:83;;;269:51;;257:2;242:18;701:32:29;;;;;;;;1596:234;;;;;;:::i;:::-;;:::i;650:44::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;650:44:29;;;;;;-1:-1:-1;;;;;969:31:83;;;951:50;;939:2;924:18;650:44:29;807:200:83;1938:236:29;;;;;;:::i;:::-;;:::i;460:61::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;460:61:29;;;1094:406;;;;;;:::i;:::-;;:::i;1596:234::-;-1:-1:-1;;;;;1699:14:29;;1664;1699;;;;;;;;;;;1734:1;1714:17;;;;;;;;1699:14;;1664;;1714:21;;1734:1;-1:-1:-1;;;;;1714:17:29;:21;:::i;:::-;-1:-1:-1;;;;;1699:37:29;;;;;;;;;;;;-1:-1:-1;1699:37:29;;-1:-1:-1;;;;;1699:37:29;;-1:-1:-1;1699:37:29;1746:78;;1793:20;;-1:-1:-1;;;1793:20:29;;;;;;;;;;;1746:78;1596:234;;;:::o;1938:236::-;-1:-1:-1;;;;;2059:14:29;;;2024;2059;;;;;;;;;;;-1:-1:-1;;;;;2059:21:29;;;;;;;;;;;;2090:78;;2137:20;;-1:-1:-1;;;2137:20:29;;;;;;;;;;;2090:78;1938:236;;;;:::o;1094:406::-;1181:18;-1:-1:-1;;;;;1240:7:29;1215:32;:21;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1215:32:29;;1211:84;;1270:14;;-1:-1:-1;;;1270:14:29;;;;;;;;;;;1211:84;1342:6;1326:23;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1369:10:29;1361:7;:19;;;;;;;;;;;1381:10;:22;;;;;;;;-1:-1:-1;;;;;1381:22:29;;;1361:43;;;;;;;;:56;;-1:-1:-1;;;;;;1361:56:29;-1:-1:-1;;;;;1361:56:29;;;;;1429:22;;;;;;;1427:24;;1361:56;;-1:-1:-1;1381:22:29;1361:7;;1427:24;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;1427:24:29;;;;;-1:-1:-1;;;;;1427:24:29;;;;;;1467:26;1482:10;1467:26;;;;;-1:-1:-1;;;;;287:32:83;;;;269:51;;257:2;242:18;;123:203;1467:26:29;;;;;;;;1094:406;;;:::o;-1:-1:-1:-;;;;;;;;:::o;331:173:83:-;399:20;;-1:-1:-1;;;;;448:31:83;;438:42;;428:70;;494:1;491;484:12;509:186;568:6;621:2;609:9;600:7;596:23;592:32;589:52;;;637:1;634;627:12;589:52;660:29;679:9;660:29;:::i;:::-;650:39;509:186;-1:-1:-1;;;509:186:83:o;1012:171::-;1079:20;;-1:-1:-1;;;;;1128:30:83;;1118:41;;1108:69;;1173:1;1170;1163:12;1188:258;1255:6;1263;1316:2;1304:9;1295:7;1291:23;1287:32;1284:52;;;1332:1;1329;1322:12;1284:52;1355:29;1374:9;1355:29;:::i;:::-;1345:39;;1403:37;1436:2;1425:9;1421:18;1403:37;:::i;:::-;1393:47;;1188:258;;;;;:::o;1451:396::-;1546:6;1599:2;1587:9;1578:7;1574:23;1570:32;1567:52;;;1615:1;1612;1605:12;1567:52;1655:9;1642:23;-1:-1:-1;;;;;1680:6:83;1677:30;1674:50;;;1720:1;1717;1710:12;1674:50;1743:22;;1799:3;1781:16;;;1777:26;1774:46;;;1816:1;1813;1806:12;1852:127;1913:10;1908:3;1904:20;1901:1;1894:31;1944:4;1941:1;1934:15;1968:4;1965:1;1958:15;1984:183;-1:-1:-1;;;;;2103:10:83;;;2091;;;2087:27;;2126:12;;;2123:38;;;2141:18;;:::i;:::-;2123:38;1984:183;;;;:::o;2172:293::-;2240:5;2299:3;2286:17;2385:2;2381:7;2370:8;2354:14;2350:29;2346:43;2326:18;2322:68;2312:96;;2404:1;2401;2394:12;2312:96;2426:33;;;;2172:293;-1:-1:-1;;2172:293:83:o;2470:1062::-;2530:3;2569:4;2564:3;2560:14;-1:-1:-1;;;;;2662:2:83;2636:24;2654:5;2636:24;:::i;:::-;2632:33;2627:3;2620:46;2685:4;2748:2;2741:5;2737:14;2724:28;2831:2;2827:7;2819:5;2803:14;2799:26;2795:40;2775:18;2771:65;2761:93;;2850:1;2847;2840:12;2761:93;2878:30;;2976:16;;;;2931:21;3004:14;;;3001:34;;;3031:1;3028;3021:12;3001:34;3087:6;3084:1;3080:14;3064;3060:35;3051:7;3047:49;3044:69;;;3109:1;3106;3099:12;3044:69;3143:4;3129:12;;;3122:26;3183:20;;;;3256:7;3230:2;3221:12;;;-1:-1:-1;3281:1:83;;3291:214;3305:6;3302:1;3299:13;3291:214;;;-1:-1:-1;;;;;3372:26:83;3391:6;3372:26;:::i;:::-;3368:52;3354:67;;3480:15;;;;3443:14;;;;3327:1;3320:9;;;;;3291:214;;;-1:-1:-1;3521:5:83;;2470:1062;-1:-1:-1;;;;;;2470:1062:83:o;3537:154::-;3616:20;;3665:1;3655:12;;3645:40;;3681:1;3678;3671:12;3696:241;3781:1;3774:5;3771:12;3761:143;;3826:10;3821:3;3817:20;3814:1;3807:31;3861:4;3858:1;3851:15;3889:4;3886:1;3879:15;3761:143;3913:18;;3696:241::o;3942:156::-;4008:20;;4068:4;4057:16;;4047:27;;4037:55;;4088:1;4085;4078:12;4183:500;4241:5;4248:6;4308:3;4295:17;4394:2;4390:7;4379:8;4363:14;4359:29;4355:43;4335:18;4331:68;4321:96;;4413:1;4410;4403:12;4321:96;4441:33;;4545:4;4532:18;;;-1:-1:-1;4493:21:83;;-1:-1:-1;;;;;;4562:30:83;;4559:50;;;4605:1;4602;4595:12;4559:50;4652:6;4636:14;4632:27;4625:5;4621:39;4618:59;;;4673:1;4670;4663:12;4618:59;4183:500;;;;;:::o;4688:266::-;4776:6;4771:3;4764:19;4828:6;4821:5;4814:4;4809:3;4805:14;4792:43;-1:-1:-1;4880:1:83;4855:16;;;4873:4;4851:27;;;4844:38;;;;4936:2;4915:15;;;-1:-1:-1;;4911:29:83;4902:39;;;4898:50;;4688:266::o;4959:1673::-;5158:2;5147:9;5140:21;5121:4;5190:56;5239:6;5231;5190:56;:::i;:::-;5265:6;5307:2;5302;5291:9;5287:18;5280:30;5333:70;5398:3;5387:9;5383:19;5369:12;5333:70;:::i;:::-;5319:84;;5464:2;5456:6;5452:15;5439:29;5434:2;5423:9;5419:18;5412:57;5500:35;5531:2;5523:6;5519:15;5500:35;:::i;:::-;-1:-1:-1;;;;;80:31:83;;5594:2;5579:18;;68:44;5544:54;5629:46;5671:2;5663:6;5659:15;5629:46;:::i;:::-;5684:66;5745:3;5734:9;5730:19;5714:14;5684:66;:::i;:::-;;5812:3;5804:6;5800:16;5787:30;5781:3;5770:9;5766:19;5759:59;5849:35;5879:3;5871:6;5867:16;5849:35;:::i;:::-;-1:-1:-1;;;;;765:30:83;;5942:3;5927:19;;753:43;5893:54;5978:35;6008:3;6000:6;5996:16;5978:35;:::i;:::-;-1:-1:-1;;;;;765:30:83;;6071:3;6056:19;;753:43;6022:54;6107:35;6137:3;6129:6;6125:16;6107:35;:::i;:::-;6161:3;6173:53;6222:2;6211:9;6207:18;6191:14;-1:-1:-1;;;;;765:30:83;753:43;;700:102;6173:53;6257:33;6286:2;6278:6;6274:15;6257:33;:::i;:::-;6235:55;;;6309:3;6321:52;6369:2;6358:9;6354:18;6338:14;4170:4;4159:16;4147:29;;4103:75;6321:52;6418:55;6469:2;6461:6;6457:15;6449:6;6418:55;:::i;:::-;6513:22;;;-1:-1:-1;;6509:36:83;6489:18;;;6482:64;6382:91;-1:-1:-1;6382:91:83;-1:-1:-1;6563:63:83;6517:6;6382:91;;6563:63;:::i;:::-;6555:71;4959:1673;-1:-1:-1;;;;;;;4959:1673:83:o;6637:209::-;6675:3;-1:-1:-1;;;;;6756:2:83;6749:5;6745:14;6783:2;6774:7;6771:15;6768:41;;6789:18;;:::i;:::-;6838:1;6825:15;;6637:209;-1:-1:-1;;;6637:209:83:o", "linkReferences": { "src/lib/AccountHelper.sol": { "AccountHelper": [ { - "start": 16292, + "start": 13441, "length": 20 } ] @@ -327,19 +335,19 @@ "src/lib/CheckpointHelper.sol": { "CheckpointHelper": [ { - "start": 7010, + "start": 7241, "length": 20 }, { - "start": 7364, + "start": 14145, "length": 20 }, { - "start": 14493, + "start": 15953, "length": 20 }, { - "start": 20800, + "start": 18231, "length": 20 } ] @@ -347,7 +355,7 @@ "src/lib/CrossMsgHelper.sol": { "CrossMsgHelper": [ { - "start": 6487, + "start": 13039, "length": 20 } ] @@ -355,15 +363,15 @@ "src/lib/EpochVoteSubmissionHelper.sol": { "EpochVoteSubmissionHelper": [ { - "start": 9358, + "start": 16158, "length": 20 }, { - "start": 21670, + "start": 19339, "length": 20 }, { - "start": 22248, + "start": 19936, "length": 20 } ] @@ -371,15 +379,19 @@ "src/lib/ExecutableQueueHelper.sol": { "ExecutableQueueHelper": [ { - "start": 9223, + "start": 16278, "length": 20 }, { - "start": 21745, + "start": 19210, "length": 20 }, { - "start": 21900, + "start": 19484, + "length": 20 + }, + { + "start": 19651, "length": 20 } ] @@ -387,28 +399,32 @@ "src/lib/SubnetIDHelper.sol": { "SubnetIDHelper": [ { - "start": 2687, + "start": 2638, + "length": 20 + }, + { + "start": 2768, "length": 20 }, { - "start": 6326, + "start": 9709, "length": 20 }, { - "start": 18202, + "start": 12903, "length": 20 } ] } }, "immutableReferences": { - "36531": [ + "37078": [ { - "start": 185, + "start": 117, "length": 32 }, { - "start": 1511, + "start": 597, "length": 32 } ] @@ -422,7 +438,7 @@ "subnets(address,uint64)": "b67c7b4a", "userNonces(address)": "2f7801f4" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gateway\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"UnknownSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongGateway\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroGatewayAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"subnetAddr\",\"type\":\"address\"}],\"name\":\"SubnetDeployed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"gateway\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"getSubnetDeployedByNonce\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"subnet\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"latestSubnetDeployed\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"subnet\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"parentId\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"ipcGatewayAddr\",\"type\":\"address\"},{\"internalType\":\"enum ConsensusType\",\"name\":\"consensus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"minActivationCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"bottomUpCheckPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"topDownCheckPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"majorityPercentage\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"genesis\",\"type\":\"bytes\"}],\"internalType\":\"struct SubnetActor.ConstructParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"newSubnetActor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"subnetAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"subnets\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"userNonces\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"events\":{\"SubnetDeployed(address)\":{\"notice\":\"Event emitted when a new subnet is deployed.\"}},\"kind\":\"user\",\"methods\":{\"getSubnetDeployedByNonce(address,uint64)\":{\"notice\":\"Returns the address of a subnet actor deployed for a specific nonce by a user\"},\"latestSubnetDeployed(address)\":{\"notice\":\"Returns the address of the latest subnet actor deployed by a user\"},\"subnets(address,uint64)\":{\"notice\":\"Mapping that tracks the deployed subnet actors per user. Key is the hash of Subnet ID, values are addresses. mapping owner => nonce => subnet\"},\"userNonces(address)\":{\"notice\":\"Mapping that tracks the latest nonce of the deployed subnet for each user. owner => nonce\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/SubnetRegistry.sol\":\"SubnetRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x8f4afa3ef1feff91710a0e28697dcae441408b55b6d0bef8e83396889fb03648\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1dc55d645035ae7f8b4ac475f877d3363c1e7a665dc22c157e97dc7f25be9dc7\",\"dweb:/ipfs/QmR1kPqKahvo6EvY5ExWwCUZDJHFc486vscez5ShsYcrs6\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/SubnetActor.sol\":{\"keccak256\":\"0xcce21243d1e55abea2687634d24b9638581d9a0707b3266a588bb305a0aee79f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://086dc88e1a23d55c624cde49dfa4e8b8e05fd096949af734764207fe4d18c37c\",\"dweb:/ipfs/Qme4A77whGGGpqPYfS7BZbV2iB5AimTG87HHEXAqS2c7Nz\"]},\"src/SubnetRegistry.sol\":{\"keccak256\":\"0x2fdcfb2beda16e04f3b06a2430c023f8b498b6bf29ea8917ec14a8b039ccdc3f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://16da8c242f261cb5855f36bb31861152ae47d3b41bf350b27a2880875bf8b330\",\"dweb:/ipfs/QmUsqogPzkJBx3i9diC2fMxj5qj4M5pTyCwqPj9t5nyyaF\"]},\"src/Voting.sol\":{\"keccak256\":\"0xcbda0869ebb1b766c7072245473f7b5a46a34b36397d2186574ada48a2a2c1c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1fc90dff2f79809fe5bee108e4b53b80e8f2552fef266858aa59cfc9992424df\",\"dweb:/ipfs/QmQiMasvxAjJwCjMy3nzdF5neogJJzSnZzy86YCBpKTdp1\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x8a925dea568a61a38de9615aae7bb462d9eb6f8eb2c6ca409f1e740519077ab8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b7e2f836581694867c09bb9c80ff2ab6ae039ece2ff3bbf4d1bc2026449fa551\",\"dweb:/ipfs/QmVMvaQSCRBHZudSV8AzimYre76tJVm4UrHYnrT89zcjho\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xf6fd4f824e7dd9fe651bd11596f3045f32e67be595f91078c2b326e45aec4ce4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a674b1a6824a75749bb0a71b4791ff329907083ffb028b04634e94ddbcc2b2f3\",\"dweb:/ipfs/QmTkoSu2mRktfadkjhdgisBaWoZxb8iC3bacUwqCt44PNQ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x46e7af8cb235b158fdeed7a49d1121d0972c0b802bd13ad385e67054eae082d2\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://508d9dd646a79a0ef0dc15c90a88f3947ade65835e1ce46915a0dad2d6dd1394\",\"dweb:/ipfs/QmW9MbYoDT2ukFjMJ7BhjYxHiu42hTRoKpafufQL7GbhUd\"]},\"src/enums/VoteExecutionStatus.sol\":{\"keccak256\":\"0x56d1db8abf83feb0f1d69f1919fbd5bd79c6f3c5bf3c149950d307b9d62b6455\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb2ec0f87a9091eab463ac6a776d5737189e0239f412b36b975bb0be1fcb4ad8\",\"dweb:/ipfs/QmWiXwab54Ag2f1kyGjqT3brh5JrV5Lc7cqod9VPaS5ey6\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x899b2ee97a2efd50dbc21f88610db0cfc91f1f15168f0a58bf142372bd385223\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://628e909d2bd776b82890ed0f8d92bad4db903a0332ff0c847ff676eafb1dcd90\",\"dweb:/ipfs/QmdqRqYTBKzrnTaupUEVuCwXsQCHDoUg9MLmEXXfcFKhiA\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0xe3f7371c7c7af8dfa71daa6c4171f6853c9ab1fdd619c09eb12c11ff18d17d91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6a09ea45ed335eada22e7cf3643c17d1c59750ed2156cc29c0960a8e8b53e394\",\"dweb:/ipfs/QmSYTNGqP9wEJnPDXmvghfL8zL8BrHGnixhbsimA9oydLG\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x86bf44c7e35907c1b0ed2fd55a6a8a277b46e6ee52b6933610504bc1d2de3b12\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb47357cd7342f951e5d08b1960e9ab7d458463e71ce08ff61b900bbb04118f0\",\"dweb:/ipfs/QmTKHhnYs1xKZUwCmSRPmSi5utfGrosYV57fSoGF7bGnJs\"]},\"src/lib/CheckpointHelper.sol\":{\"keccak256\":\"0x25d67ccc67b6b537df920c92dc3c704dc097e000c444149d3732e1d20848a269\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5823e88c38b5c4e90ee5700cee5a5fd8d982015dab7ea1cbe2f26d62a359ae76\",\"dweb:/ipfs/QmT9Ves86HoEqQciunzEwvDsyv2dgQwF8uPUjNuGsycHuF\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x272ba1f55a4b5c1bc3d3a837bf22a8ff944d6fe80880e59cec73faddc19ae3d6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a301294ff9da348c3afa592c03d62013f48ba94c3192696d2ba761ccdb4813fa\",\"dweb:/ipfs/QmckRrcUwELqUJaiDPGtVtehtNKqGuj4aYzC2S26c2Z3pR\"]},\"src/lib/EpochVoteSubmissionHelper.sol\":{\"keccak256\":\"0x1eaf867ddfc3e83d5a2ca50a81809e1529ea2436a8d2697d868bc8653b8c6c9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://65eb6a69fdb0fd8bfc1cd3d5044791225ff9fa8887dda49fd530e7c46e6e5366\",\"dweb:/ipfs/QmepF17eiqGqiNJRfeCohdeVw2aJxgkFS1AyFSM78v16nC\"]},\"src/lib/ExecutableQueueHelper.sol\":{\"keccak256\":\"0x66b7ba58bb9ba987789f22dcc5e44f1720876a79a52a9630d886490d48f80ece\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8b388b9f63b4f86ac03f24089a1f110e482ae89b1eb628fc78aeead1d6f50869\",\"dweb:/ipfs/QmVGVh9r2GBgXRn7Z13sMKmnn3xjfHm9tM3mnLUH1UwjQX\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x9d5db7d32540fb636b2c2ca0fb81f7e5b118800c212b27ab4e1df254178fe056\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f887d7d1d9b9b3e82a3e07c4c6f47967f2bcf1f43a4d6ecda75a33f9c1a94b4f\",\"dweb:/ipfs/QmQV1gBBCRZjUiZzCWnDrGYd1RtAJKUJhsyZeYLPmpLVt1\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0xf82021571aa9a7b021b2d24b2c0eb80c5796b9f28ebb6a1c239146c0c0168817\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b546fc429093a558b9382e28886d1f09e7f308e55f6398989583bc420a630326\",\"dweb:/ipfs/QmSmQPQbMBX8N8r8nGboBWdzJjUaK7ACaFUf8XosZVZPT8\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0xcddaa4630a6f68c59a819bafee579a8979cc9fd7b00d5b49f99eeefb9ce0c02c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9713f988a5709dea3ee0fb204a2d0b64b0dc115912ed9eb128f479156d97a949\",\"dweb:/ipfs/QmUjTAvd2eAYQFqgfZUf5R67daeC7eUKrL6WrFb8oEWB9j\"]},\"src/structs/EpochVoteSubmission.sol\":{\"keccak256\":\"0x4cc52a36cac1a063bf1f996b91ea81ce118b7ce8923e62cec6e5bf08b689e96a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb33236d8c7a40e17c416a21e9f0df268d6a7f4d6ba1df86ab0c2dbf444702e9\",\"dweb:/ipfs/QmXEbdkweqL1f4Q71YPiuxwhQooh1oim9oBybAbr9Jd3A2\"]},\"src/structs/ExecutableQueue.sol\":{\"keccak256\":\"0xfacfd91786edac0462f4bba34d3a3766c8785925ae96301b68b76fba78c5cab4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb421106bc9158e8a12dd7054d265113dd890337937e73acb03f03e33a13eb18\",\"dweb:/ipfs/Qmdxs4akDWuzwf5nYsCaNuYNZ5sTrMCzdgVMuSpKCjFyaP\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0x9aac7ad79f5b7114e05092bb54275b2f6dcad7239e69d1814cc44f2992818b75\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ac4905f54e3fd70785ebee5bd5e9f5e66be0a4d2be3394232f5f6ac9fab65584\",\"dweb:/ipfs/QmSDeZwgcb7WLAUwfj3mPkWc9DVKg6R5NmaTGu9bN4Y7JZ\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x4ff0b9d4e271411ac817c2d16baa6727770d97f9169648de6a1fd44c8d404f0a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ccbdb80026639222d14e63fa43ace25497f16bc72be2506c5566ee424d64afa\",\"dweb:/ipfs/QmbPcNSSSomKqBq9K7ACZPrmDuUAeGhK3S3sPQWPAvf2U9\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gateway\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"UnknownSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongGateway\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroGatewayAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"subnetAddr\",\"type\":\"address\"}],\"name\":\"SubnetDeployed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"gateway\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"getSubnetDeployedByNonce\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"subnet\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"latestSubnetDeployed\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"subnet\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"parentId\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"ipcGatewayAddr\",\"type\":\"address\"},{\"internalType\":\"enum ConsensusType\",\"name\":\"consensus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"minActivationCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"bottomUpCheckPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"topDownCheckPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"majorityPercentage\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"genesis\",\"type\":\"bytes\"}],\"internalType\":\"struct SubnetActor.ConstructParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"newSubnetActor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"subnetAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"subnets\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"userNonces\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"events\":{\"SubnetDeployed(address)\":{\"notice\":\"Event emitted when a new subnet is deployed.\"}},\"kind\":\"user\",\"methods\":{\"getSubnetDeployedByNonce(address,uint64)\":{\"notice\":\"Returns the address of a subnet actor deployed for a specific nonce by a user\"},\"latestSubnetDeployed(address)\":{\"notice\":\"Returns the address of the latest subnet actor deployed by a user\"},\"subnets(address,uint64)\":{\"notice\":\"Mapping that tracks the deployed subnet actors per user. Key is the hash of Subnet ID, values are addresses. mapping owner => nonce => subnet\"},\"userNonces(address)\":{\"notice\":\"Mapping that tracks the latest nonce of the deployed subnet for each user. owner => nonce\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/SubnetRegistry.sol\":\"SubnetRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x8f4afa3ef1feff91710a0e28697dcae441408b55b6d0bef8e83396889fb03648\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1dc55d645035ae7f8b4ac475f877d3363c1e7a665dc22c157e97dc7f25be9dc7\",\"dweb:/ipfs/QmR1kPqKahvo6EvY5ExWwCUZDJHFc486vscez5ShsYcrs6\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xb8d40721965efd93b5369d55083181226d3c7e1be4a968c04de35d44ba44f29a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5c4b0089788aa7112cce88602212c3895999f464e00d1c40d7f27ac9288798b\",\"dweb:/ipfs/Qmd69EuGeoCYPfPkGA4hayH4s2upmAe3XaoDf4ggYNEoZ4\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x31f34a3baec77c087d2bdbc5c277f169e505b905aeb43cfcea1734175140f621\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5a3bc8093b31b685ef879e8ffaaab614594cb6f98ddac4f18c411f7bbf99d0d\",\"dweb:/ipfs/QmSFfA9pH3xo8hnWKCFKTwGi8kz68YXuAwyLXsYe6KjC3Z\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xdb6d7e26320438bdd421598eb64e6fe2b03867a4dd07c9c820994b7bec26f7b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2adf1566393ddf260fb2064dd0c67be00123b8978be8b62cc45ac97aff859949\",\"dweb:/ipfs/QmaDLzQpnitEJDAJo4squpKumr5x4D2QYetPdT3jZd8hYm\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/SubnetActor.sol\":{\"keccak256\":\"0xf37cf03206def09255ddd5cf678907839692ed626b19fbcbafedce95de8cc336\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8f293756e675ef0a538d34e91c4a743930de0c4572238d9cad3d12761d5dc9bd\",\"dweb:/ipfs/QmPfiW2GFT1R1LbG7CDCjHgU7z7oDZgwmGRBoeGpDnY9dJ\"]},\"src/SubnetRegistry.sol\":{\"keccak256\":\"0x2fdcfb2beda16e04f3b06a2430c023f8b498b6bf29ea8917ec14a8b039ccdc3f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://16da8c242f261cb5855f36bb31861152ae47d3b41bf350b27a2880875bf8b330\",\"dweb:/ipfs/QmUsqogPzkJBx3i9diC2fMxj5qj4M5pTyCwqPj9t5nyyaF\"]},\"src/Voting.sol\":{\"keccak256\":\"0xea28372fddefe2b3981d6e06c171d92523b39ac9aa5ba60c74a088f35505421d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0466daf1fae11d37574bc9793172f5f116f906e46478dde17c72725519c5f645\",\"dweb:/ipfs/Qmbt85ktcuSddaHFfxT98hgKRG9r1dNDkzSjbAVnZMFdjB\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x8a925dea568a61a38de9615aae7bb462d9eb6f8eb2c6ca409f1e740519077ab8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b7e2f836581694867c09bb9c80ff2ab6ae039ece2ff3bbf4d1bc2026449fa551\",\"dweb:/ipfs/QmVMvaQSCRBHZudSV8AzimYre76tJVm4UrHYnrT89zcjho\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xf6fd4f824e7dd9fe651bd11596f3045f32e67be595f91078c2b326e45aec4ce4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a674b1a6824a75749bb0a71b4791ff329907083ffb028b04634e94ddbcc2b2f3\",\"dweb:/ipfs/QmTkoSu2mRktfadkjhdgisBaWoZxb8iC3bacUwqCt44PNQ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0xf29c18f694b5acc919b7cada2875ca3bd2c52ddd7ef86ee747aab0faeb50ac8b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d8fb92f533cc119c578da73b06efe76b0efaa612af7c77178eb903952fcf53df\",\"dweb:/ipfs/QmdosRgUmvwXRnxq5TmoJoFMs7TULduTFpMUNyYXQNGfQD\"]},\"src/enums/VoteExecutionStatus.sol\":{\"keccak256\":\"0x56d1db8abf83feb0f1d69f1919fbd5bd79c6f3c5bf3c149950d307b9d62b6455\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb2ec0f87a9091eab463ac6a776d5737189e0239f412b36b975bb0be1fcb4ad8\",\"dweb:/ipfs/QmWiXwab54Ag2f1kyGjqT3brh5JrV5Lc7cqod9VPaS5ey6\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x57865785239b076bc429cd989bc5cb2a2e68050c7293a5a537d8cdeded170294\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://28285703560a0bbfa247c894c9f14f2a14e02e430e7dedb0a05b58c53aed3763\",\"dweb:/ipfs/QmcrNx18jZYJ7dRduWu1do3th74cHy7zn9Zx8x13WsCLj5\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0xe3f7371c7c7af8dfa71daa6c4171f6853c9ab1fdd619c09eb12c11ff18d17d91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6a09ea45ed335eada22e7cf3643c17d1c59750ed2156cc29c0960a8e8b53e394\",\"dweb:/ipfs/QmSYTNGqP9wEJnPDXmvghfL8zL8BrHGnixhbsimA9oydLG\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x86bf44c7e35907c1b0ed2fd55a6a8a277b46e6ee52b6933610504bc1d2de3b12\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb47357cd7342f951e5d08b1960e9ab7d458463e71ce08ff61b900bbb04118f0\",\"dweb:/ipfs/QmTKHhnYs1xKZUwCmSRPmSi5utfGrosYV57fSoGF7bGnJs\"]},\"src/lib/CheckpointHelper.sol\":{\"keccak256\":\"0x25d67ccc67b6b537df920c92dc3c704dc097e000c444149d3732e1d20848a269\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5823e88c38b5c4e90ee5700cee5a5fd8d982015dab7ea1cbe2f26d62a359ae76\",\"dweb:/ipfs/QmT9Ves86HoEqQciunzEwvDsyv2dgQwF8uPUjNuGsycHuF\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0xe7aacc0bc5eb10763685d6766524f6db05b151b37de4ccbd2b04649e54b9af36\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d6fae33fe9dc258efc3e0c484c6e69ff8314af266c78fd9b3d20c5bf8f251865\",\"dweb:/ipfs/QmYYpC6GnJNRvAg3MCSHKHk47cas888N3HzmMrmiRT4bnJ\"]},\"src/lib/EpochVoteSubmissionHelper.sol\":{\"keccak256\":\"0x1eaf867ddfc3e83d5a2ca50a81809e1529ea2436a8d2697d868bc8653b8c6c9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://65eb6a69fdb0fd8bfc1cd3d5044791225ff9fa8887dda49fd530e7c46e6e5366\",\"dweb:/ipfs/QmepF17eiqGqiNJRfeCohdeVw2aJxgkFS1AyFSM78v16nC\"]},\"src/lib/ExecutableQueueHelper.sol\":{\"keccak256\":\"0x66b7ba58bb9ba987789f22dcc5e44f1720876a79a52a9630d886490d48f80ece\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8b388b9f63b4f86ac03f24089a1f110e482ae89b1eb628fc78aeead1d6f50869\",\"dweb:/ipfs/QmVGVh9r2GBgXRn7Z13sMKmnn3xjfHm9tM3mnLUH1UwjQX\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x80d7d30532305664e31ad114d702904287e6f93954b420315f660ddf30791ac6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0b108070a13f76614f36e46f0af85d12aa53209ff9bb9c32ee1945be3e0a1fe1\",\"dweb:/ipfs/QmcyMuCZB4Z3qFUUjvcoVeSePJXU5F9hN4Zhy94U2qqcPq\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0xf82021571aa9a7b021b2d24b2c0eb80c5796b9f28ebb6a1c239146c0c0168817\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b546fc429093a558b9382e28886d1f09e7f308e55f6398989583bc420a630326\",\"dweb:/ipfs/QmSmQPQbMBX8N8r8nGboBWdzJjUaK7ACaFUf8XosZVZPT8\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0xcddaa4630a6f68c59a819bafee579a8979cc9fd7b00d5b49f99eeefb9ce0c02c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9713f988a5709dea3ee0fb204a2d0b64b0dc115912ed9eb128f479156d97a949\",\"dweb:/ipfs/QmUjTAvd2eAYQFqgfZUf5R67daeC7eUKrL6WrFb8oEWB9j\"]},\"src/structs/EpochVoteSubmission.sol\":{\"keccak256\":\"0x4cc52a36cac1a063bf1f996b91ea81ce118b7ce8923e62cec6e5bf08b689e96a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb33236d8c7a40e17c416a21e9f0df268d6a7f4d6ba1df86ab0c2dbf444702e9\",\"dweb:/ipfs/QmXEbdkweqL1f4Q71YPiuxwhQooh1oim9oBybAbr9Jd3A2\"]},\"src/structs/ExecutableQueue.sol\":{\"keccak256\":\"0xfacfd91786edac0462f4bba34d3a3766c8785925ae96301b68b76fba78c5cab4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb421106bc9158e8a12dd7054d265113dd890337937e73acb03f03e33a13eb18\",\"dweb:/ipfs/Qmdxs4akDWuzwf5nYsCaNuYNZ5sTrMCzdgVMuSpKCjFyaP\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xbaae3da91048d76b5bab0404eebf7dc41ed273a8cd1f4143ea1b3403d89f77c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5a69d76f5022d2e19f69ef0d70d4c5e3a3e7ae8e02fcfdb2682c901ac2f3a707\",\"dweb:/ipfs/QmYEWyPz9UqVssUpU42VTv6DhzRNAfaHKt9ZsNCAvtLjTr\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0xb37b12df0c9ff47c2e88f9612b624bb44e6de5dfb8030dfd83582997dcd6aa83\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a321a05abf7b3b461e3d6c4ac27b18d3e14dffad9e2bf9a0ceb68538a02ab1e4\",\"dweb:/ipfs/QmPo878trP8pv9yXXpwUHSnP7Xt6uz9eWuB25pz2JGiCot\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.19+commit.7dd6d404" @@ -690,7 +706,7 @@ ], "optimizer": { "enabled": true, - "runs": 1 + "runs": 200 }, "metadata": { "bytecodeHash": "ipfs" @@ -698,8 +714,7 @@ "compilationTarget": { "src/SubnetRegistry.sol": "SubnetRegistry" }, - "libraries": {}, - "viaIR": true + "libraries": {} }, "sources": { "lib/fevmate/contracts/utils/FilAddress.sol": { @@ -719,26 +734,26 @@ "license": "MIT" }, "lib/openzeppelin-contracts/contracts/utils/Address.sol": { - "keccak256": "0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1", + "keccak256": "0xb8d40721965efd93b5369d55083181226d3c7e1be4a968c04de35d44ba44f29a", "urls": [ - "bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5", - "dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo" + "bzz-raw://e5c4b0089788aa7112cce88602212c3895999f464e00d1c40d7f27ac9288798b", + "dweb:/ipfs/Qmd69EuGeoCYPfPkGA4hayH4s2upmAe3XaoDf4ggYNEoZ4" ], "license": "MIT" }, "lib/openzeppelin-contracts/contracts/utils/Strings.sol": { - "keccak256": "0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da", + "keccak256": "0x31f34a3baec77c087d2bdbc5c277f169e505b905aeb43cfcea1734175140f621", "urls": [ - "bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a", - "dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB" + "bzz-raw://b5a3bc8093b31b685ef879e8ffaaab614594cb6f98ddac4f18c411f7bbf99d0d", + "dweb:/ipfs/QmSFfA9pH3xo8hnWKCFKTwGi8kz68YXuAwyLXsYe6KjC3Z" ], "license": "MIT" }, "lib/openzeppelin-contracts/contracts/utils/math/Math.sol": { - "keccak256": "0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c", + "keccak256": "0xdb6d7e26320438bdd421598eb64e6fe2b03867a4dd07c9c820994b7bec26f7b0", "urls": [ - "bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81", - "dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k" + "bzz-raw://2adf1566393ddf260fb2064dd0c67be00123b8978be8b62cc45ac97aff859949", + "dweb:/ipfs/QmaDLzQpnitEJDAJo4squpKumr5x4D2QYetPdT3jZd8hYm" ], "license": "MIT" }, @@ -759,10 +774,10 @@ "license": "MIT" }, "src/SubnetActor.sol": { - "keccak256": "0xcce21243d1e55abea2687634d24b9638581d9a0707b3266a588bb305a0aee79f", + "keccak256": "0xf37cf03206def09255ddd5cf678907839692ed626b19fbcbafedce95de8cc336", "urls": [ - "bzz-raw://086dc88e1a23d55c624cde49dfa4e8b8e05fd096949af734764207fe4d18c37c", - "dweb:/ipfs/Qme4A77whGGGpqPYfS7BZbV2iB5AimTG87HHEXAqS2c7Nz" + "bzz-raw://8f293756e675ef0a538d34e91c4a743930de0c4572238d9cad3d12761d5dc9bd", + "dweb:/ipfs/QmPfiW2GFT1R1LbG7CDCjHgU7z7oDZgwmGRBoeGpDnY9dJ" ], "license": "UNLICENSED" }, @@ -775,10 +790,10 @@ "license": "UNLICENSED" }, "src/Voting.sol": { - "keccak256": "0xcbda0869ebb1b766c7072245473f7b5a46a34b36397d2186574ada48a2a2c1c9", + "keccak256": "0xea28372fddefe2b3981d6e06c171d92523b39ac9aa5ba60c74a088f35505421d", "urls": [ - "bzz-raw://1fc90dff2f79809fe5bee108e4b53b80e8f2552fef266858aa59cfc9992424df", - "dweb:/ipfs/QmQiMasvxAjJwCjMy3nzdF5neogJJzSnZzy86YCBpKTdp1" + "bzz-raw://0466daf1fae11d37574bc9793172f5f116f906e46478dde17c72725519c5f645", + "dweb:/ipfs/Qmbt85ktcuSddaHFfxT98hgKRG9r1dNDkzSjbAVnZMFdjB" ], "license": "UNLICENSED" }, @@ -799,10 +814,10 @@ "license": "UNLICENSED" }, "src/enums/Status.sol": { - "keccak256": "0x46e7af8cb235b158fdeed7a49d1121d0972c0b802bd13ad385e67054eae082d2", + "keccak256": "0xf29c18f694b5acc919b7cada2875ca3bd2c52ddd7ef86ee747aab0faeb50ac8b", "urls": [ - "bzz-raw://508d9dd646a79a0ef0dc15c90a88f3947ade65835e1ce46915a0dad2d6dd1394", - "dweb:/ipfs/QmW9MbYoDT2ukFjMJ7BhjYxHiu42hTRoKpafufQL7GbhUd" + "bzz-raw://d8fb92f533cc119c578da73b06efe76b0efaa612af7c77178eb903952fcf53df", + "dweb:/ipfs/QmdosRgUmvwXRnxq5TmoJoFMs7TULduTFpMUNyYXQNGfQD" ], "license": "UNLICENSED" }, @@ -815,10 +830,10 @@ "license": "UNLICENSED" }, "src/interfaces/IGateway.sol": { - "keccak256": "0x899b2ee97a2efd50dbc21f88610db0cfc91f1f15168f0a58bf142372bd385223", + "keccak256": "0x57865785239b076bc429cd989bc5cb2a2e68050c7293a5a537d8cdeded170294", "urls": [ - "bzz-raw://628e909d2bd776b82890ed0f8d92bad4db903a0332ff0c847ff676eafb1dcd90", - "dweb:/ipfs/QmdqRqYTBKzrnTaupUEVuCwXsQCHDoUg9MLmEXXfcFKhiA" + "bzz-raw://28285703560a0bbfa247c894c9f14f2a14e02e430e7dedb0a05b58c53aed3763", + "dweb:/ipfs/QmcrNx18jZYJ7dRduWu1do3th74cHy7zn9Zx8x13WsCLj5" ], "license": "UNLICENSED" }, @@ -847,10 +862,10 @@ "license": "UNLICENSED" }, "src/lib/CrossMsgHelper.sol": { - "keccak256": "0x272ba1f55a4b5c1bc3d3a837bf22a8ff944d6fe80880e59cec73faddc19ae3d6", + "keccak256": "0xe7aacc0bc5eb10763685d6766524f6db05b151b37de4ccbd2b04649e54b9af36", "urls": [ - "bzz-raw://a301294ff9da348c3afa592c03d62013f48ba94c3192696d2ba761ccdb4813fa", - "dweb:/ipfs/QmckRrcUwELqUJaiDPGtVtehtNKqGuj4aYzC2S26c2Z3pR" + "bzz-raw://d6fae33fe9dc258efc3e0c484c6e69ff8314af266c78fd9b3d20c5bf8f251865", + "dweb:/ipfs/QmYYpC6GnJNRvAg3MCSHKHk47cas888N3HzmMrmiRT4bnJ" ], "license": "UNLICENSED" }, @@ -871,10 +886,10 @@ "license": "UNLICENSED" }, "src/lib/FvmAddressHelper.sol": { - "keccak256": "0x9d5db7d32540fb636b2c2ca0fb81f7e5b118800c212b27ab4e1df254178fe056", + "keccak256": "0x80d7d30532305664e31ad114d702904287e6f93954b420315f660ddf30791ac6", "urls": [ - "bzz-raw://f887d7d1d9b9b3e82a3e07c4c6f47967f2bcf1f43a4d6ecda75a33f9c1a94b4f", - "dweb:/ipfs/QmQV1gBBCRZjUiZzCWnDrGYd1RtAJKUJhsyZeYLPmpLVt1" + "bzz-raw://0b108070a13f76614f36e46f0af85d12aa53209ff9bb9c32ee1945be3e0a1fe1", + "dweb:/ipfs/QmcyMuCZB4Z3qFUUjvcoVeSePJXU5F9hN4Zhy94U2qqcPq" ], "license": "UNLICENSED" }, @@ -911,18 +926,18 @@ "license": "UNLICENSED" }, "src/structs/FvmAddress.sol": { - "keccak256": "0x9aac7ad79f5b7114e05092bb54275b2f6dcad7239e69d1814cc44f2992818b75", + "keccak256": "0xbaae3da91048d76b5bab0404eebf7dc41ed273a8cd1f4143ea1b3403d89f77c9", "urls": [ - "bzz-raw://ac4905f54e3fd70785ebee5bd5e9f5e66be0a4d2be3394232f5f6ac9fab65584", - "dweb:/ipfs/QmSDeZwgcb7WLAUwfj3mPkWc9DVKg6R5NmaTGu9bN4Y7JZ" + "bzz-raw://5a69d76f5022d2e19f69ef0d70d4c5e3a3e7ae8e02fcfdb2682c901ac2f3a707", + "dweb:/ipfs/QmYEWyPz9UqVssUpU42VTv6DhzRNAfaHKt9ZsNCAvtLjTr" ], "license": "UNLICENSED" }, "src/structs/Subnet.sol": { - "keccak256": "0x4ff0b9d4e271411ac817c2d16baa6727770d97f9169648de6a1fd44c8d404f0a", + "keccak256": "0xb37b12df0c9ff47c2e88f9612b624bb44e6de5dfb8030dfd83582997dcd6aa83", "urls": [ - "bzz-raw://6ccbdb80026639222d14e63fa43ace25497f16bc72be2506c5566ee424d64afa", - "dweb:/ipfs/QmbPcNSSSomKqBq9K7ACZPrmDuUAeGhK3S3sPQWPAvf2U9" + "bzz-raw://a321a05abf7b3b461e3d6c4ac27b18d3e14dffad9e2bf9a0ceb68538a02ab1e4", + "dweb:/ipfs/QmPo878trP8pv9yXXpwUHSnP7Xt6uz9eWuB25pz2JGiCot" ], "license": "UNLICENSED" } @@ -931,28 +946,28 @@ }, "ast": { "absolutePath": "src/SubnetRegistry.sol", - "id": 36678, + "id": 37225, "exportedSymbols": { "SubnetActor": [ - 36505 + 36753 ], "SubnetID": [ - 39147 + 44279 ], "SubnetIDHelper": [ - 39008 + 44131 ], "SubnetRegistry": [ - 36677 + 37224 ] }, "nodeType": "SourceUnit", - "src": "39:2138:27", + "src": "39:2138:29", "nodes": [ { - "id": 36507, + "id": 37054, "nodeType": "PragmaDirective", - "src": "39:23:27", + "src": "39:23:29", "nodes": [], "literals": [ "solidity", @@ -961,24 +976,24 @@ ] }, { - "id": 36509, + "id": 37056, "nodeType": "ImportDirective", - "src": "64:46:27", + "src": "64:46:29", "nodes": [], "absolutePath": "src/SubnetActor.sol", "file": "./SubnetActor.sol", "nameLocation": "-1:-1:-1", - "scope": 36678, - "sourceUnit": 36506, + "scope": 37225, + "sourceUnit": 36754, "symbolAliases": [ { "foreign": { - "id": 36508, + "id": 37055, "name": "SubnetActor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36505, - "src": "72:11:27", + "referencedDeclaration": 36753, + "src": "72:11:29", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -987,24 +1002,24 @@ "unitAlias": "" }, { - "id": 36511, + "id": 37058, "nodeType": "ImportDirective", - "src": "111:46:27", + "src": "111:46:29", "nodes": [], "absolutePath": "src/structs/Subnet.sol", "file": "./structs/Subnet.sol", "nameLocation": "-1:-1:-1", - "scope": 36678, - "sourceUnit": 39178, + "scope": 37225, + "sourceUnit": 44311, "symbolAliases": [ { "foreign": { - "id": 36510, + "id": 37057, "name": "SubnetID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39147, - "src": "119:8:27", + "referencedDeclaration": 44279, + "src": "119:8:29", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1013,24 +1028,24 @@ "unitAlias": "" }, { - "id": 36513, + "id": 37060, "nodeType": "ImportDirective", - "src": "158:56:27", + "src": "158:56:29", "nodes": [], "absolutePath": "src/lib/SubnetIDHelper.sol", "file": "./lib/SubnetIDHelper.sol", "nameLocation": "-1:-1:-1", - "scope": 36678, - "sourceUnit": 39009, + "scope": 37225, + "sourceUnit": 44132, "symbolAliases": [ { "foreign": { - "id": 36512, + "id": 37059, "name": "SubnetIDHelper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39008, - "src": "166:14:27", + "referencedDeclaration": 44131, + "src": "166:14:29", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1039,64 +1054,64 @@ "unitAlias": "" }, { - "id": 36677, + "id": 37224, "nodeType": "ContractDefinition", - "src": "216:1960:27", + "src": "216:1960:29", "nodes": [ { - "id": 36517, + "id": 37064, "nodeType": "UsingForDirective", - "src": "246:34:27", + "src": "246:34:29", "nodes": [], "global": false, "libraryName": { - "id": 36514, + "id": 37061, "name": "SubnetIDHelper", "nameLocations": [ - "252:14:27" + "252:14:29" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39008, - "src": "252:14:27" + "referencedDeclaration": 44131, + "src": "252:14:29" }, "typeName": { - "id": 36516, + "id": 37063, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 36515, + "id": 37062, "name": "SubnetID", "nameLocations": [ - "271:8:27" + "271:8:29" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39147, - "src": "271:8:27" + "referencedDeclaration": 44279, + "src": "271:8:29" }, - "referencedDeclaration": 39147, - "src": "271:8:27", + "referencedDeclaration": 44279, + "src": "271:8:29", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39147_storage_ptr", + "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", "typeString": "struct SubnetID" } } }, { - "id": 36524, + "id": 37071, "nodeType": "VariableDeclaration", - "src": "460:61:27", + "src": "460:61:29", "nodes": [], "constant": false, "documentation": { - "id": 36518, + "id": 37065, "nodeType": "StructuredDocumentation", - "src": "286:169:27", + "src": "286:169:29", "text": "@notice Mapping that tracks the deployed subnet actors per user.\n Key is the hash of Subnet ID, values are addresses.\n mapping owner => nonce => subnet" }, "functionSelector": "b67c7b4a", "mutability": "mutable", "name": "subnets", - "nameLocation": "514:7:27", - "scope": 36677, + "nameLocation": "514:7:29", + "scope": 37224, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1104,21 +1119,21 @@ "typeString": "mapping(address => mapping(uint64 => address))" }, "typeName": { - "id": 36523, + "id": 37070, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { - "id": 36519, + "id": 37066, "name": "address", "nodeType": "ElementaryTypeName", - "src": "468:7:27", + "src": "468:7:29", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "460:46:27", + "src": "460:46:29", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint64_$_t_address_$_$", "typeString": "mapping(address => mapping(uint64 => address))" @@ -1126,21 +1141,21 @@ "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 36522, + "id": 37069, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { - "id": 36520, + "id": 37067, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "487:6:27", + "src": "487:6:29", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "Mapping", - "src": "479:26:27", + "src": "479:26:29", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", "typeString": "mapping(uint64 => address)" @@ -1148,10 +1163,10 @@ "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 36521, + "id": 37068, "name": "address", "nodeType": "ElementaryTypeName", - "src": "497:7:27", + "src": "497:7:29", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1163,22 +1178,22 @@ "visibility": "public" }, { - "id": 36529, + "id": 37076, "nodeType": "VariableDeclaration", - "src": "650:44:27", + "src": "650:44:29", "nodes": [], "constant": false, "documentation": { - "id": 36525, + "id": 37072, "nodeType": "StructuredDocumentation", - "src": "528:117:27", + "src": "528:117:29", "text": "@notice Mapping that tracks the latest nonce of the deployed\n subnet for each user.\n owner => nonce" }, "functionSelector": "2f7801f4", "mutability": "mutable", "name": "userNonces", - "nameLocation": "684:10:27", - "scope": 36677, + "nameLocation": "684:10:29", + "scope": 37224, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1186,21 +1201,21 @@ "typeString": "mapping(address => uint64)" }, "typeName": { - "id": 36528, + "id": 37075, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { - "id": 36526, + "id": 37073, "name": "address", "nodeType": "ElementaryTypeName", - "src": "658:7:27", + "src": "658:7:29", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "650:26:27", + "src": "650:26:29", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint64_$", "typeString": "mapping(address => uint64)" @@ -1208,10 +1223,10 @@ "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 36527, + "id": 37074, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "669:6:27", + "src": "669:6:29", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -1221,16 +1236,16 @@ "visibility": "public" }, { - "id": 36531, + "id": 37078, "nodeType": "VariableDeclaration", - "src": "701:32:27", + "src": "701:32:29", "nodes": [], "constant": false, "functionSelector": "116191b6", "mutability": "immutable", "name": "gateway", - "nameLocation": "726:7:27", - "scope": 36677, + "nameLocation": "726:7:29", + "scope": 37224, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1238,10 +1253,10 @@ "typeString": "address" }, "typeName": { - "id": 36530, + "id": 37077, "name": "address", "nodeType": "ElementaryTypeName", - "src": "701:7:27", + "src": "701:7:29", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1251,34 +1266,34 @@ "visibility": "public" }, { - "id": 36536, + "id": 37083, "nodeType": "EventDefinition", - "src": "801:41:27", + "src": "801:41:29", "nodes": [], "anonymous": false, "documentation": { - "id": 36532, + "id": 37079, "nodeType": "StructuredDocumentation", - "src": "740:56:27", + "src": "740:56:29", "text": "@notice Event emitted when a new subnet is deployed." }, "eventSelector": "0431ea4d93af299b92f2c606ddcaf4b31cb0013c5ed1fdea837b8a912347c965", "name": "SubnetDeployed", - "nameLocation": "807:14:27", + "nameLocation": "807:14:29", "parameters": { - "id": 36535, + "id": 37082, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 36534, + "id": 37081, "indexed": false, "mutability": "mutable", "name": "subnetAddr", - "nameLocation": "830:10:27", + "nameLocation": "830:10:29", "nodeType": "VariableDeclaration", - "scope": 36536, - "src": "822:18:27", + "scope": 37083, + "src": "822:18:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1286,10 +1301,10 @@ "typeString": "address" }, "typeName": { - "id": 36533, + "id": 37080, "name": "address", "nodeType": "ElementaryTypeName", - "src": "822:7:27", + "src": "822:7:29", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1299,63 +1314,63 @@ "visibility": "internal" } ], - "src": "821:20:27" + "src": "821:20:29" } }, { - "id": 36538, + "id": 37085, "nodeType": "ErrorDefinition", - "src": "848:21:27", + "src": "848:21:29", "nodes": [], "errorSelector": "3bed0499", "name": "WrongGateway", - "nameLocation": "854:12:27", + "nameLocation": "854:12:29", "parameters": { - "id": 36537, + "id": 37084, "nodeType": "ParameterList", "parameters": [], - "src": "866:2:27" + "src": "866:2:29" } }, { - "id": 36540, + "id": 37087, "nodeType": "ErrorDefinition", - "src": "874:27:27", + "src": "874:27:29", "nodes": [], "errorSelector": "609a8af9", "name": "ZeroGatewayAddress", - "nameLocation": "880:18:27", + "nameLocation": "880:18:29", "parameters": { - "id": 36539, + "id": 37086, "nodeType": "ParameterList", "parameters": [], - "src": "898:2:27" + "src": "898:2:29" } }, { - "id": 36542, + "id": 37089, "nodeType": "ErrorDefinition", - "src": "906:22:27", + "src": "906:22:29", "nodes": [], "errorSelector": "63b0e022", "name": "UnknownSubnet", - "nameLocation": "912:13:27", + "nameLocation": "912:13:29", "parameters": { - "id": 36541, + "id": 37088, "nodeType": "ParameterList", "parameters": [], - "src": "925:2:27" + "src": "925:2:29" } }, { - "id": 36563, + "id": 37110, "nodeType": "FunctionDefinition", - "src": "934:154:27", + "src": "934:154:29", "nodes": [], "body": { - "id": 36562, + "id": 37109, "nodeType": "Block", - "src": "964:124:27", + "src": "964:124:29", "nodes": [], "statements": [ { @@ -1364,18 +1379,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 36552, + "id": 37099, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 36547, + "id": 37094, "name": "_gateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36544, - "src": "978:8:27", + "referencedDeclaration": 37091, + "src": "978:8:29", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1387,14 +1402,14 @@ "arguments": [ { "hexValue": "30", - "id": 36550, + "id": 37097, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "998:1:27", + "src": "998:1:29", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -1409,26 +1424,26 @@ "typeString": "int_const 0" } ], - "id": 36549, + "id": 37096, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "990:7:27", + "src": "990:7:29", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 36548, + "id": 37095, "name": "address", "nodeType": "ElementaryTypeName", - "src": "990:7:27", + "src": "990:7:29", "typeDescriptions": {} } }, - "id": 36551, + "id": 37098, "isConstant": false, "isLValue": false, "isPure": true, @@ -1437,44 +1452,44 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "990:10:27", + "src": "990:10:29", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "978:22:27", + "src": "978:22:29", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 36557, + "id": 37104, "nodeType": "IfStatement", - "src": "974:80:27", + "src": "974:80:29", "trueBody": { - "id": 36556, + "id": 37103, "nodeType": "Block", - "src": "1002:52:27", + "src": "1002:52:29", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 36553, + "id": 37100, "name": "ZeroGatewayAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36540, - "src": "1023:18:27", + "referencedDeclaration": 37087, + "src": "1023:18:29", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 36554, + "id": 37101, "isConstant": false, "isLValue": false, "isPure": false, @@ -1483,34 +1498,34 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1023:20:27", + "src": "1023:20:29", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 36555, + "id": 37102, "nodeType": "RevertStatement", - "src": "1016:27:27" + "src": "1016:27:29" } ] } }, { "expression": { - "id": 36560, + "id": 37107, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 36558, + "id": 37105, "name": "gateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36531, - "src": "1063:7:27", + "referencedDeclaration": 37078, + "src": "1063:7:29", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1519,26 +1534,26 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 36559, + "id": 37106, "name": "_gateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36544, - "src": "1073:8:27", + "referencedDeclaration": 37091, + "src": "1073:8:29", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1063:18:27", + "src": "1063:18:29", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 36561, + "id": 37108, "nodeType": "ExpressionStatement", - "src": "1063:18:27" + "src": "1063:18:29" } ] }, @@ -1548,18 +1563,18 @@ "name": "", "nameLocation": "-1:-1:-1", "parameters": { - "id": 36545, + "id": 37092, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 36544, + "id": 37091, "mutability": "mutable", "name": "_gateway", - "nameLocation": "954:8:27", + "nameLocation": "954:8:29", "nodeType": "VariableDeclaration", - "scope": 36563, - "src": "946:16:27", + "scope": 37110, + "src": "946:16:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1567,10 +1582,10 @@ "typeString": "address" }, "typeName": { - "id": 36543, + "id": 37090, "name": "address", "nodeType": "ElementaryTypeName", - "src": "946:7:27", + "src": "946:7:29", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1580,28 +1595,28 @@ "visibility": "internal" } ], - "src": "945:18:27" + "src": "945:18:29" }, "returnParameters": { - "id": 36546, + "id": 37093, "nodeType": "ParameterList", "parameters": [], - "src": "964:0:27" + "src": "964:0:29" }, - "scope": 36677, + "scope": 37224, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 36614, + "id": 37161, "nodeType": "FunctionDefinition", - "src": "1094:406:27", + "src": "1094:406:29", "nodes": [], "body": { - "id": 36613, + "id": 37160, "nodeType": "Block", - "src": "1201:299:27", + "src": "1201:299:29", "nodes": [], "statements": [ { @@ -1610,34 +1625,34 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 36574, + "id": 37121, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 36571, + "id": 37118, "name": "params", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36566, - "src": "1215:6:27", + "referencedDeclaration": 37113, + "src": "1215:6:29", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConstructParams_$35601_calldata_ptr", + "typeIdentifier": "t_struct$_ConstructParams_$35845_calldata_ptr", "typeString": "struct SubnetActor.ConstructParams calldata" } }, - "id": 36572, + "id": 37119, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1222:14:27", + "memberLocation": "1222:14:29", "memberName": "ipcGatewayAddr", "nodeType": "MemberAccess", - "referencedDeclaration": 35585, - "src": "1215:21:27", + "referencedDeclaration": 35829, + "src": "1215:21:29", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1646,48 +1661,48 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 36573, + "id": 37120, "name": "gateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36531, - "src": "1240:7:27", + "referencedDeclaration": 37078, + "src": "1240:7:29", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1215:32:27", + "src": "1215:32:29", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 36579, + "id": 37126, "nodeType": "IfStatement", - "src": "1211:84:27", + "src": "1211:84:29", "trueBody": { - "id": 36578, + "id": 37125, "nodeType": "Block", - "src": "1249:46:27", + "src": "1249:46:29", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 36575, + "id": 37122, "name": "WrongGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36538, - "src": "1270:12:27", + "referencedDeclaration": 37085, + "src": "1270:12:29", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 36576, + "id": 37123, "isConstant": false, "isLValue": false, "isPure": false, @@ -1696,34 +1711,34 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1270:14:27", + "src": "1270:14:29", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 36577, + "id": 37124, "nodeType": "RevertStatement", - "src": "1263:21:27" + "src": "1263:21:29" } ] } }, { "expression": { - "id": 36589, + "id": 37136, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 36580, + "id": 37127, "name": "subnetAddr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36569, - "src": "1305:10:27", + "referencedDeclaration": 37116, + "src": "1305:10:29", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1736,14 +1751,14 @@ { "arguments": [ { - "id": 36586, + "id": 37133, "name": "params", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36566, - "src": "1342:6:27", + "referencedDeclaration": 37113, + "src": "1342:6:29", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConstructParams_$35601_calldata_ptr", + "typeIdentifier": "t_struct$_ConstructParams_$35845_calldata_ptr", "typeString": "struct SubnetActor.ConstructParams calldata" } } @@ -1751,43 +1766,43 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_ConstructParams_$35601_calldata_ptr", + "typeIdentifier": "t_struct$_ConstructParams_$35845_calldata_ptr", "typeString": "struct SubnetActor.ConstructParams calldata" } ], - "id": 36585, + "id": 37132, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "1326:15:27", + "src": "1326:15:29", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_struct$_ConstructParams_$35601_memory_ptr_$returns$_t_contract$_SubnetActor_$36505_$", + "typeIdentifier": "t_function_creation_nonpayable$_t_struct$_ConstructParams_$35845_memory_ptr_$returns$_t_contract$_SubnetActor_$36753_$", "typeString": "function (struct SubnetActor.ConstructParams memory) returns (contract SubnetActor)" }, "typeName": { - "id": 36584, + "id": 37131, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 36583, + "id": 37130, "name": "SubnetActor", "nameLocations": [ - "1330:11:27" + "1330:11:29" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 36505, - "src": "1330:11:27" + "referencedDeclaration": 36753, + "src": "1330:11:29" }, - "referencedDeclaration": 36505, - "src": "1330:11:27", + "referencedDeclaration": 36753, + "src": "1330:11:29", "typeDescriptions": { - "typeIdentifier": "t_contract$_SubnetActor_$36505", + "typeIdentifier": "t_contract$_SubnetActor_$36753", "typeString": "contract SubnetActor" } } }, - "id": 36587, + "id": 37134, "isConstant": false, "isLValue": false, "isPure": false, @@ -1796,10 +1811,10 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1326:23:27", + "src": "1326:23:29", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_SubnetActor_$36505", + "typeIdentifier": "t_contract$_SubnetActor_$36753", "typeString": "contract SubnetActor" } } @@ -1807,30 +1822,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_SubnetActor_$36505", + "typeIdentifier": "t_contract$_SubnetActor_$36753", "typeString": "contract SubnetActor" } ], - "id": 36582, + "id": 37129, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1318:7:27", + "src": "1318:7:29", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 36581, + "id": 37128, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1318:7:27", + "src": "1318:7:29", "typeDescriptions": {} } }, - "id": 36588, + "id": 37135, "isConstant": false, "isLValue": false, "isPure": false, @@ -1839,26 +1854,26 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1318:32:27", + "src": "1318:32:29", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1305:45:27", + "src": "1305:45:29", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 36590, + "id": 37137, "nodeType": "ExpressionStatement", - "src": "1305:45:27" + "src": "1305:45:29" }, { "expression": { - "id": 36601, + "id": 37148, "isConstant": false, "isLValue": false, "isPure": false, @@ -1866,40 +1881,40 @@ "leftHandSide": { "baseExpression": { "baseExpression": { - "id": 36591, + "id": 37138, "name": "subnets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36524, - "src": "1361:7:27", + "referencedDeclaration": 37071, + "src": "1361:7:29", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint64_$_t_address_$_$", "typeString": "mapping(address => mapping(uint64 => address))" } }, - "id": 36598, + "id": 37145, "indexExpression": { "expression": { - "id": 36592, + "id": 37139, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "1369:3:27", + "src": "1369:3:29", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 36593, + "id": 37140, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1373:6:27", + "memberLocation": "1373:6:29", "memberName": "sender", "nodeType": "MemberAccess", - "src": "1369:10:27", + "src": "1369:10:29", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1910,49 +1925,49 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1361:19:27", + "src": "1361:19:29", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", "typeString": "mapping(uint64 => address)" } }, - "id": 36599, + "id": 37146, "indexExpression": { "baseExpression": { - "id": 36594, + "id": 37141, "name": "userNonces", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36529, - "src": "1381:10:27", + "referencedDeclaration": 37076, + "src": "1381:10:29", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint64_$", "typeString": "mapping(address => uint64)" } }, - "id": 36597, + "id": 37144, "indexExpression": { "expression": { - "id": 36595, + "id": 37142, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "1392:3:27", + "src": "1392:3:29", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 36596, + "id": 37143, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1396:6:27", + "memberLocation": "1396:6:29", "memberName": "sender", "nodeType": "MemberAccess", - "src": "1392:10:27", + "src": "1392:10:29", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1963,7 +1978,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1381:22:27", + "src": "1381:22:29", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -1974,7 +1989,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1361:43:27", + "src": "1361:43:29", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1983,30 +1998,30 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 36600, + "id": 37147, "name": "subnetAddr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36569, - "src": "1407:10:27", + "referencedDeclaration": 37116, + "src": "1407:10:29", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1361:56:27", + "src": "1361:56:29", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 36602, + "id": 37149, "nodeType": "ExpressionStatement", - "src": "1361:56:27" + "src": "1361:56:29" }, { "expression": { - "id": 36607, + "id": 37154, "isConstant": false, "isLValue": false, "isPure": false, @@ -2014,43 +2029,43 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": true, - "src": "1427:24:27", + "src": "1427:24:29", "subExpression": { "baseExpression": { - "id": 36603, + "id": 37150, "name": "userNonces", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36529, - "src": "1429:10:27", + "referencedDeclaration": 37076, + "src": "1429:10:29", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint64_$", "typeString": "mapping(address => uint64)" } }, - "id": 36606, + "id": 37153, "indexExpression": { "expression": { - "id": 36604, + "id": 37151, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "1440:3:27", + "src": "1440:3:29", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 36605, + "id": 37152, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1444:6:27", + "memberLocation": "1444:6:29", "memberName": "sender", "nodeType": "MemberAccess", - "src": "1440:10:27", + "src": "1440:10:29", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2061,7 +2076,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1429:22:27", + "src": "1429:22:29", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -2072,20 +2087,20 @@ "typeString": "uint64" } }, - "id": 36608, + "id": 37155, "nodeType": "ExpressionStatement", - "src": "1427:24:27" + "src": "1427:24:29" }, { "eventCall": { "arguments": [ { - "id": 36610, + "id": 37157, "name": "subnetAddr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36569, - "src": "1482:10:27", + "referencedDeclaration": 37116, + "src": "1482:10:29", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2099,18 +2114,18 @@ "typeString": "address" } ], - "id": 36609, + "id": 37156, "name": "SubnetDeployed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36536, - "src": "1467:14:27", + "referencedDeclaration": 37083, + "src": "1467:14:29", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 36611, + "id": 37158, "isConstant": false, "isLValue": false, "isPure": false, @@ -2119,16 +2134,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1467:26:27", + "src": "1467:26:29", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 36612, + "id": 37159, "nodeType": "EmitStatement", - "src": "1462:31:27" + "src": "1462:31:29" } ] }, @@ -2137,65 +2152,65 @@ "kind": "function", "modifiers": [], "name": "newSubnetActor", - "nameLocation": "1103:14:27", + "nameLocation": "1103:14:29", "parameters": { - "id": 36567, + "id": 37114, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 36566, + "id": 37113, "mutability": "mutable", "name": "params", - "nameLocation": "1155:6:27", + "nameLocation": "1155:6:29", "nodeType": "VariableDeclaration", - "scope": 36614, - "src": "1118:43:27", + "scope": 37161, + "src": "1118:43:29", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConstructParams_$35601_calldata_ptr", + "typeIdentifier": "t_struct$_ConstructParams_$35845_calldata_ptr", "typeString": "struct SubnetActor.ConstructParams" }, "typeName": { - "id": 36565, + "id": 37112, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 36564, + "id": 37111, "name": "SubnetActor.ConstructParams", "nameLocations": [ - "1118:11:27", - "1130:15:27" + "1118:11:29", + "1130:15:29" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 35601, - "src": "1118:27:27" + "referencedDeclaration": 35845, + "src": "1118:27:29" }, - "referencedDeclaration": 35601, - "src": "1118:27:27", + "referencedDeclaration": 35845, + "src": "1118:27:29", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConstructParams_$35601_storage_ptr", + "typeIdentifier": "t_struct$_ConstructParams_$35845_storage_ptr", "typeString": "struct SubnetActor.ConstructParams" } }, "visibility": "internal" } ], - "src": "1117:45:27" + "src": "1117:45:29" }, "returnParameters": { - "id": 36570, + "id": 37117, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 36569, + "id": 37116, "mutability": "mutable", "name": "subnetAddr", - "nameLocation": "1189:10:27", + "nameLocation": "1189:10:29", "nodeType": "VariableDeclaration", - "scope": 36614, - "src": "1181:18:27", + "scope": 37161, + "src": "1181:18:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2203,10 +2218,10 @@ "typeString": "address" }, "typeName": { - "id": 36568, + "id": 37115, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1181:7:27", + "src": "1181:7:29", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2216,38 +2231,38 @@ "visibility": "internal" } ], - "src": "1180:20:27" + "src": "1180:20:29" }, - "scope": 36677, + "scope": 37224, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 36646, + "id": 37193, "nodeType": "FunctionDefinition", - "src": "1596:234:27", + "src": "1596:234:29", "nodes": [], "body": { - "id": 36645, + "id": 37192, "nodeType": "Block", - "src": "1680:150:27", + "src": "1680:150:29", "nodes": [], "statements": [ { "expression": { - "id": 36632, + "id": 37179, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 36622, + "id": 37169, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36620, - "src": "1690:6:27", + "referencedDeclaration": 37167, + "src": "1690:6:29", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2258,25 +2273,25 @@ "rightHandSide": { "baseExpression": { "baseExpression": { - "id": 36623, + "id": 37170, "name": "subnets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36524, - "src": "1699:7:27", + "referencedDeclaration": 37071, + "src": "1699:7:29", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint64_$_t_address_$_$", "typeString": "mapping(address => mapping(uint64 => address))" } }, - "id": 36625, + "id": 37172, "indexExpression": { - "id": 36624, + "id": 37171, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36617, - "src": "1707:5:27", + "referencedDeclaration": 37164, + "src": "1707:5:29", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2287,44 +2302,44 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1699:14:27", + "src": "1699:14:29", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", "typeString": "mapping(uint64 => address)" } }, - "id": 36631, + "id": 37178, "indexExpression": { "commonType": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, - "id": 36630, + "id": 37177, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { - "id": 36626, + "id": 37173, "name": "userNonces", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36529, - "src": "1714:10:27", + "referencedDeclaration": 37076, + "src": "1714:10:29", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint64_$", "typeString": "mapping(address => uint64)" } }, - "id": 36628, + "id": 37175, "indexExpression": { - "id": 36627, + "id": 37174, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36617, - "src": "1725:5:27", + "referencedDeclaration": 37164, + "src": "1725:5:29", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2335,7 +2350,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1714:17:27", + "src": "1714:17:29", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -2345,21 +2360,21 @@ "operator": "-", "rightExpression": { "hexValue": "31", - "id": 36629, + "id": 37176, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1734:1:27", + "src": "1734:1:29", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "1714:21:27", + "src": "1714:21:29", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -2370,21 +2385,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1699:37:27", + "src": "1699:37:29", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1690:46:27", + "src": "1690:46:29", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 36633, + "id": 37180, "nodeType": "ExpressionStatement", - "src": "1690:46:27" + "src": "1690:46:29" }, { "condition": { @@ -2392,18 +2407,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 36639, + "id": 37186, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 36634, + "id": 37181, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36620, - "src": "1750:6:27", + "referencedDeclaration": 37167, + "src": "1750:6:29", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2415,14 +2430,14 @@ "arguments": [ { "hexValue": "30", - "id": 36637, + "id": 37184, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1768:1:27", + "src": "1768:1:29", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -2437,26 +2452,26 @@ "typeString": "int_const 0" } ], - "id": 36636, + "id": 37183, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1760:7:27", + "src": "1760:7:29", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 36635, + "id": 37182, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1760:7:27", + "src": "1760:7:29", "typeDescriptions": {} } }, - "id": 36638, + "id": 37185, "isConstant": false, "isLValue": false, "isPure": true, @@ -2465,44 +2480,44 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1760:10:27", + "src": "1760:10:29", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1750:20:27", + "src": "1750:20:29", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 36644, + "id": 37191, "nodeType": "IfStatement", - "src": "1746:78:27", + "src": "1746:78:29", "trueBody": { - "id": 36643, + "id": 37190, "nodeType": "Block", - "src": "1772:52:27", + "src": "1772:52:29", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 36640, + "id": 37187, "name": "ZeroGatewayAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36540, - "src": "1793:18:27", + "referencedDeclaration": 37087, + "src": "1793:18:29", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 36641, + "id": 37188, "isConstant": false, "isLValue": false, "isPure": false, @@ -2511,16 +2526,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1793:20:27", + "src": "1793:20:29", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 36642, + "id": 37189, "nodeType": "RevertStatement", - "src": "1786:27:27" + "src": "1786:27:29" } ] } @@ -2528,9 +2543,9 @@ ] }, "documentation": { - "id": 36615, + "id": 37162, "nodeType": "StructuredDocumentation", - "src": "1506:85:27", + "src": "1506:85:29", "text": "@notice Returns the address of the latest subnet actor\n deployed by a user" }, "functionSelector": "1163dca5", @@ -2538,20 +2553,20 @@ "kind": "function", "modifiers": [], "name": "latestSubnetDeployed", - "nameLocation": "1605:20:27", + "nameLocation": "1605:20:29", "parameters": { - "id": 36618, + "id": 37165, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 36617, + "id": 37164, "mutability": "mutable", "name": "owner", - "nameLocation": "1634:5:27", + "nameLocation": "1634:5:29", "nodeType": "VariableDeclaration", - "scope": 36646, - "src": "1626:13:27", + "scope": 37193, + "src": "1626:13:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2559,10 +2574,10 @@ "typeString": "address" }, "typeName": { - "id": 36616, + "id": 37163, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1626:7:27", + "src": "1626:7:29", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2572,21 +2587,21 @@ "visibility": "internal" } ], - "src": "1625:15:27" + "src": "1625:15:29" }, "returnParameters": { - "id": 36621, + "id": 37168, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 36620, + "id": 37167, "mutability": "mutable", "name": "subnet", - "nameLocation": "1672:6:27", + "nameLocation": "1672:6:29", "nodeType": "VariableDeclaration", - "scope": 36646, - "src": "1664:14:27", + "scope": 37193, + "src": "1664:14:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2594,10 +2609,10 @@ "typeString": "address" }, "typeName": { - "id": 36619, + "id": 37166, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1664:7:27", + "src": "1664:7:29", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2607,38 +2622,38 @@ "visibility": "internal" } ], - "src": "1663:16:27" + "src": "1663:16:29" }, - "scope": 36677, + "scope": 37224, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 36676, + "id": 37223, "nodeType": "FunctionDefinition", - "src": "1938:236:27", + "src": "1938:236:29", "nodes": [], "body": { - "id": 36675, + "id": 37222, "nodeType": "Block", - "src": "2040:134:27", + "src": "2040:134:29", "nodes": [], "statements": [ { "expression": { - "id": 36662, + "id": 37209, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 36656, + "id": 37203, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36654, - "src": "2050:6:27", + "referencedDeclaration": 37201, + "src": "2050:6:29", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2649,25 +2664,25 @@ "rightHandSide": { "baseExpression": { "baseExpression": { - "id": 36657, + "id": 37204, "name": "subnets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36524, - "src": "2059:7:27", + "referencedDeclaration": 37071, + "src": "2059:7:29", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint64_$_t_address_$_$", "typeString": "mapping(address => mapping(uint64 => address))" } }, - "id": 36659, + "id": 37206, "indexExpression": { - "id": 36658, + "id": 37205, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36649, - "src": "2067:5:27", + "referencedDeclaration": 37196, + "src": "2067:5:29", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2678,20 +2693,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2059:14:27", + "src": "2059:14:29", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", "typeString": "mapping(uint64 => address)" } }, - "id": 36661, + "id": 37208, "indexExpression": { - "id": 36660, + "id": 37207, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36651, - "src": "2074:5:27", + "referencedDeclaration": 37198, + "src": "2074:5:29", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -2702,21 +2717,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2059:21:27", + "src": "2059:21:29", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2050:30:27", + "src": "2050:30:29", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 36663, + "id": 37210, "nodeType": "ExpressionStatement", - "src": "2050:30:27" + "src": "2050:30:29" }, { "condition": { @@ -2724,18 +2739,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 36669, + "id": 37216, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 36664, + "id": 37211, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36654, - "src": "2094:6:27", + "referencedDeclaration": 37201, + "src": "2094:6:29", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2747,14 +2762,14 @@ "arguments": [ { "hexValue": "30", - "id": 36667, + "id": 37214, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2112:1:27", + "src": "2112:1:29", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -2769,26 +2784,26 @@ "typeString": "int_const 0" } ], - "id": 36666, + "id": 37213, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2104:7:27", + "src": "2104:7:29", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 36665, + "id": 37212, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2104:7:27", + "src": "2104:7:29", "typeDescriptions": {} } }, - "id": 36668, + "id": 37215, "isConstant": false, "isLValue": false, "isPure": true, @@ -2797,44 +2812,44 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2104:10:27", + "src": "2104:10:29", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2094:20:27", + "src": "2094:20:29", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 36674, + "id": 37221, "nodeType": "IfStatement", - "src": "2090:78:27", + "src": "2090:78:29", "trueBody": { - "id": 36673, + "id": 37220, "nodeType": "Block", - "src": "2116:52:27", + "src": "2116:52:29", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 36670, + "id": 37217, "name": "ZeroGatewayAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36540, - "src": "2137:18:27", + "referencedDeclaration": 37087, + "src": "2137:18:29", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 36671, + "id": 37218, "isConstant": false, "isLValue": false, "isPure": false, @@ -2843,16 +2858,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2137:20:27", + "src": "2137:20:29", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 36672, + "id": 37219, "nodeType": "RevertStatement", - "src": "2130:27:27" + "src": "2130:27:29" } ] } @@ -2860,9 +2875,9 @@ ] }, "documentation": { - "id": 36647, + "id": 37194, "nodeType": "StructuredDocumentation", - "src": "1836:97:27", + "src": "1836:97:29", "text": "@notice Returns the address of a subnet actor deployed for a\n specific nonce by a user" }, "functionSelector": "9836b75f", @@ -2870,20 +2885,20 @@ "kind": "function", "modifiers": [], "name": "getSubnetDeployedByNonce", - "nameLocation": "1947:24:27", + "nameLocation": "1947:24:29", "parameters": { - "id": 36652, + "id": 37199, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 36649, + "id": 37196, "mutability": "mutable", "name": "owner", - "nameLocation": "1980:5:27", + "nameLocation": "1980:5:29", "nodeType": "VariableDeclaration", - "scope": 36676, - "src": "1972:13:27", + "scope": 37223, + "src": "1972:13:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2891,10 +2906,10 @@ "typeString": "address" }, "typeName": { - "id": 36648, + "id": 37195, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1972:7:27", + "src": "1972:7:29", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2905,13 +2920,13 @@ }, { "constant": false, - "id": 36651, + "id": 37198, "mutability": "mutable", "name": "nonce", - "nameLocation": "1994:5:27", + "nameLocation": "1994:5:29", "nodeType": "VariableDeclaration", - "scope": 36676, - "src": "1987:12:27", + "scope": 37223, + "src": "1987:12:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2919,10 +2934,10 @@ "typeString": "uint64" }, "typeName": { - "id": 36650, + "id": 37197, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "1987:6:27", + "src": "1987:6:29", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -2931,21 +2946,21 @@ "visibility": "internal" } ], - "src": "1971:29:27" + "src": "1971:29:29" }, "returnParameters": { - "id": 36655, + "id": 37202, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 36654, + "id": 37201, "mutability": "mutable", "name": "subnet", - "nameLocation": "2032:6:27", + "nameLocation": "2032:6:29", "nodeType": "VariableDeclaration", - "scope": 36676, - "src": "2024:14:27", + "scope": 37223, + "src": "2024:14:29", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2953,10 +2968,10 @@ "typeString": "address" }, "typeName": { - "id": 36653, + "id": 37200, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2024:7:27", + "src": "2024:7:29", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2966,9 +2981,9 @@ "visibility": "internal" } ], - "src": "2023:16:27" + "src": "2023:16:29" }, - "scope": 36677, + "scope": 37224, "stateMutability": "view", "virtual": false, "visibility": "external" @@ -2978,24 +2993,24 @@ "baseContracts": [], "canonicalName": "SubnetRegistry", "contractDependencies": [ - 36505 + 36753 ], "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ - 36677 + 37224 ], "name": "SubnetRegistry", - "nameLocation": "225:14:27", - "scope": 36678, + "nameLocation": "225:14:29", + "scope": 37225, "usedErrors": [ - 36538, - 36540, - 36542 + 37085, + 37087, + 37089 ] } ], "license": "UNLICENSED" }, - "id": 27 + "id": 29 } \ No newline at end of file From 2c24cebfd73ce1b21b86855e61cbbc0c48fa669b Mon Sep 17 00:00:00 2001 From: cryptoAtwill Date: Tue, 25 Jul 2023 12:42:50 +0800 Subject: [PATCH 02/17] migrate join/leave/kill --- contracts/SubnetActorGetterFacet.json | 6043 +++++++++++ contracts/SubnetActorManagerFacet.json | 12629 +++++++++++++++++++++++ src/manager/evm/conversion.rs | 38 +- src/manager/evm/manager.rs | 16 +- 4 files changed, 18710 insertions(+), 16 deletions(-) create mode 100644 contracts/SubnetActorGetterFacet.json create mode 100644 contracts/SubnetActorManagerFacet.json diff --git a/contracts/SubnetActorGetterFacet.json b/contracts/SubnetActorGetterFacet.json new file mode 100644 index 00000000..9f426e3f --- /dev/null +++ b/contracts/SubnetActorGetterFacet.json @@ -0,0 +1,6043 @@ +{ + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "a", + "type": "address" + } + ], + "name": "accumulatedRewards", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "consensus", + "outputs": [ + { + "internalType": "enum ConsensusType", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "executableQueue", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "genesis", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getParent", + "outputs": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getValidatorSet", + "outputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "address", + "name": "addr", + "type": "address" + }, + { + "internalType": "uint256", + "name": "weight", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "workerAddr", + "type": "tuple" + }, + { + "internalType": "string", + "name": "netAddresses", + "type": "string" + } + ], + "internalType": "struct ValidatorInfo[]", + "name": "validators", + "type": "tuple[]" + }, + { + "internalType": "uint64", + "name": "configurationNumber", + "type": "uint64" + } + ], + "internalType": "struct ValidatorSet", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getValidators", + "outputs": [ + { + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ipcGatewayAddr", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lastVotingExecutedEpoch", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "majorityPercentage", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "minActivationCollateral", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "minValidators", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "prevExecutedCheckpointHash", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "a", + "type": "address" + } + ], + "name": "stake", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "status", + "outputs": [ + { + "internalType": "enum Status", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "topDownCheckPeriod", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalStake", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "validatorAt", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "validatorCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": { + "object": "0x608060405234801561001057600080fd5b50610c0b806100206000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806380f76021116100ad578063ad81e24411610071578063ad81e244146102ce578063b7ab4db5146102d6578063c5ab2241146102eb578063cf331250146102fd578063cfca28241461031257600080fd5b806380f760211461027a5780638b0e9f3f1461028f5780638ef3f761146102975780639e33bd02146102b1578063a7f0b3de146102b957600080fd5b806332e0aa1f116100f457806332e0aa1f146101c6578063599c7bd1146101f15780635f832dbf1461023757806373f273fc1461023f5780637d9740f41461026857600080fd5b806306fdde03146101315780630f43a6771461014857806310d500e114610150578063200d2ed214610183578063264762041461019d575b600080fd5b6010545b6040519081526020015b60405180910390f35b610135610323565b610158610334565b6040805167ffffffffffffffff9485168152928416602084015292169181019190915260600161013f565b600154600160401b900460ff1660405161013f91906108f2565b6101356101ab36600461090c565b6001600160a01b031660009081526007602052604090205490565b6101d96101d4366004610935565b61038d565b6040516001600160a01b03909116815260200161013f565b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27054600160801b900460ff165b60405167ffffffffffffffff909116815260200161013f565b600254610135565b61013561024d36600461090c565b6001600160a01b031660009081526008602052604090205490565b600e5467ffffffffffffffff1661021e565b6102826103a0565b60405161013f919061094e565b600054610135565b600e54600160801b900460ff1660405161013f91906109b9565b601354610135565b6102c1610436565b60405161013f9190610a13565b61021e6104cb565b6102de6104ff565b60405161013f9190610a26565b60125467ffffffffffffffff1661021e565b6103056105a5565b60405161013f9190610a73565b600f546001600160a01b03166101d9565b600061032f6004610895565b905090565b60008060006103827f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e2715467ffffffffffffffff80821692600160401b8304821692600160801b900490911690565b925092509250909192565b600061039a60048361089f565b92915050565b604080518082019091526000815260606020820152604080518082018252600b805467ffffffffffffffff168252600c8054845160208281028201810190965281815293949293838601939092919083018282801561042857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161040a575b505050505081525050905090565b60606000600d01805461044890610b48565b80601f016020809104026020016040519081016040528092919081815260200182805461047490610b48565b80156104c15780601f10610496576101008083540402835291602001916104c1565b820191906000526020600020905b8154815290600101906020018083116104a457829003601f168201915b5050505050905090565b600061032f7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e2705467ffffffffffffffff1690565b6060600061050d6004610895565b905060008167ffffffffffffffff81111561052a5761052a610b82565b604051908082528060200260200182016040528015610553578160200160208202803683370190505b50905060005b8281101561059e5761056c60048261089f565b82828151811061057e5761057e610b98565b6001600160a01b0390921660209283029190910190910152600101610559565b5092915050565b60408051808201909152606081526000602082015260006105c66004610895565b905060008167ffffffffffffffff8111156105e3576105e3610b82565b60405190808252806020026020018201604052801561064857816020015b604080516080810182526000808252602080830182905283518085018552918252606090820181905292820152818101919091528152602001906001900390816106015790505b50905060005b8281101561086f5760408051608081019091528061066d60048461089f565b6001600160a01b031681526020016007600061068a60048661089f565b6001600160a01b031681526020808201929092526040016000908120548352910190600a906106ba60048661089f565b6001600160a01b0316815260208082019290925260409081016000208151808301909252805460ff16825260018101805492939192918401916106fc90610b48565b80601f016020809104026020016040519081016040528092919081815260200182805461072890610b48565b80156107755780601f1061074a57610100808354040283529160200191610775565b820191906000526020600020905b81548152906001019060200180831161075857829003601f168201915b5050509190925250505081526020016009600061079360048661089f565b6001600160a01b03166001600160a01b0316815260200190815260200160002080546107be90610b48565b80601f01602080910402602001604051908101604052809291908181526020018280546107ea90610b48565b80156108375780601f1061080c57610100808354040283529160200191610837565b820191906000526020600020905b81548152906001019060200180831161081a57829003601f168201915b505050505081525082828151811061085157610851610b98565b6020026020010181905250808061086790610bae565b91505061064e565b506040805180820190915290815260015467ffffffffffffffff16602082015292915050565b600061039a825490565b60006108ab83836108b2565b9392505050565b60008260000182815481106108c9576108c9610b98565b9060005260206000200154905092915050565b634e487b7160e01b600052602160045260246000fd5b6020810160068310610906576109066108dc565b91905290565b60006020828403121561091e57600080fd5b81356001600160a01b03811681146108ab57600080fd5b60006020828403121561094757600080fd5b5035919050565b6020808252825167ffffffffffffffff16828201528281015160408084015280516060840181905260009291820190839060808601905b808310156109ae5783516001600160a01b03168252928401926001929092019190840190610985565b509695505050505050565b6020810160018310610906576109066108dc565b6000815180845260005b818110156109f3576020818501810151868301820152016109d7565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006108ab60208301846109cd565b6020808252825182820181905260009190848201906040850190845b81811015610a675783516001600160a01b031683529284019291840191600101610a42565b50909695505050505050565b600060208083526060808401855160408085880152828251808552608094508489019150848160051b8a0101878501945060005b82811015610b25578a8203607f19018452855180516001600160a01b03168352898101518a84015285810151868401899052805160ff16898501528a015160a08401879052610af960c08501826109cd565b918a0151848303858c0152919050610b1181836109cd565b978b0197958b019593505050600101610aa7565b50968a015167ffffffffffffffff8116848b0152969a9950505050505050505050565b600181811c90821680610b5c57607f821691505b602082108103610b7c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600060018201610bce57634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220027d37ba18f5e4b9fbde13a11a1b0952907aa7580ecfcde6ebeace63f4fe5f8d64736f6c63430008130033", + "sourceMap": "1527:4047:67:-:0;;;;;;;;;;;;;;;;;;;", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x608060405234801561001057600080fd5b506004361061012c5760003560e01c806380f76021116100ad578063ad81e24411610071578063ad81e244146102ce578063b7ab4db5146102d6578063c5ab2241146102eb578063cf331250146102fd578063cfca28241461031257600080fd5b806380f760211461027a5780638b0e9f3f1461028f5780638ef3f761146102975780639e33bd02146102b1578063a7f0b3de146102b957600080fd5b806332e0aa1f116100f457806332e0aa1f146101c6578063599c7bd1146101f15780635f832dbf1461023757806373f273fc1461023f5780637d9740f41461026857600080fd5b806306fdde03146101315780630f43a6771461014857806310d500e114610150578063200d2ed214610183578063264762041461019d575b600080fd5b6010545b6040519081526020015b60405180910390f35b610135610323565b610158610334565b6040805167ffffffffffffffff9485168152928416602084015292169181019190915260600161013f565b600154600160401b900460ff1660405161013f91906108f2565b6101356101ab36600461090c565b6001600160a01b031660009081526007602052604090205490565b6101d96101d4366004610935565b61038d565b6040516001600160a01b03909116815260200161013f565b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27054600160801b900460ff165b60405167ffffffffffffffff909116815260200161013f565b600254610135565b61013561024d36600461090c565b6001600160a01b031660009081526008602052604090205490565b600e5467ffffffffffffffff1661021e565b6102826103a0565b60405161013f919061094e565b600054610135565b600e54600160801b900460ff1660405161013f91906109b9565b601354610135565b6102c1610436565b60405161013f9190610a13565b61021e6104cb565b6102de6104ff565b60405161013f9190610a26565b60125467ffffffffffffffff1661021e565b6103056105a5565b60405161013f9190610a73565b600f546001600160a01b03166101d9565b600061032f6004610895565b905090565b60008060006103827f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e2715467ffffffffffffffff80821692600160401b8304821692600160801b900490911690565b925092509250909192565b600061039a60048361089f565b92915050565b604080518082019091526000815260606020820152604080518082018252600b805467ffffffffffffffff168252600c8054845160208281028201810190965281815293949293838601939092919083018282801561042857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161040a575b505050505081525050905090565b60606000600d01805461044890610b48565b80601f016020809104026020016040519081016040528092919081815260200182805461047490610b48565b80156104c15780601f10610496576101008083540402835291602001916104c1565b820191906000526020600020905b8154815290600101906020018083116104a457829003601f168201915b5050505050905090565b600061032f7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e2705467ffffffffffffffff1690565b6060600061050d6004610895565b905060008167ffffffffffffffff81111561052a5761052a610b82565b604051908082528060200260200182016040528015610553578160200160208202803683370190505b50905060005b8281101561059e5761056c60048261089f565b82828151811061057e5761057e610b98565b6001600160a01b0390921660209283029190910190910152600101610559565b5092915050565b60408051808201909152606081526000602082015260006105c66004610895565b905060008167ffffffffffffffff8111156105e3576105e3610b82565b60405190808252806020026020018201604052801561064857816020015b604080516080810182526000808252602080830182905283518085018552918252606090820181905292820152818101919091528152602001906001900390816106015790505b50905060005b8281101561086f5760408051608081019091528061066d60048461089f565b6001600160a01b031681526020016007600061068a60048661089f565b6001600160a01b031681526020808201929092526040016000908120548352910190600a906106ba60048661089f565b6001600160a01b0316815260208082019290925260409081016000208151808301909252805460ff16825260018101805492939192918401916106fc90610b48565b80601f016020809104026020016040519081016040528092919081815260200182805461072890610b48565b80156107755780601f1061074a57610100808354040283529160200191610775565b820191906000526020600020905b81548152906001019060200180831161075857829003601f168201915b5050509190925250505081526020016009600061079360048661089f565b6001600160a01b03166001600160a01b0316815260200190815260200160002080546107be90610b48565b80601f01602080910402602001604051908101604052809291908181526020018280546107ea90610b48565b80156108375780601f1061080c57610100808354040283529160200191610837565b820191906000526020600020905b81548152906001019060200180831161081a57829003601f168201915b505050505081525082828151811061085157610851610b98565b6020026020010181905250808061086790610bae565b91505061064e565b506040805180820190915290815260015467ffffffffffffffff16602082015292915050565b600061039a825490565b60006108ab83836108b2565b9392505050565b60008260000182815481106108c9576108c9610b98565b9060005260206000200154905092915050565b634e487b7160e01b600052602160045260246000fd5b6020810160068310610906576109066108dc565b91905290565b60006020828403121561091e57600080fd5b81356001600160a01b03811681146108ab57600080fd5b60006020828403121561094757600080fd5b5035919050565b6020808252825167ffffffffffffffff16828201528281015160408084015280516060840181905260009291820190839060808601905b808310156109ae5783516001600160a01b03168252928401926001929092019190840190610985565b509695505050505050565b6020810160018310610906576109066108dc565b6000815180845260005b818110156109f3576020818501810151868301820152016109d7565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006108ab60208301846109cd565b6020808252825182820181905260009190848201906040850190845b81811015610a675783516001600160a01b031683529284019291840191600101610a42565b50909695505050505050565b600060208083526060808401855160408085880152828251808552608094508489019150848160051b8a0101878501945060005b82811015610b25578a8203607f19018452855180516001600160a01b03168352898101518a84015285810151868401899052805160ff16898501528a015160a08401879052610af960c08501826109cd565b918a0151848303858c0152919050610b1181836109cd565b978b0197958b019593505050600101610aa7565b50968a015167ffffffffffffffff8116848b0152969a9950505050505050505050565b600181811c90821680610b5c57607f821691505b602082108103610b7c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600060018201610bce57634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220027d37ba18f5e4b9fbde13a11a1b0952907aa7580ecfcde6ebeace63f4fe5f8d64736f6c63430008130033", + "sourceMap": "1527:4047:67:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3932:78;3997:6;;3932:78;;;160:25:83;;;148:2;133:18;3932:78:67;;;;;;;;4052:103;;;:::i;2774:176::-;;;:::i;:::-;;;;691:18:83;736:15;;;718:34;;788:15;;;783:2;768:18;;761:43;840:15;;820:18;;;813:43;;;;669:2;654:18;2774:176:67;485:377:83;2296:81:67;2362:8;;-1:-1:-1;;;2362:8:67;;;;2296:81;;;;;;:::i;3080:92::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3155:10:67;3129:7;3155:10;;;:7;:10;;;;;;;3080:92;4254:114;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1887:32:83;;;1869:51;;1857:2;1842:18;4254:114:67;1723:203:83;3589:115:67;1438:42:58;9899:20;-1:-1:-1;;;9899:20:58;;;;3589:115:67;;;2105:18:83;2093:31;;;2075:50;;2063:2;2048:18;3589:115:67;1931:200:83;2515:122:67;2602:28;;2515:122;;2956:118;;;;;;:::i;:::-;-1:-1:-1;;;;;3044:23:67;3018:7;3044:23;;;:20;:23;;;;;;;2956:118;3383:105;3461:20;;;;3383:105;;2156:95;;;:::i;:::-;;;;;;;:::i;2419:90::-;2464:7;2490:12;2419:90;;3710:94;3786:11;;-1:-1:-1;;;3786:11:67;;;;3710:94;;;;;;:::i;3810:116::-;3894:25;;3810:116;;3494:89;;;:::i;:::-;;;;;;;:::i;2643:125::-;;;:::i;4470:360::-;;;:::i;:::-;;;;;;;:::i;3282:95::-;3355:15;;;;3282:95;;4918:654;;;:::i;:::-;;;;;;;:::i;3178:98::-;3253:16;;-1:-1:-1;;;;;3253:16:67;3178:98;;4052:103;4101:7;4127:21;:12;:19;:21::i;:::-;4120:28;;4052:103;:::o;2774:176::-;2824:6;2832;2840;2916:27;9511:17:58;:24;;;;;;-1:-1:-1;;;9537:23:58;;;;;-1:-1:-1;;;9562:22:58;;;;;;9368:224;2916:27:67;2909:34;;;;;;2774:176;;;:::o;4254:114::-;4313:7;4339:22;:12;4355:5;4339:15;:22::i;:::-;4332:29;4254:114;-1:-1:-1;;4254:114:67:o;2156:95::-;-1:-1:-1;;;;;;;;;;;;;;;;;2227:17:67;;;;;;;;2234:10;2227:17;;;;;;;;;;;;;;;;;;;;;;;;;;;2234:10;;2227:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2227:17:67;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:95;:::o;3494:89::-;3536:12;3567:1;:9;;3560:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3494:89;:::o;2643:125::-;2701:6;2726:35;1438:42:58;9732:25;;;;9598:166;4470:360:67;4518:16;4546:14;4563:21;:12;:19;:21::i;:::-;4546:38;;4594:23;4634:6;4620:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4620:21:67;;4594:47;;4657:9;4652:148;4676:6;4672:1;:10;4652:148;;;4712:18;:12;4728:1;4712:15;:18::i;:::-;4700:6;4707:1;4700:9;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4700:30:67;;;:9;;;;;;;;;;;:30;4772:3;;4652:148;;;-1:-1:-1;4817:6:67;4470:360;-1:-1:-1;;4470:360:67:o;4918:654::-;-1:-1:-1;;;;;;;;;;;;;;;;;4999:14:67;5016:21;:12;:19;:21::i;:::-;4999:38;;5048:30;5101:6;5081:27;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5081:27:67;;;;;;;;;;;;;;;;5048:60;;5124:9;5119:350;5143:6;5139:1;:10;5119:350;;;5183:275;;;;;;;;;;5221:18;:12;5237:1;5221:15;:18::i;:::-;-1:-1:-1;;;;;5183:275:67;;;;;5265:7;:1;5273:18;:12;5289:1;5273:15;:18::i;:::-;-1:-1:-1;;;;;5265:27:67;;;;;;;;;;;;;-1:-1:-1;5265:27:67;;;;5183:275;;;;;5322:26;;5349:18;:12;5365:1;5349:15;:18::i;:::-;-1:-1:-1;;;;;5322:46:67;;;;;;;;;;;;;;;-1:-1:-1;5322:46:67;5183:275;;;;;;;;;;;;;;;;;;;;;5322:46;;5183:275;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5183:275:67;;;;-1:-1:-1;;;5183:275:67;;;;5400:23;:1;5424:18;:12;5440:1;5424:15;:18::i;:::-;-1:-1:-1;;;;;5400:43:67;-1:-1:-1;;;;;5400:43:67;;;;;;;;;;;;5183:275;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5170:7;5178:1;5170:10;;;;;;;;:::i;:::-;;;;;;:288;;;;5151:3;;;;;:::i;:::-;;;;5119:350;;;-1:-1:-1;5486:79:67;;;;;;;;;;;;5542:21;;;;5486:79;;;;;4918:654;-1:-1:-1;;4918:654:67:o;9107:115:24:-;9170:7;9196:19;9204:3;4546:18;;4464:107;9564:156;9638:7;9688:22;9692:3;9704:5;9688:3;:22::i;:::-;9680:31;9564:156;-1:-1:-1;;;9564:156:24:o;4913:118::-;4980:7;5006:3;:11;;5018:5;5006:18;;;;;;;;:::i;:::-;;;;;;;;;4999:25;;4913:118;;;;:::o;867:127:83:-;928:10;923:3;919:20;916:1;909:31;959:4;956:1;949:15;983:4;980:1;973:15;999:243;1143:2;1128:18;;1176:1;1165:13;;1155:47;;1182:18;;:::i;:::-;1211:25;;;999:243;:::o;1247:286::-;1306:6;1359:2;1347:9;1338:7;1334:23;1330:32;1327:52;;;1375:1;1372;1365:12;1327:52;1401:23;;-1:-1:-1;;;;;1453:31:83;;1443:42;;1433:70;;1499:1;1496;1489:12;1538:180;1597:6;1650:2;1638:9;1629:7;1625:23;1621:32;1618:52;;;1666:1;1663;1656:12;1618:52;-1:-1:-1;1689:23:83;;1538:180;-1:-1:-1;1538:180:83:o;2136:844::-;2311:2;2322:21;;;2424:13;;2439:18;2420:38;2400:18;;;2393:66;2494:15;;;2488:22;2548:4;2526:20;;;2519:34;2602:19;;2381:2;2366:18;;2630:22;;;2282:4;;2311:2;2710:21;;;2282:4;;2683:3;2668:19;;;2759:195;2773:6;2770:1;2767:13;2759:195;;;2838:13;;-1:-1:-1;;;;;2834:39:83;2822:52;;2929:15;;;;2870:1;2788:9;;;;;2894:12;;;;2759:195;;;-1:-1:-1;2971:3:83;2136:844;-1:-1:-1;;;;;;2136:844:83:o;2985:250::-;3136:2;3121:18;;3169:1;3158:13;;3148:47;;3175:18;;:::i;3240:422::-;3281:3;3319:5;3313:12;3346:6;3341:3;3334:19;3371:1;3381:162;3395:6;3392:1;3389:13;3381:162;;;3457:4;3513:13;;;3509:22;;3503:29;3485:11;;;3481:20;;3474:59;3410:12;3381:162;;;3385:3;3588:1;3581:4;3572:6;3567:3;3563:16;3559:27;3552:38;3651:4;3644:2;3640:7;3635:2;3627:6;3623:15;3619:29;3614:3;3610:39;3606:50;3599:57;;;3240:422;;;;:::o;3667:217::-;3814:2;3803:9;3796:21;3777:4;3834:44;3874:2;3863:9;3859:18;3851:6;3834:44;:::i;3889:658::-;4060:2;4112:21;;;4182:13;;4085:18;;;4204:22;;;4031:4;;4060:2;4283:15;;;;4257:2;4242:18;;;4031:4;4326:195;4340:6;4337:1;4334:13;4326:195;;;4405:13;;-1:-1:-1;;;;;4401:39:83;4389:52;;4496:15;;;;4461:12;;;;4437:1;4355:9;4326:195;;;-1:-1:-1;4538:3:83;;3889:658;-1:-1:-1;;;;;;3889:658:83:o;4552:1673::-;4706:4;4735:2;4764;4753:9;4746:21;4786:2;4826;4815:9;4811:18;4864:6;4858:13;4890:4;4930:2;4925;4914:9;4910:18;4903:30;4953:6;4988:12;4982:19;5025:6;5017;5010:22;5051:3;5041:13;;5085:2;5074:9;5070:18;5063:25;;5147:2;5137:6;5134:1;5130:14;5119:9;5115:30;5111:39;5191:2;5177:12;5173:21;5159:35;;5212:1;5222:859;5236:6;5233:1;5230:13;5222:859;;;5301:22;;;-1:-1:-1;;5297:37:83;5285:50;;5358:13;;5403:9;;-1:-1:-1;;;;;5399:35:83;5384:51;;5478:11;;;5472:18;5455:15;;;5448:43;5532:11;;;5526:18;5564:15;;;5557:27;;;5625:21;;5648:4;5621:32;5604:15;;;5597:57;5695:23;;5689:30;5422:3;5739:16;;5732:28;;;5784:50;5829:3;5817:16;;5689:30;5784:50;:::i;:::-;5875:11;;;5869:18;5924:16;;;5907:15;;;5900:41;5869:18;5773:61;-1:-1:-1;5964:37:83;5773:61;5869:18;5964:37;:::i;:::-;6024:15;;;;6059:12;;;;5954:47;-1:-1:-1;;;5258:1:83;5251:9;5222:859;;;-1:-1:-1;6118:15:83;;;6112:22;454:18;443:30;;6177:18;;;431:43;6112:22;6213:6;4552:1673;-1:-1:-1;;;;;;;;;;4552:1673:83:o;6230:380::-;6309:1;6305:12;;;;6352;;;6373:61;;6427:4;6419:6;6415:17;6405:27;;6373:61;6480:2;6472:6;6469:14;6449:18;6446:38;6443:161;;6526:10;6521:3;6517:20;6514:1;6507:31;6561:4;6558:1;6551:15;6589:4;6586:1;6579:15;6443:161;;6230:380;;;:::o;6615:127::-;6676:10;6671:3;6667:20;6664:1;6657:31;6707:4;6704:1;6697:15;6731:4;6728:1;6721:15;6747:127;6808:10;6803:3;6799:20;6796:1;6789:31;6839:4;6836:1;6829:15;6863:4;6860:1;6853:15;6879:232;6918:3;6939:17;;;6936:140;;6998:10;6993:3;6989:20;6986:1;6979:31;7033:4;7030:1;7023:15;7061:4;7058:1;7051:15;6936:140;-1:-1:-1;7103:1:83;7092:13;;6879:232::o", + "linkReferences": {} + }, + "methodIdentifiers": { + "accumulatedRewards(address)": "73f273fc", + "consensus()": "8ef3f761", + "executableQueue()": "10d500e1", + "genesis()": "a7f0b3de", + "getParent()": "80f76021", + "getValidatorSet()": "cf331250", + "getValidators()": "b7ab4db5", + "ipcGatewayAddr()": "cfca2824", + "lastVotingExecutedEpoch()": "ad81e244", + "majorityPercentage()": "599c7bd1", + "minActivationCollateral()": "9e33bd02", + "minValidators()": "c5ab2241", + "name()": "06fdde03", + "prevExecutedCheckpointHash()": "5f832dbf", + "stake(address)": "26476204", + "status()": "200d2ed2", + "topDownCheckPeriod()": "7d9740f4", + "totalStake()": "8b0e9f3f", + "validatorAt(uint256)": "32e0aa1f", + "validatorCount()": "0f43a677" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"a\",\"type\":\"address\"}],\"name\":\"accumulatedRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"consensus\",\"outputs\":[{\"internalType\":\"enum ConsensusType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executableQueue\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesis\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getParent\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getValidatorSet\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"workerAddr\",\"type\":\"tuple\"},{\"internalType\":\"string\",\"name\":\"netAddresses\",\"type\":\"string\"}],\"internalType\":\"struct ValidatorInfo[]\",\"name\":\"validators\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"configurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct ValidatorSet\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getValidators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ipcGatewayAddr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastVotingExecutedEpoch\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"majorityPercentage\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minActivationCollateral\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minValidators\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"prevExecutedCheckpointHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"a\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"status\",\"outputs\":[{\"internalType\":\"enum Status\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"topDownCheckPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"validatorAt\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"validatorAt(uint256)\":{\"params\":{\"index\":\"- the index of the validator set\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getParent()\":{\"notice\":\"get the parent subnet id\"},\"getValidatorSet()\":{\"notice\":\"get the full details of the validators, not just their addresses.\"},\"getValidators()\":{\"notice\":\"get all the validators in the subnet. TODO: we can introduce pagination\"},\"status()\":{\"notice\":\"get the current status\"},\"totalStake()\":{\"notice\":\"get the total stake\"},\"validatorAt(uint256)\":{\"notice\":\"get validator at index\"},\"validatorCount()\":{\"notice\":\"get validator count\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/subnet/SubnetActorGetterFacet.sol\":\"SubnetActorGetterFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xb8d40721965efd93b5369d55083181226d3c7e1be4a968c04de35d44ba44f29a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5c4b0089788aa7112cce88602212c3895999f464e00d1c40d7f27ac9288798b\",\"dweb:/ipfs/Qmd69EuGeoCYPfPkGA4hayH4s2upmAe3XaoDf4ggYNEoZ4\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x31f34a3baec77c087d2bdbc5c277f169e505b905aeb43cfcea1734175140f621\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5a3bc8093b31b685ef879e8ffaaab614594cb6f98ddac4f18c411f7bbf99d0d\",\"dweb:/ipfs/QmSFfA9pH3xo8hnWKCFKTwGi8kz68YXuAwyLXsYe6KjC3Z\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xdb6d7e26320438bdd421598eb64e6fe2b03867a4dd07c9c820994b7bec26f7b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2adf1566393ddf260fb2064dd0c67be00123b8978be8b62cc45ac97aff859949\",\"dweb:/ipfs/QmaDLzQpnitEJDAJo4squpKumr5x4D2QYetPdT3jZd8hYm\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x8a925dea568a61a38de9615aae7bb462d9eb6f8eb2c6ca409f1e740519077ab8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b7e2f836581694867c09bb9c80ff2ab6ae039ece2ff3bbf4d1bc2026449fa551\",\"dweb:/ipfs/QmVMvaQSCRBHZudSV8AzimYre76tJVm4UrHYnrT89zcjho\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xf6fd4f824e7dd9fe651bd11596f3045f32e67be595f91078c2b326e45aec4ce4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a674b1a6824a75749bb0a71b4791ff329907083ffb028b04634e94ddbcc2b2f3\",\"dweb:/ipfs/QmTkoSu2mRktfadkjhdgisBaWoZxb8iC3bacUwqCt44PNQ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0xf29c18f694b5acc919b7cada2875ca3bd2c52ddd7ef86ee747aab0faeb50ac8b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d8fb92f533cc119c578da73b06efe76b0efaa612af7c77178eb903952fcf53df\",\"dweb:/ipfs/QmdosRgUmvwXRnxq5TmoJoFMs7TULduTFpMUNyYXQNGfQD\"]},\"src/enums/VoteExecutionStatus.sol\":{\"keccak256\":\"0x56d1db8abf83feb0f1d69f1919fbd5bd79c6f3c5bf3c149950d307b9d62b6455\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb2ec0f87a9091eab463ac6a776d5737189e0239f412b36b975bb0be1fcb4ad8\",\"dweb:/ipfs/QmWiXwab54Ag2f1kyGjqT3brh5JrV5Lc7cqod9VPaS5ey6\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xab09aee88feca01f5c23baa475aa02bb8c1b189e60a7b81848a07e00b9ab708c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1f5d874688d7316a0eb382b6fb1e7ea6648b15aaaab95acc51f18bfcab851d61\",\"dweb:/ipfs/QmdZRRmWrkrn5MmEX3n5yWEREtoCvXNxzoVkPWSH64ENpd\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x57865785239b076bc429cd989bc5cb2a2e68050c7293a5a537d8cdeded170294\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://28285703560a0bbfa247c894c9f14f2a14e02e430e7dedb0a05b58c53aed3763\",\"dweb:/ipfs/QmcrNx18jZYJ7dRduWu1do3th74cHy7zn9Zx8x13WsCLj5\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0xe3f7371c7c7af8dfa71daa6c4171f6853c9ab1fdd619c09eb12c11ff18d17d91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6a09ea45ed335eada22e7cf3643c17d1c59750ed2156cc29c0960a8e8b53e394\",\"dweb:/ipfs/QmSYTNGqP9wEJnPDXmvghfL8zL8BrHGnixhbsimA9oydLG\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x86bf44c7e35907c1b0ed2fd55a6a8a277b46e6ee52b6933610504bc1d2de3b12\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb47357cd7342f951e5d08b1960e9ab7d458463e71ce08ff61b900bbb04118f0\",\"dweb:/ipfs/QmTKHhnYs1xKZUwCmSRPmSi5utfGrosYV57fSoGF7bGnJs\"]},\"src/lib/CheckpointHelper.sol\":{\"keccak256\":\"0x25d67ccc67b6b537df920c92dc3c704dc097e000c444149d3732e1d20848a269\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5823e88c38b5c4e90ee5700cee5a5fd8d982015dab7ea1cbe2f26d62a359ae76\",\"dweb:/ipfs/QmT9Ves86HoEqQciunzEwvDsyv2dgQwF8uPUjNuGsycHuF\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0xe7aacc0bc5eb10763685d6766524f6db05b151b37de4ccbd2b04649e54b9af36\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d6fae33fe9dc258efc3e0c484c6e69ff8314af266c78fd9b3d20c5bf8f251865\",\"dweb:/ipfs/QmYYpC6GnJNRvAg3MCSHKHk47cas888N3HzmMrmiRT4bnJ\"]},\"src/lib/EpochVoteSubmissionHelper.sol\":{\"keccak256\":\"0x1eaf867ddfc3e83d5a2ca50a81809e1529ea2436a8d2697d868bc8653b8c6c9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://65eb6a69fdb0fd8bfc1cd3d5044791225ff9fa8887dda49fd530e7c46e6e5366\",\"dweb:/ipfs/QmepF17eiqGqiNJRfeCohdeVw2aJxgkFS1AyFSM78v16nC\"]},\"src/lib/ExecutableQueueHelper.sol\":{\"keccak256\":\"0x66b7ba58bb9ba987789f22dcc5e44f1720876a79a52a9630d886490d48f80ece\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8b388b9f63b4f86ac03f24089a1f110e482ae89b1eb628fc78aeead1d6f50869\",\"dweb:/ipfs/QmVGVh9r2GBgXRn7Z13sMKmnn3xjfHm9tM3mnLUH1UwjQX\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x80d7d30532305664e31ad114d702904287e6f93954b420315f660ddf30791ac6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0b108070a13f76614f36e46f0af85d12aa53209ff9bb9c32ee1945be3e0a1fe1\",\"dweb:/ipfs/QmcyMuCZB4Z3qFUUjvcoVeSePJXU5F9hN4Zhy94U2qqcPq\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x04d8b15d89be847fced554bfc8ed1ea1d9e92ccab8799acc83cde19706e43d31\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1a2ebe2cbf011ee931874dec86dc69991b9bf3cebdbd0a38b2bc8d9f22b999f7\",\"dweb:/ipfs/QmQZxinNFFsym6GJwRRqeFLQk8HBMuzUagQETK3iMc4M4M\"]},\"src/lib/LibVoting.sol\":{\"keccak256\":\"0x3e5c9359758e7a7200c3a1e7c3a8edfbe6912e8c0a2edde1d2a9e4907b89cb91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://589fa228fdc537a56839520408ec06fc34658ef7a3ca7481b089f9d966f8ed39\",\"dweb:/ipfs/QmNQ4kPeGN5JAhFQyfEnYmmvp83dPQ6QhQKQfZhqgWKjDK\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0xf82021571aa9a7b021b2d24b2c0eb80c5796b9f28ebb6a1c239146c0c0168817\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b546fc429093a558b9382e28886d1f09e7f308e55f6398989583bc420a630326\",\"dweb:/ipfs/QmSmQPQbMBX8N8r8nGboBWdzJjUaK7ACaFUf8XosZVZPT8\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0xcddaa4630a6f68c59a819bafee579a8979cc9fd7b00d5b49f99eeefb9ce0c02c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9713f988a5709dea3ee0fb204a2d0b64b0dc115912ed9eb128f479156d97a949\",\"dweb:/ipfs/QmUjTAvd2eAYQFqgfZUf5R67daeC7eUKrL6WrFb8oEWB9j\"]},\"src/structs/EpochVoteSubmission.sol\":{\"keccak256\":\"0x4cc52a36cac1a063bf1f996b91ea81ce118b7ce8923e62cec6e5bf08b689e96a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb33236d8c7a40e17c416a21e9f0df268d6a7f4d6ba1df86ab0c2dbf444702e9\",\"dweb:/ipfs/QmXEbdkweqL1f4Q71YPiuxwhQooh1oim9oBybAbr9Jd3A2\"]},\"src/structs/ExecutableQueue.sol\":{\"keccak256\":\"0xfacfd91786edac0462f4bba34d3a3766c8785925ae96301b68b76fba78c5cab4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb421106bc9158e8a12dd7054d265113dd890337937e73acb03f03e33a13eb18\",\"dweb:/ipfs/Qmdxs4akDWuzwf5nYsCaNuYNZ5sTrMCzdgVMuSpKCjFyaP\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xbaae3da91048d76b5bab0404eebf7dc41ed273a8cd1f4143ea1b3403d89f77c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5a69d76f5022d2e19f69ef0d70d4c5e3a3e7ae8e02fcfdb2682c901ac2f3a707\",\"dweb:/ipfs/QmYEWyPz9UqVssUpU42VTv6DhzRNAfaHKt9ZsNCAvtLjTr\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0xb37b12df0c9ff47c2e88f9612b624bb44e6de5dfb8030dfd83582997dcd6aa83\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a321a05abf7b3b461e3d6c4ac27b18d3e14dffad9e2bf9a0ceb68538a02ab1e4\",\"dweb:/ipfs/QmPo878trP8pv9yXXpwUHSnP7Xt6uz9eWuB25pz2JGiCot\"]},\"src/structs/Validator.sol\":{\"keccak256\":\"0x6c9c0695c1437c728861fbb12f4ab1816ebfbc28e34b623b6bc6a0ebf4180213\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e2cb3a20778ad098183bfd33f5acc6930c312a2de1ad9406e0ce0ffdf7dc018d\",\"dweb:/ipfs/QmX8VZ5Tcm2V5ahbnpjd8C9raatPE5entuKBWGkUoFdyBh\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0xdc13dd71486f461e48497bd2f25949e8e76afd11f850204e66160bd314bca7b7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://57a9efb880d9e55b6514c2db7e047c240fb8d086660cfc5558a1356226503552\",\"dweb:/ipfs/QmZG2J78cGu9QaxqmrNnAteRCZQHdHXt9XGDUh6HdNwxNb\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.19+commit.7dd6d404" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "a", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "accumulatedRewards", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "consensus", + "outputs": [ + { + "internalType": "enum ConsensusType", + "name": "", + "type": "uint8" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "executableQueue", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "genesis", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "getParent", + "outputs": [ + { + "internalType": "struct SubnetID", + "name": "", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "getValidatorSet", + "outputs": [ + { + "internalType": "struct ValidatorSet", + "name": "", + "type": "tuple", + "components": [ + { + "internalType": "struct ValidatorInfo[]", + "name": "validators", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "addr", + "type": "address" + }, + { + "internalType": "uint256", + "name": "weight", + "type": "uint256" + }, + { + "internalType": "struct FvmAddress", + "name": "workerAddr", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + }, + { + "internalType": "string", + "name": "netAddresses", + "type": "string" + } + ] + }, + { + "internalType": "uint64", + "name": "configurationNumber", + "type": "uint64" + } + ] + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "getValidators", + "outputs": [ + { + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "ipcGatewayAddr", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "lastVotingExecutedEpoch", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "majorityPercentage", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "minActivationCollateral", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "minValidators", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "name", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "prevExecutedCheckpointHash", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "a", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "stake", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "status", + "outputs": [ + { + "internalType": "enum Status", + "name": "", + "type": "uint8" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "topDownCheckPeriod", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "totalStake", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "validatorAt", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "validatorCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + } + ], + "devdoc": { + "kind": "dev", + "methods": { + "validatorAt(uint256)": { + "params": { + "index": "- the index of the validator set" + } + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": { + "getParent()": { + "notice": "get the parent subnet id" + }, + "getValidatorSet()": { + "notice": "get the full details of the validators, not just their addresses." + }, + "getValidators()": { + "notice": "get all the validators in the subnet. TODO: we can introduce pagination" + }, + "status()": { + "notice": "get the current status" + }, + "totalStake()": { + "notice": "get the total stake" + }, + "validatorAt(uint256)": { + "notice": "get validator at index" + }, + "validatorCount()": { + "notice": "get validator count" + } + }, + "version": 1 + } + }, + "settings": { + "remappings": [ + ":@openzeppelin/=node_modules/@openzeppelin/", + ":ds-test/=lib/forge-std/lib/ds-test/src/", + ":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", + ":fevmate/=lib/fevmate/contracts/", + ":forge-std/=lib/forge-std/src/", + ":hardhat-deploy/=node_modules/hardhat-deploy/", + ":hardhat/=node_modules/hardhat/", + ":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/", + ":openzeppelin/=lib/openzeppelin-contracts/contracts/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "src/subnet/SubnetActorGetterFacet.sol": "SubnetActorGetterFacet" + }, + "libraries": {} + }, + "sources": { + "lib/fevmate/contracts/utils/FilAddress.sol": { + "keccak256": "0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31", + "urls": [ + "bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7", + "dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/Address.sol": { + "keccak256": "0xb8d40721965efd93b5369d55083181226d3c7e1be4a968c04de35d44ba44f29a", + "urls": [ + "bzz-raw://e5c4b0089788aa7112cce88602212c3895999f464e00d1c40d7f27ac9288798b", + "dweb:/ipfs/Qmd69EuGeoCYPfPkGA4hayH4s2upmAe3XaoDf4ggYNEoZ4" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/Strings.sol": { + "keccak256": "0x31f34a3baec77c087d2bdbc5c277f169e505b905aeb43cfcea1734175140f621", + "urls": [ + "bzz-raw://b5a3bc8093b31b685ef879e8ffaaab614594cb6f98ddac4f18c411f7bbf99d0d", + "dweb:/ipfs/QmSFfA9pH3xo8hnWKCFKTwGi8kz68YXuAwyLXsYe6KjC3Z" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol": { + "keccak256": "0xdb6d7e26320438bdd421598eb64e6fe2b03867a4dd07c9c820994b7bec26f7b0", + "urls": [ + "bzz-raw://2adf1566393ddf260fb2064dd0c67be00123b8978be8b62cc45ac97aff859949", + "dweb:/ipfs/QmaDLzQpnitEJDAJo4squpKumr5x4D2QYetPdT3jZd8hYm" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol": { + "keccak256": "0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb", + "urls": [ + "bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b", + "dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol": { + "keccak256": "0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892", + "urls": [ + "bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593", + "dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT" + ], + "license": "MIT" + }, + "src/constants/Constants.sol": { + "keccak256": "0x8a925dea568a61a38de9615aae7bb462d9eb6f8eb2c6ca409f1e740519077ab8", + "urls": [ + "bzz-raw://b7e2f836581694867c09bb9c80ff2ab6ae039ece2ff3bbf4d1bc2026449fa551", + "dweb:/ipfs/QmVMvaQSCRBHZudSV8AzimYre76tJVm4UrHYnrT89zcjho" + ], + "license": "UNLICENSED" + }, + "src/enums/ConsensusType.sol": { + "keccak256": "0xf6fd4f824e7dd9fe651bd11596f3045f32e67be595f91078c2b326e45aec4ce4", + "urls": [ + "bzz-raw://a674b1a6824a75749bb0a71b4791ff329907083ffb028b04634e94ddbcc2b2f3", + "dweb:/ipfs/QmTkoSu2mRktfadkjhdgisBaWoZxb8iC3bacUwqCt44PNQ" + ], + "license": "UNLICENSED" + }, + "src/enums/Status.sol": { + "keccak256": "0xf29c18f694b5acc919b7cada2875ca3bd2c52ddd7ef86ee747aab0faeb50ac8b", + "urls": [ + "bzz-raw://d8fb92f533cc119c578da73b06efe76b0efaa612af7c77178eb903952fcf53df", + "dweb:/ipfs/QmdosRgUmvwXRnxq5TmoJoFMs7TULduTFpMUNyYXQNGfQD" + ], + "license": "UNLICENSED" + }, + "src/enums/VoteExecutionStatus.sol": { + "keccak256": "0x56d1db8abf83feb0f1d69f1919fbd5bd79c6f3c5bf3c149950d307b9d62b6455", + "urls": [ + "bzz-raw://bb2ec0f87a9091eab463ac6a776d5737189e0239f412b36b975bb0be1fcb4ad8", + "dweb:/ipfs/QmWiXwab54Ag2f1kyGjqT3brh5JrV5Lc7cqod9VPaS5ey6" + ], + "license": "UNLICENSED" + }, + "src/errors/IPCErrors.sol": { + "keccak256": "0xab09aee88feca01f5c23baa475aa02bb8c1b189e60a7b81848a07e00b9ab708c", + "urls": [ + "bzz-raw://1f5d874688d7316a0eb382b6fb1e7ea6648b15aaaab95acc51f18bfcab851d61", + "dweb:/ipfs/QmdZRRmWrkrn5MmEX3n5yWEREtoCvXNxzoVkPWSH64ENpd" + ], + "license": "UNLICENSED" + }, + "src/interfaces/IGateway.sol": { + "keccak256": "0x57865785239b076bc429cd989bc5cb2a2e68050c7293a5a537d8cdeded170294", + "urls": [ + "bzz-raw://28285703560a0bbfa247c894c9f14f2a14e02e430e7dedb0a05b58c53aed3763", + "dweb:/ipfs/QmcrNx18jZYJ7dRduWu1do3th74cHy7zn9Zx8x13WsCLj5" + ], + "license": "UNLICENSED" + }, + "src/interfaces/ISubnetActor.sol": { + "keccak256": "0xe3f7371c7c7af8dfa71daa6c4171f6853c9ab1fdd619c09eb12c11ff18d17d91", + "urls": [ + "bzz-raw://6a09ea45ed335eada22e7cf3643c17d1c59750ed2156cc29c0960a8e8b53e394", + "dweb:/ipfs/QmSYTNGqP9wEJnPDXmvghfL8zL8BrHGnixhbsimA9oydLG" + ], + "license": "UNLICENSED" + }, + "src/lib/AccountHelper.sol": { + "keccak256": "0x86bf44c7e35907c1b0ed2fd55a6a8a277b46e6ee52b6933610504bc1d2de3b12", + "urls": [ + "bzz-raw://bb47357cd7342f951e5d08b1960e9ab7d458463e71ce08ff61b900bbb04118f0", + "dweb:/ipfs/QmTKHhnYs1xKZUwCmSRPmSi5utfGrosYV57fSoGF7bGnJs" + ], + "license": "UNLICENSED" + }, + "src/lib/CheckpointHelper.sol": { + "keccak256": "0x25d67ccc67b6b537df920c92dc3c704dc097e000c444149d3732e1d20848a269", + "urls": [ + "bzz-raw://5823e88c38b5c4e90ee5700cee5a5fd8d982015dab7ea1cbe2f26d62a359ae76", + "dweb:/ipfs/QmT9Ves86HoEqQciunzEwvDsyv2dgQwF8uPUjNuGsycHuF" + ], + "license": "UNLICENSED" + }, + "src/lib/CrossMsgHelper.sol": { + "keccak256": "0xe7aacc0bc5eb10763685d6766524f6db05b151b37de4ccbd2b04649e54b9af36", + "urls": [ + "bzz-raw://d6fae33fe9dc258efc3e0c484c6e69ff8314af266c78fd9b3d20c5bf8f251865", + "dweb:/ipfs/QmYYpC6GnJNRvAg3MCSHKHk47cas888N3HzmMrmiRT4bnJ" + ], + "license": "UNLICENSED" + }, + "src/lib/EpochVoteSubmissionHelper.sol": { + "keccak256": "0x1eaf867ddfc3e83d5a2ca50a81809e1529ea2436a8d2697d868bc8653b8c6c9e", + "urls": [ + "bzz-raw://65eb6a69fdb0fd8bfc1cd3d5044791225ff9fa8887dda49fd530e7c46e6e5366", + "dweb:/ipfs/QmepF17eiqGqiNJRfeCohdeVw2aJxgkFS1AyFSM78v16nC" + ], + "license": "UNLICENSED" + }, + "src/lib/ExecutableQueueHelper.sol": { + "keccak256": "0x66b7ba58bb9ba987789f22dcc5e44f1720876a79a52a9630d886490d48f80ece", + "urls": [ + "bzz-raw://8b388b9f63b4f86ac03f24089a1f110e482ae89b1eb628fc78aeead1d6f50869", + "dweb:/ipfs/QmVGVh9r2GBgXRn7Z13sMKmnn3xjfHm9tM3mnLUH1UwjQX" + ], + "license": "UNLICENSED" + }, + "src/lib/FvmAddressHelper.sol": { + "keccak256": "0x80d7d30532305664e31ad114d702904287e6f93954b420315f660ddf30791ac6", + "urls": [ + "bzz-raw://0b108070a13f76614f36e46f0af85d12aa53209ff9bb9c32ee1945be3e0a1fe1", + "dweb:/ipfs/QmcyMuCZB4Z3qFUUjvcoVeSePJXU5F9hN4Zhy94U2qqcPq" + ], + "license": "UNLICENSED" + }, + "src/lib/LibSubnetActorStorage.sol": { + "keccak256": "0x04d8b15d89be847fced554bfc8ed1ea1d9e92ccab8799acc83cde19706e43d31", + "urls": [ + "bzz-raw://1a2ebe2cbf011ee931874dec86dc69991b9bf3cebdbd0a38b2bc8d9f22b999f7", + "dweb:/ipfs/QmQZxinNFFsym6GJwRRqeFLQk8HBMuzUagQETK3iMc4M4M" + ], + "license": "UNLICENSED" + }, + "src/lib/LibVoting.sol": { + "keccak256": "0x3e5c9359758e7a7200c3a1e7c3a8edfbe6912e8c0a2edde1d2a9e4907b89cb91", + "urls": [ + "bzz-raw://589fa228fdc537a56839520408ec06fc34658ef7a3ca7481b089f9d966f8ed39", + "dweb:/ipfs/QmNQ4kPeGN5JAhFQyfEnYmmvp83dPQ6QhQKQfZhqgWKjDK" + ], + "license": "UNLICENSED" + }, + "src/lib/SubnetIDHelper.sol": { + "keccak256": "0xf82021571aa9a7b021b2d24b2c0eb80c5796b9f28ebb6a1c239146c0c0168817", + "urls": [ + "bzz-raw://b546fc429093a558b9382e28886d1f09e7f308e55f6398989583bc420a630326", + "dweb:/ipfs/QmSmQPQbMBX8N8r8nGboBWdzJjUaK7ACaFUf8XosZVZPT8" + ], + "license": "UNLICENSED" + }, + "src/structs/Checkpoint.sol": { + "keccak256": "0xcddaa4630a6f68c59a819bafee579a8979cc9fd7b00d5b49f99eeefb9ce0c02c", + "urls": [ + "bzz-raw://9713f988a5709dea3ee0fb204a2d0b64b0dc115912ed9eb128f479156d97a949", + "dweb:/ipfs/QmUjTAvd2eAYQFqgfZUf5R67daeC7eUKrL6WrFb8oEWB9j" + ], + "license": "UNLICENSED" + }, + "src/structs/EpochVoteSubmission.sol": { + "keccak256": "0x4cc52a36cac1a063bf1f996b91ea81ce118b7ce8923e62cec6e5bf08b689e96a", + "urls": [ + "bzz-raw://fb33236d8c7a40e17c416a21e9f0df268d6a7f4d6ba1df86ab0c2dbf444702e9", + "dweb:/ipfs/QmXEbdkweqL1f4Q71YPiuxwhQooh1oim9oBybAbr9Jd3A2" + ], + "license": "UNLICENSED" + }, + "src/structs/ExecutableQueue.sol": { + "keccak256": "0xfacfd91786edac0462f4bba34d3a3766c8785925ae96301b68b76fba78c5cab4", + "urls": [ + "bzz-raw://bb421106bc9158e8a12dd7054d265113dd890337937e73acb03f03e33a13eb18", + "dweb:/ipfs/Qmdxs4akDWuzwf5nYsCaNuYNZ5sTrMCzdgVMuSpKCjFyaP" + ], + "license": "UNLICENSED" + }, + "src/structs/FvmAddress.sol": { + "keccak256": "0xbaae3da91048d76b5bab0404eebf7dc41ed273a8cd1f4143ea1b3403d89f77c9", + "urls": [ + "bzz-raw://5a69d76f5022d2e19f69ef0d70d4c5e3a3e7ae8e02fcfdb2682c901ac2f3a707", + "dweb:/ipfs/QmYEWyPz9UqVssUpU42VTv6DhzRNAfaHKt9ZsNCAvtLjTr" + ], + "license": "UNLICENSED" + }, + "src/structs/Subnet.sol": { + "keccak256": "0xb37b12df0c9ff47c2e88f9612b624bb44e6de5dfb8030dfd83582997dcd6aa83", + "urls": [ + "bzz-raw://a321a05abf7b3b461e3d6c4ac27b18d3e14dffad9e2bf9a0ceb68538a02ab1e4", + "dweb:/ipfs/QmPo878trP8pv9yXXpwUHSnP7Xt6uz9eWuB25pz2JGiCot" + ], + "license": "UNLICENSED" + }, + "src/structs/Validator.sol": { + "keccak256": "0x6c9c0695c1437c728861fbb12f4ab1816ebfbc28e34b623b6bc6a0ebf4180213", + "urls": [ + "bzz-raw://e2cb3a20778ad098183bfd33f5acc6930c312a2de1ad9406e0ce0ffdf7dc018d", + "dweb:/ipfs/QmX8VZ5Tcm2V5ahbnpjd8C9raatPE5entuKBWGkUoFdyBh" + ], + "license": "UNLICENSED" + }, + "src/subnet/SubnetActorGetterFacet.sol": { + "keccak256": "0xdc13dd71486f461e48497bd2f25949e8e76afd11f850204e66160bd314bca7b7", + "urls": [ + "bzz-raw://57a9efb880d9e55b6514c2db7e047c240fb8d086660cfc5558a1356226503552", + "dweb:/ipfs/QmZG2J78cGu9QaxqmrNnAteRCZQHdHXt9XGDUh6HdNwxNb" + ], + "license": "UNLICENSED" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "src/subnet/SubnetActorGetterFacet.sol", + "id": 44748, + "exportedSymbols": { + "AccountHelper": [ + 40508 + ], + "Address": [ + 29869 + ], + "BottomUpCheckpoint": [ + 44156 + ], + "CheckpointHelper": [ + 40776 + ], + "ChildCheck": [ + 44170 + ], + "ConsensusType": [ + 38123 + ], + "CrossMsg": [ + 44176 + ], + "CrossMsgHelper": [ + 41103 + ], + "EnumerableSet": [ + 33009 + ], + "EpochVoteBottomUpSubmission": [ + 44233 + ], + "EpochVoteSubmission": [ + 44215 + ], + "EpochVoteSubmissionHelper": [ + 41151 + ], + "ExecutableQueue": [ + 44246 + ], + "ExecutableQueueHelper": [ + 41355 + ], + "FilAddress": [ + 298 + ], + "FvmAddress": [ + 44253 + ], + "FvmAddressHelper": [ + 41482 + ], + "IGateway": [ + 40421 + ], + "ISubnetActor": [ + 40459 + ], + "LibVoting": [ + 43438 + ], + "Status": [ + 38137 + ], + "SubnetActorGetterFacet": [ + 44747 + ], + "SubnetActorStorage": [ + 42694 + ], + "SubnetID": [ + 44279 + ], + "SubnetIDHelper": [ + 44131 + ], + "ValidatorInfo": [ + 44324 + ], + "ValidatorSet": [ + 44331 + ] + }, + "nodeType": "SourceUnit", + "src": "39:5536:67", + "nodes": [ + { + "id": 44333, + "nodeType": "PragmaDirective", + "src": "39:23:67", + "nodes": [], + "literals": [ + "solidity", + "0.8", + ".19" + ] + }, + { + "id": 44335, + "nodeType": "ImportDirective", + "src": "64:53:67", + "nodes": [], + "absolutePath": "src/structs/FvmAddress.sol", + "file": "../structs/FvmAddress.sol", + "nameLocation": "-1:-1:-1", + "scope": 44748, + "sourceUnit": 44261, + "symbolAliases": [ + { + "foreign": { + "id": 44334, + "name": "FvmAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44253, + "src": "72:10:67", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44339, + "nodeType": "ImportDirective", + "src": "118:83:67", + "nodes": [], + "absolutePath": "src/structs/Checkpoint.sol", + "file": "../structs/Checkpoint.sol", + "nameLocation": "-1:-1:-1", + "scope": 44748, + "sourceUnit": 44192, + "symbolAliases": [ + { + "foreign": { + "id": 44336, + "name": "BottomUpCheckpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44156, + "src": "126:18:67", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 44337, + "name": "CrossMsg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44176, + "src": "146:8:67", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 44338, + "name": "ChildCheck", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44170, + "src": "156:10:67", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44341, + "nodeType": "ImportDirective", + "src": "202:47:67", + "nodes": [], + "absolutePath": "src/structs/Subnet.sol", + "file": "../structs/Subnet.sol", + "nameLocation": "-1:-1:-1", + "scope": 44748, + "sourceUnit": 44311, + "symbolAliases": [ + { + "foreign": { + "id": 44340, + "name": "SubnetID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44279, + "src": "210:8:67", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44343, + "nodeType": "ImportDirective", + "src": "250:57:67", + "nodes": [], + "absolutePath": "src/lib/SubnetIDHelper.sol", + "file": "../lib/SubnetIDHelper.sol", + "nameLocation": "-1:-1:-1", + "scope": 44748, + "sourceUnit": 44132, + "symbolAliases": [ + { + "foreign": { + "id": 44342, + "name": "SubnetIDHelper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44131, + "src": "258:14:67", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44345, + "nodeType": "ImportDirective", + "src": "308:68:67", + "nodes": [], + "absolutePath": "src/lib/LibSubnetActorStorage.sol", + "file": "../lib/LibSubnetActorStorage.sol", + "nameLocation": "-1:-1:-1", + "scope": 44748, + "sourceUnit": 42808, + "symbolAliases": [ + { + "foreign": { + "id": 44344, + "name": "SubnetActorStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42694, + "src": "316:18:67", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44347, + "nodeType": "ImportDirective", + "src": "377:61:67", + "nodes": [], + "absolutePath": "src/lib/CheckpointHelper.sol", + "file": "../lib/CheckpointHelper.sol", + "nameLocation": "-1:-1:-1", + "scope": 44748, + "sourceUnit": 40777, + "symbolAliases": [ + { + "foreign": { + "id": 44346, + "name": "CheckpointHelper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40776, + "src": "385:16:67", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44349, + "nodeType": "ImportDirective", + "src": "439:71:67", + "nodes": [], + "absolutePath": "src/structs/EpochVoteSubmission.sol", + "file": "../structs/EpochVoteSubmission.sol", + "nameLocation": "-1:-1:-1", + "scope": 44748, + "sourceUnit": 44234, + "symbolAliases": [ + { + "foreign": { + "id": 44348, + "name": "EpochVoteSubmission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44215, + "src": "447:19:67", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44351, + "nodeType": "ImportDirective", + "src": "511:60:67", + "nodes": [], + "absolutePath": "src/interfaces/ISubnetActor.sol", + "file": "../interfaces/ISubnetActor.sol", + "nameLocation": "-1:-1:-1", + "scope": 44748, + "sourceUnit": 40460, + "symbolAliases": [ + { + "foreign": { + "id": 44350, + "name": "ISubnetActor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40459, + "src": "519:12:67", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44353, + "nodeType": "ImportDirective", + "src": "572:52:67", + "nodes": [], + "absolutePath": "src/interfaces/IGateway.sol", + "file": "../interfaces/IGateway.sol", + "nameLocation": "-1:-1:-1", + "scope": 44748, + "sourceUnit": 40422, + "symbolAliases": [ + { + "foreign": { + "id": 44352, + "name": "IGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40421, + "src": "580:8:67", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44355, + "nodeType": "ImportDirective", + "src": "625:55:67", + "nodes": [], + "absolutePath": "src/lib/AccountHelper.sol", + "file": "../lib/AccountHelper.sol", + "nameLocation": "-1:-1:-1", + "scope": 44748, + "sourceUnit": 40509, + "symbolAliases": [ + { + "foreign": { + "id": 44354, + "name": "AccountHelper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40508, + "src": "633:13:67", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44357, + "nodeType": "ImportDirective", + "src": "681:57:67", + "nodes": [], + "absolutePath": "src/lib/CrossMsgHelper.sol", + "file": "../lib/CrossMsgHelper.sol", + "nameLocation": "-1:-1:-1", + "scope": 44748, + "sourceUnit": 41104, + "symbolAliases": [ + { + "foreign": { + "id": 44356, + "name": "CrossMsgHelper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41103, + "src": "689:14:67", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44359, + "nodeType": "ImportDirective", + "src": "739:63:67", + "nodes": [], + "absolutePath": "src/structs/ExecutableQueue.sol", + "file": "../structs/ExecutableQueue.sol", + "nameLocation": "-1:-1:-1", + "scope": 44748, + "sourceUnit": 44247, + "symbolAliases": [ + { + "foreign": { + "id": 44358, + "name": "ExecutableQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44246, + "src": "747:15:67", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44361, + "nodeType": "ImportDirective", + "src": "803:71:67", + "nodes": [], + "absolutePath": "src/lib/ExecutableQueueHelper.sol", + "file": "../lib/ExecutableQueueHelper.sol", + "nameLocation": "-1:-1:-1", + "scope": 44748, + "sourceUnit": 41356, + "symbolAliases": [ + { + "foreign": { + "id": 44360, + "name": "ExecutableQueueHelper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41355, + "src": "811:21:67", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44363, + "nodeType": "ImportDirective", + "src": "875:79:67", + "nodes": [], + "absolutePath": "src/structs/EpochVoteSubmission.sol", + "file": "../structs/EpochVoteSubmission.sol", + "nameLocation": "-1:-1:-1", + "scope": 44748, + "sourceUnit": 44234, + "symbolAliases": [ + { + "foreign": { + "id": 44362, + "name": "EpochVoteBottomUpSubmission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44233, + "src": "883:27:67", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44366, + "nodeType": "ImportDirective", + "src": "955:69:67", + "nodes": [], + "absolutePath": "src/structs/Validator.sol", + "file": "../structs/Validator.sol", + "nameLocation": "-1:-1:-1", + "scope": 44748, + "sourceUnit": 44332, + "symbolAliases": [ + { + "foreign": { + "id": 44364, + "name": "ValidatorInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44324, + "src": "963:13:67", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 44365, + "name": "ValidatorSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44331, + "src": "978:12:67", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44368, + "nodeType": "ImportDirective", + "src": "1025:79:67", + "nodes": [], + "absolutePath": "src/lib/EpochVoteSubmissionHelper.sol", + "file": "../lib/EpochVoteSubmissionHelper.sol", + "nameLocation": "-1:-1:-1", + "scope": 44748, + "sourceUnit": 41152, + "symbolAliases": [ + { + "foreign": { + "id": 44367, + "name": "EpochVoteSubmissionHelper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41151, + "src": "1033:25:67", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44370, + "nodeType": "ImportDirective", + "src": "1105:47:67", + "nodes": [], + "absolutePath": "src/lib/LibVoting.sol", + "file": "../lib/LibVoting.sol", + "nameLocation": "-1:-1:-1", + "scope": 44748, + "sourceUnit": 43439, + "symbolAliases": [ + { + "foreign": { + "id": 44369, + "name": "LibVoting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43438, + "src": "1113:9:67", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44372, + "nodeType": "ImportDirective", + "src": "1153:43:67", + "nodes": [], + "absolutePath": "src/enums/Status.sol", + "file": "../enums/Status.sol", + "nameLocation": "-1:-1:-1", + "scope": 44748, + "sourceUnit": 38138, + "symbolAliases": [ + { + "foreign": { + "id": 44371, + "name": "Status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38137, + "src": "1161:6:67", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44374, + "nodeType": "ImportDirective", + "src": "1197:57:67", + "nodes": [], + "absolutePath": "src/enums/ConsensusType.sol", + "file": "../enums/ConsensusType.sol", + "nameLocation": "-1:-1:-1", + "scope": 44748, + "sourceUnit": 38124, + "symbolAliases": [ + { + "foreign": { + "id": 44373, + "name": "ConsensusType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38123, + "src": "1205:13:67", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44376, + "nodeType": "ImportDirective", + "src": "1255:85:67", + "nodes": [], + "absolutePath": "lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", + "file": "openzeppelin-contracts/utils/structs/EnumerableSet.sol", + "nameLocation": "-1:-1:-1", + "scope": 44748, + "sourceUnit": 33010, + "symbolAliases": [ + { + "foreign": { + "id": 44375, + "name": "EnumerableSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33009, + "src": "1263:13:67", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44378, + "nodeType": "ImportDirective", + "src": "1341:56:67", + "nodes": [], + "absolutePath": "lib/fevmate/contracts/utils/FilAddress.sol", + "file": "fevmate/utils/FilAddress.sol", + "nameLocation": "-1:-1:-1", + "scope": 44748, + "sourceUnit": 299, + "symbolAliases": [ + { + "foreign": { + "id": 44377, + "name": "FilAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 298, + "src": "1349:10:67", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44380, + "nodeType": "ImportDirective", + "src": "1398:65:67", + "nodes": [], + "absolutePath": "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "file": "openzeppelin-contracts/utils/Address.sol", + "nameLocation": "-1:-1:-1", + "scope": 44748, + "sourceUnit": 29870, + "symbolAliases": [ + { + "foreign": { + "id": 44379, + "name": "Address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29869, + "src": "1406:7:67", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44382, + "nodeType": "ImportDirective", + "src": "1464:61:67", + "nodes": [], + "absolutePath": "src/lib/FvmAddressHelper.sol", + "file": "../lib/FvmAddressHelper.sol", + "nameLocation": "-1:-1:-1", + "scope": 44748, + "sourceUnit": 41483, + "symbolAliases": [ + { + "foreign": { + "id": 44381, + "name": "FvmAddressHelper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41482, + "src": "1472:16:67", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44747, + "nodeType": "ContractDefinition", + "src": "1527:4047:67", + "nodes": [ + { + "id": 44386, + "nodeType": "UsingForDirective", + "src": "1565:49:67", + "nodes": [], + "global": false, + "libraryName": { + "id": 44383, + "name": "EnumerableSet", + "nameLocations": [ + "1571:13:67" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 33009, + "src": "1571:13:67" + }, + "typeName": { + "id": 44385, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 44384, + "name": "EnumerableSet.AddressSet", + "nameLocations": [ + "1589:13:67", + "1603:10:67" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32722, + "src": "1589:24:67" + }, + "referencedDeclaration": 32722, + "src": "1589:24:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$32722_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + } + }, + { + "id": 44390, + "nodeType": "UsingForDirective", + "src": "1619:34:67", + "nodes": [], + "global": false, + "libraryName": { + "id": 44387, + "name": "SubnetIDHelper", + "nameLocations": [ + "1625:14:67" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44131, + "src": "1625:14:67" + }, + "typeName": { + "id": 44389, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 44388, + "name": "SubnetID", + "nameLocations": [ + "1644:8:67" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44279, + "src": "1644:8:67" + }, + "referencedDeclaration": 44279, + "src": "1644:8:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeString": "struct SubnetID" + } + } + }, + { + "id": 44394, + "nodeType": "UsingForDirective", + "src": "1658:46:67", + "nodes": [], + "global": false, + "libraryName": { + "id": 44391, + "name": "CheckpointHelper", + "nameLocations": [ + "1664:16:67" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 40776, + "src": "1664:16:67" + }, + "typeName": { + "id": 44393, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 44392, + "name": "BottomUpCheckpoint", + "nameLocations": [ + "1685:18:67" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44156, + "src": "1685:18:67" + }, + "referencedDeclaration": 44156, + "src": "1685:18:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeString": "struct BottomUpCheckpoint" + } + } + }, + { + "id": 44397, + "nodeType": "UsingForDirective", + "src": "1709:29:67", + "nodes": [], + "global": false, + "libraryName": { + "id": 44395, + "name": "FilAddress", + "nameLocations": [ + "1715:10:67" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 298, + "src": "1715:10:67" + }, + "typeName": { + "id": 44396, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1730:7:67", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "id": 44400, + "nodeType": "UsingForDirective", + "src": "1743:34:67", + "nodes": [], + "global": false, + "libraryName": { + "id": 44398, + "name": "Address", + "nameLocations": [ + "1749:7:67" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 29869, + "src": "1749:7:67" + }, + "typeName": { + "id": 44399, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1761:15:67", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + }, + { + "id": 44403, + "nodeType": "UsingForDirective", + "src": "1782:32:67", + "nodes": [], + "global": false, + "libraryName": { + "id": 44401, + "name": "AccountHelper", + "nameLocations": [ + "1788:13:67" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 40508, + "src": "1788:13:67" + }, + "typeName": { + "id": 44402, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1806:7:67", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "id": 44407, + "nodeType": "UsingForDirective", + "src": "1819:48:67", + "nodes": [], + "global": false, + "libraryName": { + "id": 44404, + "name": "ExecutableQueueHelper", + "nameLocations": [ + "1825:21:67" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 41355, + "src": "1825:21:67" + }, + "typeName": { + "id": 44406, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 44405, + "name": "ExecutableQueue", + "nameLocations": [ + "1851:15:67" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44246, + "src": "1851:15:67" + }, + "referencedDeclaration": 44246, + "src": "1851:15:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ExecutableQueue_$44246_storage_ptr", + "typeString": "struct ExecutableQueue" + } + } + }, + { + "id": 44411, + "nodeType": "UsingForDirective", + "src": "1872:56:67", + "nodes": [], + "global": false, + "libraryName": { + "id": 44408, + "name": "EpochVoteSubmissionHelper", + "nameLocations": [ + "1878:25:67" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 41151, + "src": "1878:25:67" + }, + "typeName": { + "id": 44410, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 44409, + "name": "EpochVoteSubmission", + "nameLocations": [ + "1908:19:67" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44215, + "src": "1908:19:67" + }, + "referencedDeclaration": 44215, + "src": "1908:19:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteSubmission_$44215_storage_ptr", + "typeString": "struct EpochVoteSubmission" + } + } + }, + { + "id": 44415, + "nodeType": "UsingForDirective", + "src": "1933:34:67", + "nodes": [], + "global": false, + "libraryName": { + "id": 44412, + "name": "CrossMsgHelper", + "nameLocations": [ + "1939:14:67" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 41103, + "src": "1939:14:67" + }, + "typeName": { + "id": 44414, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 44413, + "name": "CrossMsg", + "nameLocations": [ + "1958:8:67" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44176, + "src": "1958:8:67" + }, + "referencedDeclaration": 44176, + "src": "1958:8:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeString": "struct CrossMsg" + } + } + }, + { + "id": 44419, + "nodeType": "UsingForDirective", + "src": "1972:38:67", + "nodes": [], + "global": false, + "libraryName": { + "id": 44416, + "name": "FvmAddressHelper", + "nameLocations": [ + "1978:16:67" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 41482, + "src": "1978:16:67" + }, + "typeName": { + "id": 44418, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 44417, + "name": "FvmAddress", + "nameLocations": [ + "1999:10:67" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44253, + "src": "1999:10:67" + }, + "referencedDeclaration": 44253, + "src": "1999:10:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_FvmAddress_$44253_storage_ptr", + "typeString": "struct FvmAddress" + } + } + }, + { + "id": 44422, + "nodeType": "VariableDeclaration", + "src": "2079:29:67", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "s", + "nameLocation": "2107:1:67", + "scope": 44747, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage" + }, + "typeName": { + "id": 44421, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 44420, + "name": "SubnetActorStorage", + "nameLocations": [ + "2079:18:67" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 42694, + "src": "2079:18:67" + }, + "referencedDeclaration": 42694, + "src": "2079:18:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage_ptr", + "typeString": "struct SubnetActorStorage" + } + }, + "visibility": "internal" + }, + { + "id": 44433, + "nodeType": "FunctionDefinition", + "src": "2156:95:67", + "nodes": [], + "body": { + "id": 44432, + "nodeType": "Block", + "src": "2217:34:67", + "nodes": [], + "statements": [ + { + "expression": { + "expression": { + "id": 44429, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44422, + "src": "2234:1:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44430, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2236:8:67", + "memberName": "parentId", + "nodeType": "MemberAccess", + "referencedDeclaration": 42667, + "src": "2234:10:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeString": "struct SubnetID storage ref" + } + }, + "functionReturnParameters": 44428, + "id": 44431, + "nodeType": "Return", + "src": "2227:17:67" + } + ] + }, + "documentation": { + "id": 44423, + "nodeType": "StructuredDocumentation", + "src": "2115:36:67", + "text": "@notice get the parent subnet id" + }, + "functionSelector": "80f76021", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getParent", + "nameLocation": "2165:9:67", + "parameters": { + "id": 44424, + "nodeType": "ParameterList", + "parameters": [], + "src": "2174:2:67" + }, + "returnParameters": { + "id": 44428, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 44427, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 44433, + "src": "2200:15:67", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID" + }, + "typeName": { + "id": 44426, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 44425, + "name": "SubnetID", + "nameLocations": [ + "2200:8:67" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44279, + "src": "2200:8:67" + }, + "referencedDeclaration": 44279, + "src": "2200:8:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeString": "struct SubnetID" + } + }, + "visibility": "internal" + } + ], + "src": "2199:17:67" + }, + "scope": 44747, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 44444, + "nodeType": "FunctionDefinition", + "src": "2296:81:67", + "nodes": [], + "body": { + "id": 44443, + "nodeType": "Block", + "src": "2345:32:67", + "nodes": [], + "statements": [ + { + "expression": { + "expression": { + "id": 44440, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44422, + "src": "2362:1:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44441, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2364:6:67", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 42623, + "src": "2362:8:67", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "functionReturnParameters": 44439, + "id": 44442, + "nodeType": "Return", + "src": "2355:15:67" + } + ] + }, + "documentation": { + "id": 44434, + "nodeType": "StructuredDocumentation", + "src": "2257:34:67", + "text": "@notice get the current status" + }, + "functionSelector": "200d2ed2", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "status", + "nameLocation": "2305:6:67", + "parameters": { + "id": 44435, + "nodeType": "ParameterList", + "parameters": [], + "src": "2311:2:67" + }, + "returnParameters": { + "id": 44439, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 44438, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 44444, + "src": "2337:6:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + }, + "typeName": { + "id": 44437, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 44436, + "name": "Status", + "nameLocations": [ + "2337:6:67" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 38137, + "src": "2337:6:67" + }, + "referencedDeclaration": 38137, + "src": "2337:6:67", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "visibility": "internal" + } + ], + "src": "2336:8:67" + }, + "scope": 44747, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 44454, + "nodeType": "FunctionDefinition", + "src": "2419:90:67", + "nodes": [], + "body": { + "id": 44453, + "nodeType": "Block", + "src": "2473:36:67", + "nodes": [], + "statements": [ + { + "expression": { + "expression": { + "id": 44450, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44422, + "src": "2490:1:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44451, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2492:10:67", + "memberName": "totalStake", + "nodeType": "MemberAccess", + "referencedDeclaration": 42616, + "src": "2490:12:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 44449, + "id": 44452, + "nodeType": "Return", + "src": "2483:19:67" + } + ] + }, + "documentation": { + "id": 44445, + "nodeType": "StructuredDocumentation", + "src": "2383:31:67", + "text": "@notice get the total stake" + }, + "functionSelector": "8b0e9f3f", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalStake", + "nameLocation": "2428:10:67", + "parameters": { + "id": 44446, + "nodeType": "ParameterList", + "parameters": [], + "src": "2438:2:67" + }, + "returnParameters": { + "id": 44449, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 44448, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 44454, + "src": "2464:7:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 44447, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2464:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2463:9:67" + }, + "scope": 44747, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 44463, + "nodeType": "FunctionDefinition", + "src": "2515:122:67", + "nodes": [], + "body": { + "id": 44462, + "nodeType": "Block", + "src": "2585:52:67", + "nodes": [], + "statements": [ + { + "expression": { + "expression": { + "id": 44459, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44422, + "src": "2602:1:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44460, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2604:26:67", + "memberName": "prevExecutedCheckpointHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 42626, + "src": "2602:28:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 44458, + "id": 44461, + "nodeType": "Return", + "src": "2595:35:67" + } + ] + }, + "functionSelector": "5f832dbf", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "prevExecutedCheckpointHash", + "nameLocation": "2524:26:67", + "parameters": { + "id": 44455, + "nodeType": "ParameterList", + "parameters": [], + "src": "2550:2:67" + }, + "returnParameters": { + "id": 44458, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 44457, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 44463, + "src": "2576:7:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 44456, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2576:7:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2575:9:67" + }, + "scope": 44747, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 44473, + "nodeType": "FunctionDefinition", + "src": "2643:125:67", + "nodes": [], + "body": { + "id": 44472, + "nodeType": "Block", + "src": "2709:59:67", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 44468, + "name": "LibVoting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43438, + "src": "2726:9:67", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibVoting_$43438_$", + "typeString": "type(library LibVoting)" + } + }, + "id": 44469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2736:23:67", + "memberName": "lastVotingExecutedEpoch", + "nodeType": "MemberAccess", + "referencedDeclaration": 43402, + "src": "2726:33:67", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint64_$", + "typeString": "function () view returns (uint64)" + } + }, + "id": 44470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2726:35:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 44467, + "id": 44471, + "nodeType": "Return", + "src": "2719:42:67" + } + ] + }, + "functionSelector": "ad81e244", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "lastVotingExecutedEpoch", + "nameLocation": "2652:23:67", + "parameters": { + "id": 44464, + "nodeType": "ParameterList", + "parameters": [], + "src": "2675:2:67" + }, + "returnParameters": { + "id": 44467, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 44466, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 44473, + "src": "2701:6:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 44465, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2701:6:67", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "2700:8:67" + }, + "scope": 44747, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 44487, + "nodeType": "FunctionDefinition", + "src": "2774:176:67", + "nodes": [], + "body": { + "id": 44486, + "nodeType": "Block", + "src": "2848:102:67", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 44482, + "name": "LibVoting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43438, + "src": "2916:9:67", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibVoting_$43438_$", + "typeString": "type(library LibVoting)" + } + }, + "id": 44483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2926:15:67", + "memberName": "executableQueue", + "nodeType": "MemberAccess", + "referencedDeclaration": 43387, + "src": "2916:25:67", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint64_$_t_uint64_$_t_uint64_$", + "typeString": "function () view returns (uint64,uint64,uint64)" + } + }, + "id": 44484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2916:27:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint64_$_t_uint64_$_t_uint64_$", + "typeString": "tuple(uint64,uint64,uint64)" + } + }, + "functionReturnParameters": 44481, + "id": 44485, + "nodeType": "Return", + "src": "2909:34:67" + } + ] + }, + "functionSelector": "10d500e1", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "executableQueue", + "nameLocation": "2783:15:67", + "parameters": { + "id": 44474, + "nodeType": "ParameterList", + "parameters": [], + "src": "2798:2:67" + }, + "returnParameters": { + "id": 44481, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 44476, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 44487, + "src": "2824:6:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 44475, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2824:6:67", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 44478, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 44487, + "src": "2832:6:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 44477, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2832:6:67", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 44480, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 44487, + "src": "2840:6:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 44479, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2840:6:67", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "2823:24:67" + }, + "scope": 44747, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 44500, + "nodeType": "FunctionDefinition", + "src": "2956:118:67", + "nodes": [], + "body": { + "id": 44499, + "nodeType": "Block", + "src": "3027:47:67", + "nodes": [], + "statements": [ + { + "expression": { + "baseExpression": { + "expression": { + "id": 44494, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44422, + "src": "3044:1:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44495, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3046:18:67", + "memberName": "accumulatedRewards", + "nodeType": "MemberAccess", + "referencedDeclaration": 42652, + "src": "3044:20:67", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 44497, + "indexExpression": { + "id": 44496, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44489, + "src": "3065:1:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3044:23:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 44493, + "id": 44498, + "nodeType": "Return", + "src": "3037:30:67" + } + ] + }, + "functionSelector": "73f273fc", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "accumulatedRewards", + "nameLocation": "2965:18:67", + "parameters": { + "id": 44490, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 44489, + "mutability": "mutable", + "name": "a", + "nameLocation": "2992:1:67", + "nodeType": "VariableDeclaration", + "scope": 44500, + "src": "2984:9:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 44488, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2984:7:67", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2983:11:67" + }, + "returnParameters": { + "id": 44493, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 44492, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 44500, + "src": "3018:7:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 44491, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3018:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3017:9:67" + }, + "scope": 44747, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 44513, + "nodeType": "FunctionDefinition", + "src": "3080:92:67", + "nodes": [], + "body": { + "id": 44512, + "nodeType": "Block", + "src": "3138:34:67", + "nodes": [], + "statements": [ + { + "expression": { + "baseExpression": { + "expression": { + "id": 44507, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44422, + "src": "3155:1:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44508, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3157:5:67", + "memberName": "stake", + "nodeType": "MemberAccess", + "referencedDeclaration": 42647, + "src": "3155:7:67", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 44510, + "indexExpression": { + "id": 44509, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44502, + "src": "3163:1:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3155:10:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 44506, + "id": 44511, + "nodeType": "Return", + "src": "3148:17:67" + } + ] + }, + "functionSelector": "26476204", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "stake", + "nameLocation": "3089:5:67", + "parameters": { + "id": 44503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 44502, + "mutability": "mutable", + "name": "a", + "nameLocation": "3103:1:67", + "nodeType": "VariableDeclaration", + "scope": 44513, + "src": "3095:9:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 44501, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3095:7:67", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3094:11:67" + }, + "returnParameters": { + "id": 44506, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 44505, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 44513, + "src": "3129:7:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 44504, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3129:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3128:9:67" + }, + "scope": 44747, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 44522, + "nodeType": "FunctionDefinition", + "src": "3178:98:67", + "nodes": [], + "body": { + "id": 44521, + "nodeType": "Block", + "src": "3236:40:67", + "nodes": [], + "statements": [ + { + "expression": { + "expression": { + "id": 44518, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44422, + "src": "3253:1:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44519, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3255:14:67", + "memberName": "ipcGatewayAddr", + "nodeType": "MemberAccess", + "referencedDeclaration": 42683, + "src": "3253:16:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 44517, + "id": 44520, + "nodeType": "Return", + "src": "3246:23:67" + } + ] + }, + "functionSelector": "cfca2824", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ipcGatewayAddr", + "nameLocation": "3187:14:67", + "parameters": { + "id": 44514, + "nodeType": "ParameterList", + "parameters": [], + "src": "3201:2:67" + }, + "returnParameters": { + "id": 44517, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 44516, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 44522, + "src": "3227:7:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 44515, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3227:7:67", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3226:9:67" + }, + "scope": 44747, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 44531, + "nodeType": "FunctionDefinition", + "src": "3282:95:67", + "nodes": [], + "body": { + "id": 44530, + "nodeType": "Block", + "src": "3338:39:67", + "nodes": [], + "statements": [ + { + "expression": { + "expression": { + "id": 44527, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44422, + "src": "3355:1:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44528, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3357:13:67", + "memberName": "minValidators", + "nodeType": "MemberAccess", + "referencedDeclaration": 42691, + "src": "3355:15:67", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 44526, + "id": 44529, + "nodeType": "Return", + "src": "3348:22:67" + } + ] + }, + "functionSelector": "c5ab2241", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "minValidators", + "nameLocation": "3291:13:67", + "parameters": { + "id": 44523, + "nodeType": "ParameterList", + "parameters": [], + "src": "3304:2:67" + }, + "returnParameters": { + "id": 44526, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 44525, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 44531, + "src": "3330:6:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 44524, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3330:6:67", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "3329:8:67" + }, + "scope": 44747, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 44540, + "nodeType": "FunctionDefinition", + "src": "3383:105:67", + "nodes": [], + "body": { + "id": 44539, + "nodeType": "Block", + "src": "3444:44:67", + "nodes": [], + "statements": [ + { + "expression": { + "expression": { + "id": 44536, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44422, + "src": "3461:1:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44537, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3463:18:67", + "memberName": "topDownCheckPeriod", + "nodeType": "MemberAccess", + "referencedDeclaration": 42673, + "src": "3461:20:67", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 44535, + "id": 44538, + "nodeType": "Return", + "src": "3454:27:67" + } + ] + }, + "functionSelector": "7d9740f4", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "topDownCheckPeriod", + "nameLocation": "3392:18:67", + "parameters": { + "id": 44532, + "nodeType": "ParameterList", + "parameters": [], + "src": "3410:2:67" + }, + "returnParameters": { + "id": 44535, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 44534, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 44540, + "src": "3436:6:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 44533, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3436:6:67", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "3435:8:67" + }, + "scope": 44747, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 44549, + "nodeType": "FunctionDefinition", + "src": "3494:89:67", + "nodes": [], + "body": { + "id": 44548, + "nodeType": "Block", + "src": "3550:33:67", + "nodes": [], + "statements": [ + { + "expression": { + "expression": { + "id": 44545, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44422, + "src": "3567:1:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44546, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3569:7:67", + "memberName": "genesis", + "nodeType": "MemberAccess", + "referencedDeclaration": 42670, + "src": "3567:9:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "functionReturnParameters": 44544, + "id": 44547, + "nodeType": "Return", + "src": "3560:16:67" + } + ] + }, + "functionSelector": "a7f0b3de", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "genesis", + "nameLocation": "3503:7:67", + "parameters": { + "id": 44541, + "nodeType": "ParameterList", + "parameters": [], + "src": "3510:2:67" + }, + "returnParameters": { + "id": 44544, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 44543, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 44549, + "src": "3536:12:67", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 44542, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3536:5:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3535:14:67" + }, + "scope": 44747, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 44559, + "nodeType": "FunctionDefinition", + "src": "3589:115:67", + "nodes": [], + "body": { + "id": 44558, + "nodeType": "Block", + "src": "3650:54:67", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 44554, + "name": "LibVoting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43438, + "src": "3667:9:67", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibVoting_$43438_$", + "typeString": "type(library LibVoting)" + } + }, + "id": 44555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3677:18:67", + "memberName": "majorityPercentage", + "nodeType": "MemberAccess", + "referencedDeclaration": 43417, + "src": "3667:28:67", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint64_$", + "typeString": "function () view returns (uint64)" + } + }, + "id": 44556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3667:30:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 44553, + "id": 44557, + "nodeType": "Return", + "src": "3660:37:67" + } + ] + }, + "functionSelector": "599c7bd1", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "majorityPercentage", + "nameLocation": "3598:18:67", + "parameters": { + "id": 44550, + "nodeType": "ParameterList", + "parameters": [], + "src": "3616:2:67" + }, + "returnParameters": { + "id": 44553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 44552, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 44559, + "src": "3642:6:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 44551, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3642:6:67", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "3641:8:67" + }, + "scope": 44747, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 44569, + "nodeType": "FunctionDefinition", + "src": "3710:94:67", + "nodes": [], + "body": { + "id": 44568, + "nodeType": "Block", + "src": "3769:35:67", + "nodes": [], + "statements": [ + { + "expression": { + "expression": { + "id": 44565, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44422, + "src": "3786:1:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44566, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3788:9:67", + "memberName": "consensus", + "nodeType": "MemberAccess", + "referencedDeclaration": 42680, + "src": "3786:11:67", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ConsensusType_$38123", + "typeString": "enum ConsensusType" + } + }, + "functionReturnParameters": 44564, + "id": 44567, + "nodeType": "Return", + "src": "3779:18:67" + } + ] + }, + "functionSelector": "8ef3f761", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "consensus", + "nameLocation": "3719:9:67", + "parameters": { + "id": 44560, + "nodeType": "ParameterList", + "parameters": [], + "src": "3728:2:67" + }, + "returnParameters": { + "id": 44564, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 44563, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 44569, + "src": "3754:13:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ConsensusType_$38123", + "typeString": "enum ConsensusType" + }, + "typeName": { + "id": 44562, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 44561, + "name": "ConsensusType", + "nameLocations": [ + "3754:13:67" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 38123, + "src": "3754:13:67" + }, + "referencedDeclaration": 38123, + "src": "3754:13:67", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ConsensusType_$38123", + "typeString": "enum ConsensusType" + } + }, + "visibility": "internal" + } + ], + "src": "3753:15:67" + }, + "scope": 44747, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 44578, + "nodeType": "FunctionDefinition", + "src": "3810:116:67", + "nodes": [], + "body": { + "id": 44577, + "nodeType": "Block", + "src": "3877:49:67", + "nodes": [], + "statements": [ + { + "expression": { + "expression": { + "id": 44574, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44422, + "src": "3894:1:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44575, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3896:23:67", + "memberName": "minActivationCollateral", + "nodeType": "MemberAccess", + "referencedDeclaration": 42693, + "src": "3894:25:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 44573, + "id": 44576, + "nodeType": "Return", + "src": "3887:32:67" + } + ] + }, + "functionSelector": "9e33bd02", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "minActivationCollateral", + "nameLocation": "3819:23:67", + "parameters": { + "id": 44570, + "nodeType": "ParameterList", + "parameters": [], + "src": "3842:2:67" + }, + "returnParameters": { + "id": 44573, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 44572, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 44578, + "src": "3868:7:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 44571, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3868:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3867:9:67" + }, + "scope": 44747, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 44587, + "nodeType": "FunctionDefinition", + "src": "3932:78:67", + "nodes": [], + "body": { + "id": 44586, + "nodeType": "Block", + "src": "3980:30:67", + "nodes": [], + "statements": [ + { + "expression": { + "expression": { + "id": 44583, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44422, + "src": "3997:1:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44584, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3999:4:67", + "memberName": "name", + "nodeType": "MemberAccess", + "referencedDeclaration": 42686, + "src": "3997:6:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 44582, + "id": 44585, + "nodeType": "Return", + "src": "3990:13:67" + } + ] + }, + "functionSelector": "06fdde03", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "3941:4:67", + "parameters": { + "id": 44579, + "nodeType": "ParameterList", + "parameters": [], + "src": "3945:2:67" + }, + "returnParameters": { + "id": 44582, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 44581, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 44587, + "src": "3971:7:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 44580, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3971:7:67", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3970:9:67" + }, + "scope": 44747, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 44599, + "nodeType": "FunctionDefinition", + "src": "4052:103:67", + "nodes": [], + "body": { + "id": 44598, + "nodeType": "Block", + "src": "4110:45:67", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 44593, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44422, + "src": "4127:1:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44594, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4129:10:67", + "memberName": "validators", + "nodeType": "MemberAccess", + "referencedDeclaration": 42636, + "src": "4127:12:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$32722_storage", + "typeString": "struct EnumerableSet.AddressSet storage ref" + } + }, + "id": 44595, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4140:6:67", + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 32818, + "src": "4127:19:67", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32722_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$32722_storage_ptr_$", + "typeString": "function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)" + } + }, + "id": 44596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4127:21:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 44592, + "id": 44597, + "nodeType": "Return", + "src": "4120:28:67" + } + ] + }, + "documentation": { + "id": 44588, + "nodeType": "StructuredDocumentation", + "src": "4016:31:67", + "text": "@notice get validator count" + }, + "functionSelector": "0f43a677", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "validatorCount", + "nameLocation": "4061:14:67", + "parameters": { + "id": 44589, + "nodeType": "ParameterList", + "parameters": [], + "src": "4075:2:67" + }, + "returnParameters": { + "id": 44592, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 44591, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 44599, + "src": "4101:7:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 44590, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4101:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4100:9:67" + }, + "scope": 44747, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 44614, + "nodeType": "FunctionDefinition", + "src": "4254:114:67", + "nodes": [], + "body": { + "id": 44613, + "nodeType": "Block", + "src": "4322:46:67", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 44610, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44602, + "src": "4355:5:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "id": 44607, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44422, + "src": "4339:1:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44608, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4341:10:67", + "memberName": "validators", + "nodeType": "MemberAccess", + "referencedDeclaration": 42636, + "src": "4339:12:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$32722_storage", + "typeString": "struct EnumerableSet.AddressSet storage ref" + } + }, + "id": 44609, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4352:2:67", + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 32845, + "src": "4339:15:67", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32722_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$32722_storage_ptr_$", + "typeString": "function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)" + } + }, + "id": 44611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4339:22:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 44606, + "id": 44612, + "nodeType": "Return", + "src": "4332:29:67" + } + ] + }, + "documentation": { + "id": 44600, + "nodeType": "StructuredDocumentation", + "src": "4161:88:67", + "text": "@notice get validator at index\n @param index - the index of the validator set" + }, + "functionSelector": "32e0aa1f", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "validatorAt", + "nameLocation": "4263:11:67", + "parameters": { + "id": 44603, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 44602, + "mutability": "mutable", + "name": "index", + "nameLocation": "4283:5:67", + "nodeType": "VariableDeclaration", + "scope": 44614, + "src": "4275:13:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 44601, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4275:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4274:15:67" + }, + "returnParameters": { + "id": 44606, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 44605, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 44614, + "src": "4313:7:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 44604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4313:7:67", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4312:9:67" + }, + "scope": 44747, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 44665, + "nodeType": "FunctionDefinition", + "src": "4470:360:67", + "nodes": [], + "body": { + "id": 44664, + "nodeType": "Block", + "src": "4536:294:67", + "nodes": [], + "statements": [ + { + "assignments": [ + 44622 + ], + "declarations": [ + { + "constant": false, + "id": 44622, + "mutability": "mutable", + "name": "length", + "nameLocation": "4554:6:67", + "nodeType": "VariableDeclaration", + "scope": 44664, + "src": "4546:14:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 44621, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4546:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 44627, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 44623, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44422, + "src": "4563:1:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44624, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4565:10:67", + "memberName": "validators", + "nodeType": "MemberAccess", + "referencedDeclaration": 42636, + "src": "4563:12:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$32722_storage", + "typeString": "struct EnumerableSet.AddressSet storage ref" + } + }, + "id": 44625, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4576:6:67", + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 32818, + "src": "4563:19:67", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32722_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$32722_storage_ptr_$", + "typeString": "function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)" + } + }, + "id": 44626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4563:21:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4546:38:67" + }, + { + "assignments": [ + 44632 + ], + "declarations": [ + { + "constant": false, + "id": 44632, + "mutability": "mutable", + "name": "result", + "nameLocation": "4611:6:67", + "nodeType": "VariableDeclaration", + "scope": 44664, + "src": "4594:23:67", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 44630, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4594:7:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 44631, + "nodeType": "ArrayTypeName", + "src": "4594:9:67", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "id": 44638, + "initialValue": { + "arguments": [ + { + "id": 44636, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44622, + "src": "4634:6:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 44635, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "4620:13:67", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 44633, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4624:7:67", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 44634, + "nodeType": "ArrayTypeName", + "src": "4624:9:67", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "id": 44637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4620:21:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4594:47:67" + }, + { + "body": { + "id": 44660, + "nodeType": "Block", + "src": "4686:114:67", + "statements": [ + { + "expression": { + "id": 44654, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 44646, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44632, + "src": "4700:6:67", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 44648, + "indexExpression": { + "id": 44647, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44640, + "src": "4707:1:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4700:9:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 44652, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44640, + "src": "4728:1:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "id": 44649, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44422, + "src": "4712:1:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44650, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4714:10:67", + "memberName": "validators", + "nodeType": "MemberAccess", + "referencedDeclaration": 42636, + "src": "4712:12:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$32722_storage", + "typeString": "struct EnumerableSet.AddressSet storage ref" + } + }, + "id": 44651, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4725:2:67", + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 32845, + "src": "4712:15:67", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32722_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$32722_storage_ptr_$", + "typeString": "function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)" + } + }, + "id": 44653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4712:18:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4700:30:67", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 44655, + "nodeType": "ExpressionStatement", + "src": "4700:30:67" + }, + { + "id": 44659, + "nodeType": "UncheckedBlock", + "src": "4744:46:67", + "statements": [ + { + "expression": { + "id": 44657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "4772:3:67", + "subExpression": { + "id": 44656, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44640, + "src": "4774:1:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 44658, + "nodeType": "ExpressionStatement", + "src": "4772:3:67" + } + ] + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 44645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 44643, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44640, + "src": "4672:1:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 44644, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44622, + "src": "4676:6:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4672:10:67", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 44661, + "initializationExpression": { + "assignments": [ + 44640 + ], + "declarations": [ + { + "constant": false, + "id": 44640, + "mutability": "mutable", + "name": "i", + "nameLocation": "4665:1:67", + "nodeType": "VariableDeclaration", + "scope": 44661, + "src": "4657:9:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 44639, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4657:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 44642, + "initialValue": { + "hexValue": "30", + "id": 44641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4669:1:67", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "4657:13:67" + }, + "nodeType": "ForStatement", + "src": "4652:148:67" + }, + { + "expression": { + "id": 44662, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44632, + "src": "4817:6:67", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "functionReturnParameters": 44620, + "id": 44663, + "nodeType": "Return", + "src": "4810:13:67" + } + ] + }, + "documentation": { + "id": 44615, + "nodeType": "StructuredDocumentation", + "src": "4374:91:67", + "text": "@notice get all the validators in the subnet.\n TODO: we can introduce pagination" + }, + "functionSelector": "b7ab4db5", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getValidators", + "nameLocation": "4479:13:67", + "parameters": { + "id": 44616, + "nodeType": "ParameterList", + "parameters": [], + "src": "4492:2:67" + }, + "returnParameters": { + "id": 44620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 44619, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 44665, + "src": "4518:16:67", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 44617, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4518:7:67", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 44618, + "nodeType": "ArrayTypeName", + "src": "4518:9:67", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "4517:18:67" + }, + "scope": 44747, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 44746, + "nodeType": "FunctionDefinition", + "src": "4918:654:67", + "nodes": [], + "body": { + "id": 44745, + "nodeType": "Block", + "src": "4989:583:67", + "nodes": [], + "statements": [ + { + "assignments": [ + 44673 + ], + "declarations": [ + { + "constant": false, + "id": 44673, + "mutability": "mutable", + "name": "length", + "nameLocation": "5007:6:67", + "nodeType": "VariableDeclaration", + "scope": 44745, + "src": "4999:14:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 44672, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4999:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 44678, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 44674, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44422, + "src": "5016:1:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44675, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5018:10:67", + "memberName": "validators", + "nodeType": "MemberAccess", + "referencedDeclaration": 42636, + "src": "5016:12:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$32722_storage", + "typeString": "struct EnumerableSet.AddressSet storage ref" + } + }, + "id": 44676, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5029:6:67", + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 32818, + "src": "5016:19:67", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32722_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$32722_storage_ptr_$", + "typeString": "function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)" + } + }, + "id": 44677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5016:21:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4999:38:67" + }, + { + "assignments": [ + 44683 + ], + "declarations": [ + { + "constant": false, + "id": 44683, + "mutability": "mutable", + "name": "details", + "nameLocation": "5071:7:67", + "nodeType": "VariableDeclaration", + "scope": 44745, + "src": "5048:30:67", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ValidatorInfo_$44324_memory_ptr_$dyn_memory_ptr", + "typeString": "struct ValidatorInfo[]" + }, + "typeName": { + "baseType": { + "id": 44681, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 44680, + "name": "ValidatorInfo", + "nameLocations": [ + "5048:13:67" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44324, + "src": "5048:13:67" + }, + "referencedDeclaration": 44324, + "src": "5048:13:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ValidatorInfo_$44324_storage_ptr", + "typeString": "struct ValidatorInfo" + } + }, + "id": 44682, + "nodeType": "ArrayTypeName", + "src": "5048:15:67", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ValidatorInfo_$44324_storage_$dyn_storage_ptr", + "typeString": "struct ValidatorInfo[]" + } + }, + "visibility": "internal" + } + ], + "id": 44690, + "initialValue": { + "arguments": [ + { + "id": 44688, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44673, + "src": "5101:6:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 44687, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "5081:19:67", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_ValidatorInfo_$44324_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct ValidatorInfo memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 44685, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 44684, + "name": "ValidatorInfo", + "nameLocations": [ + "5085:13:67" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44324, + "src": "5085:13:67" + }, + "referencedDeclaration": 44324, + "src": "5085:13:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ValidatorInfo_$44324_storage_ptr", + "typeString": "struct ValidatorInfo" + } + }, + "id": 44686, + "nodeType": "ArrayTypeName", + "src": "5085:15:67", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ValidatorInfo_$44324_storage_$dyn_storage_ptr", + "typeString": "struct ValidatorInfo[]" + } + } + }, + "id": 44689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5081:27:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ValidatorInfo_$44324_memory_ptr_$dyn_memory_ptr", + "typeString": "struct ValidatorInfo memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5048:60:67" + }, + { + "body": { + "id": 44737, + "nodeType": "Block", + "src": "5156:313:67", + "statements": [ + { + "expression": { + "id": 44735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 44701, + "name": "details", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44683, + "src": "5170:7:67", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ValidatorInfo_$44324_memory_ptr_$dyn_memory_ptr", + "typeString": "struct ValidatorInfo memory[] memory" + } + }, + "id": 44703, + "indexExpression": { + "id": 44702, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44692, + "src": "5178:1:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5170:10:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ValidatorInfo_$44324_memory_ptr", + "typeString": "struct ValidatorInfo memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 44708, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44692, + "src": "5237:1:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "id": 44705, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44422, + "src": "5221:1:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44706, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5223:10:67", + "memberName": "validators", + "nodeType": "MemberAccess", + "referencedDeclaration": 42636, + "src": "5221:12:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$32722_storage", + "typeString": "struct EnumerableSet.AddressSet storage ref" + } + }, + "id": 44707, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5234:2:67", + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 32845, + "src": "5221:15:67", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32722_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$32722_storage_ptr_$", + "typeString": "function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)" + } + }, + "id": 44709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5221:18:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "expression": { + "id": 44710, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44422, + "src": "5265:1:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44711, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5267:5:67", + "memberName": "stake", + "nodeType": "MemberAccess", + "referencedDeclaration": 42647, + "src": "5265:7:67", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 44717, + "indexExpression": { + "arguments": [ + { + "id": 44715, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44692, + "src": "5289:1:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "id": 44712, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44422, + "src": "5273:1:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44713, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5275:10:67", + "memberName": "validators", + "nodeType": "MemberAccess", + "referencedDeclaration": 42636, + "src": "5273:12:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$32722_storage", + "typeString": "struct EnumerableSet.AddressSet storage ref" + } + }, + "id": 44714, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5286:2:67", + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 32845, + "src": "5273:15:67", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32722_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$32722_storage_ptr_$", + "typeString": "function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)" + } + }, + "id": 44716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5273:18:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5265:27:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "expression": { + "id": 44718, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44422, + "src": "5322:1:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44719, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5324:24:67", + "memberName": "validatorWorkerAddresses", + "nodeType": "MemberAccess", + "referencedDeclaration": 42663, + "src": "5322:26:67", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_FvmAddress_$44253_storage_$", + "typeString": "mapping(address => struct FvmAddress storage ref)" + } + }, + "id": 44725, + "indexExpression": { + "arguments": [ + { + "id": 44723, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44692, + "src": "5365:1:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "id": 44720, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44422, + "src": "5349:1:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44721, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5351:10:67", + "memberName": "validators", + "nodeType": "MemberAccess", + "referencedDeclaration": 42636, + "src": "5349:12:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$32722_storage", + "typeString": "struct EnumerableSet.AddressSet storage ref" + } + }, + "id": 44722, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5362:2:67", + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 32845, + "src": "5349:15:67", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32722_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$32722_storage_ptr_$", + "typeString": "function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)" + } + }, + "id": 44724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5349:18:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5322:46:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_FvmAddress_$44253_storage", + "typeString": "struct FvmAddress storage ref" + } + }, + { + "baseExpression": { + "expression": { + "id": 44726, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44422, + "src": "5400:1:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44727, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5402:21:67", + "memberName": "validatorNetAddresses", + "nodeType": "MemberAccess", + "referencedDeclaration": 42657, + "src": "5400:23:67", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_string_storage_$", + "typeString": "mapping(address => string storage ref)" + } + }, + "id": 44733, + "indexExpression": { + "arguments": [ + { + "id": 44731, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44692, + "src": "5440:1:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "id": 44728, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44422, + "src": "5424:1:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44729, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5426:10:67", + "memberName": "validators", + "nodeType": "MemberAccess", + "referencedDeclaration": 42636, + "src": "5424:12:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$32722_storage", + "typeString": "struct EnumerableSet.AddressSet storage ref" + } + }, + "id": 44730, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5437:2:67", + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 32845, + "src": "5424:15:67", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32722_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$32722_storage_ptr_$", + "typeString": "function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)" + } + }, + "id": 44732, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5424:18:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5400:43:67", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_struct$_FvmAddress_$44253_storage", + "typeString": "struct FvmAddress storage ref" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "id": 44704, + "name": "ValidatorInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44324, + "src": "5183:13:67", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_ValidatorInfo_$44324_storage_ptr_$", + "typeString": "type(struct ValidatorInfo storage pointer)" + } + }, + "id": 44734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "5215:4:67", + "5257:6:67", + "5310:10:67", + "5386:12:67" + ], + "names": [ + "addr", + "weight", + "workerAddr", + "netAddresses" + ], + "nodeType": "FunctionCall", + "src": "5183:275:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ValidatorInfo_$44324_memory_ptr", + "typeString": "struct ValidatorInfo memory" + } + }, + "src": "5170:288:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ValidatorInfo_$44324_memory_ptr", + "typeString": "struct ValidatorInfo memory" + } + }, + "id": 44736, + "nodeType": "ExpressionStatement", + "src": "5170:288:67" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 44697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 44695, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44692, + "src": "5139:1:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 44696, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44673, + "src": "5143:6:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5139:10:67", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 44738, + "initializationExpression": { + "assignments": [ + 44692 + ], + "declarations": [ + { + "constant": false, + "id": 44692, + "mutability": "mutable", + "name": "i", + "nameLocation": "5132:1:67", + "nodeType": "VariableDeclaration", + "scope": 44738, + "src": "5124:9:67", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 44691, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5124:7:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 44694, + "initialValue": { + "hexValue": "30", + "id": 44693, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5136:1:67", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5124:13:67" + }, + "loopExpression": { + "expression": { + "id": 44699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "5151:3:67", + "subExpression": { + "id": 44698, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44692, + "src": "5151:1:67", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 44700, + "nodeType": "ExpressionStatement", + "src": "5151:3:67" + }, + "nodeType": "ForStatement", + "src": "5119:350:67" + }, + { + "expression": { + "arguments": [ + { + "id": 44740, + "name": "details", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44683, + "src": "5512:7:67", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ValidatorInfo_$44324_memory_ptr_$dyn_memory_ptr", + "typeString": "struct ValidatorInfo memory[] memory" + } + }, + { + "expression": { + "id": 44741, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44422, + "src": "5542:1:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44742, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5544:19:67", + "memberName": "configurationNumber", + "nodeType": "MemberAccess", + "referencedDeclaration": 42619, + "src": "5542:21:67", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_struct$_ValidatorInfo_$44324_memory_ptr_$dyn_memory_ptr", + "typeString": "struct ValidatorInfo memory[] memory" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 44739, + "name": "ValidatorSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44331, + "src": "5486:12:67", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_ValidatorSet_$44331_storage_ptr_$", + "typeString": "type(struct ValidatorSet storage pointer)" + } + }, + "id": 44743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "5500:10:67", + "5521:19:67" + ], + "names": [ + "validators", + "configurationNumber" + ], + "nodeType": "FunctionCall", + "src": "5486:79:67", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ValidatorSet_$44331_memory_ptr", + "typeString": "struct ValidatorSet memory" + } + }, + "functionReturnParameters": 44671, + "id": 44744, + "nodeType": "Return", + "src": "5479:86:67" + } + ] + }, + "documentation": { + "id": 44666, + "nodeType": "StructuredDocumentation", + "src": "4836:77:67", + "text": "@notice get the full details of the validators, not just their addresses." + }, + "functionSelector": "cf331250", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getValidatorSet", + "nameLocation": "4927:15:67", + "parameters": { + "id": 44667, + "nodeType": "ParameterList", + "parameters": [], + "src": "4942:2:67" + }, + "returnParameters": { + "id": 44671, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 44670, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 44746, + "src": "4968:19:67", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ValidatorSet_$44331_memory_ptr", + "typeString": "struct ValidatorSet" + }, + "typeName": { + "id": 44669, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 44668, + "name": "ValidatorSet", + "nameLocations": [ + "4968:12:67" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44331, + "src": "4968:12:67" + }, + "referencedDeclaration": 44331, + "src": "4968:12:67", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ValidatorSet_$44331_storage_ptr", + "typeString": "struct ValidatorSet" + } + }, + "visibility": "internal" + } + ], + "src": "4967:21:67" + }, + "scope": 44747, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "SubnetActorGetterFacet", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 44747 + ], + "name": "SubnetActorGetterFacet", + "nameLocation": "1536:22:67", + "scope": 44748, + "usedErrors": [] + } + ], + "license": "UNLICENSED" + }, + "id": 67 +} \ No newline at end of file diff --git a/contracts/SubnetActorManagerFacet.json b/contracts/SubnetActorManagerFacet.json new file mode 100644 index 00000000..f78f2603 --- /dev/null +++ b/contracts/SubnetActorManagerFacet.json @@ -0,0 +1,12629 @@ +{ + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "AddressInsufficientBalance", + "type": "error" + }, + { + "inputs": [], + "name": "CollateralIsZero", + "type": "error" + }, + { + "inputs": [], + "name": "EpochAlreadyExecuted", + "type": "error" + }, + { + "inputs": [], + "name": "EpochNotVotable", + "type": "error" + }, + { + "inputs": [], + "name": "FailedInnerCall", + "type": "error" + }, + { + "inputs": [], + "name": "MessagesNotSorted", + "type": "error" + }, + { + "inputs": [], + "name": "NoRewardToWithdraw", + "type": "error" + }, + { + "inputs": [], + "name": "NoValidatorsInSubnet", + "type": "error" + }, + { + "inputs": [], + "name": "NotAccount", + "type": "error" + }, + { + "inputs": [], + "name": "NotAllValidatorsHaveLeft", + "type": "error" + }, + { + "inputs": [], + "name": "NotEnoughBalanceForRewards", + "type": "error" + }, + { + "inputs": [], + "name": "NotGateway", + "type": "error" + }, + { + "inputs": [], + "name": "NotValidator", + "type": "error" + }, + { + "inputs": [], + "name": "ReentrancyError", + "type": "error" + }, + { + "inputs": [], + "name": "SubnetAlreadyKilled", + "type": "error" + }, + { + "inputs": [], + "name": "SubnetNotActive", + "type": "error" + }, + { + "inputs": [], + "name": "ValidatorAlreadyVoted", + "type": "error" + }, + { + "inputs": [], + "name": "WrongCheckpointSource", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "epoch", + "type": "uint64" + } + ], + "name": "bottomUpCheckpointAtEpoch", + "outputs": [ + { + "internalType": "bool", + "name": "exists", + "type": "bool" + }, + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple" + }, + { + "internalType": "uint64", + "name": "epoch", + "type": "uint64" + }, + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + }, + { + "components": [ + { + "components": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple" + } + ], + "internalType": "struct IPCAddress", + "name": "from", + "type": "tuple" + }, + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple" + } + ], + "internalType": "struct IPCAddress", + "name": "to", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "bytes4", + "name": "method", + "type": "bytes4" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "internalType": "struct StorableMsg", + "name": "message", + "type": "tuple" + }, + { + "internalType": "bool", + "name": "wrapped", + "type": "bool" + } + ], + "internalType": "struct CrossMsg[]", + "name": "crossMsgs", + "type": "tuple[]" + }, + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple" + }, + { + "internalType": "bytes32[]", + "name": "checks", + "type": "bytes32[]" + } + ], + "internalType": "struct ChildCheck[]", + "name": "children", + "type": "tuple[]" + }, + { + "internalType": "bytes32", + "name": "prevHash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "proof", + "type": "bytes" + } + ], + "internalType": "struct BottomUpCheckpoint", + "name": "checkpoint", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "epoch", + "type": "uint64" + } + ], + "name": "bottomUpCheckpointHashAtEpoch", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "e", + "type": "uint64" + } + ], + "name": "committedCheckpoints", + "outputs": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple" + }, + { + "internalType": "uint64", + "name": "epoch", + "type": "uint64" + }, + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "prevHash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "proof", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "epoch", + "type": "uint64" + }, + { + "internalType": "address", + "name": "submitter", + "type": "address" + } + ], + "name": "hasValidatorVotedForSubmission", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "netAddr", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "workerAddr", + "type": "tuple" + } + ], + "name": "join", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "kill", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "leave", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "reward", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple" + }, + { + "internalType": "uint64", + "name": "epoch", + "type": "uint64" + }, + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + }, + { + "components": [ + { + "components": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple" + } + ], + "internalType": "struct IPCAddress", + "name": "from", + "type": "tuple" + }, + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple" + } + ], + "internalType": "struct IPCAddress", + "name": "to", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "bytes4", + "name": "method", + "type": "bytes4" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "internalType": "struct StorableMsg", + "name": "message", + "type": "tuple" + }, + { + "internalType": "bool", + "name": "wrapped", + "type": "bool" + } + ], + "internalType": "struct CrossMsg[]", + "name": "crossMsgs", + "type": "tuple[]" + }, + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple" + }, + { + "internalType": "bytes32[]", + "name": "checks", + "type": "bytes32[]" + } + ], + "internalType": "struct ChildCheck[]", + "name": "children", + "type": "tuple[]" + }, + { + "internalType": "bytes32", + "name": "prevHash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "proof", + "type": "bytes" + } + ], + "internalType": "struct BottomUpCheckpoint", + "name": "checkpoint", + "type": "tuple" + } + ], + "name": "submitCheckpoint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": { + "object": "0x608060405234801561001057600080fd5b50615567806100206000396000f3fe6080604052600436106100915760003560e01c80636cf6970a116100595780636cf6970a1461015c578063989037481461016f578063a9fb763c146101a0578063d66d9e19146101c0578063f6fd8381146101d557600080fd5b8063133f74ea146100965780633ccfd60b146100d257806341c0e1b5146100e957806366d7bbbc146100fe5780636cb2ecee1461012e575b600080fd5b3480156100a257600080fd5b506100b66100b13660046132fd565b6101f5565b6040805192151583526020830191909152015b60405180910390f35b3480156100de57600080fd5b506100e761028e565b005b3480156100f557600080fd5b506100e7610348565b34801561010a57600080fd5b5061011e61011936600461332f565b610406565b60405190151581526020016100c9565b34801561013a57600080fd5b5061014e6101493660046132fd565b610449565b6040516100c99291906135fa565b6100e761016a3660046136aa565b610b93565b34801561017b57600080fd5b5061018f61018a3660046132fd565b610de9565b6040516100c9959493929190613744565b3480156101ac57600080fd5b506100e76101bb366004613790565b610f5e565b3480156101cc57600080fd5b506100e761101b565b3480156101e157600080fd5b506100e76101f03660046137a9565b611195565b60008060008061020485610449565b6040516339aa47fb60e01b81529193509150829073__$1cd67d4dc9e627f0bec7928aa480e7d951$__906339aa47fb9061024290859060040161395c565b602060405180830381865af415801561025f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061028391906139f9565b935093505050915091565b61029661140c565b33600090815260086020526040812054908190036102c7576040516367300f9160e11b815260040160405180910390fd5b3360009081526008602052604080822091909155600f549051631f0e077760e31b8152600481018390526001600160a01b039091169063f8703bb890602401600060405180830381600087803b15801561032057600080fd5b505af1158015610334573d6000803e3d6000fd5b50610345925033915083905061149e565b50565b61035061140c565b610358611539565b6103626004611577565b151580610370575060005415155b1561038e57604051636b62255160e11b815260040160405180910390fd5b6001805460ff60401b191668030000000000000000179055600f54604080516341c0e1b560e01b815290516001600160a01b03909216916341c0e1b59160048082019260009290919082900301818387803b1580156103ec57600080fd5b505af1158015610400573d6000803e3d6000fd5b50505050565b6001600160401b03821660009081526006602090815260408083208054845260030182528083206001600160a01b038516845290915290205460ff165b92915050565b60006104996040805161012081018252600060e0820181815260606101008401819052908352602083018290529282018190528282018390526080820183905260a082015260c081019190915290565b6001600160401b03808416600090815260036020908152604091829020825161012081018452815490941660e085019081526001820180548551818602810186019096528086529294869492938693610100870193919083018282801561052957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161050b575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156109335760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561063a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161061c575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061067490613a28565b80601f01602080910402602001604051908101604052809291908181526020018280546106a090613a28565b80156106ed5780601f106106c2576101008083540402835291602001916106ed565b820191906000526020600020905b8154815290600101906020018083116106d057829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561077e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610760575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906107b890613a28565b80601f01602080910402602001604051908101604052809291908181526020018280546107e490613a28565b80156108315780601f1061080657610100808354040283529160200191610831565b820191906000526020600020905b81548152906001019060200180831161081457829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161088c90613a28565b80601f01602080910402602001604051908101604052809291908181526020018280546108b890613a28565b80156109055780601f106108da57610100808354040283529160200191610905565b820191906000526020600020905b8154815290600101906020018083116108e857829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101610594565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015610a6a576000848152602090819020604080516080810182526003860290920180546001600160401b0316838301908152600182018054845181880281018801909552808552949592948694929386936060870193909290918301828280156109f657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109d8575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610a5257602002820191906000526020600020905b815481526020019060010190808311610a3e575b50505050508152505081526020019060010190610960565b50505050815260200160068201548152602001600782018054610a8c90613a28565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab890613a28565b8015610b055780601f10610ada57610100808354040283529160200191610b05565b820191906000526020600020905b815481529060010190602001808311610ae857829003601f168201915b5050509190925250508151604051630c133d1360e31b815292935073__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e8989250610b4a9190600401613a62565b602060405180830381865af4158015610b67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8b9190613a83565b159150915091565b610b9b61140c565b610ba3611539565b34336000829003610bc757604051635a78c58160e11b815260040160405180910390fd5b6001600160a01b03811660009081526007602052604081208054849290610bef908490613ab6565b9091555050600080548391908190610c08908490613ab6565b90915550506013546001600160a01b03821660009081526007602052604090205410610c9457610c39600482611581565b610c9457610c486004826115a6565b506001600160a01b0381166000908152600960205260409020610c6c858783613b42565b506001600160a01b0381166000908152600a602052604090208390610c918282613c57565b50505b6005600154600160401b900460ff166005811115610cb457610cb4613a12565b03610d3d5760135460005410610d38576001805460ff60401b1916600160401b179055600f546000805460408051630354740160e31b815290516001600160a01b0390941693631aa3a0089360048084019391929182900301818588803b158015610d1e57600080fd5b505af1158015610d32573d6000803e3d6000fd5b50505050505b610de2565b6002600154600160401b900460ff166005811115610d5d57610d5d613a12565b03610d815760135460005410610d81576001805460ff60401b1916600160401b1790555b600f54604080516316989f6f60e21b815290516001600160a01b0390921691635a627dbc918591600480830192600092919082900301818588803b158015610dc857600080fd5b505af1158015610ddc573d6000803e3d6000fd5b50505050505b5050505050565b6040805180820182526000808252606060208084018290526001600160401b03868116845260038252858420865180880188528154909216825260018101805488518186028101860190995280895296979596879687969585810193919290830182828015610e8157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e63575b505050919092525050506001600160401b038088166000908152600360208190526040909120600281015491810154600682015460079092018054959a5092909316975091955090935090610ed590613a28565b80601f0160208091040260200160405190810160405280929190818152602001828054610f0190613a28565b8015610f4e5780601f10610f2357610100808354040283529160200191610f4e565b820191906000526020600020905b815481529060010190602001808311610f3157829003601f168201915b5050505050905091939590929450565b610f666115bb565b6000610f726004611577565b905080600003610f955760405163efa9c8f160e01b815260040160405180910390fd5b80821015610fb657604051633074cabf60e11b815260040160405180910390fd5b6000610fc28284613d52565b905060005b82811015610400578160086000610fdf6004856115e6565b6001600160a01b03166001600160a01b03168152602001908152602001600020600082825461100e9190613ab6565b9091555050600101610fc7565b7f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009580546000190161105f576040516329f745a760e01b815260040160405180910390fd5b6001815561106b61140c565b611073611539565b33600090815260076020526040812054908190036110a457604051632ec5b44960e01b815260040160405180910390fd5b336000908152600760205260408120819055805482919081906110c8908490613d66565b909155506110d990506004336115f2565b5060018054600160401b900460ff1660058111156110f9576110f9613a12565b03611123576013546000541015611123576001805460ff60401b1916680200000000000000001790555b600f546040516345f5448560e01b8152600481018390526001600160a01b03909116906345f5448590602401600060405180830381600087803b15801561116957600080fd5b505af115801561117d573d6000803e3d6000fd5b5061118e925033915083905061149e565b5060009055565b61119d61140c565b6111b56111b060408301602084016132fd565b611607565b60018054600160401b900460ff1660058111156111d4576111d4613a12565b146111f25760405163c18316bf60e01b815260040160405180910390fd5b6111fd600433611581565b61121a57604051632ec5b44960e01b815260040160405180910390fd5b6011546112278280613d79565b61123090613f15565b6040516390ba52cf60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__916390ba52cf916112669190600401613a62565b602060405180830381865af4158015611283573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a791906139f9565b146112c5576040516375ecc72d60e01b815260040160405180910390fd5b73__$33b79814e84bf6cf5e47244090b19ce5f8$__63898414756112ec6060840184613f21565b6040518363ffffffff1660e01b815260040161130992919061413a565b602060405180830381865af4158015611326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134a9190613a83565b61136757604051630bd9169f60e01b815260040160405180910390fd5b600060068161137c60408501602086016132fd565b6001600160401b031681526020808201929092526040908101600090812033808352600790945291812054919350916113b89184918691611610565b905080156113ce576113c982611dd0565b505050565b6000806113d9612693565b915091508015610de2576001600160401b038216600090815260066020526040902061140481611dd0565b505050505050565b604051630972932760e21b815233600482015273__$e800e3908cdbb6b1b5bd452383a17b18f7$__906325ca4c9c90602401602060405180830381865af415801561145b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147f9190613a83565b61149c5760405163b7150de560e01b815260040160405180910390fd5b565b804710156114c55760405163cd78605960e01b815230600482015260240160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611512576040519150601f19603f3d011682016040523d82523d6000602084013e611517565b606091505b50509050806113c957604051630a12f52160e11b815260040160405180910390fd5b6003600154600160401b900460ff16600581111561155957611559613a12565b0361149c5760405163248c8efb60e11b815260040160405180910390fd5b6000610443825490565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b600061159f836001600160a01b0384166126e6565b600f546001600160a01b0316331461149c5760405163e7e601db60e01b815260040160405180910390fd5b600061159f8383612735565b600061159f836001600160a01b03841661275f565b61034581612859565b60008061161c8561464f565b6040516339aa47fb60e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__916339aa47fb91611652919060040161395c565b602060405180830381865af415801561166f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169391906139f9565b90506116b4868286866116ac60408b0160208c016132fd565b60005461290b565b600082815260058801602090815260409182902082516101208101845281546001600160401b031660e082019081526001830180548651818702810187019097528087529698509195929486949193869361010087019390919083018282801561174757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611729575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015611b515760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561185857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161183a575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061189290613a28565b80601f01602080910402602001604051908101604052809291908181526020018280546118be90613a28565b801561190b5780601f106118e05761010080835404028352916020019161190b565b820191906000526020600020905b8154815290600101906020018083116118ee57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561199c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161197e575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906119d690613a28565b80601f0160208091040260200160405190810160405280929190818152602001828054611a0290613a28565b8015611a4f5780601f10611a2457610100808354040283529160200191611a4f565b820191906000526020600020905b815481529060010190602001808311611a3257829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191611aaa90613a28565b80601f0160208091040260200160405190810160405280929190818152602001828054611ad690613a28565b8015611b235780601f10611af857610100808354040283529160200191611b23565b820191906000526020600020905b815481529060010190602001808311611b0657829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016117b2565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015611c88576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015611c1457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611bf6575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015611c7057602002820191906000526020600020905b815481526020019060010190808311611c5c575b50505050508152505081526020019060010190611b7e565b50505050815260200160068201548152602001600782018054611caa90613a28565b80601f0160208091040260200160405190810160405280929190818152602001828054611cd690613a28565b8015611d235780601f10611cf857610100808354040283529160200191611d23565b820191906000526020600020905b815481529060010190602001808311611d0657829003601f168201915b5050509190925250506040516322ea8d8960e11b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__926345d51b129250611d629160040161395c565b602060405180830381865af4158015611d7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da39190613a83565b15611dc757600081815260058701602052604090208590611dc48282614f48565b50505b50949350505050565b6002808201546000908152600583016020526040902060068101549154909114611e7257604051635a27a53960e11b81526004810183905273__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063b44f4a729060240160006040518083038186803b158015611e3f57600080fd5b505af4158015611e53573d6000803e3d6000fd5b5050506002820154611e6e91506001600160401b0316612b58565b5050565b6002810154611e89906001600160401b0316612bdc565b60028101546001600160401b039081166000908152600360205260409020825481546001600160401b03191692169190911781556001808301805484939284928492611ed89284019190612e9f565b50505060028281015490820180546001600160401b0319166001600160401b039092169190911790556003808301549082015560048083018054611f1f9284019190612eef565b5060058281018054611f3492840191906130b5565b506006820154816006015560078201816007019081611f539190615077565b5050604080516101208101825283546001600160401b031660e0820190815260018501805484516020828102820181019096528181529395508694869486936101008701939192909190830182828015611fd657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611fb8575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156123e05760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d019390918301828280156120e757602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116120c9575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061212190613a28565b80601f016020809104026020016040519081016040528092919081815260200182805461214d90613a28565b801561219a5780601f1061216f5761010080835404028352916020019161219a565b820191906000526020600020905b81548152906001019060200180831161217d57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561222b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161220d575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061226590613a28565b80601f016020809104026020016040519081016040528092919081815260200182805461229190613a28565b80156122de5780601f106122b3576101008083540402835291602001916122de565b820191906000526020600020905b8154815290600101906020018083116122c157829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161233990613a28565b80601f016020809104026020016040519081016040528092919081815260200182805461236590613a28565b80156123b25780601f10612387576101008083540402835291602001916123b2565b820191906000526020600020905b81548152906001019060200180831161239557829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101612041565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015612517576000848152602090819020604080516080810182526003860290920180546001600160401b0316838301908152600182018054845181880281018801909552808552949592948694929386936060870193909290918301828280156124a357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612485575b5050505050815250508152602001600282018054806020026020016040519081016040528092919081815260200182805480156124ff57602002820191906000526020600020905b8154815260200190600101908083116124eb575b5050505050815250508152602001906001019061240d565b5050505081526020016006820154815260200160078201805461253990613a28565b80601f016020809104026020016040519081016040528092919081815260200182805461256590613a28565b80156125b25780601f10612587576101008083540402835291602001916125b2565b820191906000526020600020905b81548152906001019060200180831161259557829003601f168201915b5050509190925250506040516339aa47fb60e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__926339aa47fb92506125f19160040161395c565b602060405180830381865af415801561260e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263291906139f9565b600255600f54604051631a9c293560e31b81526001600160a01b039091169063d4e149a8906126659084906004016153ef565b600060405180830381600087803b15801561267f57600080fd5b505af1158015611404573d6000803e3d6000fd5b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27154600160401b90046001600160401b031660006000805160206155128339815191526126df83612d3d565b9150509091565b600081815260018301602052604081205461272d57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610443565b506000610443565b600082600001828154811061274c5761274c61547f565b9060005260206000200154905092915050565b60008181526001830160205260408120548015612848576000612783600183613d66565b855490915060009061279790600190613d66565b90508181146127fc5760008660000182815481106127b7576127b761547f565b90600052602060002001549050808760000184815481106127da576127da61547f565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061280d5761280d615495565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610443565b6000915050610443565b5092915050565b60008051602061551283398151915280546001600160401b039081169083161161289657604051631f30cc6360e21b815260040160405180910390fd5b80546001600160401b03600160401b90910481169083161115611e6e5780546001600160401b03600160881b82048116916128da91600160401b90910416846154ab565b6128e491906154cb565b6001600160401b031615611e6e5760405163b4f68f9760e01b815260040160405180910390fd5b8554600081815260038801602090815260408083206001600160a01b038916845290915281205490916000805160206155128339815191529160ff1615612965576040516337138f5f60e11b815260040160405180910390fd5b600081815260038a01602090815260408083206001600160a01b038b1684529091528120805460ff191660019081179091558a0180548892906129a9908490613ab6565b9091555050600081815260048a01602090815260408083208b8452909152812080548892906129d9908490613ab6565b9091555050600081815260048a016020908152604080832060028d01548452909152808220548a835291205480821015612a155760028b018a90555b6000612a218c88612d8a565b90506003816003811115612a3757612a37613a12565b03612acc57612a4588612d3d565b15612a535760019550612b49565b60405163199b9ca560e01b81526001860160048201526001600160401b038916602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__9063199b9ca59060440160006040518083038186803b158015612aaf57600080fd5b505af4158015612ac3573d6000803e3d6000fd5b50505050612b49565b6002816003811115612ae057612ae0613a12565b03612b4957604051635a27a53960e11b8152600481018d905273__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063b44f4a729060240160006040518083038186803b158015612b3057600080fd5b505af4158015612b44573d6000803e3d6000fd5b505050505b50505050509695505050505050565b60006000805160206155128339815191526040516394ecccfd60e01b81526001820160048201526001600160401b038416602482015290915073__$b7b8687e33476c74e3b4e0a64c4768a343$__906394ecccfd9060440160006040518083038186803b158015612bc857600080fd5b505af4158015611404573d6000803e3d6000fd5b600080516020615512833981519152612bf482612d3d565b612bfc575050565b604051634953836d60e11b81526001820160048201526001600160401b038316602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__906392a706da90604401602060405180830381865af4158015612c5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c819190613a83565b15612ca85760018101546001600160401b03838116600160401b9092041614612ca8575050565b6040516394ecccfd60e01b81526001820160048201526001600160401b038316602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__906394ecccfd9060440160006040518083038186803b158015612d0457600080fd5b505af4158015612d18573d6000803e3d6000fd5b505082546001600160401b0319166001600160401b0394909416939093179091555050565b600080516020615512833981519152805460009190612d6e906001600160401b03600160881b8204811691166154f1565b6001600160401b0316836001600160401b031614915050919050565b6000805160206155128339815191528054600091908290606490612db890600160801b900460ff1686614737565b612dc29190613d52565b604051637d2ef4e560e11b81526004810187905290915060009073__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063fa5de9ca90602401602060405180830381865af4158015612e18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e3c91906139f9565b905081866001015411612e555760009350505050610443565b81811115612e695760039350505050610443565b6001860154612e789086613d66565b612e828284613d66565b10612e935760029350505050610443565b50600195945050505050565b828054828255906000526020600020908101928215612edf5760005260206000209182015b82811115612edf578254825591600101919060010190612ec4565b50612eeb929150613155565b5090565b82805482825590600052602060002090600c0281019282156130a957600052602060002091600c0282015b828111156130a957825482546001600160401b0319166001600160401b039091161782556001808401805485928592849284928492849284928492612f629291840191612e9f565b50505060028281018054918301805460ff191660ff90931692909217825590600380840190612f9390860182615077565b505050506004838101805491840180546001600160401b0319166001600160401b039093169290921782556005808601805492945084928492612fd99290880191612e9f565b50505060028281018054918301805460ff191660ff9093169290921782559060038084019061300a90860182615077565b5050505060088381015490830155506009808301805491830180546001600160401b031981166001600160401b039094169384178255915463ffffffff600160401b9182900416026bffffffffffffffffffffffff19909216909217179055600a8082019061307b90840182615077565b505050600b918201549101805460ff191660ff9092161515919091179055600c928301929190910190612f1a565b50612eeb92915061316a565b8280548282559060005260206000209060030281019282156131495760005260206000209160030282015b8281111561314957825482546001600160401b0319166001600160401b039091161782556001808401805485928592849284926131209290840191612e9f565b505050600282810180546131379284019190612e9f565b505050916003019190600301906130e0565b50612eeb92915061323f565b5b80821115612eeb5760008155600101613156565b80821115612eeb5780546001600160401b031916815560008181818181816131956001830182613280565b505060028201805460ff1916815560006131b2600385018261329e565b505050506004820180546001600160401b0319168155600081816131d96005870182613280565b505060028201805460ff1916815560006131f6600385018261329e565b50506000600885018190556009850180546bffffffffffffffffffffffff191690556132289250600a8501915061329e565b505050600b8101805460ff19169055600c0161316a565b80821115612eeb5780546001600160401b0319168155600081816132666001830182613280565b506132779050600283016000613280565b5060030161323f565b50805460008255906000526020600020908101906103459190613155565b5080546132aa90613a28565b6000825580601f106132ba575050565b601f0160209004906000526020600020908101906103459190613155565b6001600160401b038116811461034557600080fd5b80356132f8816132d8565b919050565b60006020828403121561330f57600080fd5b813561159f816132d8565b6001600160a01b038116811461034557600080fd5b6000806040838503121561334257600080fd5b823561334d816132d8565b9150602083013561335d8161331a565b809150509250929050565b6000604083016001600160401b0383511684526020808401516040828701528281518085526060880191508383019450600092505b808310156133c65784516001600160a01b0316825293830193600192909201919083019061339d565b509695505050505050565b6000815180845260005b818110156133f7576020818501810151868301820152016133db565b506000602082860101526020601f19601f83011685010191505092915050565b600081516040845261342c6040850182613368565b90506020830151848203602086015260ff8151168252602081015190506040602083015261345d60408301826133d1565b95945050505050565b600081518084526020808501808196508360051b8101915082860160005b8581101561354d578284038952815160408151818752805160c080848a01526134b16101008a0183613417565b915089830151603f196060818c860301818d01526134cf8584613417565b9686015160808d810191909152908601516001600160401b031660a0808e0191909152908601516001600160e01b031916938c0193909352918401518a860390920160e08b01525092905061352481846133d1565b93890151801515898b015293925061353a915050565b9986019994505090840190600101613484565b5091979650505050505050565b600081518084526020808501808196508360051b810191508286016000805b868110156135ec578385038a5282516040815181885261359b82890182613368565b92890151888403898b01528051808552908a01938693508a0191505b808310156135d757835182529289019260019290920191908901906135b7565b509b88019b9650505091850191600101613579565b509298975050505050505050565b8215158152604060208201526000825160e0604084015261361f610120840182613368565b90506001600160401b036020850151166060840152604084015160808401526060840151603f19808584030160a086015261365a8383613466565b925060808601519150808584030160c0860152613677838361355a565b925060a086015160e086015260c086015191508085840301610100860152506136a082826133d1565b9695505050505050565b6000806000604084860312156136bf57600080fd5b83356001600160401b03808211156136d657600080fd5b818601915086601f8301126136ea57600080fd5b8135818111156136f957600080fd5b87602082850101111561370b57600080fd5b60209283019550935090850135908082111561372657600080fd5b5084016040818703121561373957600080fd5b809150509250925092565b60a08152600061375760a0830188613368565b6001600160401b0387166020840152856040840152846060840152828103608084015261378481856133d1565b98975050505050505050565b6000602082840312156137a257600080fd5b5035919050565b6000602082840312156137bb57600080fd5b81356001600160401b038111156137d157600080fd5b820160e0818503121561159f57600080fd5b600081518084526020808501808196508360051b8101915082860160005b8581101561354d578284038952815160408151818752805160c080848a015261382e6101008a0183613417565b915089830151603f196060818c860301818d015261384c8584613417565b9686015160808d810191909152908601516001600160401b031660a0808e0191909152908601516001600160e01b031916938c0193909352918401518a860390920160e08b0152509290506138a181846133d1565b93890151801515898b01529392506138b7915050565b9986019994505090840190600101613801565b600081518084526020808501808196508360051b810191508286016000805b868110156135ec578385038a5282516040815181885261390b82890182613368565b92890151888403898b01528051808552908a01938693508a0191505b808310156139475783518252928901926001929092019190890190613927565b509b88019b96505050918501916001016138e9565b602081526000825160e06020840152613979610100840182613368565b90506001600160401b036020850151166040840152604084015160608401526060840151601f19808584030160808601526139b483836137e3565b925060808601519150808584030160a08601526139d183836138ca565b925060a086015160c086015260c08601519150808584030160e08601525061345d82826133d1565b600060208284031215613a0b57600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b600181811c90821680613a3c57607f821691505b602082108103613a5c57634e487b7160e01b600052602260045260246000fd5b50919050565b60208152600061159f6020830184613368565b801515811461034557600080fd5b600060208284031215613a9557600080fd5b815161159f81613a75565b634e487b7160e01b600052601160045260246000fd5b8082018082111561044357610443613aa0565b634e487b7160e01b600052604160045260246000fd5b5b81811015611e6e5760008155600101613ae0565b601f8211156113c957806000526020600020601f840160051c81016020851015613b1b5750805b610de2601f850160051c830182613adf565b600019600383901b1c191660019190911b1790565b6001600160401b03831115613b5957613b59613ac9565b613b6d83613b678354613a28565b83613af4565b6000601f841160018114613b9b5760008515613b895750838201355b613b938682613b2d565b845550610de2565b600083815260209020601f19861690835b82811015613bcc5786850135825560209485019460019092019101613bac565b5086821015613be95760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60ff8116811461034557600080fd5b6000808335601e19843603018112613c2157600080fd5b8301803591506001600160401b03821115613c3b57600080fd5b602001915036819003821315613c5057600080fd5b9250929050565b8135613c6281613bfb565b60ff811660ff198354161782555060018082016020613c8381860186613c0a565b6001600160401b03811115613c9a57613c9a613ac9565b613cae81613ca88654613a28565b86613af4565b6000601f821160018114613cdc5760008315613cca5750838201355b613cd48482613b2d565b875550613d31565b600086815260209020601f19841690835b82811015613d0a5786850135825593870193908901908701613ced565b5084821015613d275760001960f88660031b161c19848701351681555b50508683881b0186555b505050505050505050565b634e487b7160e01b600052601260045260246000fd5b600082613d6157613d61613d3c565b500490565b8181038181111561044357610443613aa0565b60008235603e19833603018112613d8f57600080fd5b9190910192915050565b604080519081016001600160401b0381118282101715613dbb57613dbb613ac9565b60405290565b60405160c081016001600160401b0381118282101715613dbb57613dbb613ac9565b60405160e081016001600160401b0381118282101715613dbb57613dbb613ac9565b604051601f8201601f191681016001600160401b0381118282101715613e2d57613e2d613ac9565b604052919050565b60006001600160401b03821115613e4e57613e4e613ac9565b5060051b60200190565b600060408284031215613e6a57600080fd5b613e72613d99565b90508135613e7f816132d8565b81526020828101356001600160401b03811115613e9b57600080fd5b8301601f81018513613eac57600080fd5b8035613ebf613eba82613e35565b613e05565b81815260059190911b82018301908381019087831115613ede57600080fd5b928401925b82841015613f05578335613ef68161331a565b82529284019290840190613ee3565b8085870152505050505092915050565b60006104433683613e58565b6000808335601e19843603018112613f3857600080fd5b8301803591506001600160401b03821115613f5257600080fd5b6020019150600581901b3603821315613c5057600080fd5b60008235603e19833603018112613f8057600080fd5b90910192915050565b6000808335601e19843603018112613fa057600080fd5b83016020810192503590506001600160401b03811115613fbf57600080fd5b803603821315613c5057600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000813561400481613bfb565b60ff1683526140166020830183613f89565b6040602086015261345d604086018284613fce565b60006140378283613f6a565b6040845260808401813561404a816132d8565b6001600160401b0390811660408701526020908382013536859003601e1901811261407457600080fd5b9093018181019390358181111561408a57600080fd5b8060051b360385131561409c57600080fd5b60406060890152928390525060009160a08701905b808410156140e35784356140c48161331a565b6001600160a01b031682529382019360019390930192908201906140b1565b506140f082870187613f6a565b9350868103828801526141038185613ff7565b979650505050505050565b6001600160e01b03198116811461034557600080fd5b80356132f88161410e565b80356132f881613a75565b60208082528181018390526000906040808401600586901b850182018785805b8981101561426e57603f19808a8603018652614176848d613f6a565b803560be19823603018112614189578485fd5b88875281016141988180613f6a565b60c0808b8a01526141ad6101008a018361402b565b91506141bb8c840184613f6a565b6060868b850301818c01526141d0848361402b565b9350608091508c850135828c01528085013590506141ed816132d8565b60a06001600160401b038216818d015282860135925061420c8361410e565b6001600160e01b031983168c85015261422786820187613f89565b96509350505050848983030160e08a0152614243828483613fce565b945050505061425389820161412f565b1515958901959095529487019493509186019160010161415a565b50919998505050505050505050565b600082601f83011261428e57600080fd5b81356001600160401b038111156142a7576142a7613ac9565b6142ba601f8201601f1916602001613e05565b8181528460208386010111156142cf57600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156142fe57600080fd5b614306613d99565b905081356001600160401b038082111561431f57600080fd5b61432b85838601613e58565b8352602084013591508082111561434157600080fd5b908301906040828603121561435557600080fd5b61435d613d99565b823561436881613bfb565b815260208301358281111561437c57600080fd5b6143888782860161427d565b60208301525080602085015250505092915050565b600082601f8301126143ae57600080fd5b813560206143be613eba83613e35565b82815260059290921b840181019181810190868411156143dd57600080fd5b8286015b848110156133c65780356001600160401b038082111561440057600080fd5b90880190601f196040838c038201121561441957600080fd5b614421613d99565b878401358381111561443257600080fd5b840160c0818e038401121561444657600080fd5b61444e613dc1565b9250888101358481111561446157600080fd5b61446f8e8b838501016142ec565b84525060408101358481111561448457600080fd5b6144928e8b838501016142ec565b8a85015250606081013560408401526144ad608082016132ed565b60608401526144be60a08201614124565b608084015260c0810135848111156144d557600080fd5b6144e38e8b8385010161427d565b60a085015250508181526144f96040850161412f565b8189015286525050509183019183016143e1565b600082601f83011261451e57600080fd5b8135602061452e613eba83613e35565b828152600592831b850182019282820191908785111561454d57600080fd5b8387015b858110156146425780356001600160401b03808211156145715760008081fd5b908901906040828c03601f190181131561458b5760008081fd5b614593613d99565b88840135838111156145a55760008081fd5b6145b38e8b83880101613e58565b82525081840135838111156145c85760008081fd5b8085019450508c603f8501126145e057600092508283fd5b8884013592506145f2613eba84613e35565b83815292861b8401820192898101908e85111561460f5760008081fd5b948301945b8486101561462d5785358252948a0194908a0190614614565b828b0152508752505050928401928401614551565b5090979650505050505050565b600060e0823603121561466157600080fd5b614669613de3565b82356001600160401b038082111561468057600080fd5b61468c36838701613e58565b835261469a602086016132ed565b60208401526040850135604084015260608501359150808211156146bd57600080fd5b6146c93683870161439d565b606084015260808501359150808211156146e257600080fd5b6146ee3683870161450d565b608084015260a085013560a084015260c085013591508082111561471157600080fd5b5061471e3682860161427d565b60c08301525092915050565b60008135610443816132d8565b808202811582820484141761044357610443613aa0565b8054600082558015611e6e578160005260206000206113c982820182613adf565b600160401b82111561478357614783613ac9565b8054828255808310156113c957816000526020600020610400828201858301613adf565b600081556103456001820161474e565b6147c18154613a28565b8015611e6e57601f8111600181146147db57505060009055565b8260005260206000206147f9601f840160051c820160018301613adf565b60008085559055505050565b600081556148156001820161474e565b60006002820155610345600382016147b7565b6148328283613d79565b803561483d816132d8565b82546001600160401b0319166001600160401b038216178355506001808301602061486a81850185613f21565b94506001600160401b038086111561488457614884613ac9565b61488e868561476f565b600093845282842093805b878110156148bb5783356148ac8161331a565b86820155928401928601614899565b506002880196506148ce848a018a613d79565b9450843592506148dd83613bfb565b865460ff191660ff84161790965560038701956148fc85850186613c0a565b955092508185111561491057614910613ac9565b6149248561491e8954613a28565b89613af4565b809150601f851160018114614952578186156149405750838301355b61494a8782613b2d565b895550610ddc565b600088815260209020601f19871690835b828110156149805786860135825594870194908901908701614963565b508782101561499d5760001960f88960031b161c19858701351681555b505050505091831b90920190925550505050565b600081356104438161410e565b6000813561044381613a75565b813560be198336030181126149df57600080fd5b82016149eb8180613d79565b6149f58182613d79565b8035614a00816132d8565b84546001600160401b0319166001600160401b0382161785555060018085016020614a2d81850185613f21565b94506001600160401b0380861115614a4757614a47613ac9565b614a51868561476f565b600093845282842093805b87811015614a7e578335614a6f8161331a565b86820155928401928601614a5c565b5060028a019650614a9184890189613d79565b975087359450614aa085613bfb565b865460ff191660ff8616179096556003890195614abf88850189613c0a565b9850945081881115614ad357614ad3613ac9565b614ae18861491e8954613a28565b809250601f881160018114614b11578192508815614b00578386013592505b614b0a8984613b2d565b8855614b66565b600088815260209020601f198a169350825b84811015614b405787860135825594860194908801908601614b23565b5089841015614b5d5760001960f88b60031b161c19858801351681555b508689881b0188555b50505050614b82614b7982880188613d79565b60048901614828565b60408601356008880155600987019450614bbe614ba16060880161472a565b86546001600160401b0319166001600160401b0391909116178655565b614bf7614bcd608088016149b1565b86546bffffffff0000000000000000191660a09190911c6bffffffff000000000000000016178655565b614c0460a0870187613c0a565b96509450614c168686600a8a01613b42565b614c3d614c24828a016149be565b600b890160ff1981541660ff8315151681178255505050565b5050505050505050565b600160401b831115614c5b57614c5b613ac9565b805483825580841015614cef57600c8181028181048314614c7e57614c7e613aa0565b8582028281048714614c9257614c92613aa0565b6000858152602081209283019291909101905b82821015614cea57614cb682614805565b614cc260048301614805565b806008830155806009830155614cda600a83016147b7565b80600b8301558382019150614ca5565b505050505b5060008181526020812083915b8581101561140457614d17614d118487613d79565b836149cb565b60209290920191600c9190910190600101614cfc565b8054600080835581156113c957828152602081208281015b80821015610de257828255600182019150614d45565b600160401b821115614d6f57614d6f613ac9565b8054828255808310156113c9576000828152602081208481019083015b8082101561140457828255600182019150614d8c565b614dac8283613d79565b8035614db7816132d8565b82546001600160401b0319166001600160401b0382161783555060018083016020614de481850185613f21565b94506001600160401b0380861115614dfe57614dfe613ac9565b614e08868561476f565b600093845282842093805b87811015614e35578335614e268161331a565b86820155928401928601614e13565b50600288019650614e48848a018a613f21565b9550925081851115614e5c57614e5c613ac9565b614e668588614d5b565b95865250818520945b83811015614c3d57813586820155908201908401614e6f565b600160401b831115614e9c57614e9c613ac9565b805483825580841015614f0a5760038181028181048314614ebf57614ebf613aa0565b8582028281048714614ed357614ed3613aa0565b60008581526020902091820191015b81811015614f0657614ef3816147a7565b614eff60028201614d2d565b8201614ee2565b5050505b5060008181526020812083915b8581101561140457614f32614f2c8487613d79565b83614da2565b6020929092019160039190910190600101614f17565b614f528283613d79565b8035614f5d816132d8565b82546001600160401b0319166001600160401b0382161783555060018083016020614f8a81850185613f21565b94506001600160401b03851115614fa357614fa3613ac9565b614fad858461476f565b6000928352818320925b85811015614fd9578135614fca8161331a565b84820155908201908401614fb7565b505061500a614fe982880161472a565b600287016001600160401b0382166001600160401b03198254161781555050565b50505050604082013560038201556150256060830183613f21565b615033818360048601614c47565b50506150426080830183613f21565b615050818360058601614e88565b505060a0820135600682015561506960c0830183613c0a565b610400818360078601613b42565b818103615082575050565b61508c8254613a28565b6001600160401b038111156150a3576150a3613ac9565b6150b7816150b18454613a28565b84613af4565b6000601f8211600181146150e557600083156150d35750848201545b6150dd8482613b2d565b855550610de2565b600085815260209020601f19841690600086815260209020845b8381101561511f57828601548255600195860195909101906020016150ff565b508583101561513d5781850154600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000604083016001600160401b0383541684526001808401602060408188015283825480865260608901915083600052826000209550600093505b808410156151ae5785546001600160a01b03168252948401949284019290820190615188565b50979650505050505050565b600081546151c781613a28565b8085526020600183811680156151e457600181146151fe5761522c565b60ff1985168884015283151560051b88018301955061522c565b866000528260002060005b858110156152245781548a8201860152908301908401615209565b890184019650505b505050505092915050565b60408252600061524a604084018361514d565b838103602085015260ff60028401541681526040602082015261527360408201600385016151ba565b949350505050565b600081548084526020808501808196508360051b81019150856000528260002060005b8581101561354d578284038952604080855260c080828701526152c5610100870185615237565b9150603f19808784030160608801526152e18360048701615237565b6008860154608089015260098601546001600160401b03811660a0808b01919091521b6001600160e01b031916928801929092528682030160e0870152905061532d81600a85016151ba565b905061533d600b84015460ff1690565b15159486019490945297840197600c919091019060010161529e565b600081548084526020808501808196508360051b810191506000868152838120815b868110156135ec578385038a5260408086526153998187018461514d565b86810388880152600284018054808352908652888620925085918901905b808310156153d757835482526001938401939290920191908901906153b7565b509b88019b965050506003919091019060010161537b565b6020815260e06020820152600061540a61010083018461514d565b60028401546001600160401b0316604084015260038401546060840152828103601f199081016080850152615442826004870161527b565b9150808483030160a085015261545b8260058701615359565b9150600685015460c0850152808483030160e08501525061527381600786016151ba565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6001600160401b0382811682821603908082111561285257612852613aa0565b60006001600160401b03808416806154e5576154e5613d3c565b92169190910692915050565b6001600160401b0381811683821601908082111561285257612852613aa056fe283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e270a264697066735822122001b46e81270e5c112262180ce78840f576b5d7c72a99b8876c16a96ffd6396ea64736f6c63430008130033", + "sourceMap": "1767:9418:68:-:0;;;;;;;;;;;;;;;;;;;", + "linkReferences": { + "src/lib/AccountHelper.sol": { + "AccountHelper": [ + { + "start": 5185, + "length": 20 + } + ] + }, + "src/lib/CheckpointHelper.sol": { + "CheckpointHelper": [ + { + "start": 570, + "length": 20 + }, + { + "start": 5707, + "length": 20 + }, + { + "start": 7515, + "length": 20 + }, + { + "start": 9706, + "length": 20 + } + ] + }, + "src/lib/CrossMsgHelper.sol": { + "CrossMsgHelper": [ + { + "start": 4839, + "length": 20 + } + ] + }, + "src/lib/EpochVoteSubmissionHelper.sol": { + "EpochVoteSubmissionHelper": [ + { + "start": 7722, + "length": 20 + }, + { + "start": 11035, + "length": 20 + }, + { + "start": 11774, + "length": 20 + } + ] + }, + "src/lib/ExecutableQueueHelper.sol": { + "ExecutableQueueHelper": [ + { + "start": 10906, + "length": 20 + }, + { + "start": 11187, + "length": 20 + }, + { + "start": 11331, + "length": 20 + }, + { + "start": 11503, + "length": 20 + } + ] + }, + "src/lib/SubnetIDHelper.sol": { + "SubnetIDHelper": [ + { + "start": 2882, + "length": 20 + }, + { + "start": 4703, + "length": 20 + } + ] + } + } + }, + "deployedBytecode": { + "object": "0x6080604052600436106100915760003560e01c80636cf6970a116100595780636cf6970a1461015c578063989037481461016f578063a9fb763c146101a0578063d66d9e19146101c0578063f6fd8381146101d557600080fd5b8063133f74ea146100965780633ccfd60b146100d257806341c0e1b5146100e957806366d7bbbc146100fe5780636cb2ecee1461012e575b600080fd5b3480156100a257600080fd5b506100b66100b13660046132fd565b6101f5565b6040805192151583526020830191909152015b60405180910390f35b3480156100de57600080fd5b506100e761028e565b005b3480156100f557600080fd5b506100e7610348565b34801561010a57600080fd5b5061011e61011936600461332f565b610406565b60405190151581526020016100c9565b34801561013a57600080fd5b5061014e6101493660046132fd565b610449565b6040516100c99291906135fa565b6100e761016a3660046136aa565b610b93565b34801561017b57600080fd5b5061018f61018a3660046132fd565b610de9565b6040516100c9959493929190613744565b3480156101ac57600080fd5b506100e76101bb366004613790565b610f5e565b3480156101cc57600080fd5b506100e761101b565b3480156101e157600080fd5b506100e76101f03660046137a9565b611195565b60008060008061020485610449565b6040516339aa47fb60e01b81529193509150829073__$1cd67d4dc9e627f0bec7928aa480e7d951$__906339aa47fb9061024290859060040161395c565b602060405180830381865af415801561025f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061028391906139f9565b935093505050915091565b61029661140c565b33600090815260086020526040812054908190036102c7576040516367300f9160e11b815260040160405180910390fd5b3360009081526008602052604080822091909155600f549051631f0e077760e31b8152600481018390526001600160a01b039091169063f8703bb890602401600060405180830381600087803b15801561032057600080fd5b505af1158015610334573d6000803e3d6000fd5b50610345925033915083905061149e565b50565b61035061140c565b610358611539565b6103626004611577565b151580610370575060005415155b1561038e57604051636b62255160e11b815260040160405180910390fd5b6001805460ff60401b191668030000000000000000179055600f54604080516341c0e1b560e01b815290516001600160a01b03909216916341c0e1b59160048082019260009290919082900301818387803b1580156103ec57600080fd5b505af1158015610400573d6000803e3d6000fd5b50505050565b6001600160401b03821660009081526006602090815260408083208054845260030182528083206001600160a01b038516845290915290205460ff165b92915050565b60006104996040805161012081018252600060e0820181815260606101008401819052908352602083018290529282018190528282018390526080820183905260a082015260c081019190915290565b6001600160401b03808416600090815260036020908152604091829020825161012081018452815490941660e085019081526001820180548551818602810186019096528086529294869492938693610100870193919083018282801561052957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161050b575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156109335760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561063a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161061c575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061067490613a28565b80601f01602080910402602001604051908101604052809291908181526020018280546106a090613a28565b80156106ed5780601f106106c2576101008083540402835291602001916106ed565b820191906000526020600020905b8154815290600101906020018083116106d057829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561077e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610760575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906107b890613a28565b80601f01602080910402602001604051908101604052809291908181526020018280546107e490613a28565b80156108315780601f1061080657610100808354040283529160200191610831565b820191906000526020600020905b81548152906001019060200180831161081457829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161088c90613a28565b80601f01602080910402602001604051908101604052809291908181526020018280546108b890613a28565b80156109055780601f106108da57610100808354040283529160200191610905565b820191906000526020600020905b8154815290600101906020018083116108e857829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101610594565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015610a6a576000848152602090819020604080516080810182526003860290920180546001600160401b0316838301908152600182018054845181880281018801909552808552949592948694929386936060870193909290918301828280156109f657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109d8575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610a5257602002820191906000526020600020905b815481526020019060010190808311610a3e575b50505050508152505081526020019060010190610960565b50505050815260200160068201548152602001600782018054610a8c90613a28565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab890613a28565b8015610b055780601f10610ada57610100808354040283529160200191610b05565b820191906000526020600020905b815481529060010190602001808311610ae857829003601f168201915b5050509190925250508151604051630c133d1360e31b815292935073__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e8989250610b4a9190600401613a62565b602060405180830381865af4158015610b67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8b9190613a83565b159150915091565b610b9b61140c565b610ba3611539565b34336000829003610bc757604051635a78c58160e11b815260040160405180910390fd5b6001600160a01b03811660009081526007602052604081208054849290610bef908490613ab6565b9091555050600080548391908190610c08908490613ab6565b90915550506013546001600160a01b03821660009081526007602052604090205410610c9457610c39600482611581565b610c9457610c486004826115a6565b506001600160a01b0381166000908152600960205260409020610c6c858783613b42565b506001600160a01b0381166000908152600a602052604090208390610c918282613c57565b50505b6005600154600160401b900460ff166005811115610cb457610cb4613a12565b03610d3d5760135460005410610d38576001805460ff60401b1916600160401b179055600f546000805460408051630354740160e31b815290516001600160a01b0390941693631aa3a0089360048084019391929182900301818588803b158015610d1e57600080fd5b505af1158015610d32573d6000803e3d6000fd5b50505050505b610de2565b6002600154600160401b900460ff166005811115610d5d57610d5d613a12565b03610d815760135460005410610d81576001805460ff60401b1916600160401b1790555b600f54604080516316989f6f60e21b815290516001600160a01b0390921691635a627dbc918591600480830192600092919082900301818588803b158015610dc857600080fd5b505af1158015610ddc573d6000803e3d6000fd5b50505050505b5050505050565b6040805180820182526000808252606060208084018290526001600160401b03868116845260038252858420865180880188528154909216825260018101805488518186028101860190995280895296979596879687969585810193919290830182828015610e8157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e63575b505050919092525050506001600160401b038088166000908152600360208190526040909120600281015491810154600682015460079092018054959a5092909316975091955090935090610ed590613a28565b80601f0160208091040260200160405190810160405280929190818152602001828054610f0190613a28565b8015610f4e5780601f10610f2357610100808354040283529160200191610f4e565b820191906000526020600020905b815481529060010190602001808311610f3157829003601f168201915b5050505050905091939590929450565b610f666115bb565b6000610f726004611577565b905080600003610f955760405163efa9c8f160e01b815260040160405180910390fd5b80821015610fb657604051633074cabf60e11b815260040160405180910390fd5b6000610fc28284613d52565b905060005b82811015610400578160086000610fdf6004856115e6565b6001600160a01b03166001600160a01b03168152602001908152602001600020600082825461100e9190613ab6565b9091555050600101610fc7565b7f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009580546000190161105f576040516329f745a760e01b815260040160405180910390fd5b6001815561106b61140c565b611073611539565b33600090815260076020526040812054908190036110a457604051632ec5b44960e01b815260040160405180910390fd5b336000908152600760205260408120819055805482919081906110c8908490613d66565b909155506110d990506004336115f2565b5060018054600160401b900460ff1660058111156110f9576110f9613a12565b03611123576013546000541015611123576001805460ff60401b1916680200000000000000001790555b600f546040516345f5448560e01b8152600481018390526001600160a01b03909116906345f5448590602401600060405180830381600087803b15801561116957600080fd5b505af115801561117d573d6000803e3d6000fd5b5061118e925033915083905061149e565b5060009055565b61119d61140c565b6111b56111b060408301602084016132fd565b611607565b60018054600160401b900460ff1660058111156111d4576111d4613a12565b146111f25760405163c18316bf60e01b815260040160405180910390fd5b6111fd600433611581565b61121a57604051632ec5b44960e01b815260040160405180910390fd5b6011546112278280613d79565b61123090613f15565b6040516390ba52cf60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__916390ba52cf916112669190600401613a62565b602060405180830381865af4158015611283573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a791906139f9565b146112c5576040516375ecc72d60e01b815260040160405180910390fd5b73__$33b79814e84bf6cf5e47244090b19ce5f8$__63898414756112ec6060840184613f21565b6040518363ffffffff1660e01b815260040161130992919061413a565b602060405180830381865af4158015611326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134a9190613a83565b61136757604051630bd9169f60e01b815260040160405180910390fd5b600060068161137c60408501602086016132fd565b6001600160401b031681526020808201929092526040908101600090812033808352600790945291812054919350916113b89184918691611610565b905080156113ce576113c982611dd0565b505050565b6000806113d9612693565b915091508015610de2576001600160401b038216600090815260066020526040902061140481611dd0565b505050505050565b604051630972932760e21b815233600482015273__$e800e3908cdbb6b1b5bd452383a17b18f7$__906325ca4c9c90602401602060405180830381865af415801561145b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147f9190613a83565b61149c5760405163b7150de560e01b815260040160405180910390fd5b565b804710156114c55760405163cd78605960e01b815230600482015260240160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611512576040519150601f19603f3d011682016040523d82523d6000602084013e611517565b606091505b50509050806113c957604051630a12f52160e11b815260040160405180910390fd5b6003600154600160401b900460ff16600581111561155957611559613a12565b0361149c5760405163248c8efb60e11b815260040160405180910390fd5b6000610443825490565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b600061159f836001600160a01b0384166126e6565b600f546001600160a01b0316331461149c5760405163e7e601db60e01b815260040160405180910390fd5b600061159f8383612735565b600061159f836001600160a01b03841661275f565b61034581612859565b60008061161c8561464f565b6040516339aa47fb60e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__916339aa47fb91611652919060040161395c565b602060405180830381865af415801561166f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169391906139f9565b90506116b4868286866116ac60408b0160208c016132fd565b60005461290b565b600082815260058801602090815260409182902082516101208101845281546001600160401b031660e082019081526001830180548651818702810187019097528087529698509195929486949193869361010087019390919083018282801561174757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611729575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015611b515760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561185857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161183a575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061189290613a28565b80601f01602080910402602001604051908101604052809291908181526020018280546118be90613a28565b801561190b5780601f106118e05761010080835404028352916020019161190b565b820191906000526020600020905b8154815290600101906020018083116118ee57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561199c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161197e575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906119d690613a28565b80601f0160208091040260200160405190810160405280929190818152602001828054611a0290613a28565b8015611a4f5780601f10611a2457610100808354040283529160200191611a4f565b820191906000526020600020905b815481529060010190602001808311611a3257829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191611aaa90613a28565b80601f0160208091040260200160405190810160405280929190818152602001828054611ad690613a28565b8015611b235780601f10611af857610100808354040283529160200191611b23565b820191906000526020600020905b815481529060010190602001808311611b0657829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016117b2565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015611c88576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015611c1457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611bf6575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015611c7057602002820191906000526020600020905b815481526020019060010190808311611c5c575b50505050508152505081526020019060010190611b7e565b50505050815260200160068201548152602001600782018054611caa90613a28565b80601f0160208091040260200160405190810160405280929190818152602001828054611cd690613a28565b8015611d235780601f10611cf857610100808354040283529160200191611d23565b820191906000526020600020905b815481529060010190602001808311611d0657829003601f168201915b5050509190925250506040516322ea8d8960e11b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__926345d51b129250611d629160040161395c565b602060405180830381865af4158015611d7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da39190613a83565b15611dc757600081815260058701602052604090208590611dc48282614f48565b50505b50949350505050565b6002808201546000908152600583016020526040902060068101549154909114611e7257604051635a27a53960e11b81526004810183905273__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063b44f4a729060240160006040518083038186803b158015611e3f57600080fd5b505af4158015611e53573d6000803e3d6000fd5b5050506002820154611e6e91506001600160401b0316612b58565b5050565b6002810154611e89906001600160401b0316612bdc565b60028101546001600160401b039081166000908152600360205260409020825481546001600160401b03191692169190911781556001808301805484939284928492611ed89284019190612e9f565b50505060028281015490820180546001600160401b0319166001600160401b039092169190911790556003808301549082015560048083018054611f1f9284019190612eef565b5060058281018054611f3492840191906130b5565b506006820154816006015560078201816007019081611f539190615077565b5050604080516101208101825283546001600160401b031660e0820190815260018501805484516020828102820181019096528181529395508694869486936101008701939192909190830182828015611fd657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611fb8575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156123e05760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d019390918301828280156120e757602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116120c9575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061212190613a28565b80601f016020809104026020016040519081016040528092919081815260200182805461214d90613a28565b801561219a5780601f1061216f5761010080835404028352916020019161219a565b820191906000526020600020905b81548152906001019060200180831161217d57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561222b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161220d575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061226590613a28565b80601f016020809104026020016040519081016040528092919081815260200182805461229190613a28565b80156122de5780601f106122b3576101008083540402835291602001916122de565b820191906000526020600020905b8154815290600101906020018083116122c157829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161233990613a28565b80601f016020809104026020016040519081016040528092919081815260200182805461236590613a28565b80156123b25780601f10612387576101008083540402835291602001916123b2565b820191906000526020600020905b81548152906001019060200180831161239557829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101612041565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015612517576000848152602090819020604080516080810182526003860290920180546001600160401b0316838301908152600182018054845181880281018801909552808552949592948694929386936060870193909290918301828280156124a357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612485575b5050505050815250508152602001600282018054806020026020016040519081016040528092919081815260200182805480156124ff57602002820191906000526020600020905b8154815260200190600101908083116124eb575b5050505050815250508152602001906001019061240d565b5050505081526020016006820154815260200160078201805461253990613a28565b80601f016020809104026020016040519081016040528092919081815260200182805461256590613a28565b80156125b25780601f10612587576101008083540402835291602001916125b2565b820191906000526020600020905b81548152906001019060200180831161259557829003601f168201915b5050509190925250506040516339aa47fb60e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__926339aa47fb92506125f19160040161395c565b602060405180830381865af415801561260e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263291906139f9565b600255600f54604051631a9c293560e31b81526001600160a01b039091169063d4e149a8906126659084906004016153ef565b600060405180830381600087803b15801561267f57600080fd5b505af1158015611404573d6000803e3d6000fd5b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27154600160401b90046001600160401b031660006000805160206155128339815191526126df83612d3d565b9150509091565b600081815260018301602052604081205461272d57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610443565b506000610443565b600082600001828154811061274c5761274c61547f565b9060005260206000200154905092915050565b60008181526001830160205260408120548015612848576000612783600183613d66565b855490915060009061279790600190613d66565b90508181146127fc5760008660000182815481106127b7576127b761547f565b90600052602060002001549050808760000184815481106127da576127da61547f565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061280d5761280d615495565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610443565b6000915050610443565b5092915050565b60008051602061551283398151915280546001600160401b039081169083161161289657604051631f30cc6360e21b815260040160405180910390fd5b80546001600160401b03600160401b90910481169083161115611e6e5780546001600160401b03600160881b82048116916128da91600160401b90910416846154ab565b6128e491906154cb565b6001600160401b031615611e6e5760405163b4f68f9760e01b815260040160405180910390fd5b8554600081815260038801602090815260408083206001600160a01b038916845290915281205490916000805160206155128339815191529160ff1615612965576040516337138f5f60e11b815260040160405180910390fd5b600081815260038a01602090815260408083206001600160a01b038b1684529091528120805460ff191660019081179091558a0180548892906129a9908490613ab6565b9091555050600081815260048a01602090815260408083208b8452909152812080548892906129d9908490613ab6565b9091555050600081815260048a016020908152604080832060028d01548452909152808220548a835291205480821015612a155760028b018a90555b6000612a218c88612d8a565b90506003816003811115612a3757612a37613a12565b03612acc57612a4588612d3d565b15612a535760019550612b49565b60405163199b9ca560e01b81526001860160048201526001600160401b038916602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__9063199b9ca59060440160006040518083038186803b158015612aaf57600080fd5b505af4158015612ac3573d6000803e3d6000fd5b50505050612b49565b6002816003811115612ae057612ae0613a12565b03612b4957604051635a27a53960e11b8152600481018d905273__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063b44f4a729060240160006040518083038186803b158015612b3057600080fd5b505af4158015612b44573d6000803e3d6000fd5b505050505b50505050509695505050505050565b60006000805160206155128339815191526040516394ecccfd60e01b81526001820160048201526001600160401b038416602482015290915073__$b7b8687e33476c74e3b4e0a64c4768a343$__906394ecccfd9060440160006040518083038186803b158015612bc857600080fd5b505af4158015611404573d6000803e3d6000fd5b600080516020615512833981519152612bf482612d3d565b612bfc575050565b604051634953836d60e11b81526001820160048201526001600160401b038316602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__906392a706da90604401602060405180830381865af4158015612c5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c819190613a83565b15612ca85760018101546001600160401b03838116600160401b9092041614612ca8575050565b6040516394ecccfd60e01b81526001820160048201526001600160401b038316602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__906394ecccfd9060440160006040518083038186803b158015612d0457600080fd5b505af4158015612d18573d6000803e3d6000fd5b505082546001600160401b0319166001600160401b0394909416939093179091555050565b600080516020615512833981519152805460009190612d6e906001600160401b03600160881b8204811691166154f1565b6001600160401b0316836001600160401b031614915050919050565b6000805160206155128339815191528054600091908290606490612db890600160801b900460ff1686614737565b612dc29190613d52565b604051637d2ef4e560e11b81526004810187905290915060009073__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063fa5de9ca90602401602060405180830381865af4158015612e18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e3c91906139f9565b905081866001015411612e555760009350505050610443565b81811115612e695760039350505050610443565b6001860154612e789086613d66565b612e828284613d66565b10612e935760029350505050610443565b50600195945050505050565b828054828255906000526020600020908101928215612edf5760005260206000209182015b82811115612edf578254825591600101919060010190612ec4565b50612eeb929150613155565b5090565b82805482825590600052602060002090600c0281019282156130a957600052602060002091600c0282015b828111156130a957825482546001600160401b0319166001600160401b039091161782556001808401805485928592849284928492849284928492612f629291840191612e9f565b50505060028281018054918301805460ff191660ff90931692909217825590600380840190612f9390860182615077565b505050506004838101805491840180546001600160401b0319166001600160401b039093169290921782556005808601805492945084928492612fd99290880191612e9f565b50505060028281018054918301805460ff191660ff9093169290921782559060038084019061300a90860182615077565b5050505060088381015490830155506009808301805491830180546001600160401b031981166001600160401b039094169384178255915463ffffffff600160401b9182900416026bffffffffffffffffffffffff19909216909217179055600a8082019061307b90840182615077565b505050600b918201549101805460ff191660ff9092161515919091179055600c928301929190910190612f1a565b50612eeb92915061316a565b8280548282559060005260206000209060030281019282156131495760005260206000209160030282015b8281111561314957825482546001600160401b0319166001600160401b039091161782556001808401805485928592849284926131209290840191612e9f565b505050600282810180546131379284019190612e9f565b505050916003019190600301906130e0565b50612eeb92915061323f565b5b80821115612eeb5760008155600101613156565b80821115612eeb5780546001600160401b031916815560008181818181816131956001830182613280565b505060028201805460ff1916815560006131b2600385018261329e565b505050506004820180546001600160401b0319168155600081816131d96005870182613280565b505060028201805460ff1916815560006131f6600385018261329e565b50506000600885018190556009850180546bffffffffffffffffffffffff191690556132289250600a8501915061329e565b505050600b8101805460ff19169055600c0161316a565b80821115612eeb5780546001600160401b0319168155600081816132666001830182613280565b506132779050600283016000613280565b5060030161323f565b50805460008255906000526020600020908101906103459190613155565b5080546132aa90613a28565b6000825580601f106132ba575050565b601f0160209004906000526020600020908101906103459190613155565b6001600160401b038116811461034557600080fd5b80356132f8816132d8565b919050565b60006020828403121561330f57600080fd5b813561159f816132d8565b6001600160a01b038116811461034557600080fd5b6000806040838503121561334257600080fd5b823561334d816132d8565b9150602083013561335d8161331a565b809150509250929050565b6000604083016001600160401b0383511684526020808401516040828701528281518085526060880191508383019450600092505b808310156133c65784516001600160a01b0316825293830193600192909201919083019061339d565b509695505050505050565b6000815180845260005b818110156133f7576020818501810151868301820152016133db565b506000602082860101526020601f19601f83011685010191505092915050565b600081516040845261342c6040850182613368565b90506020830151848203602086015260ff8151168252602081015190506040602083015261345d60408301826133d1565b95945050505050565b600081518084526020808501808196508360051b8101915082860160005b8581101561354d578284038952815160408151818752805160c080848a01526134b16101008a0183613417565b915089830151603f196060818c860301818d01526134cf8584613417565b9686015160808d810191909152908601516001600160401b031660a0808e0191909152908601516001600160e01b031916938c0193909352918401518a860390920160e08b01525092905061352481846133d1565b93890151801515898b015293925061353a915050565b9986019994505090840190600101613484565b5091979650505050505050565b600081518084526020808501808196508360051b810191508286016000805b868110156135ec578385038a5282516040815181885261359b82890182613368565b92890151888403898b01528051808552908a01938693508a0191505b808310156135d757835182529289019260019290920191908901906135b7565b509b88019b9650505091850191600101613579565b509298975050505050505050565b8215158152604060208201526000825160e0604084015261361f610120840182613368565b90506001600160401b036020850151166060840152604084015160808401526060840151603f19808584030160a086015261365a8383613466565b925060808601519150808584030160c0860152613677838361355a565b925060a086015160e086015260c086015191508085840301610100860152506136a082826133d1565b9695505050505050565b6000806000604084860312156136bf57600080fd5b83356001600160401b03808211156136d657600080fd5b818601915086601f8301126136ea57600080fd5b8135818111156136f957600080fd5b87602082850101111561370b57600080fd5b60209283019550935090850135908082111561372657600080fd5b5084016040818703121561373957600080fd5b809150509250925092565b60a08152600061375760a0830188613368565b6001600160401b0387166020840152856040840152846060840152828103608084015261378481856133d1565b98975050505050505050565b6000602082840312156137a257600080fd5b5035919050565b6000602082840312156137bb57600080fd5b81356001600160401b038111156137d157600080fd5b820160e0818503121561159f57600080fd5b600081518084526020808501808196508360051b8101915082860160005b8581101561354d578284038952815160408151818752805160c080848a015261382e6101008a0183613417565b915089830151603f196060818c860301818d015261384c8584613417565b9686015160808d810191909152908601516001600160401b031660a0808e0191909152908601516001600160e01b031916938c0193909352918401518a860390920160e08b0152509290506138a181846133d1565b93890151801515898b01529392506138b7915050565b9986019994505090840190600101613801565b600081518084526020808501808196508360051b810191508286016000805b868110156135ec578385038a5282516040815181885261390b82890182613368565b92890151888403898b01528051808552908a01938693508a0191505b808310156139475783518252928901926001929092019190890190613927565b509b88019b96505050918501916001016138e9565b602081526000825160e06020840152613979610100840182613368565b90506001600160401b036020850151166040840152604084015160608401526060840151601f19808584030160808601526139b483836137e3565b925060808601519150808584030160a08601526139d183836138ca565b925060a086015160c086015260c08601519150808584030160e08601525061345d82826133d1565b600060208284031215613a0b57600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b600181811c90821680613a3c57607f821691505b602082108103613a5c57634e487b7160e01b600052602260045260246000fd5b50919050565b60208152600061159f6020830184613368565b801515811461034557600080fd5b600060208284031215613a9557600080fd5b815161159f81613a75565b634e487b7160e01b600052601160045260246000fd5b8082018082111561044357610443613aa0565b634e487b7160e01b600052604160045260246000fd5b5b81811015611e6e5760008155600101613ae0565b601f8211156113c957806000526020600020601f840160051c81016020851015613b1b5750805b610de2601f850160051c830182613adf565b600019600383901b1c191660019190911b1790565b6001600160401b03831115613b5957613b59613ac9565b613b6d83613b678354613a28565b83613af4565b6000601f841160018114613b9b5760008515613b895750838201355b613b938682613b2d565b845550610de2565b600083815260209020601f19861690835b82811015613bcc5786850135825560209485019460019092019101613bac565b5086821015613be95760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60ff8116811461034557600080fd5b6000808335601e19843603018112613c2157600080fd5b8301803591506001600160401b03821115613c3b57600080fd5b602001915036819003821315613c5057600080fd5b9250929050565b8135613c6281613bfb565b60ff811660ff198354161782555060018082016020613c8381860186613c0a565b6001600160401b03811115613c9a57613c9a613ac9565b613cae81613ca88654613a28565b86613af4565b6000601f821160018114613cdc5760008315613cca5750838201355b613cd48482613b2d565b875550613d31565b600086815260209020601f19841690835b82811015613d0a5786850135825593870193908901908701613ced565b5084821015613d275760001960f88660031b161c19848701351681555b50508683881b0186555b505050505050505050565b634e487b7160e01b600052601260045260246000fd5b600082613d6157613d61613d3c565b500490565b8181038181111561044357610443613aa0565b60008235603e19833603018112613d8f57600080fd5b9190910192915050565b604080519081016001600160401b0381118282101715613dbb57613dbb613ac9565b60405290565b60405160c081016001600160401b0381118282101715613dbb57613dbb613ac9565b60405160e081016001600160401b0381118282101715613dbb57613dbb613ac9565b604051601f8201601f191681016001600160401b0381118282101715613e2d57613e2d613ac9565b604052919050565b60006001600160401b03821115613e4e57613e4e613ac9565b5060051b60200190565b600060408284031215613e6a57600080fd5b613e72613d99565b90508135613e7f816132d8565b81526020828101356001600160401b03811115613e9b57600080fd5b8301601f81018513613eac57600080fd5b8035613ebf613eba82613e35565b613e05565b81815260059190911b82018301908381019087831115613ede57600080fd5b928401925b82841015613f05578335613ef68161331a565b82529284019290840190613ee3565b8085870152505050505092915050565b60006104433683613e58565b6000808335601e19843603018112613f3857600080fd5b8301803591506001600160401b03821115613f5257600080fd5b6020019150600581901b3603821315613c5057600080fd5b60008235603e19833603018112613f8057600080fd5b90910192915050565b6000808335601e19843603018112613fa057600080fd5b83016020810192503590506001600160401b03811115613fbf57600080fd5b803603821315613c5057600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000813561400481613bfb565b60ff1683526140166020830183613f89565b6040602086015261345d604086018284613fce565b60006140378283613f6a565b6040845260808401813561404a816132d8565b6001600160401b0390811660408701526020908382013536859003601e1901811261407457600080fd5b9093018181019390358181111561408a57600080fd5b8060051b360385131561409c57600080fd5b60406060890152928390525060009160a08701905b808410156140e35784356140c48161331a565b6001600160a01b031682529382019360019390930192908201906140b1565b506140f082870187613f6a565b9350868103828801526141038185613ff7565b979650505050505050565b6001600160e01b03198116811461034557600080fd5b80356132f88161410e565b80356132f881613a75565b60208082528181018390526000906040808401600586901b850182018785805b8981101561426e57603f19808a8603018652614176848d613f6a565b803560be19823603018112614189578485fd5b88875281016141988180613f6a565b60c0808b8a01526141ad6101008a018361402b565b91506141bb8c840184613f6a565b6060868b850301818c01526141d0848361402b565b9350608091508c850135828c01528085013590506141ed816132d8565b60a06001600160401b038216818d015282860135925061420c8361410e565b6001600160e01b031983168c85015261422786820187613f89565b96509350505050848983030160e08a0152614243828483613fce565b945050505061425389820161412f565b1515958901959095529487019493509186019160010161415a565b50919998505050505050505050565b600082601f83011261428e57600080fd5b81356001600160401b038111156142a7576142a7613ac9565b6142ba601f8201601f1916602001613e05565b8181528460208386010111156142cf57600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156142fe57600080fd5b614306613d99565b905081356001600160401b038082111561431f57600080fd5b61432b85838601613e58565b8352602084013591508082111561434157600080fd5b908301906040828603121561435557600080fd5b61435d613d99565b823561436881613bfb565b815260208301358281111561437c57600080fd5b6143888782860161427d565b60208301525080602085015250505092915050565b600082601f8301126143ae57600080fd5b813560206143be613eba83613e35565b82815260059290921b840181019181810190868411156143dd57600080fd5b8286015b848110156133c65780356001600160401b038082111561440057600080fd5b90880190601f196040838c038201121561441957600080fd5b614421613d99565b878401358381111561443257600080fd5b840160c0818e038401121561444657600080fd5b61444e613dc1565b9250888101358481111561446157600080fd5b61446f8e8b838501016142ec565b84525060408101358481111561448457600080fd5b6144928e8b838501016142ec565b8a85015250606081013560408401526144ad608082016132ed565b60608401526144be60a08201614124565b608084015260c0810135848111156144d557600080fd5b6144e38e8b8385010161427d565b60a085015250508181526144f96040850161412f565b8189015286525050509183019183016143e1565b600082601f83011261451e57600080fd5b8135602061452e613eba83613e35565b828152600592831b850182019282820191908785111561454d57600080fd5b8387015b858110156146425780356001600160401b03808211156145715760008081fd5b908901906040828c03601f190181131561458b5760008081fd5b614593613d99565b88840135838111156145a55760008081fd5b6145b38e8b83880101613e58565b82525081840135838111156145c85760008081fd5b8085019450508c603f8501126145e057600092508283fd5b8884013592506145f2613eba84613e35565b83815292861b8401820192898101908e85111561460f5760008081fd5b948301945b8486101561462d5785358252948a0194908a0190614614565b828b0152508752505050928401928401614551565b5090979650505050505050565b600060e0823603121561466157600080fd5b614669613de3565b82356001600160401b038082111561468057600080fd5b61468c36838701613e58565b835261469a602086016132ed565b60208401526040850135604084015260608501359150808211156146bd57600080fd5b6146c93683870161439d565b606084015260808501359150808211156146e257600080fd5b6146ee3683870161450d565b608084015260a085013560a084015260c085013591508082111561471157600080fd5b5061471e3682860161427d565b60c08301525092915050565b60008135610443816132d8565b808202811582820484141761044357610443613aa0565b8054600082558015611e6e578160005260206000206113c982820182613adf565b600160401b82111561478357614783613ac9565b8054828255808310156113c957816000526020600020610400828201858301613adf565b600081556103456001820161474e565b6147c18154613a28565b8015611e6e57601f8111600181146147db57505060009055565b8260005260206000206147f9601f840160051c820160018301613adf565b60008085559055505050565b600081556148156001820161474e565b60006002820155610345600382016147b7565b6148328283613d79565b803561483d816132d8565b82546001600160401b0319166001600160401b038216178355506001808301602061486a81850185613f21565b94506001600160401b038086111561488457614884613ac9565b61488e868561476f565b600093845282842093805b878110156148bb5783356148ac8161331a565b86820155928401928601614899565b506002880196506148ce848a018a613d79565b9450843592506148dd83613bfb565b865460ff191660ff84161790965560038701956148fc85850186613c0a565b955092508185111561491057614910613ac9565b6149248561491e8954613a28565b89613af4565b809150601f851160018114614952578186156149405750838301355b61494a8782613b2d565b895550610ddc565b600088815260209020601f19871690835b828110156149805786860135825594870194908901908701614963565b508782101561499d5760001960f88960031b161c19858701351681555b505050505091831b90920190925550505050565b600081356104438161410e565b6000813561044381613a75565b813560be198336030181126149df57600080fd5b82016149eb8180613d79565b6149f58182613d79565b8035614a00816132d8565b84546001600160401b0319166001600160401b0382161785555060018085016020614a2d81850185613f21565b94506001600160401b0380861115614a4757614a47613ac9565b614a51868561476f565b600093845282842093805b87811015614a7e578335614a6f8161331a565b86820155928401928601614a5c565b5060028a019650614a9184890189613d79565b975087359450614aa085613bfb565b865460ff191660ff8616179096556003890195614abf88850189613c0a565b9850945081881115614ad357614ad3613ac9565b614ae18861491e8954613a28565b809250601f881160018114614b11578192508815614b00578386013592505b614b0a8984613b2d565b8855614b66565b600088815260209020601f198a169350825b84811015614b405787860135825594860194908801908601614b23565b5089841015614b5d5760001960f88b60031b161c19858801351681555b508689881b0188555b50505050614b82614b7982880188613d79565b60048901614828565b60408601356008880155600987019450614bbe614ba16060880161472a565b86546001600160401b0319166001600160401b0391909116178655565b614bf7614bcd608088016149b1565b86546bffffffff0000000000000000191660a09190911c6bffffffff000000000000000016178655565b614c0460a0870187613c0a565b96509450614c168686600a8a01613b42565b614c3d614c24828a016149be565b600b890160ff1981541660ff8315151681178255505050565b5050505050505050565b600160401b831115614c5b57614c5b613ac9565b805483825580841015614cef57600c8181028181048314614c7e57614c7e613aa0565b8582028281048714614c9257614c92613aa0565b6000858152602081209283019291909101905b82821015614cea57614cb682614805565b614cc260048301614805565b806008830155806009830155614cda600a83016147b7565b80600b8301558382019150614ca5565b505050505b5060008181526020812083915b8581101561140457614d17614d118487613d79565b836149cb565b60209290920191600c9190910190600101614cfc565b8054600080835581156113c957828152602081208281015b80821015610de257828255600182019150614d45565b600160401b821115614d6f57614d6f613ac9565b8054828255808310156113c9576000828152602081208481019083015b8082101561140457828255600182019150614d8c565b614dac8283613d79565b8035614db7816132d8565b82546001600160401b0319166001600160401b0382161783555060018083016020614de481850185613f21565b94506001600160401b0380861115614dfe57614dfe613ac9565b614e08868561476f565b600093845282842093805b87811015614e35578335614e268161331a565b86820155928401928601614e13565b50600288019650614e48848a018a613f21565b9550925081851115614e5c57614e5c613ac9565b614e668588614d5b565b95865250818520945b83811015614c3d57813586820155908201908401614e6f565b600160401b831115614e9c57614e9c613ac9565b805483825580841015614f0a5760038181028181048314614ebf57614ebf613aa0565b8582028281048714614ed357614ed3613aa0565b60008581526020902091820191015b81811015614f0657614ef3816147a7565b614eff60028201614d2d565b8201614ee2565b5050505b5060008181526020812083915b8581101561140457614f32614f2c8487613d79565b83614da2565b6020929092019160039190910190600101614f17565b614f528283613d79565b8035614f5d816132d8565b82546001600160401b0319166001600160401b0382161783555060018083016020614f8a81850185613f21565b94506001600160401b03851115614fa357614fa3613ac9565b614fad858461476f565b6000928352818320925b85811015614fd9578135614fca8161331a565b84820155908201908401614fb7565b505061500a614fe982880161472a565b600287016001600160401b0382166001600160401b03198254161781555050565b50505050604082013560038201556150256060830183613f21565b615033818360048601614c47565b50506150426080830183613f21565b615050818360058601614e88565b505060a0820135600682015561506960c0830183613c0a565b610400818360078601613b42565b818103615082575050565b61508c8254613a28565b6001600160401b038111156150a3576150a3613ac9565b6150b7816150b18454613a28565b84613af4565b6000601f8211600181146150e557600083156150d35750848201545b6150dd8482613b2d565b855550610de2565b600085815260209020601f19841690600086815260209020845b8381101561511f57828601548255600195860195909101906020016150ff565b508583101561513d5781850154600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000604083016001600160401b0383541684526001808401602060408188015283825480865260608901915083600052826000209550600093505b808410156151ae5785546001600160a01b03168252948401949284019290820190615188565b50979650505050505050565b600081546151c781613a28565b8085526020600183811680156151e457600181146151fe5761522c565b60ff1985168884015283151560051b88018301955061522c565b866000528260002060005b858110156152245781548a8201860152908301908401615209565b890184019650505b505050505092915050565b60408252600061524a604084018361514d565b838103602085015260ff60028401541681526040602082015261527360408201600385016151ba565b949350505050565b600081548084526020808501808196508360051b81019150856000528260002060005b8581101561354d578284038952604080855260c080828701526152c5610100870185615237565b9150603f19808784030160608801526152e18360048701615237565b6008860154608089015260098601546001600160401b03811660a0808b01919091521b6001600160e01b031916928801929092528682030160e0870152905061532d81600a85016151ba565b905061533d600b84015460ff1690565b15159486019490945297840197600c919091019060010161529e565b600081548084526020808501808196508360051b810191506000868152838120815b868110156135ec578385038a5260408086526153998187018461514d565b86810388880152600284018054808352908652888620925085918901905b808310156153d757835482526001938401939290920191908901906153b7565b509b88019b965050506003919091019060010161537b565b6020815260e06020820152600061540a61010083018461514d565b60028401546001600160401b0316604084015260038401546060840152828103601f199081016080850152615442826004870161527b565b9150808483030160a085015261545b8260058701615359565b9150600685015460c0850152808483030160e08501525061527381600786016151ba565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6001600160401b0382811682821603908082111561285257612852613aa0565b60006001600160401b03808416806154e5576154e5613d3c565b92169190910692915050565b6001600160401b0381811683821601908082111561285257612852613aa056fe283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e270a264697066735822122001b46e81270e5c112262180ce78840f576b5d7c72a99b8876c16a96ffd6396ea64736f6c63430008130033", + "sourceMap": "1767:9418:68:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9019:240;;;;;;;;;;-1:-1:-1;9019:240:68;;;;;:::i;:::-;;:::i;:::-;;;;824:14:83;;817:22;799:41;;871:2;856:18;;849:34;;;;772:18;9019:240:68;;;;;;;;7038:342;;;;;;;;;;;;;:::i;:::-;;4506:254;;;;;;;;;;;;;:::i;8032:287::-;;;;;;;;;;-1:-1:-1;8032:287:68;;;;;:::i;:::-;;:::i;:::-;;;1586:14:83;;1579:22;1561:41;;1549:2;1534:18;8032:287:68;1421:187:83;8550:241:68;;;;;;;;;;-1:-1:-1;8550:241:68;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;2440:1280::-;;;;;;:::i;:::-;;:::i;7422:422::-;;;;;;;;;;-1:-1:-1;7422:422:68;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;6360:562::-;;;;;;;;;;-1:-1:-1;6360:562:68;;;;;:::i;:::-;;:::i;3793:621::-;;;;;;;;;;;;;:::i;4953:1319::-;;;;;;;;;;-1:-1:-1;4953:1319:68;;;;;:::i;:::-;;:::i;9019:240::-;9095:4;9101:7;9121:11;9134:36;9174:32;9200:5;9174:25;:32::i;:::-;9232:19;;-1:-1:-1;;;9232:19:68;;9120:86;;-1:-1:-1;9120:86:68;-1:-1:-1;9120:86:68;;9232:17;;;;:19;;9120:86;;9232:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9216:36;;;;;;9019:240;;;:::o;7038:342::-;4616:15:57;:13;:15::i;:::-;7128:10:68::1;7090:14;7107:32:::0;;;:20:::1;:32;::::0;;;;;;7154:11;;;7150:69:::1;;7188:20;;-1:-1:-1::0;;;7188:20:68::1;;;;;;;;;;;7150:69;7250:10;7264:1;7229:32:::0;;;:20:::1;:32;::::0;;;;;:36;;;;7285:16:::1;::::0;7276:49;;-1:-1:-1;;;7276:49:68;;::::1;::::0;::::1;16343:25:83::0;;;-1:-1:-1;;;;;7285:16:68;;::::1;::::0;7276:41:::1;::::0;16316:18:83;;7276:49:68::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;7336:37:68::1;::::0;-1:-1:-1;7344:10:68::1;::::0;-1:-1:-1;7366:6:68;;-1:-1:-1;7336:29:68::1;:37::i;:::-;7080:300;7038:342::o:0;4506:254::-;4616:15:57;:13;:15::i;:::-;4686:12:::1;:10;:12::i;:::-;4568:21:68::2;:12;:19;:21::i;:::-;:26:::0;::::2;::::0;:47:::2;;-1:-1:-1::0;4598:1:68::2;:12:::0;:17;::::2;4568:47;4564:111;;;4638:26;;-1:-1:-1::0;;;4638:26:68::2;;;;;;;;;;;4564:111;4685:8;:24:::0;;-1:-1:-1;;;;4685:24:68::2;::::0;::::2;::::0;;4729:16:::2;::::0;4720:33:::2;::::0;;-1:-1:-1;;;4720:33:68;;;;-1:-1:-1;;;;;4729:16:68;;::::2;::::0;4720:31:::2;::::0;:33:::2;::::0;;::::2;::::0;-1:-1:-1;;4720:33:68;;;;;;;;-1:-1:-1;4729:16:68;4720:33;::::2;;::::0;::::2;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;4506:254::o:0;8032:287::-;-1:-1:-1;;;;;8197:29:68;;8128:4;8197:29;;;:22;:29;;;;;;;;8275:25;;8244:57;;:30;;:57;;;;;-1:-1:-1;;;;;8244:68:68;;;;;;;;;;;;8032:287;;;;;:::o;8550:241::-;8634:11;8647:36;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8647:36:68;-1:-1:-1;;;;;8708:29:68;;;:1;:29;;;:22;:29;;;;;;;;;8695:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8708:29;;8695:42;;;;8708:29;;8695:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8695:42:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8695:42:68;-1:-1:-1;;;;;8695:42:68;-1:-1:-1;;;;;8695:42:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8695:42:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8695:42:68;;;;;;;;;;;;;;;;-1:-1:-1;;;8695:42:68;;;;-1:-1:-1;;;8695:42:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8695:42:68;;;;-1:-1:-1;;;8695:42:68;;-1:-1:-1;8695:42:68;;;;;;;;;;;;;;;-1:-1:-1;;;;;8695:42:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8695:42:68;;;;;;;;;;;;;;;;-1:-1:-1;;;8695:42:68;;;;-1:-1:-1;;;8695:42:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8695:42:68;;;;-1:-1:-1;;;8695:42:68;;-1:-1:-1;8695:42:68;;;;;;;;;;;;;;-1:-1:-1;;;;;8695:42:68;;;;;;-1:-1:-1;;;8695:42:68;;;;-1:-1:-1;;;;;;8695:42:68;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8695:42:68;;;;-1:-1:-1;;;8695:42:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8695:42:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8695:42:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8695:42:68;;;;-1:-1:-1;;8757:17:68;;:27;;-1:-1:-1;;;8757:27:68;;8695:42;;-1:-1:-1;8757:25:68;;;;-1:-1:-1;8757:27:68;;:17;:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8756:28;8747:37;;8550:241;;;:::o;2440:1280::-;4616:15:57;:13;:15::i;:::-;4686:12:::1;:10;:12::i;:::-;2586:9:68::2;2625:10;2561:22;2649:19:::0;;;2645:75:::2;;2691:18;;-1:-1:-1::0;;;2691:18:68::2;;;;;;;;;;;2645:75;-1:-1:-1::0;;;;;2730:18:68;::::2;:1;:18:::0;;;:7:::2;:18;::::0;;;;:36;;2752:14;;2730:1;:36:::2;::::0;2752:14;;2730:36:::2;:::i;:::-;::::0;;;-1:-1:-1;;2776:1:68::2;:30:::0;;2792:14;;2776:1;;;:30:::2;::::0;2792:14;;2776:30:::2;:::i;:::-;::::0;;;-1:-1:-1;;2843:25:68::2;::::0;-1:-1:-1;;;;;2821:18:68;::::2;2843:1;2821:18:::0;;;:7:::2;:18;::::0;;;;;:47:::2;2817:365;;2889:32;:12;2911:9:::0;2889:21:::2;:32::i;:::-;2884:288;;3000:27;:12;3017:9:::0;3000:16:::2;:27::i;:::-;-1:-1:-1::0;;;;;;3045:34:68;::::2;:1;:34:::0;;;:23:::2;:34;::::0;;;;:44:::2;3082:7:::0;;3045:34;:44:::2;:::i;:::-;-1:-1:-1::0;;;;;;3107:37:68;::::2;:1;:37:::0;;;:26:::2;:37;::::0;;;;3147:10;;3107:50:::2;3147:10:::0;3107:37;:50:::2;:::i;:::-;-1:-1:-1::0;;2884:288:68::2;3208:19;3196:8;::::0;-1:-1:-1;;;3196:8:68;::::2;;;:31;::::0;::::2;;;;;;:::i;:::-;::::0;3192:522:::2;;3263:25;::::0;:1:::2;3247:12:::0;:41:::2;3243:180;;3319:13;3308:24:::0;;-1:-1:-1;;;;3308:24:68::2;-1:-1:-1::0;;;3308:24:68::2;::::0;;3359:16:::2;::::0;-1:-1:-1;3393:12:68;;3350:58:::2;::::0;;-1:-1:-1;;;3350:58:68;;;;-1:-1:-1;;;;;3359:16:68;;::::2;::::0;3350:35:::2;::::0;:58:::2;::::0;;::::2;::::0;-1:-1:-1;;3350:58:68;;;;;;3393:12;3359:16;3350:58;::::2;;::::0;::::2;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;3243:180;3192:522;;;3469:15;3457:8;::::0;-1:-1:-1;;;3457:8:68;::::2;;;:27;::::0;::::2;;;;;;:::i;:::-;::::0;3453:177:::2;;3524:25;::::0;:1:::2;3508:12:::0;:41:::2;3504:112;;3584:13;3573:24:::0;;-1:-1:-1;;;;3573:24:68::2;-1:-1:-1::0;;;3573:24:68::2;::::0;;3504:112:::2;3652:16;::::0;3643:60:::2;::::0;;-1:-1:-1;;;3643:60:68;;;;-1:-1:-1;;;;;3652:16:68;;::::2;::::0;3643:35:::2;::::0;3686:14;;3643:60:::2;::::0;;::::2;::::0;3652:1:::2;::::0;3643:60;;;;;;;3686:14;3652:16;3643:60;::::2;;::::0;::::2;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;3192:522;2551:1169;;2440:1280:::0;;;:::o;7422:422::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;7607:25:68;;;;;:22;:25;;;;;7598:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;7598:41:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7598:41:68;;;;;;;;;;;;;;;;-1:-1:-1;;;7598:41:68;;;;-1:-1:-1;;;;;;;;7657:25:68;;;:1;:25;;;:22;:25;;;;;;;;:31;;;;7704:29;;;;7754:34;;;;7806:31;;;;7798:39;;7598:41;;-1:-1:-1;7657:31:68;;;;;-1:-1:-1;7704:29:68;;-1:-1:-1;7754:34:68;;-1:-1:-1;7806:31:68;7798:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7422:422;;;;;;;:::o;6360:562::-;4544:14:57;:12;:14::i;:::-;6423:24:68::1;6450:21;:12;:19;:21::i;:::-;6423:48;;6486:16;6506:1;6486:21:::0;6482:81:::1;;6530:22;;-1:-1:-1::0;;;6530:22:68::1;;;;;;;;;;;6482:81;6585:16;6576:6;:25;6572:91;;;6624:28;;-1:-1:-1::0;;;6624:28:68::1;;;;;;;;;;;6572:91;6673:20;6696:25;6705:16:::0;6696:6;:25:::1;:::i;:::-;6673:48;;6737:9;6732:184;6756:16;6752:1;:20;6732:184;;;6834:12:::0;6790:20:::1;:1;6811:18;:12;6827:1:::0;6811:15:::1;:18::i;:::-;-1:-1:-1::0;;;;;6790:40:68::1;-1:-1:-1::0;;;;;6790:40:68::1;;;;;;;;;;;;;:56;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;6888:3:68::1;;6732:184;;3793:621:::0;240:48:56;575:8;;-1:-1:-1;;575:20:56;571:50;;604:17;;-1:-1:-1;;;604:17:56;;;;;;;;;;;571:50;470:1;631:19;;4616:15:57::1;:13;:15::i;:::-;4686:12:::2;:10;:12::i;:::-;3890:10:68::3;3865:14;3882:19:::0;;;:7:::3;:19;::::0;;;;;;3916:11;;;3912:63:::3;;3950:14;;-1:-1:-1::0;;;3950:14:68::3;;;;;;;;;;;3912:63;3993:10;4007:1;3985:19:::0;;;:7:::3;:19;::::0;;;;:23;;;4018:22;;4034:6;;4007:1;;;4018:22:::3;::::0;4034:6;;4018:22:::3;:::i;:::-;::::0;;;-1:-1:-1;4101:31:68::3;::::0;-1:-1:-1;4101:12:68::3;4121:10;4101:19;:31::i;:::-;-1:-1:-1::0;4158:13:68::3;4146:8:::0;;-1:-1:-1;;;4146:8:68;::::3;;;:25;::::0;::::3;;;;;;:::i;:::-;::::0;4142:160:::3;;4206:25;::::0;:1:::3;4191:12:::0;:40:::3;4187:105;;;4251:8;:26:::0;;-1:-1:-1;;;;4251:26:68::3;::::0;::::3;::::0;;4187:105:::3;4321:16;::::0;4312:47:::3;::::0;-1:-1:-1;;;4312:47:68;;::::3;::::0;::::3;16343:25:83::0;;;-1:-1:-1;;;;;4321:16:68;;::::3;::::0;4312:39:::3;::::0;16316:18:83;;4312:47:68::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;::::0;::::3;;;;;-1:-1:-1::0;4370:37:68::3;::::0;-1:-1:-1;4378:10:68::3;::::0;-1:-1:-1;4400:6:68;;-1:-1:-1;4370:29:68::3;:37::i;:::-;-1:-1:-1::0;427:1:56;671:23;;3793:621:68:o;4953:1319::-;4616:15:57;:13;:15::i;:::-;5051:47:68::1;5081:16;::::0;;;::::1;::::0;::::1;;:::i;:::-;5051:29;:47::i;:::-;5125:13;5113:8:::0;;-1:-1:-1;;;5113:8:68;::::1;;;:25;::::0;::::1;;;;;;:::i;:::-;;5109:80;;5161:17;;-1:-1:-1::0;;;5161:17:68::1;;;;;;;;;;;5109:80;5203:33;:12;5225:10;5203:21;:33::i;:::-;5198:86;;5259:14;;-1:-1:-1::0;;;5259:14:68::1;;;;;;;;;;;5198:86;5327:19;::::0;5297:17:::1;:10:::0;;:17:::1;:::i;:::-;:24;;;:::i;:::-;:26;::::0;-1:-1:-1;;;5297:26:68;;:24:::1;::::0;::::1;::::0;:26:::1;::::0;:24;:26:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:49;5293:110;;5369:23;;-1:-1:-1::0;;;5369:23:68::1;;;;;;;;;;;5293:110;5417:14;:23;5441:20;;::::0;::::1;:10:::0;:20:::1;:::i;:::-;5417:45;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5412:103;;5485:19;;-1:-1:-1::0;;;5485:19:68::1;;;;;;;;;;;5412:103;5525:50;5578:22;5525:50:::0;5601:16:::1;::::0;;;::::1;::::0;::::1;;:::i;:::-;-1:-1:-1::0;;;;;5578:40:68::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;5578:40:68;;;5729:10:::1;5741:19:::0;;;:7:::1;:19:::0;;;;;;;5578:40;;-1:-1:-1;;5681:80:68::1;::::0;5578:40;;5717:10;;5681:19:::1;:80::i;:::-;5656:105;;5776:17;5772:494;;;5809:33;5827:14;5809:17;:33::i;:::-;5041:1231;;4953:1319:::0;:::o;5772:494::-:1;5941:26;5969:22:::0;5995:34:::1;:32;:34::i;:::-;5940:89;;;;6048:17;6044:212;;;-1:-1:-1::0;;;;;6142:43:68;::::1;6085:54;6142:43:::0;;;:22:::1;:43;::::0;;;;6204:37:::1;6142:43:::0;6204:17:::1;:37::i;:::-;6067:189;5859:407;;5041:1231;;4953:1319:::0;:::o;4098:127:57:-;4151:22;;-1:-1:-1;;;4151:22:57;;:10;:22;;;33624:51:83;4151:20:57;;;;33597:18:83;;4151:22:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4146:73;;4196:12;;-1:-1:-1;;;4196:12:57;;;;;;;;;;;4146:73;4098:127::o;1530:331:19:-;1639:6;1615:21;:30;1611:109;;;1668:41;;-1:-1:-1;;;1668:41:19;;1703:4;1668:41;;;33624:51:83;33597:18;;1668:41:19;;;;;;;1611:109;1731:12;1749:9;-1:-1:-1;;;;;1749:14:19;1771:6;1749:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1730:52;;;1797:7;1792:63;;1827:17;;-1:-1:-1;;;1827:17:19;;;;;;;;;;;4370:135:57;4431:13;4419:8;;-1:-1:-1;;;4419:8:57;;;;:25;;;;;;;;:::i;:::-;;4415:84;;4467:21;;-1:-1:-1;;;4467:21:57;;;;;;;;;;;9107:115:24;9170:7;9196:19;9204:3;4546:18;;4464:107;8861:165;-1:-1:-1;;;;;8994:23:24;;8941:4;4352:19;;;:12;;;:19;;;;;;:24;;8964:55;8957:62;8861:165;-1:-1:-1;;;8861:165:24:o;8306:150::-;8376:4;8399:50;8404:3;-1:-1:-1;;;;;8424:23:24;;8399:4;:50::i;4231:133:57:-;4296:16;;-1:-1:-1;;;;;4296:16:57;4282:10;:30;4278:80;;4335:12;;-1:-1:-1;;;4335:12:57;;;;;;;;;;;9564:156:24;9638:7;9688:22;9692:3;9704:5;9688:3;:22::i;8624:156::-;8697:4;8720:53;8728:3;-1:-1:-1;;;;;8748:23:24;;8720:7;:53::i;1779:96:58:-;1846:22;1862:5;1846:15;:22::i;9501:750:68:-;9729:22;;9788:17;:10;:17;:::i;:::-;:19;;-1:-1:-1;;;9788:19:68;;:17;;;;:19;;:17;:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9763:44;-1:-1:-1;9838:206:68;9872:14;9763:44;9933:16;9963:15;9992:16;;;;;;;;:::i;:::-;10022:1;:12;9838:20;:206::i;:::-;10111:42;;;;:26;;;:42;;;;;;;;;:50;;;;;;;;;-1:-1:-1;;;;;10111:50:68;;;;;;;;;;;;;;;;;;;;;;;;;;;9818:226;;-1:-1:-1;10111:50:68;;:42;;:50;;;;:42;;:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10111:50:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10111:50:68;-1:-1:-1;;;;;10111:50:68;-1:-1:-1;;;;;10111:50:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10111:50:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10111:50:68;;;;;;;;;;;;;;;;-1:-1:-1;;;10111:50:68;;;;-1:-1:-1;;;10111:50:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10111:50:68;;;;-1:-1:-1;;;10111:50:68;;-1:-1:-1;10111:50:68;;;;;;;;;;;;;;;-1:-1:-1;;;;;10111:50:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10111:50:68;;;;;;;;;;;;;;;;-1:-1:-1;;;10111:50:68;;;;-1:-1:-1;;;10111:50:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10111:50:68;;;;-1:-1:-1;;;10111:50:68;;-1:-1:-1;10111:50:68;;;;;;;;;;;;;;-1:-1:-1;;;;;10111:50:68;;;;;;-1:-1:-1;;;10111:50:68;;;;-1:-1:-1;;;;;;10111:50:68;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10111:50:68;;;;-1:-1:-1;;;10111:50:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10111:50:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10111:50:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10111:50:68;;;;-1:-1:-1;;10111:52:68;;-1:-1:-1;;;10111:52:68;;:50;;;;-1:-1:-1;10111:52:68;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10107:138;;;10179:42;;;;:26;;;:42;;;;;10224:10;;10179:55;10224:10;10179:42;:55;:::i;:::-;-1:-1:-1;;10107:138:68;9753:498;9501:750;;;;;;:::o;10420:763::-;10585:39;;;;;10518:37;10558:67;;;:26;;;:67;;;;;10766:19;;;;10734:28;;10558:67;;10734:51;10730:196;;10801:27;;-1:-1:-1;;;10801:27:68;;;;;16343:25:83;;;10801::68;;;;16316:18:83;;10801:27:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10878:16:68;;;;10842:53;;-1:-1:-1;;;;;;10878:16:68;10842:35;:53::i;:::-;10909:7;10420:763;:::o;10730:196::-;10969:16;;;;10936:50;;-1:-1:-1;;;;;10969:16:68;10936:32;:50::i;:::-;11020:16;;;;-1:-1:-1;;;;;11020:16:68;;;10997:1;:40;;;:22;:40;;;;;:53;;;;-1:-1:-1;;;;;;10997:53:68;;;;;;;;;11020:16;10997:53;;;;;11040:10;;10997:40;11040:10;;10997:40;;:53;;;;;;;:::i;:::-;-1:-1:-1;;;10997:53:68;;;;;;;;;;-1:-1:-1;;;;;;10997:53:68;-1:-1:-1;;;;;10997:53:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;10997:53:68;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;11091:17:68;;;;;;;;;;-1:-1:-1;;;;;11091:17:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11091:10:68;;:17;;:10;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11091:17:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11091:17:68;-1:-1:-1;;;;;11091:17:68;-1:-1:-1;;;;;11091:17:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11091:17:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11091:17:68;;;;;;;;;;;;;;;;-1:-1:-1;;;11091:17:68;;;;-1:-1:-1;;;11091:17:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11091:17:68;;;;-1:-1:-1;;;11091:17:68;;-1:-1:-1;11091:17:68;;;;;;;;;;;;;;;-1:-1:-1;;;;;11091:17:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11091:17:68;;;;;;;;;;;;;;;;-1:-1:-1;;;11091:17:68;;;;-1:-1:-1;;;11091:17:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11091:17:68;;;;-1:-1:-1;;;11091:17:68;;-1:-1:-1;11091:17:68;;;;;;;;;;;;;;-1:-1:-1;;;;;11091:17:68;;;;;;-1:-1:-1;;;11091:17:68;;;;-1:-1:-1;;;;;;11091:17:68;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11091:17:68;;;;-1:-1:-1;;;11091:17:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11091:17:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11091:17:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11091:17:68;;;;-1:-1:-1;;11091:19:68;;-1:-1:-1;;;11091:19:68;;:17;;;;-1:-1:-1;11091:19:68;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11060:28;:50;11130:16;;11121:55;;-1:-1:-1;;;11121:55:68;;-1:-1:-1;;;;;11130:16:68;;;;11121:43;;:55;;11165:10;;11121:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7090:254:58;7257:17;:23;-1:-1:-1;;;7257:23:58;;-1:-1:-1;;;;;7257:23:58;7147:16;-1:-1:-1;;;;;;;;;;;7305:32:58;7257:23;7305:21;:32::i;:::-;7290:47;;7184:160;7090:254;;:::o;2215:404:24:-;2278:4;4352:19;;;:12;;;:19;;;;;;2294:319;;-1:-1:-1;2336:23:24;;;;;;;;:11;:23;;;;;;;;;;;;;2516:18;;2494:19;;;:12;;;:19;;;;;;:40;;;;2548:11;;2294:319;-1:-1:-1;2597:5:24;2590:12;;4913:118;4980:7;5006:3;:11;;5018:5;5006:18;;;;;;;;:::i;:::-;;;;;;;;;4999:25;;4913:118;;;;:::o;2787:1388::-;2853:4;2990:19;;;:12;;;:19;;;;;;3024:15;;3020:1149;;3393:21;3417:14;3430:1;3417:10;:14;:::i;:::-;3465:18;;3393:38;;-1:-1:-1;3445:17:24;;3465:22;;3486:1;;3465:22;:::i;:::-;3445:42;;3519:13;3506:9;:26;3502:398;;3552:17;3572:3;:11;;3584:9;3572:22;;;;;;;;:::i;:::-;;;;;;;;;3552:42;;3723:9;3694:3;:11;;3706:13;3694:26;;;;;;;;:::i;:::-;;;;;;;;;;;;:38;;;;3806:23;;;:12;;;:23;;;;;:36;;;3502:398;3978:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4070:3;:12;;:19;4083:5;4070:19;;;;;;;;;;;4063:26;;;4111:4;4104:11;;;;;;;3020:1149;4153:5;4146:12;;;;;3020:1149;2859:1316;2787:1388;;;;:::o;1881:387:58:-;-1:-1:-1;;;;;;;;;;;2007:25:58;;-1:-1:-1;;;;;2007:25:58;;;1998:34;;;;1994:94;;2055:22;;-1:-1:-1;;;2055:22:58;;;;;;;;;;;1994:94;2109:14;;-1:-1:-1;;;;;;;;2109:14:58;;;;;2101:22;;;;2097:165;;;2170:18;;-1:-1:-1;;;;;;;;2170:18:58;;;;;2144:22;;-1:-1:-1;;;2152:14:58;;;;2144:5;:22;:::i;:::-;2143:45;;;;:::i;:::-;-1:-1:-1;;;;;2143:50:58;;2139:113;;2220:17;;-1:-1:-1;;;2220:17:58;;;;;;;;;;;7834:1528;8171:10;;8070:22;8195;;;:15;;;:22;;;;;;;;-1:-1:-1;;;;;8195:40:58;;;;;;;;;;8070:22;;-1:-1:-1;;;;;;;;;;;1438:42:58;8195:40;;8191:101;;;8258:23;;-1:-1:-1;;;8258:23:58;;;;;;;;;;;8191:101;8302:22;;;;:15;;;:22;;;;;;;;-1:-1:-1;;;;;8302:40:58;;;;;;;;;:47;;-1:-1:-1;;8302:47:58;8345:4;8302:47;;;;;;8359:26;;:45;;8389:15;;8302:22;8359:45;;8389:15;;8359:45;:::i;:::-;;;;-1:-1:-1;;8414:29:58;;;;:22;;;:29;;;;;;;;:45;;;;;;;;:64;;8463:15;;8414:29;:64;;8463:15;;8414:64;:::i;:::-;;;;-1:-1:-1;;8489:23:58;8515:29;;;:22;;;:29;;;;;;;;8545:24;;;;8515:55;;;;;;;;;8606:45;;;;;;8666:33;;;8662:105;;;8715:24;;;:41;;;8662:105;8777:26;8806:40;8828:4;8834:11;8806:21;:40::i;:::-;8777:69;-1:-1:-1;8871:36:58;8861:6;:46;;;;;;;;:::i;:::-;;8857:499;;8927:28;8949:5;8927:21;:28::i;:::-;8923:264;;;8995:4;8975:24;;8857:499;;8923:264;9143:29;;-1:-1:-1;;;9143:29:58;;:17;;;:29;;;68181:25:83;-1:-1:-1;;;;;68242:31:83;;68222:18;;;68215:59;9143:22:58;;;;68154:18:83;;9143:29:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8857:499;;;9217:30;9207:6;:40;;;;;;;;:::i;:::-;;9203:153;;9333:12;;-1:-1:-1;;;9333:12:58;;;;;16343:25:83;;;9333:10:58;;;;16316:18:83;;9333:12:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9203:153;8094:1268;;;;;7834:1528;;;;;;;;:::o;9932:149::-;9996:23;-1:-1:-1;;;;;;;;;;;10047:27:58;;-1:-1:-1;;;10047:27:58;;:17;;;:27;;;68181:25:83;-1:-1:-1;;;;;68242:31:83;;68222:18;;;68215:59;9996:41:58;;-1:-1:-1;10047:24:58;;;;68154:18:83;;10047:27:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5877:619;-1:-1:-1;;;;;;;;;;;6045:28:58;6067:5;6045:21;:28::i;:::-;6040:66;;6089:7;5877:619;:::o;6040:66::-;6180:33;;-1:-1:-1;;;6180:33:58;;:17;;;:33;;;68181:25:83;-1:-1:-1;;;;;68242:31:83;;68222:18;;;68215:59;6180:26:58;;;;68154:18:83;;6180:33:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6176:140;;;6233:17;;;:23;-1:-1:-1;;;;;6233:32:58;;;-1:-1:-1;;;6233:23:58;;;;:32;6229:77;;6285:7;5877:619;:::o;6229:77::-;6372:31;;-1:-1:-1;;;6372:31:58;;:17;;;:31;;;68181:25:83;-1:-1:-1;;;;;68242:31:83;;68222:18;;;68215:59;6372:24:58;;;;68154:18:83;;6372:31:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6456:33:58;;-1:-1:-1;;;;;;6456:33:58;-1:-1:-1;;;;;6456:33:58;;;;;;;;;;;-1:-1:-1;;5877:619:58:o;6696:204::-;-1:-1:-1;;;;;;;;;;;6875:18:58;;6764:4;;1438:42;6847:46;;-1:-1:-1;;;;;;;;6875:18:58;;;;;6847:25;:46;:::i;:::-;-1:-1:-1;;;;;6838:55:58;:5;-1:-1:-1;;;;;6838:55:58;;6831:62;;;6696:204;;;:::o;3873:1880::-;-1:-1:-1;;;;;;;;;;;4121:20:58;;4004:19;;1438:42;4004:19;;4145:3;;4107:34;;-1:-1:-1;;;4121:20:58;;;;4107:11;:34;:::i;:::-;4106:42;;;;:::i;:::-;4184:25;;-1:-1:-1;;;4184:25:58;;;;;16343::83;;;4086:62:58;;-1:-1:-1;4158:23:58;;4184;;;;16316:18:83;;4184:25:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4158:51;;4347:9;4317:4;:26;;;:39;4313:116;;4379:39;4372:46;;;;;;;4313:116;4490:9;4472:15;:27;4468:101;;;4522:36;4515:43;;;;;;;4468:101;5549:26;;;;5535:40;;:11;:40;:::i;:::-;5504:27;5516:15;5504:9;:27;:::i;:::-;:71;5500:139;;5598:30;5591:37;;;;;;;5500:139;-1:-1:-1;5709:37:58;;3873:1880;-1:-1:-1;;;;;3873:1880:58:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;14:129:83:-;-1:-1:-1;;;;;92:5:83;88:30;81:5;78:41;68:69;;133:1;130;123:12;148:132;215:20;;244:30;215:20;244:30;:::i;:::-;148:132;;;:::o;285:245::-;343:6;396:2;384:9;375:7;371:23;367:32;364:52;;;412:1;409;402:12;364:52;451:9;438:23;470:30;494:5;470:30;:::i;894:131::-;-1:-1:-1;;;;;969:31:83;;959:42;;949:70;;1015:1;1012;1005:12;1030:386;1097:6;1105;1158:2;1146:9;1137:7;1133:23;1129:32;1126:52;;;1174:1;1171;1164:12;1126:52;1213:9;1200:23;1232:30;1256:5;1232:30;:::i;:::-;1281:5;-1:-1:-1;1338:2:83;1323:18;;1310:32;1351:33;1310:32;1351:33;:::i;:::-;1403:7;1393:17;;;1030:386;;;;;:::o;1720:708::-;1790:3;1829:4;1824:3;1820:14;-1:-1:-1;;;;;1865:5:83;1859:12;1855:37;1850:3;1843:50;1912:4;1962:2;1955:5;1951:14;1945:21;1996:4;1991:2;1986:3;1982:12;1975:26;2023:4;2056:12;2050:19;2091:6;2085:4;2078:20;2125:2;2120:3;2116:12;2107:21;;2169:2;2155:12;2151:21;2137:35;;2190:1;2181:10;;2200:201;2214:6;2211:1;2208:13;2200:201;;;2281:13;;-1:-1:-1;;;;;2277:39:83;2263:54;;2376:15;;;;2313:1;2229:9;;;;;2339:14;;;;2200:201;;;-1:-1:-1;2417:5:83;1720:708;-1:-1:-1;;;;;;1720:708:83:o;2433:422::-;2474:3;2512:5;2506:12;2539:6;2534:3;2527:19;2564:1;2574:162;2588:6;2585:1;2582:13;2574:162;;;2650:4;2706:13;;;2702:22;;2696:29;2678:11;;;2674:20;;2667:59;2603:12;2574:162;;;2578:3;2781:1;2774:4;2765:6;2760:3;2756:16;2752:27;2745:38;2844:4;2837:2;2833:7;2828:2;2820:6;2816:15;2812:29;2807:3;2803:39;2799:50;2792:57;;;2433:422;;;;:::o;2860:564::-;2924:3;2968:5;2962:12;2995:4;2990:3;2983:17;3021:75;3090:4;3085:3;3081:14;3067:12;3021:75;:::i;:::-;3009:87;;3144:4;3137:5;3133:16;3127:23;3192:3;3186:4;3182:14;3175:4;3170:3;3166:14;3159:38;3246:4;3229:14;3223:21;3219:32;3213:4;3206:46;3309:4;3293:14;3289:25;3283:32;3261:54;;3348:4;3341;3335;3331:15;3324:29;3369:49;3412:4;3406;3402:15;3386:14;3369:49;:::i;:::-;3362:56;2860:564;-1:-1:-1;;;;;2860:564:83:o;3429:1909::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3603:4;3644:2;3639:3;3635:12;3669:11;3696;3689:18;;3746:6;3743:1;3739:14;3732:5;3728:26;3716:38;;3788:2;3781:5;3777:14;3809:1;3819:1493;3833:6;3830:1;3827:13;3819:1493;;;3904:5;3898:4;3894:16;3889:3;3882:29;3940:6;3934:13;3970:4;4013:2;4007:9;4042:2;4036:4;4029:16;4086:12;4080:19;4122:4;4161:2;4156;4150:4;4146:13;4139:25;4191:71;4257:3;4251:4;4247:14;4231;4191:71;:::i;:::-;4177:85;;4321:2;4307:12;4303:21;4297:28;4352:2;4348:7;4378:2;4438;4431:4;4423:6;4419:17;4415:26;4410:2;4404:4;4400:13;4393:49;4469:63;4525:6;4509:14;4469:63;:::i;:::-;4561:21;;;4555:28;4606:3;4629:13;;;4622:25;;;;4688:21;;;4682:28;-1:-1:-1;;;;;4771:39:83;4733:3;4756:13;;;4749:62;;;;4856:21;;;4850:28;-1:-1:-1;;;;;;4846:55:83;4831:13;;;4824:78;;;;4943:21;;;4937:28;5005:17;;;5001:26;;;4884:3;4985:14;;4978:50;-1:-1:-1;4937:28:83;4455:77;-1:-1:-1;5054:40:83;4455:77;4937:28;5054:40;:::i;:::-;5135:11;;;5129:18;605:13;;598:21;5192:13;;;586:34;5129:18;5041:53;-1:-1:-1;5160:46:83;;-1:-1:-1;;535:91:83;5160:46;5290:12;;;;5227:5;-1:-1:-1;;5255:15:83;;;;3855:1;3848:9;3819:1493;;;-1:-1:-1;5328:4:83;;3429:1909;-1:-1:-1;;;;;;;3429:1909:83:o;5343:1439::-;5428:3;5466:5;5460:12;5493:6;5488:3;5481:19;5519:4;5560:2;5555:3;5551:12;5585:11;5612;5605:18;;5662:6;5659:1;5655:14;5648:5;5644:26;5632:38;;5704:2;5697:5;5693:14;5725:1;5746;5756:1000;5772:6;5767:3;5764:15;5756:1000;;;5847:5;5841:4;5837:16;5832:3;5825:29;5883:6;5877:13;5913:4;5956:2;5950:9;5985:2;5979:4;5972:16;6015:74;6085:2;6079:4;6075:13;6061:12;6015:74;:::i;:::-;6130:11;;;6124:18;6177:17;;;6162:13;;;6155:40;6256:21;;6290:24;;;6380:23;;;;6427:1;;-1:-1:-1;6336:15:83;;;-1:-1:-1;6441:209:83;6457:8;6452:3;6449:17;6441:209;;;6534:15;;6520:30;;6619:17;;;;6485:1;6476:11;;;;;6576:14;;;;6441:209;;;-1:-1:-1;6734:12:83;;;;6671:5;-1:-1:-1;;;6699:15:83;;;;5798:1;5789:11;5756:1000;;;-1:-1:-1;6772:4:83;;5343:1439;-1:-1:-1;;;;;;;;5343:1439:83:o;6787:1348::-;7026:6;7019:14;7012:22;7001:9;6994:41;7071:2;7066;7055:9;7051:18;7044:30;6975:4;7109:6;7103:13;7152:4;7147:2;7136:9;7132:18;7125:32;7180:80;7255:3;7244:9;7240:19;7226:12;7180:80;:::i;:::-;7166:94;;-1:-1:-1;;;;;7318:2:83;7310:6;7306:15;7300:22;7296:47;7291:2;7280:9;7276:18;7269:75;7399:2;7391:6;7387:15;7381:22;7375:3;7364:9;7360:19;7353:51;7453:2;7445:6;7441:15;7435:22;7480:2;7476:7;7548:2;7536:9;7528:6;7524:22;7520:31;7514:3;7503:9;7499:19;7492:60;7575:82;7650:6;7634:14;7575:82;:::i;:::-;7561:96;;7706:3;7698:6;7694:16;7688:23;7666:45;;7776:2;7764:9;7756:6;7752:22;7748:31;7742:3;7731:9;7727:19;7720:60;7803:84;7880:6;7864:14;7803:84;:::i;:::-;7789:98;;7943:3;7935:6;7931:16;7925:23;7918:4;7907:9;7903:20;7896:53;7998:3;7990:6;7986:16;7980:23;7958:45;;8068:2;8056:9;8048:6;8044:22;8040:31;8034:3;8023:9;8019:19;8012:60;;8089:40;8122:6;8106:14;8089:40;:::i;:::-;8081:48;6787:1348;-1:-1:-1;;;;;;6787:1348:83:o;8140:866::-;8251:6;8259;8267;8320:2;8308:9;8299:7;8295:23;8291:32;8288:52;;;8336:1;8333;8326:12;8288:52;8376:9;8363:23;-1:-1:-1;;;;;8446:2:83;8438:6;8435:14;8432:34;;;8462:1;8459;8452:12;8432:34;8500:6;8489:9;8485:22;8475:32;;8545:7;8538:4;8534:2;8530:13;8526:27;8516:55;;8567:1;8564;8557:12;8516:55;8607:2;8594:16;8633:2;8625:6;8622:14;8619:34;;;8649:1;8646;8639:12;8619:34;8696:7;8689:4;8680:6;8676:2;8672:15;8668:26;8665:39;8662:59;;;8717:1;8714;8707:12;8662:59;8748:4;8740:13;;;;-1:-1:-1;8772:6:83;-1:-1:-1;8816:20:83;;;8803:34;;8849:16;;;8846:36;;;8878:1;8875;8868:12;8846:36;-1:-1:-1;8901:24:83;;8959:2;8941:16;;;8937:25;8934:45;;;8975:1;8972;8965:12;8934:45;8998:2;8988:12;;;8140:866;;;;;:::o;9011:681::-;9322:3;9311:9;9304:22;9285:4;9349:74;9418:3;9407:9;9403:19;9395:6;9349:74;:::i;:::-;-1:-1:-1;;;;;9463:6:83;9459:31;9454:2;9443:9;9439:18;9432:59;9527:6;9522:2;9511:9;9507:18;9500:34;9570:6;9565:2;9554:9;9550:18;9543:34;9626:9;9618:6;9614:22;9608:3;9597:9;9593:19;9586:51;9654:32;9679:6;9671;9654:32;:::i;:::-;9646:40;9011:681;-1:-1:-1;;;;;;;;9011:681:83:o;9697:180::-;9756:6;9809:2;9797:9;9788:7;9784:23;9780:32;9777:52;;;9825:1;9822;9815:12;9777:52;-1:-1:-1;9848:23:83;;9697:180;-1:-1:-1;9697:180:83:o;9882:399::-;9980:6;10033:2;10021:9;10012:7;10008:23;10004:32;10001:52;;;10049:1;10046;10039:12;10001:52;10089:9;10076:23;-1:-1:-1;;;;;10114:6:83;10111:30;10108:50;;;10154:1;10151;10144:12;10108:50;10177:22;;10233:3;10215:16;;;10211:26;10208:46;;;10250:1;10247;10240:12;11519:1865;11580:3;11618:5;11612:12;11645:6;11640:3;11633:19;11671:4;11712:2;11707:3;11703:12;11737:11;11764;11757:18;;11814:6;11811:1;11807:14;11800:5;11796:26;11784:38;;11856:2;11849:5;11845:14;11877:1;11887:1471;11901:6;11898:1;11895:13;11887:1471;;;11972:5;11966:4;11962:16;11957:3;11950:29;12008:6;12002:13;12038:4;12081:2;12075:9;12110:2;12104:4;12097:16;12154:12;12148:19;12190:4;12229:2;12224;12218:4;12214:13;12207:25;12259:60;12314:3;12308:4;12304:14;12288;12259:60;:::i;:::-;12245:74;;12378:2;12364:12;12360:21;12354:28;12409:2;12405:7;12435:2;12495;12488:4;12480:6;12476:17;12472:26;12467:2;12461:4;12457:13;12450:49;12526:52;12571:6;12555:14;12526:52;:::i;:::-;12607:21;;;12601:28;12652:3;12675:13;;;12668:25;;;;12734:21;;;12728:28;-1:-1:-1;;;;;12817:39:83;12779:3;12802:13;;;12795:62;;;;12902:21;;;12896:28;-1:-1:-1;;;;;;12892:55:83;12877:13;;;12870:78;;;;12989:21;;;12983:28;13051:17;;;13047:26;;;12930:3;13031:14;;13024:50;-1:-1:-1;12983:28:83;12512:66;-1:-1:-1;13100:40:83;12512:66;12983:28;13100:40;:::i;:::-;13181:11;;;13175:18;605:13;;598:21;13238:13;;;586:34;13175:18;13087:53;-1:-1:-1;13206:46:83;;-1:-1:-1;;535:91:83;13206:46;13336:12;;;;13273:5;-1:-1:-1;;13301:15:83;;;;11923:1;11916:9;11887:1471;;13389:1398;13452:3;13490:5;13484:12;13517:6;13512:3;13505:19;13543:4;13584:2;13579:3;13575:12;13609:11;13636;13629:18;;13686:6;13683:1;13679:14;13672:5;13668:26;13656:38;;13728:2;13721:5;13717:14;13749:1;13770;13780:981;13796:6;13791:3;13788:15;13780:981;;;13871:5;13865:4;13861:16;13856:3;13849:29;13907:6;13901:13;13937:4;13980:2;13974:9;14009:2;14003:4;13996:16;14039:55;14090:2;14084:4;14080:13;14066:12;14039:55;:::i;:::-;14135:11;;;14129:18;14182:17;;;14167:13;;;14160:40;14261:21;;14295:24;;;14385:23;;;;14432:1;;-1:-1:-1;14341:15:83;;;-1:-1:-1;14446:209:83;14462:8;14457:3;14454:17;14446:209;;;14539:15;;14525:30;;14624:17;;;;14490:1;14481:11;;;;;14581:14;;;;14446:209;;;-1:-1:-1;14739:12:83;;;;14676:5;-1:-1:-1;;;14704:15:83;;;;13822:1;13813:11;13780:981;;14792:1211;15003:2;14992:9;14985:21;14966:4;15041:6;15035:13;15084:4;15079:2;15068:9;15064:18;15057:32;15112:61;15168:3;15157:9;15153:19;15139:12;15112:61;:::i;:::-;15098:75;;-1:-1:-1;;;;;15231:2:83;15223:6;15219:15;15213:22;15209:47;15204:2;15193:9;15189:18;15182:75;15311:2;15303:6;15299:15;15293:22;15288:2;15277:9;15273:18;15266:50;15365:2;15357:6;15353:15;15347:22;15392:2;15388:7;15460:2;15448:9;15440:6;15436:22;15432:31;15426:3;15415:9;15411:19;15404:60;15487;15540:6;15524:14;15487:60;:::i;:::-;15473:74;;15596:3;15588:6;15584:16;15578:23;15556:45;;15666:2;15654:9;15646:6;15642:22;15638:31;15632:3;15621:9;15617:19;15610:60;15693:62;15748:6;15732:14;15693:62;:::i;:::-;15679:76;;15810:3;15802:6;15798:16;15792:23;15786:3;15775:9;15771:19;15764:52;15865:3;15857:6;15853:16;15847:23;15825:45;;15936:2;15924:9;15916:6;15912:22;15908:31;15901:4;15890:9;15886:20;15879:61;;15957:40;15990:6;15974:14;15957:40;:::i;16008:184::-;16078:6;16131:2;16119:9;16110:7;16106:23;16102:32;16099:52;;;16147:1;16144;16137:12;16099:52;-1:-1:-1;16170:16:83;;16008:184;-1:-1:-1;16008:184:83:o;16379:127::-;16440:10;16435:3;16431:20;16428:1;16421:31;16471:4;16468:1;16461:15;16495:4;16492:1;16485:15;16511:380;16590:1;16586:12;;;;16633;;;16654:61;;16708:4;16700:6;16696:17;16686:27;;16654:61;16761:2;16753:6;16750:14;16730:18;16727:38;16724:161;;16807:10;16802:3;16798:20;16795:1;16788:31;16842:4;16839:1;16832:15;16870:4;16867:1;16860:15;16724:161;;16511:380;;;:::o;16896:271::-;17087:2;17076:9;17069:21;17050:4;17107:54;17157:2;17146:9;17142:18;17134:6;17107:54;:::i;17172:118::-;17258:5;17251:13;17244:21;17237:5;17234:32;17224:60;;17280:1;17277;17270:12;17295:245;17362:6;17415:2;17403:9;17394:7;17390:23;17386:32;17383:52;;;17431:1;17428;17421:12;17383:52;17463:9;17457:16;17482:28;17504:5;17482:28;:::i;17545:127::-;17606:10;17601:3;17597:20;17594:1;17587:31;17637:4;17634:1;17627:15;17661:4;17658:1;17651:15;17677:125;17742:9;;;17763:10;;;17760:36;;;17776:18;;:::i;17807:127::-;17868:10;17863:3;17859:20;17856:1;17849:31;17899:4;17896:1;17889:15;17923:4;17920:1;17913:15;18065:146;18127:78;18145:3;18138:5;18135:14;18127:78;;;18201:1;18187:16;;18172:1;18161:13;18127:78;;18216:418;18318:2;18313:3;18310:11;18307:321;;;18354:5;18351:1;18344:16;18398:4;18395:1;18385:18;18468:2;18456:10;18452:19;18449:1;18445:27;18439:4;18435:38;18504:4;18492:10;18489:20;18486:47;;;-1:-1:-1;18527:4:83;18486:47;18546:72;18612:2;18607:3;18603:12;18600:1;18596:20;18590:4;18586:31;18573:11;18546:72;:::i;18639:166::-;-1:-1:-1;;18767:1:83;18763:11;;;18759:24;18755:29;18745:40;18791:1;18787:11;;;;18742:57;;18639:166::o;18810:1206::-;-1:-1:-1;;;;;18929:3:83;18926:27;18923:53;;;18956:18;;:::i;:::-;18985:94;19075:3;19035:38;19067:4;19061:11;19035:38;:::i;:::-;19029:4;18985:94;:::i;:::-;19105:1;19130:2;19125:3;19122:11;19147:1;19142:616;;;;19802:1;19819:3;19816:93;;;-1:-1:-1;19875:19:83;;;19862:33;19816:93;19935:64;19995:3;19988:5;19935:64;:::i;:::-;19929:4;19922:78;;19115:895;;19142:616;18012:1;18005:14;;;18049:4;18036:18;;-1:-1:-1;;19178:17:83;;;19279:9;19301:229;19315:7;19312:1;19309:14;19301:229;;;19404:19;;;19391:33;19376:49;;19511:4;19496:20;;;;19464:1;19452:14;;;;19331:12;19301:229;;;19305:3;19558;19549:7;19546:16;19543:159;;;19682:1;19678:6;19672:3;19666;19663:1;19659:11;19655:21;19651:34;19647:39;19634:9;19629:3;19625:19;19612:33;19608:79;19600:6;19593:95;19543:159;;;19745:1;19739:3;19736:1;19732:11;19728:19;19722:4;19715:33;19115:895;;18810:1206;;;:::o;20021:114::-;20105:4;20098:5;20094:16;20087:5;20084:27;20074:55;;20125:1;20122;20115:12;20140:515;20211:4;20217:6;20277:11;20264:25;20371:2;20367:7;20356:8;20340:14;20336:29;20332:43;20312:18;20308:68;20298:96;;20390:1;20387;20380:12;20298:96;20417:33;;20469:20;;;-1:-1:-1;;;;;;20501:30:83;;20498:50;;;20544:1;20541;20534:12;20498:50;20577:4;20565:17;;-1:-1:-1;20608:14:83;20604:27;;;20594:38;;20591:58;;;20645:1;20642;20635:12;20591:58;20140:515;;;;;:::o;21853:1725::-;22026:5;22013:19;22041:31;22064:7;22041:31;:::i;:::-;22138:4;22129:7;22125:18;22118:3;22114:8;22107:4;22101:11;22097:26;22094:50;22088:4;22081:64;;22164:1;22202:2;22196:4;22192:13;22224:2;22269:58;22323:2;22316:5;22312:14;22305:5;22269:58;:::i;:::-;-1:-1:-1;;;;;22342:13:83;22339:37;22336:63;;;22379:18;;:::i;:::-;22408:116;22510:13;22464:44;22496:10;22490:17;22464:44;:::i;:::-;22452:10;22408:116;:::i;:::-;22550:1;22585:2;22570:13;22567:21;22602:1;22597:683;;;;23326:1;23343:13;23340:113;;;-1:-1:-1;23411:27:83;;;23398:41;23340:113;23485:76;23547:13;23538:7;23485:76;:::i;:::-;23473:10;23466:96;;22560:1012;;22597:683;18012:1;18005:14;;;18049:4;18036:18;;-1:-1:-1;;22633:27:83;;;22750:9;22772:234;22786:7;22783:1;22780:14;22772:234;;;22873:27;;;22860:41;22845:57;;22974:18;;;;22929:15;;;;22802:10;;22772:234;;;22776:3;23034:13;23025:7;23022:26;23019:187;;;23186:1;23182:6;23176:3;23160:13;23157:1;23153:21;23149:31;23145:44;23141:49;23128:9;23115:11;23111:27;23098:41;23094:97;23086:6;23079:113;23019:187;;;23266:2;23250:13;23246:2;23242:22;23238:31;23226:10;23219:51;22560:1012;;;;;;;;21853:1725;;:::o;23583:127::-;23644:10;23639:3;23635:20;23632:1;23625:31;23675:4;23672:1;23665:15;23699:4;23696:1;23689:15;23715:120;23755:1;23781;23771:35;;23786:18;;:::i;:::-;-1:-1:-1;23820:9:83;;23715:120::o;23840:128::-;23907:9;;;23928:11;;;23925:37;;;23942:18;;:::i;23973:326::-;24068:4;24126:11;24113:25;24220:2;24216:7;24205:8;24189:14;24185:29;24181:43;24161:18;24157:68;24147:96;;24239:1;24236;24229:12;24147:96;24260:33;;;;;23973:326;-1:-1:-1;;23973:326:83:o;24304:258::-;24377:4;24371:11;;;24409:17;;-1:-1:-1;;;;;24441:34:83;;24477:22;;;24438:62;24435:88;;;24503:18;;:::i;:::-;24539:4;24532:24;24304:258;:::o;24567:254::-;24640:2;24634:9;24682:4;24670:17;;-1:-1:-1;;;;;24702:34:83;;24738:22;;;24699:62;24696:88;;;24764:18;;:::i;24826:254::-;24899:2;24893:9;24941:4;24929:17;;-1:-1:-1;;;;;24961:34:83;;24997:22;;;24958:62;24955:88;;;25023:18;;:::i;25085:275::-;25156:2;25150:9;25221:2;25202:13;;-1:-1:-1;;25198:27:83;25186:40;;-1:-1:-1;;;;;25241:34:83;;25277:22;;;25238:62;25235:88;;;25303:18;;:::i;:::-;25339:2;25332:22;25085:275;;-1:-1:-1;25085:275:83:o;25365:183::-;25425:4;-1:-1:-1;;;;;25450:6:83;25447:30;25444:56;;;25480:18;;:::i;:::-;-1:-1:-1;25525:1:83;25521:14;25537:4;25517:25;;25365:183::o;25553:1115::-;25608:5;25656:4;25644:9;25639:3;25635:19;25631:30;25628:50;;;25674:1;25671;25664:12;25628:50;25696:23;;:::i;:::-;25687:32;;25756:9;25743:23;25775:32;25799:7;25775:32;:::i;:::-;25816:22;;25857:2;25895:18;;;25882:32;-1:-1:-1;;;;;25926:30:83;;25923:50;;;25969:1;25966;25959:12;25923:50;25992:22;;26045:4;26037:13;;26033:23;-1:-1:-1;26023:51:83;;26070:1;26067;26060:12;26023:51;26106:2;26093:16;26129:60;26145:43;26185:2;26145:43;:::i;:::-;26129:60;:::i;:::-;26223:15;;;26305:1;26301:10;;;;26293:19;;26289:28;;;26254:12;;;;26329:15;;;26326:35;;;26357:1;26354;26347:12;26326:35;26381:11;;;;26401:223;26417:6;26412:3;26409:15;26401:223;;;26499:3;26486:17;26516:33;26541:7;26516:33;:::i;:::-;26562:20;;26434:12;;;;26602;;;;26401:223;;;26656:5;26651:2;26644:5;26640:14;26633:29;;;;;;25553:1115;;;;:::o;26673:198::-;26779:9;26816:49;26850:14;26843:5;26816:49;:::i;26876:574::-;26998:4;27004:6;27064:11;27051:25;27158:2;27154:7;27143:8;27127:14;27123:29;27119:43;27099:18;27095:68;27085:96;;27177:1;27174;27167:12;27085:96;27204:33;;27256:20;;;-1:-1:-1;;;;;;27288:30:83;;27285:50;;;27331:1;27328;27321:12;27285:50;27364:4;27352:17;;-1:-1:-1;27415:1:83;27411:14;;;27395;27391:35;27381:46;;27378:66;;;27440:1;27437;27430:12;27455:295;27525:5;27584:3;27571:17;27670:2;27666:7;27655:8;27639:14;27635:29;27631:43;27611:18;27607:68;27597:96;;27689:1;27686;27679:12;27597:96;27711:33;;;;27455:295;-1:-1:-1;;27455:295:83:o;27755:500::-;27813:5;27820:6;27880:3;27867:17;27966:2;27962:7;27951:8;27935:14;27931:29;27927:43;27907:18;27903:68;27893:96;;27985:1;27982;27975:12;27893:96;28013:33;;28117:4;28104:18;;;-1:-1:-1;28065:21:83;;-1:-1:-1;;;;;;28134:30:83;;28131:50;;;28177:1;28174;28167:12;28131:50;28224:6;28208:14;28204:27;28197:5;28193:39;28190:59;;;28245:1;28242;28235:12;28260:266;28348:6;28343:3;28336:19;28400:6;28393:5;28386:4;28381:3;28377:14;28364:43;-1:-1:-1;28452:1:83;28427:16;;;28445:4;28423:27;;;28416:38;;;;28508:2;28487:15;;;-1:-1:-1;;28483:29:83;28474:39;;;28470:50;;28260:266::o;28531:420::-;28593:3;28639:5;28626:19;28654:31;28677:7;28654:31;:::i;:::-;28719:4;28706:18;28694:31;;28768:55;28817:4;28806:16;;28810:5;28768:55;:::i;:::-;28855:4;28848;28843:3;28839:14;28832:28;28876:69;28939:4;28934:3;28930:14;28916:12;28902;28876:69;:::i;28956:1553::-;29018:3;29056:56;29106:5;29099;29056:56;:::i;:::-;29133:4;29128:3;29121:17;29168:3;29163;29159:13;29209:12;29196:26;29231:32;29255:7;29231:32;:::i;:::-;-1:-1:-1;;;;;29332:16:83;;;29325:4;29316:14;;29309:40;29368:4;;29420:21;;;29407:35;29493:14;29489:33;;;-1:-1:-1;;29485:47:83;29461:72;;29451:100;;29547:1;29544;29537:12;29451:100;29575:37;;;29680:16;;;;29719:2;29635:21;29708:14;;;29705:34;;;29735:1;29732;29725:12;29705:34;29791:6;29788:1;29784:14;29768;29764:35;29755:7;29751:49;29748:69;;;29813:1;29810;29803:12;29748:69;29847:4;29842:2;29833:12;;29826:26;29887:20;;;;-1:-1:-1;29986:1:83;;29934:3;29925:13;;;29996:289;30010:6;30007:1;30004:13;29996:289;;;30087:6;30074:20;30107:33;30132:7;30107:33;:::i;:::-;-1:-1:-1;;;;;30167:33:83;30153:48;;30260:15;;;;30197:1;30025:9;;;;;30223:14;;;;29996:289;;;30000:3;30316:65;30377:2;30370:5;30366:14;30359:5;30316:65;:::i;:::-;30294:87;;30422:3;30415:5;30411:15;30406:2;30401:3;30397:12;30390:37;30443:60;30497:5;30481:14;30443:60;:::i;:::-;30436:67;28956:1553;-1:-1:-1;;;;;;;28956:1553:83:o;30514:131::-;-1:-1:-1;;;;;;30588:32:83;;30578:43;;30568:71;;30635:1;30632;30625:12;30650:132;30717:20;;30746:30;30717:20;30746:30;:::i;30787:128::-;30852:20;;30881:28;30852:20;30881:28;:::i;30920:2545::-;31165:2;31217:21;;;31190:18;;;31273:22;;;31136:4;;31314:2;31332:18;;;31396:1;31392:14;;;31377:30;;31373:39;;31435:6;31136:4;;31490:1946;31506:6;31501:3;31498:15;31490:1946;;;31573:2;31569:7;31629:2;31617:9;31609:6;31605:22;31601:31;31596:3;31589:44;31656:58;31707:6;31699;31656:58;:::i;:::-;31766:2;31753:16;31849:3;31845:8;31840:2;31824:14;31820:23;31816:38;31796:18;31792:63;31782:91;;31869:1;31866;31859:12;31782:91;31939:18;;;31899:27;;31990:56;31899:27;;31990:56;:::i;:::-;32069:4;32110:2;32105;32097:6;32093:15;32086:27;32140:69;32204:3;32196:6;32192:16;32178:12;32140:69;:::i;:::-;32126:83;;32244:65;32305:2;32298:5;32294:14;32287:5;32244:65;:::i;:::-;32332:2;32396;32387:6;32379;32375:19;32371:28;32366:2;32358:6;32354:15;32347:53;32427:61;32481:6;32465:14;32427:61;:::i;:::-;32413:75;;32511:3;32501:13;;32575:2;32568:5;32564:14;32551:28;32546:2;32538:6;32534:15;32527:53;32632:2;32625:5;32621:14;32608:28;32593:43;;32649:32;32673:7;32649:32;:::i;:::-;32704:3;-1:-1:-1;;;;;32748:7:83;32744:32;32739:2;32731:6;32727:15;32720:57;32829:2;32822:5;32818:14;32805:28;32790:43;;32846:32;32870:7;32846:32;:::i;:::-;-1:-1:-1;;;;;;32915:34:83;;32898:15;;;32891:59;32999:53;33037:14;;;33041:5;32999:53;:::i;:::-;32963:89;;;;;;;33115:2;33106:6;33098;33094:19;33090:28;33084:3;33076:6;33072:16;33065:54;33143:63;33199:6;33185:12;33169:14;33143:63;:::i;:::-;33132:74;;;;;33241:28;33265:2;33261;33257:11;33241:28;:::i;:::-;605:13;598:21;33314:15;;;586:34;;;;33414:12;;;;;-1:-1:-1;33379:15:83;;;;31532:1;31523:11;31490:1946;;;-1:-1:-1;33453:6:83;;30920:2545;-1:-1:-1;;;;;;;;;30920:2545:83:o;34104:530::-;34146:5;34199:3;34192:4;34184:6;34180:17;34176:27;34166:55;;34217:1;34214;34207:12;34166:55;34253:6;34240:20;-1:-1:-1;;;;;34275:2:83;34272:26;34269:52;;;34301:18;;:::i;:::-;34345:55;34388:2;34369:13;;-1:-1:-1;;34365:27:83;34394:4;34361:38;34345:55;:::i;:::-;34425:2;34416:7;34409:19;34471:3;34464:4;34459:2;34451:6;34447:15;34443:26;34440:35;34437:55;;;34488:1;34485;34478:12;34437:55;34553:2;34546:4;34538:6;34534:17;34527:4;34518:7;34514:18;34501:55;34601:1;34576:16;;;34594:4;34572:27;34565:38;;;;34580:7;34104:530;-1:-1:-1;;;34104:530:83:o;34639:946::-;34696:5;34744:4;34732:9;34727:3;34723:19;34719:30;34716:50;;;34762:1;34759;34752:12;34716:50;34784:23;;:::i;:::-;34775:32;;34843:9;34830:23;-1:-1:-1;;;;;34913:2:83;34905:6;34902:14;34899:34;;;34929:1;34926;34919:12;34899:34;34956:55;35007:3;34998:6;34987:9;34983:22;34956:55;:::i;:::-;34949:5;34942:70;35065:2;35054:9;35050:18;35037:32;35021:48;;35094:2;35084:8;35081:16;35078:36;;;35110:1;35107;35100:12;35078:36;35133:24;;;;35187:4;35173:12;;;35169:23;35166:43;;;35205:1;35202;35195:12;35166:43;35233:23;;:::i;:::-;35293:2;35280:16;35305:31;35328:7;35305:31;:::i;:::-;35345:24;;35415:2;35407:11;;35394:25;35431:16;;;35428:36;;;35460:1;35457;35450:12;35428:36;35498:40;35534:3;35523:8;35519:2;35515:17;35498:40;:::i;:::-;35493:2;35484:7;35480:16;35473:66;;35571:7;35566:2;35559:5;35555:14;35548:31;;;;34639:946;;;;:::o;35590:2152::-;35652:5;35705:3;35698:4;35690:6;35686:17;35682:27;35672:55;;35723:1;35720;35713:12;35672:55;35759:6;35746:20;35785:4;35809:60;35825:43;35865:2;35825:43;:::i;35809:60::-;35903:15;;;35989:1;35985:10;;;;35973:23;;35969:32;;;35934:12;;;;36013:15;;;36010:35;;;36041:1;36038;36031:12;36010:35;36077:2;36069:6;36065:15;36089:1624;36105:6;36100:3;36097:15;36089:1624;;;36191:3;36178:17;-1:-1:-1;;;;;36268:2:83;36255:11;36252:19;36249:39;;;36284:1;36281;36274:12;36249:39;36311:24;;;;-1:-1:-1;;36408:4:83;36389:12;;;36385:21;;36381:32;36378:52;;;36426:1;36423;36416:12;36378:52;36456:23;;:::i;:::-;36529:2;36525;36521:11;36508:25;36562:2;36552:8;36549:16;36546:36;;;36578:1;36575;36568:12;36546:36;36605:17;;36665:4;36646:12;;;36642:21;;36638:32;36635:52;;;36683:1;36680;36673:12;36635:52;36715:23;;:::i;:::-;36700:38;;36788:2;36784;36780:11;36767:25;36821:2;36811:8;36808:16;36805:36;;;36837:1;36834;36827:12;36805:36;36870:61;36927:3;36922:2;36911:8;36907:2;36903:17;36899:26;36870:61;:::i;:::-;36861:7;36854:78;;36982:4;36978:2;36974:13;36961:27;37017:2;37007:8;37004:16;37001:36;;;37033:1;37030;37023:12;37001:36;37075:61;37132:3;37127:2;37116:8;37112:2;37108:17;37104:26;37075:61;:::i;:::-;37070:2;37061:7;37057:16;37050:87;;37198:2;37194;37190:11;37177:25;37170:4;37161:7;37157:18;37150:53;37241:31;37267:3;37263:2;37259:12;37241:31;:::i;:::-;37236:2;37227:7;37223:16;37216:57;37312:31;37338:3;37334:2;37330:12;37312:31;:::i;:::-;37306:3;37297:7;37293:17;37286:58;37394:4;37390:2;37386:13;37373:27;37429:2;37419:8;37416:16;37413:36;;;37445:1;37442;37435:12;37413:36;37488:49;37533:3;37528:2;37517:8;37513:2;37509:17;37505:26;37488:49;:::i;:::-;37482:3;37473:7;37469:17;37462:76;;;37565:7;37558:5;37551:22;37609:30;37633:4;37629:2;37625:13;37609:30;:::i;:::-;37593:14;;;37586:54;37653:18;;-1:-1:-1;;;37691:12:83;;;;36122;;36089:1624;;37747:2452;37811:5;37864:3;37857:4;37849:6;37845:17;37841:27;37831:55;;37882:1;37879;37872:12;37831:55;37918:6;37905:20;37944:4;37968:60;37984:43;38024:2;37984:43;:::i;37968:60::-;38062:15;;;38124:1;38164:11;;;38152:24;;38148:33;;;38093:12;;;;38050:3;38193:15;;;38190:35;;;38221:1;38218;38211:12;38190:35;38257:2;38249:6;38245:15;38269:1901;38285:6;38280:3;38277:15;38269:1901;;;38371:3;38358:17;-1:-1:-1;;;;;38448:2:83;38435:11;38432:19;38429:109;;;38492:1;38521:2;38517;38510:14;38429:109;38561:24;;;;38608:4;38636:12;;;-1:-1:-1;;38632:26:83;38628:35;-1:-1:-1;38625:125:83;;;38704:1;38733:2;38729;38722:14;38625:125;38776:23;;:::i;:::-;38849:2;38845;38841:11;38828:25;38882:2;38872:8;38869:16;38866:106;;;38926:1;38955:2;38951;38944:14;38866:106;38999:59;39054:3;39049:2;39038:8;39034:2;39030:17;39026:26;38999:59;:::i;:::-;38992:5;38985:74;;39109:2;39105;39101:11;39088:25;39142:2;39132:8;39129:16;39126:109;;;39187:1;39217:3;39212;39205:16;39126:109;39267:8;39263:2;39259:17;39248:28;;;39317:3;39312:2;39307:3;39303:12;39299:22;39289:123;;39364:1;39353:12;;39394:3;39389;39382:16;39289:123;39458:2;39453:3;39449:12;39436:26;39425:37;;39488:61;39504:44;39544:3;39504:44;:::i;39488:61::-;39593:18;;;39689:12;;;39680:22;;39676:31;;;39633:14;;;;39723:17;;;39720:110;;;39782:1;39812:3;39807;39800:16;39720:110;39856:12;;;;39881:174;39899:8;39892:5;39889:19;39881:174;;;39981:19;;39967:34;;39920:14;;;;40027;;;;39881:174;;;40075:14;;;40068:29;-1:-1:-1;40110:18:83;;-1:-1:-1;;;40148:12:83;;;;38302;;38269:1901;;;-1:-1:-1;40188:5:83;;37747:2452;-1:-1:-1;;;;;;;37747:2452:83:o;40204:1302::-;40330:9;40389:4;40381:5;40365:14;40361:26;40357:37;40354:57;;;40407:1;40404;40397:12;40354:57;40435:23;;:::i;:::-;40494:5;40481:19;-1:-1:-1;;;;;40560:2:83;40552:6;40549:14;40546:34;;;40576:1;40573;40566:12;40546:34;40605:62;40652:14;40643:6;40636:5;40632:18;40605:62;:::i;:::-;40596:7;40589:79;40702:33;40731:2;40724:5;40720:14;40702:33;:::i;:::-;40697:2;40688:7;40684:16;40677:59;40794:2;40787:5;40783:14;40770:28;40765:2;40756:7;40752:16;40745:54;40848:2;40841:5;40837:14;40824:28;40808:44;;40877:2;40867:8;40864:16;40861:36;;;40893:1;40890;40883:12;40861:36;40931:74;40990:14;40979:8;40972:5;40968:20;40931:74;:::i;:::-;40926:2;40917:7;40913:16;40906:100;41055:3;41048:5;41044:15;41031:29;41015:45;;41085:2;41075:8;41072:16;41069:36;;;41101:1;41098;41091:12;41069:36;41140:76;41201:14;41190:8;41183:5;41179:20;41140:76;:::i;:::-;41134:3;41125:7;41121:17;41114:103;41276:3;41269:5;41265:15;41252:29;41246:3;41237:7;41233:17;41226:56;41331:3;41324:5;41320:15;41307:29;41291:45;;41361:2;41351:8;41348:16;41345:36;;;41377:1;41374;41367:12;41345:36;;41416:54;41455:14;41444:8;41437:5;41433:20;41416:54;:::i;:::-;41410:3;41397:17;;41390:81;-1:-1:-1;41401:7:83;40204:1302;-1:-1:-1;;40204:1302:83:o;41511:174::-;41555:11;41607:3;41594:17;41620:30;41644:5;41620:30;:::i;41874:168::-;41947:9;;;41978;;41995:15;;;41989:22;;41975:37;41965:71;;42016:18;;:::i;42047:322::-;42142:5;42136:12;42171:1;42164:5;42157:16;42199:6;42192:14;42182:181;;42240:5;42237:1;42230:16;42284:4;42281:1;42271:18;42302:51;42345:6;42339:4;42335:17;42329:4;42302:51;:::i;42374:405::-;-1:-1:-1;;;42457:6:83;42454:32;42451:58;;;42489:18;;:::i;:::-;42538:5;42532:12;42567:6;42560:5;42553:21;42597:6;42589;42586:18;42583:190;;;42637:5;42634:1;42627:16;42681:4;42678:1;42668:18;42699:64;42755:6;42749:4;42745:17;42736:6;42730:4;42726:17;42699:64;:::i;42784:153::-;42862:1;42856:4;42849:15;42873:58;42928:1;42922:4;42918:12;42873:58;:::i;42942:512::-;43011:38;43043:4;43037:11;43011:38;:::i;:::-;43075:6;43068:14;43058:390;;43124:2;43116:6;43113:14;43145:1;43140:258;;;;-1:-1:-1;;43434:1:83;43421:15;;4953:1319:68:o;43140:258:83:-;43175:4;43172:1;43165:15;43222:4;43219:1;43209:18;43244:76;43314:2;43306:6;43302:15;43299:1;43295:23;43289:4;43285:34;43281:1;43275:4;43271:12;43244:76;:::i;:::-;43350:1;43337:15;;;43369;;43106:332;43058:390;42942:512;:::o;43459:235::-;43539:1;43533:4;43526:15;43550:58;43605:1;43599:4;43595:12;43550:58;:::i;:::-;43638:1;43634;43628:4;43624:12;43617:23;43649:39;43685:1;43679:4;43675:12;43649:39;:::i;43699:2836::-;43821:73;43888:5;43881;43821:73;:::i;:::-;43931:2;43918:16;43943:32;43967:7;43943:32;:::i;:::-;41792:11;;-1:-1:-1;;;;;;41788:41:83;-1:-1:-1;;;;;41831:30:83;;41785:77;41772:91;;43984:60;44063:1;44101:2;44095:4;44091:13;44123:2;44168:103;44267:2;44263;44259:11;44255:2;44168:103;:::i;:::-;44134:137;;-1:-1:-1;;;;;44338:2:83;44323:13;44320:21;44317:47;;;44344:18;;:::i;:::-;44373:65;44424:13;44412:10;44373:65;:::i;:::-;44491:1;44501:22;;;44544:17;;;;44491:1;44590:242;44604:13;44601:1;44598:20;44590:242;;;44689:6;44676:20;44709:33;44734:7;44709:33;:::i;:::-;44800:12;;;44793:29;44765:15;;;;44626:10;;44590:242;;;44594:3;44871:1;44865:4;44861:12;44841:32;;44892:82;44970:2;44963:5;44959:14;44952:5;44892:82;:::i;:::-;44882:92;;45011:2;44998:16;44983:31;;45023;45046:7;45023:31;:::i;:::-;45091:19;;-1:-1:-1;;45087:34:83;45136:4;45123:18;;45084:58;45063:80;;;45182:1;45172:12;;;45229:52;45269:11;;;45273:2;45229:52;:::i;:::-;45193:88;;;;45311:2;45296:13;45293:21;45290:47;;;45317:18;;:::i;:::-;45346:120;45452:13;45404:46;45436:12;45430:19;45404:46;:::i;:::-;45390:12;45346:120;:::i;:::-;45492:2;45475:19;;45528:2;45513:13;45510:21;45545:1;45540:692;;;;46278:2;46296:13;46293:115;;;-1:-1:-1;46364:29:83;;;46351:43;46293:115;46442:76;46504:13;46495:7;46442:76;:::i;:::-;46428:12;46421:98;;45503:1026;;45540:692;18012:1;18005:14;;;18049:4;18036:18;;-1:-1:-1;;45576:27:83;;;45697:2;45712:242;45728:7;45723:3;45720:16;45712:242;;;45819:29;;;45806:43;45791:59;;45922:18;;;;45877:15;;;;45746:12;;45712:242;;;45716:3;45982:13;45973:7;45970:26;45967:189;;;46136:1;46132:6;46126:3;46110:13;46107:1;46103:21;46099:31;46095:44;46091:49;46078:9;46063:13;46059:29;46046:43;46042:99;46034:6;46027:115;45967:189;-1:-1:-1;;;;;46194:22:83;;;46190:31;;;46169:53;;;-1:-1:-1;;;;43699:2836:83:o;46540:174::-;46584:11;46636:3;46623:17;46649:30;46673:5;46649:30;:::i;46950:170::-;46992:11;47044:3;47031:17;47057:28;47079:5;47057:28;:::i;47322:3977::-;47469:5;47456:19;47554:3;47550:8;47542:5;47526:14;47522:26;47518:41;47498:18;47494:66;47484:94;;47574:1;47571;47564:12;47484:94;47599:30;;47648:71;47599:30;;47648:71;:::i;:::-;47738:67;47802:2;47798;47738:67;:::i;:::-;47842:2;47829:16;47854:32;47878:7;47854:32;:::i;:::-;41792:11;;-1:-1:-1;;;;;;41788:41:83;-1:-1:-1;;;;;41831:30:83;;41785:77;41772:91;;47895:60;47974:1;48012:2;48006:4;48002:13;48034:2;48079:103;48178:2;48174;48170:11;48166:2;48079:103;:::i;:::-;48045:137;;-1:-1:-1;;;;;48249:2:83;48234:13;48231:21;48228:47;;;48255:18;;:::i;:::-;48284:65;48335:13;48323:10;48284:65;:::i;:::-;48402:1;48412:22;;;48455:17;;;;48402:1;48501:281;48515:13;48512:1;48509:20;48501:281;;;48600:6;48587:20;48620:33;48645:7;48620:33;:::i;:::-;48748:12;;;48741:31;48713:15;;;;48537:10;;48501:281;;;48505:3;48821:1;48815:4;48811:12;48791:32;;48842:76;48914:2;48910;48906:11;48902:2;48842:76;:::i;:::-;48832:86;;48955:2;48942:16;48927:31;;48967;48990:7;48967:31;:::i;:::-;49035:19;;-1:-1:-1;;49031:34:83;49080:4;49067:18;;49028:58;49007:80;;;49126:1;49116:12;;;49173:52;49213:11;;;49217:2;49173:52;:::i;:::-;49137:88;;;;49255:2;49240:13;49237:21;49234:47;;;49261:18;;:::i;:::-;49290:120;49396:13;49348:46;49380:12;49374:19;49348:46;:::i;49290:120::-;49436:2;49419:19;;49472:2;49457:13;49454:21;49489:1;49484:692;;;;50222:2;50207:17;;50240:13;50237:115;;;50327:9;50312:13;50308:29;50295:43;50284:54;;50237:115;50386:76;50448:13;50439:7;50386:76;:::i;:::-;50372:12;50365:98;49447:1026;;49484:692;18012:1;18005:14;;;18049:4;18036:18;;-1:-1:-1;;49520:27:83;;;-1:-1:-1;49641:2:83;49656:242;49672:7;49667:3;49664:16;49656:242;;;49763:29;;;49750:43;49735:59;;49866:18;;;;49821:15;;;;49690:12;;49656:242;;;49660:3;49926:13;49917:7;49914:26;49911:189;;;50080:1;50076:6;50070:3;50054:13;50051:1;50047:21;50043:31;50039:44;50035:49;50022:9;50007:13;50003:29;49990:43;49986:99;49978:6;49971:115;49911:189;;50162:2;50146:13;50142:2;50138:22;50134:31;50120:12;50113:53;49447:1026;;;;;50482:171;50572:80;50648:2;50642:4;50638:13;50632:4;50572:80;:::i;:::-;50568:1;50562:4;50558:12;50482:171;:::i;:::-;50706:2;50700:4;50696:13;50683:27;50679:1;50673:4;50669:12;50662:49;50750:1;50744:4;50740:12;50720:32;;50761:102;50821:41;50858:2;50852:4;50848:13;50821:41;:::i;:::-;41792:11;;-1:-1:-1;;;;;;41788:41:83;-1:-1:-1;;;;;41831:30:83;;;;41785:77;41772:91;;41690:179;50761:102;50872:103;50932:42;50969:3;50963:4;50959:14;50932:42;:::i;:::-;46811:11;;-1:-1:-1;;46847:40:83;46897:3;46893:15;;;;46910:26;46889:48;46844:94;46831:108;;46719:226;50872:103;51020:57;51072:3;51066:4;51062:14;51056:4;51020:57;:::i;:::-;50984:93;;;;51086:100;51172:13;51157;51152:2;51146:4;51142:13;51086:100;:::i;:::-;51195:98;51252:40;51288:2;51281:5;51277:14;51252:40;:::i;:::-;51247:2;51241:4;51237:13;47239:3;47235:8;47228:4;47222:11;47218:26;47305:3;47296:5;47289:13;47282:21;47278:31;47269:7;47266:44;47260:4;47253:58;;47125:192;;;51195:98;;;;;;;47322:3977;;:::o;51304:1593::-;-1:-1:-1;;;51452:3:83;51449:29;51446:55;;;51481:18;;:::i;:::-;51530:4;51524:11;51557:3;51551:4;51544:17;51581:6;51576:3;51573:15;51570:886;;;51621:2;51659:6;51655:2;51651:15;51713:2;51704:7;51700:16;51692:6;51689:28;51679:62;;51721:18;;:::i;:::-;51779:3;51775:2;51771:12;51829:2;51818:9;51814:18;51809:3;51806:27;51796:61;;51837:18;;:::i;:::-;51880:1;51894:16;;;51949:4;51935:19;;51977:18;;;;52021:20;;;;;52054:392;52072:2;52065:5;52062:13;52054:392;;;52134:44;52172:5;52134:44;:::i;:::-;52195:52;52244:1;52237:5;52233:13;52195:52;:::i;:::-;52286:2;52282:1;52275:5;52271:13;52264:25;52328:2;52324:1;52317:5;52313:13;52306:25;52348:41;52385:2;52378:5;52374:14;52348:41;:::i;:::-;52429:2;52424;52417:5;52413:14;52406:26;52098:2;52091:5;52087:14;52078:23;;52054:392;;;52058:3;;;;51570:886;-1:-1:-1;18012:1:83;18005:14;;;18049:4;18036:18;;52479:5;;52575:316;52589:3;52586:1;52583:10;52575:316;;;52635:160;52720:74;52787:6;52780:5;52720:74;:::i;:::-;52707:11;52635:160;:::i;:::-;52830:2;52818:15;;;;;52878:2;52861:20;;;;;52608:1;52601:9;52575:316;;52902:446;52997:5;52991:12;53022:1;53046:2;53039:5;53032:17;53075:6;53068:14;53058:284;;53117:5;53113:2;53106:17;53162:4;53158:2;53148:19;53200:6;53194:4;53190:17;53250:82;53268:2;53261:5;53258:13;53250:82;;;53327:2;53320:5;53313:17;53294:1;53287:5;53283:13;53274:22;;53250:82;;53353:532;-1:-1:-1;;;53436:6:83;53433:32;53430:58;;;53468:18;;:::i;:::-;53517:5;53511:12;53546:6;53539:5;53532:21;53576:6;53568;53565:18;53562:317;;;53616:1;53630:17;;;53686:4;53672:19;;53757:17;;;;53714;;53787:82;53805:2;53798:5;53795:13;53787:82;;;53864:2;53857:5;53850:17;53831:1;53824:5;53820:13;53811:22;;53787:82;;53890:1810;54012:73;54079:5;54072;54012:73;:::i;:::-;54122:2;54109:16;54134:32;54158:7;54134:32;:::i;:::-;41792:11;;-1:-1:-1;;;;;;41788:41:83;-1:-1:-1;;;;;41831:30:83;;41785:77;41772:91;;54175:60;54254:1;54292:2;54286:4;54282:13;54314:2;54359:103;54458:2;54454;54450:11;54446:2;54359:103;:::i;:::-;54325:137;;-1:-1:-1;;;;;54529:2:83;54514:13;54511:21;54508:47;;;54535:18;;:::i;:::-;54564:65;54615:13;54603:10;54564:65;:::i;:::-;54682:1;54692:22;;;54735:17;;;;54682:1;54781:242;54795:13;54792:1;54789:20;54781:242;;;54880:6;54867:20;54900:33;54925:7;54900:33;:::i;:::-;54991:12;;;54984:29;54956:15;;;;54817:10;;54781:242;;;54785:3;55062:1;55056:4;55052:12;55032:32;;55109:109;55214:2;55207:5;55203:14;55196:5;55109:109;:::i;:::-;55073:145;;;;55248:2;55233:13;55230:21;55227:47;;;55254:18;;:::i;:::-;55283:67;55336:13;55322:12;55283:67;:::i;:::-;55397:24;;;-1:-1:-1;55444:17:83;;;;55492:202;55508:13;55503:3;55500:22;55492:202;;;55579:22;;55663:16;;;55656:28;55626:17;;;;55532:12;;55492:202;;55705:1393;-1:-1:-1;;;55857:3:83;55854:29;55851:55;;;55886:18;;:::i;:::-;55935:4;55929:11;55962:3;55956:4;55949:17;55986:6;55981:3;55978:15;55975:679;;;56026:1;56063:6;56059:2;56055:15;56117:2;56108:7;56104:16;56096:6;56093:28;56083:62;;56125:18;;:::i;:::-;56183:3;56179:2;56175:12;56233:2;56222:9;56218:18;56213:3;56210:27;56200:61;;56241:18;;:::i;:::-;56281:1;56274:15;;;56327:4;56314:18;;56355;;;;56399:20;56432:212;56450:2;56443:5;56440:13;56432:212;;;56512:42;56548:5;56512:42;:::i;:::-;56571:59;56627:1;56620:5;56616:13;56571:59;:::i;:::-;56465:14;;56432:212;;;56436:3;;;55975:679;-1:-1:-1;18012:1:83;18005:14;;;18049:4;18036:18;;56677:5;;56773:319;56787:3;56784:1;56781:10;56773:319;;;56833:164;56922:74;56989:6;56982:5;56922:74;:::i;:::-;56909:11;56833:164;:::i;:::-;57032:2;57020:15;;;;;57080:1;57063:19;;;;;56806:1;56799:9;56773:319;;57103:2245;57274:73;57341:5;57334;57274:73;:::i;:::-;57384:2;57371:16;57396:32;57420:7;57396:32;:::i;:::-;41792:11;;-1:-1:-1;;;;;;41788:41:83;-1:-1:-1;;;;;41831:30:83;;41785:77;41772:91;;57437:60;57516:1;57554:2;57548:4;57544:13;57576:2;57621:103;57720:2;57716;57712:11;57708:2;57621:103;:::i;:::-;57587:137;;-1:-1:-1;;;;;57739:13:83;57736:37;57733:63;;;57776:18;;:::i;:::-;57805:65;57856:13;57844:10;57805:65;:::i;:::-;57920:1;57913:21;;;57955:16;;;;57999:281;58013:13;58010:1;58007:20;57999:281;;;58098:6;58085:20;58118:33;58143:7;58118:33;:::i;:::-;58246:12;;;58239:31;58211:15;;;;58035:10;;57999:281;;;58003:3;;58289:103;58349:42;58387:2;58380:5;58376:14;58349:42;:::i;:::-;58345:1;58339:4;58335:12;-1:-1:-1;;;;;41835:5:83;41831:30;-1:-1:-1;;;;;41805:23:83;41798:4;41792:11;41788:41;41785:77;41779:4;41772:91;;;41690:179;58289:103;;;;;58446:2;58439:5;58435:14;58422:28;58418:1;58412:4;58408:12;58401:50;58496:109;58601:2;58594:5;58590:14;58583:5;58496:109;:::i;:::-;58614:144;58744:13;58729;58725:1;58719:4;58715:12;58614:144;:::i;:::-;;;58803:110;58908:3;58901:5;58897:15;58890:5;58803:110;:::i;:::-;58922:148;59056:13;59041;59037:1;59031:4;59027:12;58922:148;:::i;:::-;;;59124:3;59117:5;59113:15;59100:29;59096:1;59090:4;59086:12;59079:51;59175:59;59229:3;59222:5;59218:15;59211:5;59175:59;:::i;:::-;59243:99;59328:13;59313;59309:1;59303:4;59299:12;59243:99;:::i;59582:1429::-;59695:3;59689:4;59686:13;59683:26;;59702:5;;59582:1429::o;59683:26::-;59732:37;59764:3;59758:10;59732:37;:::i;:::-;-1:-1:-1;;;;;59784:6:83;59781:30;59778:56;;;59814:18;;:::i;:::-;59843:97;59933:6;59893:38;59925:4;59919:11;59893:38;:::i;:::-;59887:4;59843:97;:::i;:::-;59966:1;59994:2;59986:6;59983:14;60011:1;60006:748;;;;60798:1;60815:6;60812:89;;;-1:-1:-1;60867:19:83;;;60861:26;60812:89;60927:67;60987:6;60980:5;60927:67;:::i;:::-;60921:4;60914:81;;59976:1029;;60006:748;18012:1;18005:14;;;18049:4;18036:18;;-1:-1:-1;;60042:20:83;;;18012:1;18005:14;;;18049:4;18036:18;;60206:9;60228:251;60242:7;60239:1;60236:14;60228:251;;;60324:21;;;60318:28;60303:44;;60374:1;60447:18;;;;60402:15;;;;60265:4;60258:12;60228:251;;;60232:3;60507:6;60498:7;60495:19;60492:203;;;60568:21;;;60562:28;-1:-1:-1;;60653:1:83;60649:14;;;60665:3;60645:24;60641:37;60637:42;60622:58;60607:74;;60492:203;-1:-1:-1;;;;;60741:1:83;60725:14;;;60721:22;60708:36;;-1:-1:-1;59582:1429:83:o;61157:741::-;61216:3;61255:4;61250:3;61246:14;-1:-1:-1;;;;;61291:5:83;61285:12;61281:37;61276:3;61269:50;61338:4;61382:2;61375:5;61371:14;61404:4;61438;61433:2;61428:3;61424:12;61417:26;61465:4;61498:12;61492:19;61533:6;61527:4;61520:20;61567:2;61562:3;61558:12;61549:21;;61589:12;61586:1;61579:23;61638:2;61635:1;61625:16;61611:30;;61659:1;61650:10;;61669:202;61683:6;61680:1;61677:13;61669:202;;;61751:13;;-1:-1:-1;;;;;61747:39:83;61733:54;;61846:15;;;;61698:10;;;;61809:14;;;;61669:202;;;-1:-1:-1;61887:5:83;61157:741;-1:-1:-1;;;;;;;61157:741:83:o;62029:771::-;62078:3;62119:5;62113:12;62148:36;62174:9;62148:36;:::i;:::-;62193:19;;;62231:4;62254:1;62271:18;;;62298:146;;;;62458:1;62453:341;;;;62264:530;;62298:146;-1:-1:-1;;62340:24:83;;62326:12;;;62319:46;62412:14;;62405:22;62402:1;62398:30;62389:40;;62385:49;;;-1:-1:-1;62298:146:83;;62453:341;62484:5;62481:1;62474:16;62531:2;62528:1;62518:16;62556:1;62570:174;62584:6;62581:1;62578:13;62570:174;;;62671:14;;62653:11;;;62649:20;;62642:44;62714:16;;;;62599:10;;62570:174;;;62768:11;;62764:20;;;-1:-1:-1;;62264:530:83;;;;;;62029:771;;;;:::o;62805:394::-;62896:4;62891:3;62884:17;62866:3;62922:57;62973:4;62968:3;62964:14;62957:5;62922:57;:::i;:::-;63021:3;63015:4;63011:14;63004:4;62999:3;62995:14;62988:38;63077:4;63069;63062:5;63058:16;63052:23;63048:34;63042:4;63035:48;63116:4;63109;63103;63099:15;63092:29;63137:56;63187:4;63181;63177:15;63173:1;63166:5;63162:13;63137:56;:::i;:::-;63130:63;62805:394;-1:-1:-1;;;;62805:394:83:o;63204:1607::-;63273:3;63311:5;63305:12;63338:6;63333:3;63326:19;63364:4;63405:2;63400:3;63396:12;63430:11;63457;63450:18;;63507:6;63504:1;63500:14;63493:5;63489:26;63477:38;;63534:5;63531:1;63524:16;63576:2;63573:1;63563:16;63597:1;63607:1178;63621:6;63618:1;63615:13;63607:1178;;;63692:5;63686:4;63682:16;63677:3;63670:29;63722:4;63752:2;63746:4;63739:16;63778:4;63817:2;63812;63806:4;63802:13;63795:25;63847:60;63902:3;63896:4;63892:14;63884:6;63847:60;:::i;:::-;63833:74;;63934:2;63930:7;63995:2;63988:4;63980:6;63976:17;63972:26;63967:2;63961:4;63957:13;63950:49;64026:63;64082:6;64075:4;64067:6;64063:17;64026:63;:::i;:::-;64143:4;64131:17;;64125:24;64119:3;64109:14;;64102:48;64198:4;64186:17;;64180:24;-1:-1:-1;;;;;64265:34:83;;64227:3;64250:13;;;64243:57;;;;64339:18;-1:-1:-1;;;;;;64335:45:83;64320:13;;;64313:68;;;;64421:17;;;64417:26;64363:3;64401:14;;64394:50;64012:77;-1:-1:-1;64470:51:83;64012:77;64507:4;64495:17;;64470:51;:::i;:::-;64457:64;;64554:66;64613:4;64605:6;64601:17;64595:24;62013:4;61997:21;;61903:121;64554:66;605:13;598:21;64663:13;;;586:34;;;;64763:12;;;;64738:4;64726:17;;;;;63643:1;63636:9;63607:1178;;64816:1381;64887:3;64925:5;64919:12;64952:6;64947:3;64940:19;64978:4;65019:2;65014:3;65010:12;65044:11;65071;65064:18;;65121:6;65118:1;65114:14;65107:5;65103:26;65091:38;;65148:1;65169:5;65165:2;65158:17;65212:2;65208;65198:17;65233:2;65244:927;65258:6;65255:1;65252:13;65244:927;;;65329:5;65323:4;65319:16;65314:3;65307:29;65359:4;65389:2;65383:4;65376:16;65419:57;65472:2;65466:4;65462:13;65454:6;65419:57;:::i;:::-;65561:17;;;65546:13;;;65539:40;65521:4;65509:17;;65640:19;;65672:24;;;65746;;;65799:17;;;;-1:-1:-1;65753:2:83;;65718:15;;;65855:208;65871:8;65866:3;65863:17;65855:208;;;65948:15;;65934:30;;66047:1;66033:16;;;;65890:11;;;;;65990:14;;;;65855:208;;;-1:-1:-1;66149:12:83;;;;66084:5;-1:-1:-1;;;66124:4:83;66112:17;;;;;65280:1;65273:9;65244:927;;66202:1111;66406:2;66395:9;66388:21;66445:4;66440:2;66429:9;66425:18;66418:32;66369:4;66473:63;66531:3;66520:9;66516:19;66508:6;66473:63;:::i;:::-;66625:4;66613:17;;66607:24;-1:-1:-1;;;;;61111:35:83;66688:2;66673:18;;1666:43;66746:4;66734:17;;66728:24;66723:2;66708:18;;66701:52;66820:22;;;-1:-1:-1;;66816:31:83;;;66810:3;66795:19;;66788:60;66871:71;66824:6;66928:4;66916:17;;66871:71;:::i;:::-;66857:85;;67007:2;66995:9;66987:6;66983:22;66979:31;66973:3;66962:9;66958:19;66951:60;67034:73;67100:6;67093:4;67085:6;67081:17;67034:73;:::i;:::-;67020:87;;67162:4;67154:6;67150:17;67144:24;67138:3;67127:9;67123:19;67116:53;67235:2;67223:9;67215:6;67211:22;67207:31;67200:4;67189:9;67185:20;67178:61;;67256:51;67300:6;67293:4;67285:6;67281:17;67256:51;:::i;67318:127::-;67379:10;67374:3;67370:20;67367:1;67360:31;67410:4;67407:1;67400:15;67434:4;67431:1;67424:15;67450:127;67511:10;67506:3;67502:20;67499:1;67492:31;67542:4;67539:1;67532:15;67566:4;67563:1;67556:15;67582:183;-1:-1:-1;;;;;67701:10:83;;;67689;;;67685:27;;67724:12;;;67721:38;;;67739:18;;:::i;67770:191::-;67801:1;-1:-1:-1;;;;;67872:2:83;67869:1;67865:10;67894:3;67884:37;;67901:18;;:::i;:::-;67939:10;;67935:20;;;;;67770:191;-1:-1:-1;;67770:191:83:o;68285:180::-;-1:-1:-1;;;;;68390:10:83;;;68402;;;68386:27;;68425:11;;;68422:37;;;68439:18;;:::i", + "linkReferences": { + "src/lib/AccountHelper.sol": { + "AccountHelper": [ + { + "start": 5153, + "length": 20 + } + ] + }, + "src/lib/CheckpointHelper.sol": { + "CheckpointHelper": [ + { + "start": 538, + "length": 20 + }, + { + "start": 5675, + "length": 20 + }, + { + "start": 7483, + "length": 20 + }, + { + "start": 9674, + "length": 20 + } + ] + }, + "src/lib/CrossMsgHelper.sol": { + "CrossMsgHelper": [ + { + "start": 4807, + "length": 20 + } + ] + }, + "src/lib/EpochVoteSubmissionHelper.sol": { + "EpochVoteSubmissionHelper": [ + { + "start": 7690, + "length": 20 + }, + { + "start": 11003, + "length": 20 + }, + { + "start": 11742, + "length": 20 + } + ] + }, + "src/lib/ExecutableQueueHelper.sol": { + "ExecutableQueueHelper": [ + { + "start": 10874, + "length": 20 + }, + { + "start": 11155, + "length": 20 + }, + { + "start": 11299, + "length": 20 + }, + { + "start": 11471, + "length": 20 + } + ] + }, + "src/lib/SubnetIDHelper.sol": { + "SubnetIDHelper": [ + { + "start": 2850, + "length": 20 + }, + { + "start": 4671, + "length": 20 + } + ] + } + } + }, + "methodIdentifiers": { + "bottomUpCheckpointAtEpoch(uint64)": "6cb2ecee", + "bottomUpCheckpointHashAtEpoch(uint64)": "133f74ea", + "committedCheckpoints(uint64)": "98903748", + "hasValidatorVotedForSubmission(uint64,address)": "66d7bbbc", + "join(string,(uint8,bytes))": "6cf6970a", + "kill()": "41c0e1b5", + "leave()": "d66d9e19", + "reward(uint256)": "a9fb763c", + "submitCheckpoint(((uint64,address[]),uint64,uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[],((uint64,address[]),bytes32[])[],bytes32,bytes))": "f6fd8381", + "withdraw()": "3ccfd60b" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CollateralIsZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EpochAlreadyExecuted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EpochNotVotable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MessagesNotSorted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoRewardToWithdraw\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoValidatorsInSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotAllValidatorsHaveLeft\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughBalanceForRewards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotGateway\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetAlreadyKilled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetNotActive\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorAlreadyVoted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongCheckpointSource\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"}],\"name\":\"bottomUpCheckpointAtEpoch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"checks\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ChildCheck[]\",\"name\":\"children\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"}],\"name\":\"bottomUpCheckpointHashAtEpoch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"e\",\"type\":\"uint64\"}],\"name\":\"committedCheckpoints\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"hasValidatorVotedForSubmission\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"netAddr\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"workerAddr\",\"type\":\"tuple\"}],\"name\":\"join\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"leave\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"reward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"checks\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ChildCheck[]\",\"name\":\"children\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"}],\"name\":\"submitCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"kind\":\"dev\",\"methods\":{\"bottomUpCheckpointAtEpoch(uint64)\":{\"params\":{\"epoch\":\"- the epoch to check\"},\"returns\":{\"checkpoint\":\"- the checkpoint struct\",\"exists\":\"- whether the checkpoint exists\"}},\"bottomUpCheckpointHashAtEpoch(uint64)\":{\"params\":{\"epoch\":\"- the epoch to check\"},\"returns\":{\"_0\":\"exists - whether the checkpoint exists\",\"_1\":\"hash - the hash of the checkpoint\"}},\"hasValidatorVotedForSubmission(uint64,address)\":{\"params\":{\"epoch\":\"- the epoch to check\",\"submitter\":\"- the validator to check\"}},\"join(string,(uint8,bytes))\":{\"params\":{\"netAddr\":\"- the network address of the validator\"}},\"submitCheckpoint(((uint64,address[]),uint64,uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[],((uint64,address[]),bytes32[])[],bytes32,bytes))\":{\"params\":{\"checkpoint\":\"- the batch messages data\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"bottomUpCheckpointAtEpoch(uint64)\":{\"notice\":\"returns the committed bottom-up checkpoint at specific epoch\"},\"bottomUpCheckpointHashAtEpoch(uint64)\":{\"notice\":\"returns the historical committed bottom-up checkpoint hash\"},\"committedCheckpoints(uint64)\":{\"notice\":\"get the total stake\"},\"hasValidatorVotedForSubmission(uint64,address)\":{\"notice\":\"whether a validator has voted for a checkpoint submission during an epoch\"},\"join(string,(uint8,bytes))\":{\"notice\":\"method that allows a validator to join the subnet\"},\"kill()\":{\"notice\":\"method that allows the subnet no be killed after all validators leave\"},\"leave()\":{\"notice\":\"method that allows a validator to leave the subnet\"},\"reward(uint256)\":{\"notice\":\"method that distributes the rewards for the subnet to validators.\"},\"submitCheckpoint(((uint64,address[]),uint64,uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[],((uint64,address[]),bytes32[])[],bytes32,bytes))\":{\"notice\":\"methods that allows a validator to submit a checkpoint (batch of messages) and vote for it with it's own voting power.\"},\"withdraw()\":{\"notice\":\"method that allows a validator to withdraw it's accumulated rewards using pull-based transfer\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/subnet/SubnetActorManagerFacet.sol\":\"SubnetActorManagerFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xb8d40721965efd93b5369d55083181226d3c7e1be4a968c04de35d44ba44f29a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5c4b0089788aa7112cce88602212c3895999f464e00d1c40d7f27ac9288798b\",\"dweb:/ipfs/Qmd69EuGeoCYPfPkGA4hayH4s2upmAe3XaoDf4ggYNEoZ4\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x31f34a3baec77c087d2bdbc5c277f169e505b905aeb43cfcea1734175140f621\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5a3bc8093b31b685ef879e8ffaaab614594cb6f98ddac4f18c411f7bbf99d0d\",\"dweb:/ipfs/QmSFfA9pH3xo8hnWKCFKTwGi8kz68YXuAwyLXsYe6KjC3Z\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xdb6d7e26320438bdd421598eb64e6fe2b03867a4dd07c9c820994b7bec26f7b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2adf1566393ddf260fb2064dd0c67be00123b8978be8b62cc45ac97aff859949\",\"dweb:/ipfs/QmaDLzQpnitEJDAJo4squpKumr5x4D2QYetPdT3jZd8hYm\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x8a925dea568a61a38de9615aae7bb462d9eb6f8eb2c6ca409f1e740519077ab8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b7e2f836581694867c09bb9c80ff2ab6ae039ece2ff3bbf4d1bc2026449fa551\",\"dweb:/ipfs/QmVMvaQSCRBHZudSV8AzimYre76tJVm4UrHYnrT89zcjho\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xf6fd4f824e7dd9fe651bd11596f3045f32e67be595f91078c2b326e45aec4ce4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a674b1a6824a75749bb0a71b4791ff329907083ffb028b04634e94ddbcc2b2f3\",\"dweb:/ipfs/QmTkoSu2mRktfadkjhdgisBaWoZxb8iC3bacUwqCt44PNQ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0xf29c18f694b5acc919b7cada2875ca3bd2c52ddd7ef86ee747aab0faeb50ac8b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d8fb92f533cc119c578da73b06efe76b0efaa612af7c77178eb903952fcf53df\",\"dweb:/ipfs/QmdosRgUmvwXRnxq5TmoJoFMs7TULduTFpMUNyYXQNGfQD\"]},\"src/enums/VoteExecutionStatus.sol\":{\"keccak256\":\"0x56d1db8abf83feb0f1d69f1919fbd5bd79c6f3c5bf3c149950d307b9d62b6455\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb2ec0f87a9091eab463ac6a776d5737189e0239f412b36b975bb0be1fcb4ad8\",\"dweb:/ipfs/QmWiXwab54Ag2f1kyGjqT3brh5JrV5Lc7cqod9VPaS5ey6\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xab09aee88feca01f5c23baa475aa02bb8c1b189e60a7b81848a07e00b9ab708c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1f5d874688d7316a0eb382b6fb1e7ea6648b15aaaab95acc51f18bfcab851d61\",\"dweb:/ipfs/QmdZRRmWrkrn5MmEX3n5yWEREtoCvXNxzoVkPWSH64ENpd\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x57865785239b076bc429cd989bc5cb2a2e68050c7293a5a537d8cdeded170294\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://28285703560a0bbfa247c894c9f14f2a14e02e430e7dedb0a05b58c53aed3763\",\"dweb:/ipfs/QmcrNx18jZYJ7dRduWu1do3th74cHy7zn9Zx8x13WsCLj5\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0xe3f7371c7c7af8dfa71daa6c4171f6853c9ab1fdd619c09eb12c11ff18d17d91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6a09ea45ed335eada22e7cf3643c17d1c59750ed2156cc29c0960a8e8b53e394\",\"dweb:/ipfs/QmSYTNGqP9wEJnPDXmvghfL8zL8BrHGnixhbsimA9oydLG\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x86bf44c7e35907c1b0ed2fd55a6a8a277b46e6ee52b6933610504bc1d2de3b12\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb47357cd7342f951e5d08b1960e9ab7d458463e71ce08ff61b900bbb04118f0\",\"dweb:/ipfs/QmTKHhnYs1xKZUwCmSRPmSi5utfGrosYV57fSoGF7bGnJs\"]},\"src/lib/CheckpointHelper.sol\":{\"keccak256\":\"0x25d67ccc67b6b537df920c92dc3c704dc097e000c444149d3732e1d20848a269\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5823e88c38b5c4e90ee5700cee5a5fd8d982015dab7ea1cbe2f26d62a359ae76\",\"dweb:/ipfs/QmT9Ves86HoEqQciunzEwvDsyv2dgQwF8uPUjNuGsycHuF\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0xe7aacc0bc5eb10763685d6766524f6db05b151b37de4ccbd2b04649e54b9af36\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d6fae33fe9dc258efc3e0c484c6e69ff8314af266c78fd9b3d20c5bf8f251865\",\"dweb:/ipfs/QmYYpC6GnJNRvAg3MCSHKHk47cas888N3HzmMrmiRT4bnJ\"]},\"src/lib/EpochVoteSubmissionHelper.sol\":{\"keccak256\":\"0x1eaf867ddfc3e83d5a2ca50a81809e1529ea2436a8d2697d868bc8653b8c6c9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://65eb6a69fdb0fd8bfc1cd3d5044791225ff9fa8887dda49fd530e7c46e6e5366\",\"dweb:/ipfs/QmepF17eiqGqiNJRfeCohdeVw2aJxgkFS1AyFSM78v16nC\"]},\"src/lib/ExecutableQueueHelper.sol\":{\"keccak256\":\"0x66b7ba58bb9ba987789f22dcc5e44f1720876a79a52a9630d886490d48f80ece\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8b388b9f63b4f86ac03f24089a1f110e482ae89b1eb628fc78aeead1d6f50869\",\"dweb:/ipfs/QmVGVh9r2GBgXRn7Z13sMKmnn3xjfHm9tM3mnLUH1UwjQX\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x80d7d30532305664e31ad114d702904287e6f93954b420315f660ddf30791ac6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0b108070a13f76614f36e46f0af85d12aa53209ff9bb9c32ee1945be3e0a1fe1\",\"dweb:/ipfs/QmcyMuCZB4Z3qFUUjvcoVeSePJXU5F9hN4Zhy94U2qqcPq\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0xb96c3d7a112d3319919f047c4ab0d475ab8b602e141f9f7fd00ffcbf8175a630\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://aad83180ce083e22e0c05504dd4bcb8d8b865f38a930684fbe1b5c9ee1aa356f\",\"dweb:/ipfs/QmbqLgq1hCyMhBpa97K2rTQLJHfvHBCzJGE9kiA6LpPDji\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x04d8b15d89be847fced554bfc8ed1ea1d9e92ccab8799acc83cde19706e43d31\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1a2ebe2cbf011ee931874dec86dc69991b9bf3cebdbd0a38b2bc8d9f22b999f7\",\"dweb:/ipfs/QmQZxinNFFsym6GJwRRqeFLQk8HBMuzUagQETK3iMc4M4M\"]},\"src/lib/LibVoting.sol\":{\"keccak256\":\"0x3e5c9359758e7a7200c3a1e7c3a8edfbe6912e8c0a2edde1d2a9e4907b89cb91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://589fa228fdc537a56839520408ec06fc34658ef7a3ca7481b089f9d966f8ed39\",\"dweb:/ipfs/QmNQ4kPeGN5JAhFQyfEnYmmvp83dPQ6QhQKQfZhqgWKjDK\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0xf82021571aa9a7b021b2d24b2c0eb80c5796b9f28ebb6a1c239146c0c0168817\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b546fc429093a558b9382e28886d1f09e7f308e55f6398989583bc420a630326\",\"dweb:/ipfs/QmSmQPQbMBX8N8r8nGboBWdzJjUaK7ACaFUf8XosZVZPT8\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0xcddaa4630a6f68c59a819bafee579a8979cc9fd7b00d5b49f99eeefb9ce0c02c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9713f988a5709dea3ee0fb204a2d0b64b0dc115912ed9eb128f479156d97a949\",\"dweb:/ipfs/QmUjTAvd2eAYQFqgfZUf5R67daeC7eUKrL6WrFb8oEWB9j\"]},\"src/structs/EpochVoteSubmission.sol\":{\"keccak256\":\"0x4cc52a36cac1a063bf1f996b91ea81ce118b7ce8923e62cec6e5bf08b689e96a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb33236d8c7a40e17c416a21e9f0df268d6a7f4d6ba1df86ab0c2dbf444702e9\",\"dweb:/ipfs/QmXEbdkweqL1f4Q71YPiuxwhQooh1oim9oBybAbr9Jd3A2\"]},\"src/structs/ExecutableQueue.sol\":{\"keccak256\":\"0xfacfd91786edac0462f4bba34d3a3766c8785925ae96301b68b76fba78c5cab4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb421106bc9158e8a12dd7054d265113dd890337937e73acb03f03e33a13eb18\",\"dweb:/ipfs/Qmdxs4akDWuzwf5nYsCaNuYNZ5sTrMCzdgVMuSpKCjFyaP\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xbaae3da91048d76b5bab0404eebf7dc41ed273a8cd1f4143ea1b3403d89f77c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5a69d76f5022d2e19f69ef0d70d4c5e3a3e7ae8e02fcfdb2682c901ac2f3a707\",\"dweb:/ipfs/QmYEWyPz9UqVssUpU42VTv6DhzRNAfaHKt9ZsNCAvtLjTr\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0xb37b12df0c9ff47c2e88f9612b624bb44e6de5dfb8030dfd83582997dcd6aa83\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a321a05abf7b3b461e3d6c4ac27b18d3e14dffad9e2bf9a0ceb68538a02ab1e4\",\"dweb:/ipfs/QmPo878trP8pv9yXXpwUHSnP7Xt6uz9eWuB25pz2JGiCot\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0xf975778434ab648d013bc28f6611d0489880c7afc4412dc733cb9ebc421221ff\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://04d6e8469bd834dd5d287e7334a4937b210e812bd6dea2e680f6a6ed4a1f5611\",\"dweb:/ipfs/QmXSTroEfHF7TEoVXt9gUAtt51DxDCrokuYMr5RYiEmUkH\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.19+commit.7dd6d404" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "type": "error", + "name": "AddressInsufficientBalance" + }, + { + "inputs": [], + "type": "error", + "name": "CollateralIsZero" + }, + { + "inputs": [], + "type": "error", + "name": "EpochAlreadyExecuted" + }, + { + "inputs": [], + "type": "error", + "name": "EpochNotVotable" + }, + { + "inputs": [], + "type": "error", + "name": "FailedInnerCall" + }, + { + "inputs": [], + "type": "error", + "name": "MessagesNotSorted" + }, + { + "inputs": [], + "type": "error", + "name": "NoRewardToWithdraw" + }, + { + "inputs": [], + "type": "error", + "name": "NoValidatorsInSubnet" + }, + { + "inputs": [], + "type": "error", + "name": "NotAccount" + }, + { + "inputs": [], + "type": "error", + "name": "NotAllValidatorsHaveLeft" + }, + { + "inputs": [], + "type": "error", + "name": "NotEnoughBalanceForRewards" + }, + { + "inputs": [], + "type": "error", + "name": "NotGateway" + }, + { + "inputs": [], + "type": "error", + "name": "NotValidator" + }, + { + "inputs": [], + "type": "error", + "name": "ReentrancyError" + }, + { + "inputs": [], + "type": "error", + "name": "SubnetAlreadyKilled" + }, + { + "inputs": [], + "type": "error", + "name": "SubnetNotActive" + }, + { + "inputs": [], + "type": "error", + "name": "ValidatorAlreadyVoted" + }, + { + "inputs": [], + "type": "error", + "name": "WrongCheckpointSource" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "epoch", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function", + "name": "bottomUpCheckpointAtEpoch", + "outputs": [ + { + "internalType": "bool", + "name": "exists", + "type": "bool" + }, + { + "internalType": "struct BottomUpCheckpoint", + "name": "checkpoint", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "uint64", + "name": "epoch", + "type": "uint64" + }, + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + }, + { + "internalType": "struct CrossMsg[]", + "name": "crossMsgs", + "type": "tuple[]", + "components": [ + { + "internalType": "struct StorableMsg", + "name": "message", + "type": "tuple", + "components": [ + { + "internalType": "struct IPCAddress", + "name": "from", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ] + }, + { + "internalType": "struct IPCAddress", + "name": "to", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ] + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "bytes4", + "name": "method", + "type": "bytes4" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ] + }, + { + "internalType": "bool", + "name": "wrapped", + "type": "bool" + } + ] + }, + { + "internalType": "struct ChildCheck[]", + "name": "children", + "type": "tuple[]", + "components": [ + { + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "bytes32[]", + "name": "checks", + "type": "bytes32[]" + } + ] + }, + { + "internalType": "bytes32", + "name": "prevHash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "proof", + "type": "bytes" + } + ] + } + ] + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "epoch", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function", + "name": "bottomUpCheckpointHashAtEpoch", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "e", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function", + "name": "committedCheckpoints", + "outputs": [ + { + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "uint64", + "name": "epoch", + "type": "uint64" + }, + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "prevHash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "proof", + "type": "bytes" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "epoch", + "type": "uint64" + }, + { + "internalType": "address", + "name": "submitter", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "hasValidatorVotedForSubmission", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "string", + "name": "netAddr", + "type": "string" + }, + { + "internalType": "struct FvmAddress", + "name": "workerAddr", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ], + "stateMutability": "payable", + "type": "function", + "name": "join" + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "kill" + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "leave" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "reward" + }, + { + "inputs": [ + { + "internalType": "struct BottomUpCheckpoint", + "name": "checkpoint", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "uint64", + "name": "epoch", + "type": "uint64" + }, + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + }, + { + "internalType": "struct CrossMsg[]", + "name": "crossMsgs", + "type": "tuple[]", + "components": [ + { + "internalType": "struct StorableMsg", + "name": "message", + "type": "tuple", + "components": [ + { + "internalType": "struct IPCAddress", + "name": "from", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ] + }, + { + "internalType": "struct IPCAddress", + "name": "to", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ] + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "bytes4", + "name": "method", + "type": "bytes4" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ] + }, + { + "internalType": "bool", + "name": "wrapped", + "type": "bool" + } + ] + }, + { + "internalType": "struct ChildCheck[]", + "name": "children", + "type": "tuple[]", + "components": [ + { + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "bytes32[]", + "name": "checks", + "type": "bytes32[]" + } + ] + }, + { + "internalType": "bytes32", + "name": "prevHash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "proof", + "type": "bytes" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "submitCheckpoint" + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "withdraw" + } + ], + "devdoc": { + "kind": "dev", + "methods": { + "bottomUpCheckpointAtEpoch(uint64)": { + "params": { + "epoch": "- the epoch to check" + }, + "returns": { + "checkpoint": "- the checkpoint struct", + "exists": "- whether the checkpoint exists" + } + }, + "bottomUpCheckpointHashAtEpoch(uint64)": { + "params": { + "epoch": "- the epoch to check" + }, + "returns": { + "_0": "exists - whether the checkpoint exists", + "_1": "hash - the hash of the checkpoint" + } + }, + "hasValidatorVotedForSubmission(uint64,address)": { + "params": { + "epoch": "- the epoch to check", + "submitter": "- the validator to check" + } + }, + "join(string,(uint8,bytes))": { + "params": { + "netAddr": "- the network address of the validator" + } + }, + "submitCheckpoint(((uint64,address[]),uint64,uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[],((uint64,address[]),bytes32[])[],bytes32,bytes))": { + "params": { + "checkpoint": "- the batch messages data" + } + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": { + "bottomUpCheckpointAtEpoch(uint64)": { + "notice": "returns the committed bottom-up checkpoint at specific epoch" + }, + "bottomUpCheckpointHashAtEpoch(uint64)": { + "notice": "returns the historical committed bottom-up checkpoint hash" + }, + "committedCheckpoints(uint64)": { + "notice": "get the total stake" + }, + "hasValidatorVotedForSubmission(uint64,address)": { + "notice": "whether a validator has voted for a checkpoint submission during an epoch" + }, + "join(string,(uint8,bytes))": { + "notice": "method that allows a validator to join the subnet" + }, + "kill()": { + "notice": "method that allows the subnet no be killed after all validators leave" + }, + "leave()": { + "notice": "method that allows a validator to leave the subnet" + }, + "reward(uint256)": { + "notice": "method that distributes the rewards for the subnet to validators." + }, + "submitCheckpoint(((uint64,address[]),uint64,uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[],((uint64,address[]),bytes32[])[],bytes32,bytes))": { + "notice": "methods that allows a validator to submit a checkpoint (batch of messages) and vote for it with it's own voting power." + }, + "withdraw()": { + "notice": "method that allows a validator to withdraw it's accumulated rewards using pull-based transfer" + } + }, + "version": 1 + } + }, + "settings": { + "remappings": [ + ":@openzeppelin/=node_modules/@openzeppelin/", + ":ds-test/=lib/forge-std/lib/ds-test/src/", + ":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", + ":fevmate/=lib/fevmate/contracts/", + ":forge-std/=lib/forge-std/src/", + ":hardhat-deploy/=node_modules/hardhat-deploy/", + ":hardhat/=node_modules/hardhat/", + ":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/", + ":openzeppelin/=lib/openzeppelin-contracts/contracts/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "src/subnet/SubnetActorManagerFacet.sol": "SubnetActorManagerFacet" + }, + "libraries": {} + }, + "sources": { + "lib/fevmate/contracts/utils/FilAddress.sol": { + "keccak256": "0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31", + "urls": [ + "bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7", + "dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/Address.sol": { + "keccak256": "0xb8d40721965efd93b5369d55083181226d3c7e1be4a968c04de35d44ba44f29a", + "urls": [ + "bzz-raw://e5c4b0089788aa7112cce88602212c3895999f464e00d1c40d7f27ac9288798b", + "dweb:/ipfs/Qmd69EuGeoCYPfPkGA4hayH4s2upmAe3XaoDf4ggYNEoZ4" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/Strings.sol": { + "keccak256": "0x31f34a3baec77c087d2bdbc5c277f169e505b905aeb43cfcea1734175140f621", + "urls": [ + "bzz-raw://b5a3bc8093b31b685ef879e8ffaaab614594cb6f98ddac4f18c411f7bbf99d0d", + "dweb:/ipfs/QmSFfA9pH3xo8hnWKCFKTwGi8kz68YXuAwyLXsYe6KjC3Z" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol": { + "keccak256": "0xdb6d7e26320438bdd421598eb64e6fe2b03867a4dd07c9c820994b7bec26f7b0", + "urls": [ + "bzz-raw://2adf1566393ddf260fb2064dd0c67be00123b8978be8b62cc45ac97aff859949", + "dweb:/ipfs/QmaDLzQpnitEJDAJo4squpKumr5x4D2QYetPdT3jZd8hYm" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol": { + "keccak256": "0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb", + "urls": [ + "bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b", + "dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol": { + "keccak256": "0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892", + "urls": [ + "bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593", + "dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT" + ], + "license": "MIT" + }, + "src/constants/Constants.sol": { + "keccak256": "0x8a925dea568a61a38de9615aae7bb462d9eb6f8eb2c6ca409f1e740519077ab8", + "urls": [ + "bzz-raw://b7e2f836581694867c09bb9c80ff2ab6ae039ece2ff3bbf4d1bc2026449fa551", + "dweb:/ipfs/QmVMvaQSCRBHZudSV8AzimYre76tJVm4UrHYnrT89zcjho" + ], + "license": "UNLICENSED" + }, + "src/enums/ConsensusType.sol": { + "keccak256": "0xf6fd4f824e7dd9fe651bd11596f3045f32e67be595f91078c2b326e45aec4ce4", + "urls": [ + "bzz-raw://a674b1a6824a75749bb0a71b4791ff329907083ffb028b04634e94ddbcc2b2f3", + "dweb:/ipfs/QmTkoSu2mRktfadkjhdgisBaWoZxb8iC3bacUwqCt44PNQ" + ], + "license": "UNLICENSED" + }, + "src/enums/Status.sol": { + "keccak256": "0xf29c18f694b5acc919b7cada2875ca3bd2c52ddd7ef86ee747aab0faeb50ac8b", + "urls": [ + "bzz-raw://d8fb92f533cc119c578da73b06efe76b0efaa612af7c77178eb903952fcf53df", + "dweb:/ipfs/QmdosRgUmvwXRnxq5TmoJoFMs7TULduTFpMUNyYXQNGfQD" + ], + "license": "UNLICENSED" + }, + "src/enums/VoteExecutionStatus.sol": { + "keccak256": "0x56d1db8abf83feb0f1d69f1919fbd5bd79c6f3c5bf3c149950d307b9d62b6455", + "urls": [ + "bzz-raw://bb2ec0f87a9091eab463ac6a776d5737189e0239f412b36b975bb0be1fcb4ad8", + "dweb:/ipfs/QmWiXwab54Ag2f1kyGjqT3brh5JrV5Lc7cqod9VPaS5ey6" + ], + "license": "UNLICENSED" + }, + "src/errors/IPCErrors.sol": { + "keccak256": "0xab09aee88feca01f5c23baa475aa02bb8c1b189e60a7b81848a07e00b9ab708c", + "urls": [ + "bzz-raw://1f5d874688d7316a0eb382b6fb1e7ea6648b15aaaab95acc51f18bfcab851d61", + "dweb:/ipfs/QmdZRRmWrkrn5MmEX3n5yWEREtoCvXNxzoVkPWSH64ENpd" + ], + "license": "UNLICENSED" + }, + "src/interfaces/IGateway.sol": { + "keccak256": "0x57865785239b076bc429cd989bc5cb2a2e68050c7293a5a537d8cdeded170294", + "urls": [ + "bzz-raw://28285703560a0bbfa247c894c9f14f2a14e02e430e7dedb0a05b58c53aed3763", + "dweb:/ipfs/QmcrNx18jZYJ7dRduWu1do3th74cHy7zn9Zx8x13WsCLj5" + ], + "license": "UNLICENSED" + }, + "src/interfaces/ISubnetActor.sol": { + "keccak256": "0xe3f7371c7c7af8dfa71daa6c4171f6853c9ab1fdd619c09eb12c11ff18d17d91", + "urls": [ + "bzz-raw://6a09ea45ed335eada22e7cf3643c17d1c59750ed2156cc29c0960a8e8b53e394", + "dweb:/ipfs/QmSYTNGqP9wEJnPDXmvghfL8zL8BrHGnixhbsimA9oydLG" + ], + "license": "UNLICENSED" + }, + "src/lib/AccountHelper.sol": { + "keccak256": "0x86bf44c7e35907c1b0ed2fd55a6a8a277b46e6ee52b6933610504bc1d2de3b12", + "urls": [ + "bzz-raw://bb47357cd7342f951e5d08b1960e9ab7d458463e71ce08ff61b900bbb04118f0", + "dweb:/ipfs/QmTKHhnYs1xKZUwCmSRPmSi5utfGrosYV57fSoGF7bGnJs" + ], + "license": "UNLICENSED" + }, + "src/lib/CheckpointHelper.sol": { + "keccak256": "0x25d67ccc67b6b537df920c92dc3c704dc097e000c444149d3732e1d20848a269", + "urls": [ + "bzz-raw://5823e88c38b5c4e90ee5700cee5a5fd8d982015dab7ea1cbe2f26d62a359ae76", + "dweb:/ipfs/QmT9Ves86HoEqQciunzEwvDsyv2dgQwF8uPUjNuGsycHuF" + ], + "license": "UNLICENSED" + }, + "src/lib/CrossMsgHelper.sol": { + "keccak256": "0xe7aacc0bc5eb10763685d6766524f6db05b151b37de4ccbd2b04649e54b9af36", + "urls": [ + "bzz-raw://d6fae33fe9dc258efc3e0c484c6e69ff8314af266c78fd9b3d20c5bf8f251865", + "dweb:/ipfs/QmYYpC6GnJNRvAg3MCSHKHk47cas888N3HzmMrmiRT4bnJ" + ], + "license": "UNLICENSED" + }, + "src/lib/EpochVoteSubmissionHelper.sol": { + "keccak256": "0x1eaf867ddfc3e83d5a2ca50a81809e1529ea2436a8d2697d868bc8653b8c6c9e", + "urls": [ + "bzz-raw://65eb6a69fdb0fd8bfc1cd3d5044791225ff9fa8887dda49fd530e7c46e6e5366", + "dweb:/ipfs/QmepF17eiqGqiNJRfeCohdeVw2aJxgkFS1AyFSM78v16nC" + ], + "license": "UNLICENSED" + }, + "src/lib/ExecutableQueueHelper.sol": { + "keccak256": "0x66b7ba58bb9ba987789f22dcc5e44f1720876a79a52a9630d886490d48f80ece", + "urls": [ + "bzz-raw://8b388b9f63b4f86ac03f24089a1f110e482ae89b1eb628fc78aeead1d6f50869", + "dweb:/ipfs/QmVGVh9r2GBgXRn7Z13sMKmnn3xjfHm9tM3mnLUH1UwjQX" + ], + "license": "UNLICENSED" + }, + "src/lib/FvmAddressHelper.sol": { + "keccak256": "0x80d7d30532305664e31ad114d702904287e6f93954b420315f660ddf30791ac6", + "urls": [ + "bzz-raw://0b108070a13f76614f36e46f0af85d12aa53209ff9bb9c32ee1945be3e0a1fe1", + "dweb:/ipfs/QmcyMuCZB4Z3qFUUjvcoVeSePJXU5F9hN4Zhy94U2qqcPq" + ], + "license": "UNLICENSED" + }, + "src/lib/LibReentrancyGuard.sol": { + "keccak256": "0xb96c3d7a112d3319919f047c4ab0d475ab8b602e141f9f7fd00ffcbf8175a630", + "urls": [ + "bzz-raw://aad83180ce083e22e0c05504dd4bcb8d8b865f38a930684fbe1b5c9ee1aa356f", + "dweb:/ipfs/QmbqLgq1hCyMhBpa97K2rTQLJHfvHBCzJGE9kiA6LpPDji" + ], + "license": "UNLICENSED" + }, + "src/lib/LibSubnetActorStorage.sol": { + "keccak256": "0x04d8b15d89be847fced554bfc8ed1ea1d9e92ccab8799acc83cde19706e43d31", + "urls": [ + "bzz-raw://1a2ebe2cbf011ee931874dec86dc69991b9bf3cebdbd0a38b2bc8d9f22b999f7", + "dweb:/ipfs/QmQZxinNFFsym6GJwRRqeFLQk8HBMuzUagQETK3iMc4M4M" + ], + "license": "UNLICENSED" + }, + "src/lib/LibVoting.sol": { + "keccak256": "0x3e5c9359758e7a7200c3a1e7c3a8edfbe6912e8c0a2edde1d2a9e4907b89cb91", + "urls": [ + "bzz-raw://589fa228fdc537a56839520408ec06fc34658ef7a3ca7481b089f9d966f8ed39", + "dweb:/ipfs/QmNQ4kPeGN5JAhFQyfEnYmmvp83dPQ6QhQKQfZhqgWKjDK" + ], + "license": "UNLICENSED" + }, + "src/lib/SubnetIDHelper.sol": { + "keccak256": "0xf82021571aa9a7b021b2d24b2c0eb80c5796b9f28ebb6a1c239146c0c0168817", + "urls": [ + "bzz-raw://b546fc429093a558b9382e28886d1f09e7f308e55f6398989583bc420a630326", + "dweb:/ipfs/QmSmQPQbMBX8N8r8nGboBWdzJjUaK7ACaFUf8XosZVZPT8" + ], + "license": "UNLICENSED" + }, + "src/structs/Checkpoint.sol": { + "keccak256": "0xcddaa4630a6f68c59a819bafee579a8979cc9fd7b00d5b49f99eeefb9ce0c02c", + "urls": [ + "bzz-raw://9713f988a5709dea3ee0fb204a2d0b64b0dc115912ed9eb128f479156d97a949", + "dweb:/ipfs/QmUjTAvd2eAYQFqgfZUf5R67daeC7eUKrL6WrFb8oEWB9j" + ], + "license": "UNLICENSED" + }, + "src/structs/EpochVoteSubmission.sol": { + "keccak256": "0x4cc52a36cac1a063bf1f996b91ea81ce118b7ce8923e62cec6e5bf08b689e96a", + "urls": [ + "bzz-raw://fb33236d8c7a40e17c416a21e9f0df268d6a7f4d6ba1df86ab0c2dbf444702e9", + "dweb:/ipfs/QmXEbdkweqL1f4Q71YPiuxwhQooh1oim9oBybAbr9Jd3A2" + ], + "license": "UNLICENSED" + }, + "src/structs/ExecutableQueue.sol": { + "keccak256": "0xfacfd91786edac0462f4bba34d3a3766c8785925ae96301b68b76fba78c5cab4", + "urls": [ + "bzz-raw://bb421106bc9158e8a12dd7054d265113dd890337937e73acb03f03e33a13eb18", + "dweb:/ipfs/Qmdxs4akDWuzwf5nYsCaNuYNZ5sTrMCzdgVMuSpKCjFyaP" + ], + "license": "UNLICENSED" + }, + "src/structs/FvmAddress.sol": { + "keccak256": "0xbaae3da91048d76b5bab0404eebf7dc41ed273a8cd1f4143ea1b3403d89f77c9", + "urls": [ + "bzz-raw://5a69d76f5022d2e19f69ef0d70d4c5e3a3e7ae8e02fcfdb2682c901ac2f3a707", + "dweb:/ipfs/QmYEWyPz9UqVssUpU42VTv6DhzRNAfaHKt9ZsNCAvtLjTr" + ], + "license": "UNLICENSED" + }, + "src/structs/Subnet.sol": { + "keccak256": "0xb37b12df0c9ff47c2e88f9612b624bb44e6de5dfb8030dfd83582997dcd6aa83", + "urls": [ + "bzz-raw://a321a05abf7b3b461e3d6c4ac27b18d3e14dffad9e2bf9a0ceb68538a02ab1e4", + "dweb:/ipfs/QmPo878trP8pv9yXXpwUHSnP7Xt6uz9eWuB25pz2JGiCot" + ], + "license": "UNLICENSED" + }, + "src/subnet/SubnetActorManagerFacet.sol": { + "keccak256": "0xf975778434ab648d013bc28f6611d0489880c7afc4412dc733cb9ebc421221ff", + "urls": [ + "bzz-raw://04d6e8469bd834dd5d287e7334a4937b210e812bd6dea2e680f6a6ed4a1f5611", + "dweb:/ipfs/QmXSTroEfHF7TEoVXt9gUAtt51DxDCrokuYMr5RYiEmUkH" + ], + "license": "UNLICENSED" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "src/subnet/SubnetActorManagerFacet.sol", + "id": 45624, + "exportedSymbols": { + "AccountHelper": [ + 40508 + ], + "Address": [ + 29869 + ], + "BottomUpCheckpoint": [ + 44156 + ], + "CheckpointHelper": [ + 40776 + ], + "ChildCheck": [ + 44170 + ], + "CollateralIsZero": [ + 38160 + ], + "ConsensusType": [ + 38123 + ], + "CrossMsg": [ + 44176 + ], + "CrossMsgHelper": [ + 41103 + ], + "EnumerableSet": [ + 33009 + ], + "EpochVoteBottomUpSubmission": [ + 44233 + ], + "EpochVoteSubmission": [ + 44215 + ], + "EpochVoteSubmissionHelper": [ + 41151 + ], + "ExecutableQueue": [ + 44246 + ], + "ExecutableQueueHelper": [ + 41355 + ], + "FilAddress": [ + 298 + ], + "FvmAddress": [ + 44253 + ], + "FvmAddressHelper": [ + 41482 + ], + "IGateway": [ + 40421 + ], + "ISubnetActor": [ + 40459 + ], + "LibVoting": [ + 43438 + ], + "MessageNotSorted": [ + 38186 + ], + "MessagesNotSorted": [ + 38188 + ], + "NoRewardToWithdraw": [ + 38190 + ], + "NoValidatorsInSubnet": [ + 38192 + ], + "NotAllValidatorsHaveLeft": [ + 38196 + ], + "NotEnoughBalanceForRewards": [ + 38202 + ], + "NotValidator": [ + 38222 + ], + "ReentrancyGuard": [ + 42567 + ], + "Status": [ + 38137 + ], + "SubnetActorManagerFacet": [ + 45623 + ], + "SubnetActorModifiers": [ + 42807 + ], + "SubnetID": [ + 44279 + ], + "SubnetIDHelper": [ + 44131 + ], + "SubnetNotActive": [ + 38228 + ], + "WrongCheckpointSource": [ + 38238 + ] + }, + "nodeType": "SourceUnit", + "src": "39:11147:68", + "nodes": [ + { + "id": 44749, + "nodeType": "PragmaDirective", + "src": "39:23:68", + "nodes": [], + "literals": [ + "solidity", + "0.8", + ".19" + ] + }, + { + "id": 44751, + "nodeType": "ImportDirective", + "src": "64:70:68", + "nodes": [], + "absolutePath": "src/lib/LibSubnetActorStorage.sol", + "file": "../lib/LibSubnetActorStorage.sol", + "nameLocation": "-1:-1:-1", + "scope": 45624, + "sourceUnit": 42808, + "symbolAliases": [ + { + "foreign": { + "id": 44750, + "name": "SubnetActorModifiers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42807, + "src": "72:20:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44753, + "nodeType": "ImportDirective", + "src": "135:62:68", + "nodes": [], + "absolutePath": "src/lib/LibReentrancyGuard.sol", + "file": "../lib/LibReentrancyGuard.sol", + "nameLocation": "-1:-1:-1", + "scope": 45624, + "sourceUnit": 42568, + "symbolAliases": [ + { + "foreign": { + "id": 44752, + "name": "ReentrancyGuard", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42567, + "src": "143:15:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44755, + "nodeType": "ImportDirective", + "src": "198:53:68", + "nodes": [], + "absolutePath": "src/structs/FvmAddress.sol", + "file": "../structs/FvmAddress.sol", + "nameLocation": "-1:-1:-1", + "scope": 45624, + "sourceUnit": 44261, + "symbolAliases": [ + { + "foreign": { + "id": 44754, + "name": "FvmAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44253, + "src": "206:10:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44759, + "nodeType": "ImportDirective", + "src": "252:83:68", + "nodes": [], + "absolutePath": "src/structs/Checkpoint.sol", + "file": "../structs/Checkpoint.sol", + "nameLocation": "-1:-1:-1", + "scope": 45624, + "sourceUnit": 44192, + "symbolAliases": [ + { + "foreign": { + "id": 44756, + "name": "BottomUpCheckpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44156, + "src": "260:18:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 44757, + "name": "CrossMsg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44176, + "src": "280:8:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 44758, + "name": "ChildCheck", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44170, + "src": "290:10:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44761, + "nodeType": "ImportDirective", + "src": "336:47:68", + "nodes": [], + "absolutePath": "src/structs/Subnet.sol", + "file": "../structs/Subnet.sol", + "nameLocation": "-1:-1:-1", + "scope": 45624, + "sourceUnit": 44311, + "symbolAliases": [ + { + "foreign": { + "id": 44760, + "name": "SubnetID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44279, + "src": "344:8:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44772, + "nodeType": "ImportDirective", + "src": "384:244:68", + "nodes": [], + "absolutePath": "src/errors/IPCErrors.sol", + "file": "../errors/IPCErrors.sol", + "nameLocation": "-1:-1:-1", + "scope": 45624, + "sourceUnit": 38239, + "symbolAliases": [ + { + "foreign": { + "id": 44762, + "name": "CollateralIsZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38160, + "src": "392:16:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 44763, + "name": "MessagesNotSorted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38188, + "src": "410:17:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 44764, + "name": "NotEnoughBalanceForRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38202, + "src": "429:26:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 44765, + "name": "NoValidatorsInSubnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38192, + "src": "457:20:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 44766, + "name": "NotValidator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38222, + "src": "479:12:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 44767, + "name": "NotAllValidatorsHaveLeft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38196, + "src": "493:24:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 44768, + "name": "SubnetNotActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38228, + "src": "519:15:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 44769, + "name": "WrongCheckpointSource", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38238, + "src": "536:21:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 44770, + "name": "MessageNotSorted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38186, + "src": "559:16:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 44771, + "name": "NoRewardToWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38190, + "src": "577:18:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44774, + "nodeType": "ImportDirective", + "src": "629:57:68", + "nodes": [], + "absolutePath": "src/lib/SubnetIDHelper.sol", + "file": "../lib/SubnetIDHelper.sol", + "nameLocation": "-1:-1:-1", + "scope": 45624, + "sourceUnit": 44132, + "symbolAliases": [ + { + "foreign": { + "id": 44773, + "name": "SubnetIDHelper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44131, + "src": "637:14:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44776, + "nodeType": "ImportDirective", + "src": "687:61:68", + "nodes": [], + "absolutePath": "src/lib/CheckpointHelper.sol", + "file": "../lib/CheckpointHelper.sol", + "nameLocation": "-1:-1:-1", + "scope": 45624, + "sourceUnit": 40777, + "symbolAliases": [ + { + "foreign": { + "id": 44775, + "name": "CheckpointHelper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40776, + "src": "695:16:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44778, + "nodeType": "ImportDirective", + "src": "749:71:68", + "nodes": [], + "absolutePath": "src/structs/EpochVoteSubmission.sol", + "file": "../structs/EpochVoteSubmission.sol", + "nameLocation": "-1:-1:-1", + "scope": 45624, + "sourceUnit": 44234, + "symbolAliases": [ + { + "foreign": { + "id": 44777, + "name": "EpochVoteSubmission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44215, + "src": "757:19:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44780, + "nodeType": "ImportDirective", + "src": "821:60:68", + "nodes": [], + "absolutePath": "src/interfaces/ISubnetActor.sol", + "file": "../interfaces/ISubnetActor.sol", + "nameLocation": "-1:-1:-1", + "scope": 45624, + "sourceUnit": 40460, + "symbolAliases": [ + { + "foreign": { + "id": 44779, + "name": "ISubnetActor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40459, + "src": "829:12:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44782, + "nodeType": "ImportDirective", + "src": "882:52:68", + "nodes": [], + "absolutePath": "src/interfaces/IGateway.sol", + "file": "../interfaces/IGateway.sol", + "nameLocation": "-1:-1:-1", + "scope": 45624, + "sourceUnit": 40422, + "symbolAliases": [ + { + "foreign": { + "id": 44781, + "name": "IGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40421, + "src": "890:8:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44784, + "nodeType": "ImportDirective", + "src": "935:55:68", + "nodes": [], + "absolutePath": "src/lib/AccountHelper.sol", + "file": "../lib/AccountHelper.sol", + "nameLocation": "-1:-1:-1", + "scope": 45624, + "sourceUnit": 40509, + "symbolAliases": [ + { + "foreign": { + "id": 44783, + "name": "AccountHelper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40508, + "src": "943:13:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44786, + "nodeType": "ImportDirective", + "src": "991:57:68", + "nodes": [], + "absolutePath": "src/lib/CrossMsgHelper.sol", + "file": "../lib/CrossMsgHelper.sol", + "nameLocation": "-1:-1:-1", + "scope": 45624, + "sourceUnit": 41104, + "symbolAliases": [ + { + "foreign": { + "id": 44785, + "name": "CrossMsgHelper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41103, + "src": "999:14:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44788, + "nodeType": "ImportDirective", + "src": "1049:63:68", + "nodes": [], + "absolutePath": "src/structs/ExecutableQueue.sol", + "file": "../structs/ExecutableQueue.sol", + "nameLocation": "-1:-1:-1", + "scope": 45624, + "sourceUnit": 44247, + "symbolAliases": [ + { + "foreign": { + "id": 44787, + "name": "ExecutableQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44246, + "src": "1057:15:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44790, + "nodeType": "ImportDirective", + "src": "1113:71:68", + "nodes": [], + "absolutePath": "src/lib/ExecutableQueueHelper.sol", + "file": "../lib/ExecutableQueueHelper.sol", + "nameLocation": "-1:-1:-1", + "scope": 45624, + "sourceUnit": 41356, + "symbolAliases": [ + { + "foreign": { + "id": 44789, + "name": "ExecutableQueueHelper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41355, + "src": "1121:21:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44792, + "nodeType": "ImportDirective", + "src": "1185:79:68", + "nodes": [], + "absolutePath": "src/structs/EpochVoteSubmission.sol", + "file": "../structs/EpochVoteSubmission.sol", + "nameLocation": "-1:-1:-1", + "scope": 45624, + "sourceUnit": 44234, + "symbolAliases": [ + { + "foreign": { + "id": 44791, + "name": "EpochVoteBottomUpSubmission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44233, + "src": "1193:27:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44794, + "nodeType": "ImportDirective", + "src": "1265:79:68", + "nodes": [], + "absolutePath": "src/lib/EpochVoteSubmissionHelper.sol", + "file": "../lib/EpochVoteSubmissionHelper.sol", + "nameLocation": "-1:-1:-1", + "scope": 45624, + "sourceUnit": 41152, + "symbolAliases": [ + { + "foreign": { + "id": 44793, + "name": "EpochVoteSubmissionHelper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41151, + "src": "1273:25:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44796, + "nodeType": "ImportDirective", + "src": "1345:47:68", + "nodes": [], + "absolutePath": "src/lib/LibVoting.sol", + "file": "../lib/LibVoting.sol", + "nameLocation": "-1:-1:-1", + "scope": 45624, + "sourceUnit": 43439, + "symbolAliases": [ + { + "foreign": { + "id": 44795, + "name": "LibVoting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43438, + "src": "1353:9:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44798, + "nodeType": "ImportDirective", + "src": "1393:43:68", + "nodes": [], + "absolutePath": "src/enums/Status.sol", + "file": "../enums/Status.sol", + "nameLocation": "-1:-1:-1", + "scope": 45624, + "sourceUnit": 38138, + "symbolAliases": [ + { + "foreign": { + "id": 44797, + "name": "Status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38137, + "src": "1401:6:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44800, + "nodeType": "ImportDirective", + "src": "1437:57:68", + "nodes": [], + "absolutePath": "src/enums/ConsensusType.sol", + "file": "../enums/ConsensusType.sol", + "nameLocation": "-1:-1:-1", + "scope": 45624, + "sourceUnit": 38124, + "symbolAliases": [ + { + "foreign": { + "id": 44799, + "name": "ConsensusType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38123, + "src": "1445:13:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44802, + "nodeType": "ImportDirective", + "src": "1495:85:68", + "nodes": [], + "absolutePath": "lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", + "file": "openzeppelin-contracts/utils/structs/EnumerableSet.sol", + "nameLocation": "-1:-1:-1", + "scope": 45624, + "sourceUnit": 33010, + "symbolAliases": [ + { + "foreign": { + "id": 44801, + "name": "EnumerableSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33009, + "src": "1503:13:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44804, + "nodeType": "ImportDirective", + "src": "1581:56:68", + "nodes": [], + "absolutePath": "lib/fevmate/contracts/utils/FilAddress.sol", + "file": "fevmate/utils/FilAddress.sol", + "nameLocation": "-1:-1:-1", + "scope": 45624, + "sourceUnit": 299, + "symbolAliases": [ + { + "foreign": { + "id": 44803, + "name": "FilAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 298, + "src": "1589:10:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44806, + "nodeType": "ImportDirective", + "src": "1638:65:68", + "nodes": [], + "absolutePath": "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "file": "openzeppelin-contracts/utils/Address.sol", + "nameLocation": "-1:-1:-1", + "scope": 45624, + "sourceUnit": 29870, + "symbolAliases": [ + { + "foreign": { + "id": 44805, + "name": "Address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29869, + "src": "1646:7:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 44808, + "nodeType": "ImportDirective", + "src": "1704:61:68", + "nodes": [], + "absolutePath": "src/lib/FvmAddressHelper.sol", + "file": "../lib/FvmAddressHelper.sol", + "nameLocation": "-1:-1:-1", + "scope": 45624, + "sourceUnit": 41483, + "symbolAliases": [ + { + "foreign": { + "id": 44807, + "name": "FvmAddressHelper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41482, + "src": "1712:16:68", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 45623, + "nodeType": "ContractDefinition", + "src": "1767:9418:68", + "nodes": [ + { + "id": 44818, + "nodeType": "UsingForDirective", + "src": "1861:49:68", + "nodes": [], + "global": false, + "libraryName": { + "id": 44815, + "name": "EnumerableSet", + "nameLocations": [ + "1867:13:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 33009, + "src": "1867:13:68" + }, + "typeName": { + "id": 44817, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 44816, + "name": "EnumerableSet.AddressSet", + "nameLocations": [ + "1885:13:68", + "1899:10:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 32722, + "src": "1885:24:68" + }, + "referencedDeclaration": 32722, + "src": "1885:24:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$32722_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + } + }, + { + "id": 44822, + "nodeType": "UsingForDirective", + "src": "1915:34:68", + "nodes": [], + "global": false, + "libraryName": { + "id": 44819, + "name": "SubnetIDHelper", + "nameLocations": [ + "1921:14:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44131, + "src": "1921:14:68" + }, + "typeName": { + "id": 44821, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 44820, + "name": "SubnetID", + "nameLocations": [ + "1940:8:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44279, + "src": "1940:8:68" + }, + "referencedDeclaration": 44279, + "src": "1940:8:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeString": "struct SubnetID" + } + } + }, + { + "id": 44826, + "nodeType": "UsingForDirective", + "src": "1954:46:68", + "nodes": [], + "global": false, + "libraryName": { + "id": 44823, + "name": "CheckpointHelper", + "nameLocations": [ + "1960:16:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 40776, + "src": "1960:16:68" + }, + "typeName": { + "id": 44825, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 44824, + "name": "BottomUpCheckpoint", + "nameLocations": [ + "1981:18:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44156, + "src": "1981:18:68" + }, + "referencedDeclaration": 44156, + "src": "1981:18:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeString": "struct BottomUpCheckpoint" + } + } + }, + { + "id": 44829, + "nodeType": "UsingForDirective", + "src": "2005:29:68", + "nodes": [], + "global": false, + "libraryName": { + "id": 44827, + "name": "FilAddress", + "nameLocations": [ + "2011:10:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 298, + "src": "2011:10:68" + }, + "typeName": { + "id": 44828, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2026:7:68", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "id": 44832, + "nodeType": "UsingForDirective", + "src": "2039:34:68", + "nodes": [], + "global": false, + "libraryName": { + "id": 44830, + "name": "Address", + "nameLocations": [ + "2045:7:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 29869, + "src": "2045:7:68" + }, + "typeName": { + "id": 44831, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2057:15:68", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + }, + { + "id": 44835, + "nodeType": "UsingForDirective", + "src": "2078:32:68", + "nodes": [], + "global": false, + "libraryName": { + "id": 44833, + "name": "AccountHelper", + "nameLocations": [ + "2084:13:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 40508, + "src": "2084:13:68" + }, + "typeName": { + "id": 44834, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2102:7:68", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "id": 44839, + "nodeType": "UsingForDirective", + "src": "2115:48:68", + "nodes": [], + "global": false, + "libraryName": { + "id": 44836, + "name": "ExecutableQueueHelper", + "nameLocations": [ + "2121:21:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 41355, + "src": "2121:21:68" + }, + "typeName": { + "id": 44838, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 44837, + "name": "ExecutableQueue", + "nameLocations": [ + "2147:15:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44246, + "src": "2147:15:68" + }, + "referencedDeclaration": 44246, + "src": "2147:15:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ExecutableQueue_$44246_storage_ptr", + "typeString": "struct ExecutableQueue" + } + } + }, + { + "id": 44843, + "nodeType": "UsingForDirective", + "src": "2168:56:68", + "nodes": [], + "global": false, + "libraryName": { + "id": 44840, + "name": "EpochVoteSubmissionHelper", + "nameLocations": [ + "2174:25:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 41151, + "src": "2174:25:68" + }, + "typeName": { + "id": 44842, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 44841, + "name": "EpochVoteSubmission", + "nameLocations": [ + "2204:19:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44215, + "src": "2204:19:68" + }, + "referencedDeclaration": 44215, + "src": "2204:19:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteSubmission_$44215_storage_ptr", + "typeString": "struct EpochVoteSubmission" + } + } + }, + { + "id": 44847, + "nodeType": "UsingForDirective", + "src": "2229:34:68", + "nodes": [], + "global": false, + "libraryName": { + "id": 44844, + "name": "CrossMsgHelper", + "nameLocations": [ + "2235:14:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 41103, + "src": "2235:14:68" + }, + "typeName": { + "id": 44846, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 44845, + "name": "CrossMsg", + "nameLocations": [ + "2254:8:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44176, + "src": "2254:8:68" + }, + "referencedDeclaration": 44176, + "src": "2254:8:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeString": "struct CrossMsg" + } + } + }, + { + "id": 44851, + "nodeType": "UsingForDirective", + "src": "2268:38:68", + "nodes": [], + "global": false, + "libraryName": { + "id": 44848, + "name": "FvmAddressHelper", + "nameLocations": [ + "2274:16:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 41482, + "src": "2274:16:68" + }, + "typeName": { + "id": 44850, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 44849, + "name": "FvmAddress", + "nameLocations": [ + "2295:10:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44253, + "src": "2295:10:68" + }, + "referencedDeclaration": 44253, + "src": "2295:10:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_FvmAddress_$44253_storage_ptr", + "typeString": "struct FvmAddress" + } + } + }, + { + "id": 45000, + "nodeType": "FunctionDefinition", + "src": "2440:1280:68", + "nodes": [], + "body": { + "id": 44999, + "nodeType": "Block", + "src": "2551:1169:68", + "nodes": [], + "statements": [ + { + "assignments": [ + 44865 + ], + "declarations": [ + { + "constant": false, + "id": 44865, + "mutability": "mutable", + "name": "validatorStake", + "nameLocation": "2569:14:68", + "nodeType": "VariableDeclaration", + "scope": 44999, + "src": "2561:22:68", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 44864, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2561:7:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 44868, + "initialValue": { + "expression": { + "id": 44866, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2586:3:68", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 44867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2590:5:68", + "memberName": "value", + "nodeType": "MemberAccess", + "src": "2586:9:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2561:34:68" + }, + { + "assignments": [ + 44870 + ], + "declarations": [ + { + "constant": false, + "id": 44870, + "mutability": "mutable", + "name": "validator", + "nameLocation": "2613:9:68", + "nodeType": "VariableDeclaration", + "scope": 44999, + "src": "2605:17:68", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 44869, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2605:7:68", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 44873, + "initialValue": { + "expression": { + "id": 44871, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2625:3:68", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 44872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2629:6:68", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2625:10:68", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2605:30:68" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 44876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 44874, + "name": "validatorStake", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44865, + "src": "2649:14:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 44875, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2667:1:68", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2649:19:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 44881, + "nodeType": "IfStatement", + "src": "2645:75:68", + "trueBody": { + "id": 44880, + "nodeType": "Block", + "src": "2670:50:68", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 44877, + "name": "CollateralIsZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38160, + "src": "2691:16:68", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 44878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2691:18:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 44879, + "nodeType": "RevertStatement", + "src": "2684:25:68" + } + ] + } + }, + { + "expression": { + "id": 44888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 44882, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "2730:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44885, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2732:5:68", + "memberName": "stake", + "nodeType": "MemberAccess", + "referencedDeclaration": 42647, + "src": "2730:7:68", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 44886, + "indexExpression": { + "id": 44884, + "name": "validator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44870, + "src": "2738:9:68", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2730:18:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 44887, + "name": "validatorStake", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44865, + "src": "2752:14:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2730:36:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 44889, + "nodeType": "ExpressionStatement", + "src": "2730:36:68" + }, + { + "expression": { + "id": 44894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 44890, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "2776:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44892, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "2778:10:68", + "memberName": "totalStake", + "nodeType": "MemberAccess", + "referencedDeclaration": 42616, + "src": "2776:12:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 44893, + "name": "validatorStake", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44865, + "src": "2792:14:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2776:30:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 44895, + "nodeType": "ExpressionStatement", + "src": "2776:30:68" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 44902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "id": 44896, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "2821:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44897, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2823:5:68", + "memberName": "stake", + "nodeType": "MemberAccess", + "referencedDeclaration": 42647, + "src": "2821:7:68", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 44899, + "indexExpression": { + "id": 44898, + "name": "validator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44870, + "src": "2829:9:68", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2821:18:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "expression": { + "id": 44900, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "2843:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44901, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2845:23:68", + "memberName": "minActivationCollateral", + "nodeType": "MemberAccess", + "referencedDeclaration": 42693, + "src": "2843:25:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2821:47:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 44936, + "nodeType": "IfStatement", + "src": "2817:365:68", + "trueBody": { + "id": 44935, + "nodeType": "Block", + "src": "2870:312:68", + "statements": [ + { + "condition": { + "id": 44908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2888:33:68", + "subExpression": { + "arguments": [ + { + "id": 44906, + "name": "validator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44870, + "src": "2911:9:68", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "expression": { + "id": 44903, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "2889:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44904, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2891:10:68", + "memberName": "validators", + "nodeType": "MemberAccess", + "referencedDeclaration": 42636, + "src": "2889:12:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$32722_storage", + "typeString": "struct EnumerableSet.AddressSet storage ref" + } + }, + "id": 44905, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2902:8:68", + "memberName": "contains", + "nodeType": "MemberAccess", + "referencedDeclaration": 32803, + "src": "2889:21:68", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32722_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$32722_storage_ptr_$", + "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" + } + }, + "id": 44907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2889:32:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 44934, + "nodeType": "IfStatement", + "src": "2884:288:68", + "trueBody": { + "id": 44933, + "nodeType": "Block", + "src": "2923:249:68", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 44914, + "name": "validator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44870, + "src": "3017:9:68", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "expression": { + "id": 44909, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "3000:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44912, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3002:10:68", + "memberName": "validators", + "nodeType": "MemberAccess", + "referencedDeclaration": 42636, + "src": "3000:12:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$32722_storage", + "typeString": "struct EnumerableSet.AddressSet storage ref" + } + }, + "id": 44913, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3013:3:68", + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 32749, + "src": "3000:16:68", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$32722_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$32722_storage_ptr_$", + "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" + } + }, + "id": 44915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3000:27:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 44916, + "nodeType": "ExpressionStatement", + "src": "3000:27:68" + }, + { + "expression": { + "id": 44923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 44917, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "3045:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44920, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3047:21:68", + "memberName": "validatorNetAddresses", + "nodeType": "MemberAccess", + "referencedDeclaration": 42657, + "src": "3045:23:68", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_string_storage_$", + "typeString": "mapping(address => string storage ref)" + } + }, + "id": 44921, + "indexExpression": { + "id": 44919, + "name": "validator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44870, + "src": "3069:9:68", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3045:34:68", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 44922, + "name": "netAddr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44854, + "src": "3082:7:68", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + "src": "3045:44:68", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 44924, + "nodeType": "ExpressionStatement", + "src": "3045:44:68" + }, + { + "expression": { + "id": 44931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 44925, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "3107:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44928, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3109:24:68", + "memberName": "validatorWorkerAddresses", + "nodeType": "MemberAccess", + "referencedDeclaration": 42663, + "src": "3107:26:68", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_FvmAddress_$44253_storage_$", + "typeString": "mapping(address => struct FvmAddress storage ref)" + } + }, + "id": 44929, + "indexExpression": { + "id": 44927, + "name": "validator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44870, + "src": "3134:9:68", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3107:37:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_FvmAddress_$44253_storage", + "typeString": "struct FvmAddress storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 44930, + "name": "workerAddr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44857, + "src": "3147:10:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_FvmAddress_$44253_calldata_ptr", + "typeString": "struct FvmAddress calldata" + } + }, + "src": "3107:50:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_FvmAddress_$44253_storage", + "typeString": "struct FvmAddress storage ref" + } + }, + "id": 44932, + "nodeType": "ExpressionStatement", + "src": "3107:50:68" + } + ] + } + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + }, + "id": 44941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 44937, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "3196:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44938, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3198:6:68", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 42623, + "src": "3196:8:68", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 44939, + "name": "Status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38137, + "src": "3208:6:68", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Status_$38137_$", + "typeString": "type(enum Status)" + } + }, + "id": 44940, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3215:12:68", + "memberName": "Instantiated", + "nodeType": "MemberAccess", + "referencedDeclaration": 38136, + "src": "3208:19:68", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "src": "3196:31:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 44997, + "nodeType": "Block", + "src": "3439:275:68", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + }, + "id": 44971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 44967, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "3457:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44968, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3459:6:68", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 42623, + "src": "3457:8:68", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 44969, + "name": "Status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38137, + "src": "3469:6:68", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Status_$38137_$", + "typeString": "type(enum Status)" + } + }, + "id": 44970, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3476:8:68", + "memberName": "Inactive", + "nodeType": "MemberAccess", + "referencedDeclaration": 38133, + "src": "3469:15:68", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "src": "3457:27:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 44987, + "nodeType": "IfStatement", + "src": "3453:177:68", + "trueBody": { + "id": 44986, + "nodeType": "Block", + "src": "3486:144:68", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 44976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 44972, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "3508:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44973, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3510:10:68", + "memberName": "totalStake", + "nodeType": "MemberAccess", + "referencedDeclaration": 42616, + "src": "3508:12:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "expression": { + "id": 44974, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "3524:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44975, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3526:23:68", + "memberName": "minActivationCollateral", + "nodeType": "MemberAccess", + "referencedDeclaration": 42693, + "src": "3524:25:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3508:41:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 44985, + "nodeType": "IfStatement", + "src": "3504:112:68", + "trueBody": { + "id": 44984, + "nodeType": "Block", + "src": "3551:65:68", + "statements": [ + { + "expression": { + "id": 44982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 44977, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "3573:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44979, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3575:6:68", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 42623, + "src": "3573:8:68", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 44980, + "name": "Status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38137, + "src": "3584:6:68", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Status_$38137_$", + "typeString": "type(enum Status)" + } + }, + "id": 44981, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3591:6:68", + "memberName": "Active", + "nodeType": "MemberAccess", + "referencedDeclaration": 38132, + "src": "3584:13:68", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "src": "3573:24:68", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "id": 44983, + "nodeType": "ExpressionStatement", + "src": "3573:24:68" + } + ] + } + } + ] + } + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "expression": { + "id": 44989, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "3652:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44990, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3654:14:68", + "memberName": "ipcGatewayAddr", + "nodeType": "MemberAccess", + "referencedDeclaration": 42683, + "src": "3652:16:68", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 44988, + "name": "IGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40421, + "src": "3643:8:68", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IGateway_$40421_$", + "typeString": "type(contract IGateway)" + } + }, + "id": 44991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3643:26:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGateway_$40421", + "typeString": "contract IGateway" + } + }, + "id": 44992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3670:8:68", + "memberName": "addStake", + "nodeType": "MemberAccess", + "referencedDeclaration": 40353, + "src": "3643:35:68", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$", + "typeString": "function () payable external" + } + }, + "id": 44994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 44993, + "name": "validatorStake", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44865, + "src": "3686:14:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "3643:58:68", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$value", + "typeString": "function () payable external" + } + }, + "id": 44995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3643:60:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 44996, + "nodeType": "ExpressionStatement", + "src": "3643:60:68" + } + ] + }, + "id": 44998, + "nodeType": "IfStatement", + "src": "3192:522:68", + "trueBody": { + "id": 44966, + "nodeType": "Block", + "src": "3229:204:68", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 44946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 44942, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "3247:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44943, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3249:10:68", + "memberName": "totalStake", + "nodeType": "MemberAccess", + "referencedDeclaration": 42616, + "src": "3247:12:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "expression": { + "id": 44944, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "3263:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44945, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3265:23:68", + "memberName": "minActivationCollateral", + "nodeType": "MemberAccess", + "referencedDeclaration": 42693, + "src": "3263:25:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3247:41:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 44965, + "nodeType": "IfStatement", + "src": "3243:180:68", + "trueBody": { + "id": 44964, + "nodeType": "Block", + "src": "3290:133:68", + "statements": [ + { + "expression": { + "id": 44952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 44947, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "3308:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44949, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3310:6:68", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 42623, + "src": "3308:8:68", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 44950, + "name": "Status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38137, + "src": "3319:6:68", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Status_$38137_$", + "typeString": "type(enum Status)" + } + }, + "id": 44951, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3326:6:68", + "memberName": "Active", + "nodeType": "MemberAccess", + "referencedDeclaration": 38132, + "src": "3319:13:68", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "src": "3308:24:68", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "id": 44953, + "nodeType": "ExpressionStatement", + "src": "3308:24:68" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "expression": { + "id": 44955, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "3359:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44956, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3361:14:68", + "memberName": "ipcGatewayAddr", + "nodeType": "MemberAccess", + "referencedDeclaration": 42683, + "src": "3359:16:68", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 44954, + "name": "IGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40421, + "src": "3350:8:68", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IGateway_$40421_$", + "typeString": "type(contract IGateway)" + } + }, + "id": 44957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3350:26:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGateway_$40421", + "typeString": "contract IGateway" + } + }, + "id": 44958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3377:8:68", + "memberName": "register", + "nodeType": "MemberAccess", + "referencedDeclaration": 40349, + "src": "3350:35:68", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$", + "typeString": "function () payable external" + } + }, + "id": 44961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "expression": { + "id": 44959, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "3393:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 44960, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3395:10:68", + "memberName": "totalStake", + "nodeType": "MemberAccess", + "referencedDeclaration": 42616, + "src": "3393:12:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "3350:56:68", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$value", + "typeString": "function () payable external" + } + }, + "id": 44962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3350:58:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 44963, + "nodeType": "ExpressionStatement", + "src": "3350:58:68" + } + ] + } + } + ] + } + } + ] + }, + "baseFunctions": [ + 40437 + ], + "documentation": { + "id": 44852, + "nodeType": "StructuredDocumentation", + "src": "2312:123:68", + "text": "@notice method that allows a validator to join the subnet\n @param netAddr - the network address of the validator" + }, + "functionSelector": "6cf6970a", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 44860, + "kind": "modifierInvocation", + "modifierName": { + "id": 44859, + "name": "signableOnly", + "nameLocations": [ + "2528:12:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 42799, + "src": "2528:12:68" + }, + "nodeType": "ModifierInvocation", + "src": "2528:12:68" + }, + { + "id": 44862, + "kind": "modifierInvocation", + "modifierName": { + "id": 44861, + "name": "notKilled", + "nameLocations": [ + "2541:9:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 42806, + "src": "2541:9:68" + }, + "nodeType": "ModifierInvocation", + "src": "2541:9:68" + } + ], + "name": "join", + "nameLocation": "2449:4:68", + "parameters": { + "id": 44858, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 44854, + "mutability": "mutable", + "name": "netAddr", + "nameLocation": "2470:7:68", + "nodeType": "VariableDeclaration", + "scope": 45000, + "src": "2454:23:68", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 44853, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2454:6:68", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 44857, + "mutability": "mutable", + "name": "workerAddr", + "nameLocation": "2499:10:68", + "nodeType": "VariableDeclaration", + "scope": 45000, + "src": "2479:30:68", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_FvmAddress_$44253_calldata_ptr", + "typeString": "struct FvmAddress" + }, + "typeName": { + "id": 44856, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 44855, + "name": "FvmAddress", + "nameLocations": [ + "2479:10:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44253, + "src": "2479:10:68" + }, + "referencedDeclaration": 44253, + "src": "2479:10:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_FvmAddress_$44253_storage_ptr", + "typeString": "struct FvmAddress" + } + }, + "visibility": "internal" + } + ], + "src": "2453:57:68" + }, + "returnParameters": { + "id": 44863, + "nodeType": "ParameterList", + "parameters": [], + "src": "2551:0:68" + }, + "scope": 45623, + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "id": 45089, + "nodeType": "FunctionDefinition", + "src": "3793:621:68", + "nodes": [], + "body": { + "id": 45088, + "nodeType": "Block", + "src": "3855:559:68", + "nodes": [], + "statements": [ + { + "assignments": [ + 45011 + ], + "declarations": [ + { + "constant": false, + "id": 45011, + "mutability": "mutable", + "name": "amount", + "nameLocation": "3873:6:68", + "nodeType": "VariableDeclaration", + "scope": 45088, + "src": "3865:14:68", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 45010, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3865:7:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 45017, + "initialValue": { + "baseExpression": { + "expression": { + "id": 45012, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "3882:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45013, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3884:5:68", + "memberName": "stake", + "nodeType": "MemberAccess", + "referencedDeclaration": 42647, + "src": "3882:7:68", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 45016, + "indexExpression": { + "expression": { + "id": 45014, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3890:3:68", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 45015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3894:6:68", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3890:10:68", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3882:19:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3865:36:68" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 45020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 45018, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45011, + "src": "3916:6:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 45019, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3926:1:68", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3916:11:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 45025, + "nodeType": "IfStatement", + "src": "3912:63:68", + "trueBody": { + "id": 45024, + "nodeType": "Block", + "src": "3929:46:68", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 45021, + "name": "NotValidator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38222, + "src": "3950:12:68", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 45022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3950:14:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 45023, + "nodeType": "RevertStatement", + "src": "3943:21:68" + } + ] + } + }, + { + "expression": { + "id": 45033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 45026, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "3985:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45030, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3987:5:68", + "memberName": "stake", + "nodeType": "MemberAccess", + "referencedDeclaration": 42647, + "src": "3985:7:68", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 45031, + "indexExpression": { + "expression": { + "id": 45028, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3993:3:68", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 45029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3997:6:68", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3993:10:68", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3985:19:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 45032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4007:1:68", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3985:23:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 45034, + "nodeType": "ExpressionStatement", + "src": "3985:23:68" + }, + { + "expression": { + "id": 45039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 45035, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "4018:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45037, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "4020:10:68", + "memberName": "totalStake", + "nodeType": "MemberAccess", + "referencedDeclaration": 42616, + "src": "4018:12:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 45038, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45011, + "src": "4034:6:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4018:22:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 45040, + "nodeType": "ExpressionStatement", + "src": "4018:22:68" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 45046, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4121:3:68", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 45047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4125:6:68", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4121:10:68", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "expression": { + "id": 45041, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "4101:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45044, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4103:10:68", + "memberName": "validators", + "nodeType": "MemberAccess", + "referencedDeclaration": 42636, + "src": "4101:12:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$32722_storage", + "typeString": "struct EnumerableSet.AddressSet storage ref" + } + }, + "id": 45045, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4114:6:68", + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 32776, + "src": "4101:19:68", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$32722_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$32722_storage_ptr_$", + "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" + } + }, + "id": 45048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4101:31:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 45049, + "nodeType": "ExpressionStatement", + "src": "4101:31:68" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + }, + "id": 45054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 45050, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "4146:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45051, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4148:6:68", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 42623, + "src": "4146:8:68", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 45052, + "name": "Status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38137, + "src": "4158:6:68", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Status_$38137_$", + "typeString": "type(enum Status)" + } + }, + "id": 45053, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4165:6:68", + "memberName": "Active", + "nodeType": "MemberAccess", + "referencedDeclaration": 38132, + "src": "4158:13:68", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "src": "4146:25:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 45070, + "nodeType": "IfStatement", + "src": "4142:160:68", + "trueBody": { + "id": 45069, + "nodeType": "Block", + "src": "4173:129:68", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 45059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 45055, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "4191:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45056, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4193:10:68", + "memberName": "totalStake", + "nodeType": "MemberAccess", + "referencedDeclaration": 42616, + "src": "4191:12:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 45057, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "4206:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45058, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4208:23:68", + "memberName": "minActivationCollateral", + "nodeType": "MemberAccess", + "referencedDeclaration": 42693, + "src": "4206:25:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4191:40:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 45068, + "nodeType": "IfStatement", + "src": "4187:105:68", + "trueBody": { + "id": 45067, + "nodeType": "Block", + "src": "4233:59:68", + "statements": [ + { + "expression": { + "id": 45065, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 45060, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "4251:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45062, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "4253:6:68", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 42623, + "src": "4251:8:68", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 45063, + "name": "Status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38137, + "src": "4262:6:68", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Status_$38137_$", + "typeString": "type(enum Status)" + } + }, + "id": 45064, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4269:8:68", + "memberName": "Inactive", + "nodeType": "MemberAccess", + "referencedDeclaration": 38133, + "src": "4262:15:68", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "src": "4251:26:68", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "id": 45066, + "nodeType": "ExpressionStatement", + "src": "4251:26:68" + } + ] + } + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 45076, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45011, + "src": "4352:6:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "expression": { + "id": 45072, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "4321:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45073, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4323:14:68", + "memberName": "ipcGatewayAddr", + "nodeType": "MemberAccess", + "referencedDeclaration": 42683, + "src": "4321:16:68", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 45071, + "name": "IGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40421, + "src": "4312:8:68", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IGateway_$40421_$", + "typeString": "type(contract IGateway)" + } + }, + "id": 45074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4312:26:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGateway_$40421", + "typeString": "contract IGateway" + } + }, + "id": 45075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4339:12:68", + "memberName": "releaseStake", + "nodeType": "MemberAccess", + "referencedDeclaration": 40359, + "src": "4312:39:68", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 45077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4312:47:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 45078, + "nodeType": "ExpressionStatement", + "src": "4312:47:68" + }, + { + "expression": { + "arguments": [ + { + "id": 45085, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45011, + "src": "4400:6:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "expression": { + "id": 45081, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4378:3:68", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 45082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4382:6:68", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4378:10:68", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 45080, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4370:8:68", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 45079, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4370:8:68", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 45083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4370:19:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 45084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4390:9:68", + "memberName": "sendValue", + "nodeType": "MemberAccess", + "referencedDeclaration": 29541, + "src": "4370:29:68", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$", + "typeString": "function (address payable,uint256)" + } + }, + "id": 45086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4370:37:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 45087, + "nodeType": "ExpressionStatement", + "src": "4370:37:68" + } + ] + }, + "baseFunctions": [ + 40441 + ], + "documentation": { + "id": 45001, + "nodeType": "StructuredDocumentation", + "src": "3726:62:68", + "text": "@notice method that allows a validator to leave the subnet" + }, + "functionSelector": "d66d9e19", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 45004, + "kind": "modifierInvocation", + "modifierName": { + "id": 45003, + "name": "nonReentrant", + "nameLocations": [ + "3819:12:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 42553, + "src": "3819:12:68" + }, + "nodeType": "ModifierInvocation", + "src": "3819:12:68" + }, + { + "id": 45006, + "kind": "modifierInvocation", + "modifierName": { + "id": 45005, + "name": "signableOnly", + "nameLocations": [ + "3832:12:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 42799, + "src": "3832:12:68" + }, + "nodeType": "ModifierInvocation", + "src": "3832:12:68" + }, + { + "id": 45008, + "kind": "modifierInvocation", + "modifierName": { + "id": 45007, + "name": "notKilled", + "nameLocations": [ + "3845:9:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 42806, + "src": "3845:9:68" + }, + "nodeType": "ModifierInvocation", + "src": "3845:9:68" + } + ], + "name": "leave", + "nameLocation": "3802:5:68", + "parameters": { + "id": 45002, + "nodeType": "ParameterList", + "parameters": [], + "src": "3807:2:68" + }, + "returnParameters": { + "id": 45009, + "nodeType": "ParameterList", + "parameters": [], + "src": "3855:0:68" + }, + "scope": 45623, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 45128, + "nodeType": "FunctionDefinition", + "src": "4506:254:68", + "nodes": [], + "body": { + "id": 45127, + "nodeType": "Block", + "src": "4554:206:68", + "nodes": [], + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 45107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 45102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 45097, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "4568:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45098, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4570:10:68", + "memberName": "validators", + "nodeType": "MemberAccess", + "referencedDeclaration": 42636, + "src": "4568:12:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$32722_storage", + "typeString": "struct EnumerableSet.AddressSet storage ref" + } + }, + "id": 45099, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4581:6:68", + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 32818, + "src": "4568:19:68", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32722_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$32722_storage_ptr_$", + "typeString": "function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)" + } + }, + "id": 45100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4568:21:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 45101, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4593:1:68", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4568:26:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 45106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 45103, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "4598:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45104, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4600:10:68", + "memberName": "totalStake", + "nodeType": "MemberAccess", + "referencedDeclaration": 42616, + "src": "4598:12:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 45105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4614:1:68", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4598:17:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4568:47:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 45112, + "nodeType": "IfStatement", + "src": "4564:111:68", + "trueBody": { + "id": 45111, + "nodeType": "Block", + "src": "4617:58:68", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 45108, + "name": "NotAllValidatorsHaveLeft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38196, + "src": "4638:24:68", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 45109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4638:26:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 45110, + "nodeType": "RevertStatement", + "src": "4631:33:68" + } + ] + } + }, + { + "expression": { + "id": 45118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 45113, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "4685:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45115, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "4687:6:68", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 42623, + "src": "4685:8:68", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 45116, + "name": "Status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38137, + "src": "4696:6:68", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Status_$38137_$", + "typeString": "type(enum Status)" + } + }, + "id": 45117, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4703:6:68", + "memberName": "Killed", + "nodeType": "MemberAccess", + "referencedDeclaration": 38134, + "src": "4696:13:68", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "src": "4685:24:68", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "id": 45119, + "nodeType": "ExpressionStatement", + "src": "4685:24:68" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "expression": { + "id": 45121, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "4729:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45122, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4731:14:68", + "memberName": "ipcGatewayAddr", + "nodeType": "MemberAccess", + "referencedDeclaration": 42683, + "src": "4729:16:68", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 45120, + "name": "IGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40421, + "src": "4720:8:68", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IGateway_$40421_$", + "typeString": "type(contract IGateway)" + } + }, + "id": 45123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4720:26:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGateway_$40421", + "typeString": "contract IGateway" + } + }, + "id": 45124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4747:4:68", + "memberName": "kill", + "nodeType": "MemberAccess", + "referencedDeclaration": 40368, + "src": "4720:31:68", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 45125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4720:33:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 45126, + "nodeType": "ExpressionStatement", + "src": "4720:33:68" + } + ] + }, + "baseFunctions": [ + 40445 + ], + "documentation": { + "id": 45090, + "nodeType": "StructuredDocumentation", + "src": "4420:81:68", + "text": "@notice method that allows the subnet no be killed after all validators leave" + }, + "functionSelector": "41c0e1b5", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 45093, + "kind": "modifierInvocation", + "modifierName": { + "id": 45092, + "name": "signableOnly", + "nameLocations": [ + "4531:12:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 42799, + "src": "4531:12:68" + }, + "nodeType": "ModifierInvocation", + "src": "4531:12:68" + }, + { + "id": 45095, + "kind": "modifierInvocation", + "modifierName": { + "id": 45094, + "name": "notKilled", + "nameLocations": [ + "4544:9:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 42806, + "src": "4544:9:68" + }, + "nodeType": "ModifierInvocation", + "src": "4544:9:68" + } + ], + "name": "kill", + "nameLocation": "4515:4:68", + "parameters": { + "id": 45091, + "nodeType": "ParameterList", + "parameters": [], + "src": "4519:2:68" + }, + "returnParameters": { + "id": 45096, + "nodeType": "ParameterList", + "parameters": [], + "src": "4554:0:68" + }, + "scope": 45623, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 45244, + "nodeType": "FunctionDefinition", + "src": "4953:1319:68", + "nodes": [], + "body": { + "id": 45243, + "nodeType": "Block", + "src": "5041:1231:68", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 45140, + "name": "checkpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45132, + "src": "5081:10:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeString": "struct BottomUpCheckpoint calldata" + } + }, + "id": 45141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5092:5:68", + "memberName": "epoch", + "nodeType": "MemberAccess", + "referencedDeclaration": 44141, + "src": "5081:16:68", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "id": 45137, + "name": "LibVoting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43438, + "src": "5051:9:68", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibVoting_$43438_$", + "typeString": "type(library LibVoting)" + } + }, + "id": 45139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5061:19:68", + "memberName": "applyValidEpochOnly", + "nodeType": "MemberAccess", + "referencedDeclaration": 42889, + "src": "5051:29:68", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint64_$returns$__$", + "typeString": "function (uint64) view" + } + }, + "id": 45142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5051:47:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 45143, + "nodeType": "ExpressionStatement", + "src": "5051:47:68" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + }, + "id": 45148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 45144, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "5113:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45145, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5115:6:68", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 42623, + "src": "5113:8:68", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 45146, + "name": "Status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38137, + "src": "5125:6:68", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Status_$38137_$", + "typeString": "type(enum Status)" + } + }, + "id": 45147, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "5132:6:68", + "memberName": "Active", + "nodeType": "MemberAccess", + "referencedDeclaration": 38132, + "src": "5125:13:68", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "src": "5113:25:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 45153, + "nodeType": "IfStatement", + "src": "5109:80:68", + "trueBody": { + "id": 45152, + "nodeType": "Block", + "src": "5140:49:68", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 45149, + "name": "SubnetNotActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38228, + "src": "5161:15:68", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 45150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5161:17:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 45151, + "nodeType": "RevertStatement", + "src": "5154:24:68" + } + ] + } + }, + { + "condition": { + "id": 45160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "5202:34:68", + "subExpression": { + "arguments": [ + { + "expression": { + "id": 45157, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5225:3:68", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 45158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5229:6:68", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5225:10:68", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "expression": { + "id": 45154, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "5203:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45155, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5205:10:68", + "memberName": "validators", + "nodeType": "MemberAccess", + "referencedDeclaration": 42636, + "src": "5203:12:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$32722_storage", + "typeString": "struct EnumerableSet.AddressSet storage ref" + } + }, + "id": 45156, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5216:8:68", + "memberName": "contains", + "nodeType": "MemberAccess", + "referencedDeclaration": 32803, + "src": "5203:21:68", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32722_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$32722_storage_ptr_$", + "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" + } + }, + "id": 45159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5203:33:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 45165, + "nodeType": "IfStatement", + "src": "5198:86:68", + "trueBody": { + "id": 45164, + "nodeType": "Block", + "src": "5238:46:68", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 45161, + "name": "NotValidator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38222, + "src": "5259:12:68", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 45162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5259:14:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 45163, + "nodeType": "RevertStatement", + "src": "5252:21:68" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 45172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 45166, + "name": "checkpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45132, + "src": "5297:10:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeString": "struct BottomUpCheckpoint calldata" + } + }, + "id": 45167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5308:6:68", + "memberName": "source", + "nodeType": "MemberAccess", + "referencedDeclaration": 44139, + "src": "5297:17:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_calldata_ptr", + "typeString": "struct SubnetID calldata" + } + }, + "id": 45168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5315:6:68", + "memberName": "toHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 43703, + "src": "5297:24:68", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeString": "function (struct SubnetID memory) pure returns (bytes32)" + } + }, + "id": 45169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5297:26:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 45170, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "5327:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45171, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5329:17:68", + "memberName": "currentSubnetHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 42688, + "src": "5327:19:68", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "5297:49:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 45177, + "nodeType": "IfStatement", + "src": "5293:110:68", + "trueBody": { + "id": 45176, + "nodeType": "Block", + "src": "5348:55:68", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 45173, + "name": "WrongCheckpointSource", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38238, + "src": "5369:21:68", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 45174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5369:23:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 45175, + "nodeType": "RevertStatement", + "src": "5362:30:68" + } + ] + } + }, + { + "condition": { + "id": 45183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "5416:46:68", + "subExpression": { + "arguments": [ + { + "expression": { + "id": 45180, + "name": "checkpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45132, + "src": "5441:10:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeString": "struct BottomUpCheckpoint calldata" + } + }, + "id": 45181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5452:9:68", + "memberName": "crossMsgs", + "nodeType": "MemberAccess", + "referencedDeclaration": 44147, + "src": "5441:20:68", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct CrossMsg calldata[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct CrossMsg calldata[] calldata" + } + ], + "expression": { + "id": 45178, + "name": "CrossMsgHelper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41103, + "src": "5417:14:68", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_CrossMsgHelper_$41103_$", + "typeString": "type(library CrossMsgHelper)" + } + }, + "id": 45179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5432:8:68", + "memberName": "isSorted", + "nodeType": "MemberAccess", + "referencedDeclaration": 41102, + "src": "5417:23:68", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_struct$_CrossMsg_$44176_memory_ptr_$dyn_memory_ptr_$returns$_t_bool_$", + "typeString": "function (struct CrossMsg memory[] memory) pure returns (bool)" + } + }, + "id": 45182, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5417:45:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 45188, + "nodeType": "IfStatement", + "src": "5412:103:68", + "trueBody": { + "id": 45187, + "nodeType": "Block", + "src": "5464:51:68", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 45184, + "name": "MessagesNotSorted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38188, + "src": "5485:17:68", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 45185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5485:19:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 45186, + "nodeType": "RevertStatement", + "src": "5478:26:68" + } + ] + } + }, + { + "assignments": [ + 45191 + ], + "declarations": [ + { + "constant": false, + "id": 45191, + "mutability": "mutable", + "name": "voteSubmission", + "nameLocation": "5561:14:68", + "nodeType": "VariableDeclaration", + "scope": 45243, + "src": "5525:50:68", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeString": "struct EpochVoteBottomUpSubmission" + }, + "typeName": { + "id": 45190, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 45189, + "name": "EpochVoteBottomUpSubmission", + "nameLocations": [ + "5525:27:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44233, + "src": "5525:27:68" + }, + "referencedDeclaration": 44233, + "src": "5525:27:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeString": "struct EpochVoteBottomUpSubmission" + } + }, + "visibility": "internal" + } + ], + "id": 45197, + "initialValue": { + "baseExpression": { + "expression": { + "id": 45192, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "5578:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45193, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5580:20:68", + "memberName": "epochVoteSubmissions", + "nodeType": "MemberAccess", + "referencedDeclaration": 42642, + "src": "5578:22:68", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_EpochVoteBottomUpSubmission_$44233_storage_$", + "typeString": "mapping(uint64 => struct EpochVoteBottomUpSubmission storage ref)" + } + }, + "id": 45196, + "indexExpression": { + "expression": { + "id": 45194, + "name": "checkpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45132, + "src": "5601:10:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeString": "struct BottomUpCheckpoint calldata" + } + }, + "id": 45195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5612:5:68", + "memberName": "epoch", + "nodeType": "MemberAccess", + "referencedDeclaration": 44141, + "src": "5601:16:68", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5578:40:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage", + "typeString": "struct EpochVoteBottomUpSubmission storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5525:93:68" + }, + { + "assignments": [ + 45199 + ], + "declarations": [ + { + "constant": false, + "id": 45199, + "mutability": "mutable", + "name": "shouldExecuteVote", + "nameLocation": "5661:17:68", + "nodeType": "VariableDeclaration", + "scope": 45243, + "src": "5656:22:68", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 45198, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5656:4:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 45211, + "initialValue": { + "arguments": [ + { + "id": 45201, + "name": "voteSubmission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45191, + "src": "5701:14:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeString": "struct EpochVoteBottomUpSubmission storage pointer" + } + }, + { + "id": 45202, + "name": "checkpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45132, + "src": "5717:10:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeString": "struct BottomUpCheckpoint calldata" + } + }, + { + "expression": { + "id": 45203, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5729:3:68", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 45204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5733:6:68", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5729:10:68", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "expression": { + "id": 45205, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "5741:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45206, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5743:5:68", + "memberName": "stake", + "nodeType": "MemberAccess", + "referencedDeclaration": 42647, + "src": "5741:7:68", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 45209, + "indexExpression": { + "expression": { + "id": 45207, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5749:3:68", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 45208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5753:6:68", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5749:10:68", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5741:19:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeString": "struct EpochVoteBottomUpSubmission storage pointer" + }, + { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeString": "struct BottomUpCheckpoint calldata" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 45200, + "name": "_submitBottomUpVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45550, + "src": "5681:19:68", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr_$_t_struct$_BottomUpCheckpoint_$44156_calldata_ptr_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (struct EpochVoteBottomUpSubmission storage pointer,struct BottomUpCheckpoint calldata,address,uint256) returns (bool)" + } + }, + "id": 45210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5681:80:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5656:105:68" + }, + { + "condition": { + "id": 45212, + "name": "shouldExecuteVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45199, + "src": "5776:17:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 45241, + "nodeType": "Block", + "src": "5859:407:68", + "statements": [ + { + "assignments": [ + 45219, + 45221 + ], + "declarations": [ + { + "constant": false, + "id": 45219, + "mutability": "mutable", + "name": "nextExecutableEpoch", + "nameLocation": "5948:19:68", + "nodeType": "VariableDeclaration", + "scope": 45241, + "src": "5941:26:68", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 45218, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "5941:6:68", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 45221, + "mutability": "mutable", + "name": "isExecutableEpoch", + "nameLocation": "5974:17:68", + "nodeType": "VariableDeclaration", + "scope": 45241, + "src": "5969:22:68", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 45220, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5969:4:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 45225, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 45222, + "name": "LibVoting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43438, + "src": "5995:9:68", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibVoting_$43438_$", + "typeString": "type(library LibVoting)" + } + }, + "id": 45223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6005:22:68", + "memberName": "getNextExecutableEpoch", + "nodeType": "MemberAccess", + "referencedDeclaration": 43219, + "src": "5995:32:68", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint64_$_t_bool_$", + "typeString": "function () view returns (uint64,bool)" + } + }, + "id": 45224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5995:34:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint64_$_t_bool_$", + "typeString": "tuple(uint64,bool)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5940:89:68" + }, + { + "condition": { + "id": 45226, + "name": "isExecutableEpoch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45221, + "src": "6048:17:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 45240, + "nodeType": "IfStatement", + "src": "6044:212:68", + "trueBody": { + "id": 45239, + "nodeType": "Block", + "src": "6067:189:68", + "statements": [ + { + "assignments": [ + 45229 + ], + "declarations": [ + { + "constant": false, + "id": 45229, + "mutability": "mutable", + "name": "nextVoteSubmission", + "nameLocation": "6121:18:68", + "nodeType": "VariableDeclaration", + "scope": 45239, + "src": "6085:54:68", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeString": "struct EpochVoteBottomUpSubmission" + }, + "typeName": { + "id": 45228, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 45227, + "name": "EpochVoteBottomUpSubmission", + "nameLocations": [ + "6085:27:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44233, + "src": "6085:27:68" + }, + "referencedDeclaration": 44233, + "src": "6085:27:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeString": "struct EpochVoteBottomUpSubmission" + } + }, + "visibility": "internal" + } + ], + "id": 45234, + "initialValue": { + "baseExpression": { + "expression": { + "id": 45230, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "6142:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45231, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6144:20:68", + "memberName": "epochVoteSubmissions", + "nodeType": "MemberAccess", + "referencedDeclaration": 42642, + "src": "6142:22:68", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_EpochVoteBottomUpSubmission_$44233_storage_$", + "typeString": "mapping(uint64 => struct EpochVoteBottomUpSubmission storage ref)" + } + }, + "id": 45233, + "indexExpression": { + "id": 45232, + "name": "nextExecutableEpoch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45219, + "src": "6165:19:68", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6142:43:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage", + "typeString": "struct EpochVoteBottomUpSubmission storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6085:100:68" + }, + { + "expression": { + "arguments": [ + { + "id": 45236, + "name": "nextVoteSubmission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45229, + "src": "6222:18:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeString": "struct EpochVoteBottomUpSubmission storage pointer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeString": "struct EpochVoteBottomUpSubmission storage pointer" + } + ], + "id": 45235, + "name": "_commitCheckpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45622, + "src": "6204:17:68", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr_$returns$__$", + "typeString": "function (struct EpochVoteBottomUpSubmission storage pointer)" + } + }, + "id": 45237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6204:37:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 45238, + "nodeType": "ExpressionStatement", + "src": "6204:37:68" + } + ] + } + } + ] + }, + "id": 45242, + "nodeType": "IfStatement", + "src": "5772:494:68", + "trueBody": { + "id": 45217, + "nodeType": "Block", + "src": "5795:58:68", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 45214, + "name": "voteSubmission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45191, + "src": "5827:14:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeString": "struct EpochVoteBottomUpSubmission storage pointer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeString": "struct EpochVoteBottomUpSubmission storage pointer" + } + ], + "id": 45213, + "name": "_commitCheckpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45622, + "src": "5809:17:68", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr_$returns$__$", + "typeString": "function (struct EpochVoteBottomUpSubmission storage pointer)" + } + }, + "id": 45215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5809:33:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 45216, + "nodeType": "ExpressionStatement", + "src": "5809:33:68" + } + ] + } + } + ] + }, + "baseFunctions": [ + 40452 + ], + "documentation": { + "id": 45129, + "nodeType": "StructuredDocumentation", + "src": "4766:182:68", + "text": "@notice methods that allows a validator to submit a checkpoint (batch of messages) and vote for it with it's own voting power.\n @param checkpoint - the batch messages data" + }, + "functionSelector": "f6fd8381", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 45135, + "kind": "modifierInvocation", + "modifierName": { + "id": 45134, + "name": "signableOnly", + "nameLocations": [ + "5028:12:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 42799, + "src": "5028:12:68" + }, + "nodeType": "ModifierInvocation", + "src": "5028:12:68" + } + ], + "name": "submitCheckpoint", + "nameLocation": "4962:16:68", + "parameters": { + "id": 45133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 45132, + "mutability": "mutable", + "name": "checkpoint", + "nameLocation": "5007:10:68", + "nodeType": "VariableDeclaration", + "scope": 45244, + "src": "4979:38:68", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeString": "struct BottomUpCheckpoint" + }, + "typeName": { + "id": 45131, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 45130, + "name": "BottomUpCheckpoint", + "nameLocations": [ + "4979:18:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44156, + "src": "4979:18:68" + }, + "referencedDeclaration": 44156, + "src": "4979:18:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeString": "struct BottomUpCheckpoint" + } + }, + "visibility": "internal" + } + ], + "src": "4978:40:68" + }, + "returnParameters": { + "id": 45136, + "nodeType": "ParameterList", + "parameters": [], + "src": "5041:0:68" + }, + "scope": 45623, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 45307, + "nodeType": "FunctionDefinition", + "src": "6360:562:68", + "nodes": [], + "body": { + "id": 45306, + "nodeType": "Block", + "src": "6413:509:68", + "nodes": [], + "statements": [ + { + "assignments": [ + 45253 + ], + "declarations": [ + { + "constant": false, + "id": 45253, + "mutability": "mutable", + "name": "validatorsLength", + "nameLocation": "6431:16:68", + "nodeType": "VariableDeclaration", + "scope": 45306, + "src": "6423:24:68", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 45252, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6423:7:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 45258, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 45254, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "6450:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45255, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6452:10:68", + "memberName": "validators", + "nodeType": "MemberAccess", + "referencedDeclaration": 42636, + "src": "6450:12:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$32722_storage", + "typeString": "struct EnumerableSet.AddressSet storage ref" + } + }, + "id": 45256, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6463:6:68", + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 32818, + "src": "6450:19:68", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32722_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$32722_storage_ptr_$", + "typeString": "function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)" + } + }, + "id": 45257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6450:21:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6423:48:68" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 45261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 45259, + "name": "validatorsLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45253, + "src": "6486:16:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 45260, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6506:1:68", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6486:21:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 45266, + "nodeType": "IfStatement", + "src": "6482:81:68", + "trueBody": { + "id": 45265, + "nodeType": "Block", + "src": "6509:54:68", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 45262, + "name": "NoValidatorsInSubnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38192, + "src": "6530:20:68", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 45263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6530:22:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 45264, + "nodeType": "RevertStatement", + "src": "6523:29:68" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 45269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 45267, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45247, + "src": "6576:6:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 45268, + "name": "validatorsLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45253, + "src": "6585:16:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6576:25:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 45274, + "nodeType": "IfStatement", + "src": "6572:91:68", + "trueBody": { + "id": 45273, + "nodeType": "Block", + "src": "6603:60:68", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 45270, + "name": "NotEnoughBalanceForRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38202, + "src": "6624:26:68", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 45271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6624:28:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 45272, + "nodeType": "RevertStatement", + "src": "6617:35:68" + } + ] + } + }, + { + "assignments": [ + 45276 + ], + "declarations": [ + { + "constant": false, + "id": 45276, + "mutability": "mutable", + "name": "rewardAmount", + "nameLocation": "6681:12:68", + "nodeType": "VariableDeclaration", + "scope": 45306, + "src": "6673:20:68", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 45275, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6673:7:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 45280, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 45279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 45277, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45247, + "src": "6696:6:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 45278, + "name": "validatorsLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45253, + "src": "6705:16:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6696:25:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6673:48:68" + }, + { + "body": { + "id": 45304, + "nodeType": "Block", + "src": "6776:140:68", + "statements": [ + { + "expression": { + "id": 45298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 45288, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "6790:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45295, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6792:18:68", + "memberName": "accumulatedRewards", + "nodeType": "MemberAccess", + "referencedDeclaration": 42652, + "src": "6790:20:68", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 45296, + "indexExpression": { + "arguments": [ + { + "id": 45293, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45282, + "src": "6827:1:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "id": 45290, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "6811:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45291, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6813:10:68", + "memberName": "validators", + "nodeType": "MemberAccess", + "referencedDeclaration": 42636, + "src": "6811:12:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$32722_storage", + "typeString": "struct EnumerableSet.AddressSet storage ref" + } + }, + "id": 45292, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6824:2:68", + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 32845, + "src": "6811:15:68", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32722_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$32722_storage_ptr_$", + "typeString": "function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)" + } + }, + "id": 45294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6811:18:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6790:40:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 45297, + "name": "rewardAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45276, + "src": "6834:12:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6790:56:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 45299, + "nodeType": "ExpressionStatement", + "src": "6790:56:68" + }, + { + "id": 45303, + "nodeType": "UncheckedBlock", + "src": "6860:46:68", + "statements": [ + { + "expression": { + "id": 45301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "6888:3:68", + "subExpression": { + "id": 45300, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45282, + "src": "6890:1:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 45302, + "nodeType": "ExpressionStatement", + "src": "6888:3:68" + } + ] + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 45287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 45285, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45282, + "src": "6752:1:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 45286, + "name": "validatorsLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45253, + "src": "6756:16:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6752:20:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 45305, + "initializationExpression": { + "assignments": [ + 45282 + ], + "declarations": [ + { + "constant": false, + "id": 45282, + "mutability": "mutable", + "name": "i", + "nameLocation": "6745:1:68", + "nodeType": "VariableDeclaration", + "scope": 45305, + "src": "6737:9:68", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 45281, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6737:7:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 45284, + "initialValue": { + "hexValue": "30", + "id": 45283, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6749:1:68", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "6737:13:68" + }, + "nodeType": "ForStatement", + "src": "6732:184:68" + } + ] + }, + "baseFunctions": [ + 40458 + ], + "documentation": { + "id": 45245, + "nodeType": "StructuredDocumentation", + "src": "6278:77:68", + "text": "@notice method that distributes the rewards for the subnet to validators." + }, + "functionSelector": "a9fb763c", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 45250, + "kind": "modifierInvocation", + "modifierName": { + "id": 45249, + "name": "onlyGateway", + "nameLocations": [ + "6401:11:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 42792, + "src": "6401:11:68" + }, + "nodeType": "ModifierInvocation", + "src": "6401:11:68" + } + ], + "name": "reward", + "nameLocation": "6369:6:68", + "parameters": { + "id": 45248, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 45247, + "mutability": "mutable", + "name": "amount", + "nameLocation": "6384:6:68", + "nodeType": "VariableDeclaration", + "scope": 45307, + "src": "6376:14:68", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 45246, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6376:7:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6375:16:68" + }, + "returnParameters": { + "id": 45251, + "nodeType": "ParameterList", + "parameters": [], + "src": "6413:0:68" + }, + "scope": 45623, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 45356, + "nodeType": "FunctionDefinition", + "src": "7038:342:68", + "nodes": [], + "body": { + "id": 45355, + "nodeType": "Block", + "src": "7080:300:68", + "nodes": [], + "statements": [ + { + "assignments": [ + 45314 + ], + "declarations": [ + { + "constant": false, + "id": 45314, + "mutability": "mutable", + "name": "amount", + "nameLocation": "7098:6:68", + "nodeType": "VariableDeclaration", + "scope": 45355, + "src": "7090:14:68", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 45313, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7090:7:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 45320, + "initialValue": { + "baseExpression": { + "expression": { + "id": 45315, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "7107:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45316, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7109:18:68", + "memberName": "accumulatedRewards", + "nodeType": "MemberAccess", + "referencedDeclaration": 42652, + "src": "7107:20:68", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 45319, + "indexExpression": { + "expression": { + "id": 45317, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7128:3:68", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 45318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7132:6:68", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "7128:10:68", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7107:32:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7090:49:68" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 45323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 45321, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45314, + "src": "7154:6:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 45322, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7164:1:68", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7154:11:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 45328, + "nodeType": "IfStatement", + "src": "7150:69:68", + "trueBody": { + "id": 45327, + "nodeType": "Block", + "src": "7167:52:68", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 45324, + "name": "NoRewardToWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38190, + "src": "7188:18:68", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 45325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7188:20:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 45326, + "nodeType": "RevertStatement", + "src": "7181:27:68" + } + ] + } + }, + { + "expression": { + "id": 45336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 45329, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "7229:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45333, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7231:18:68", + "memberName": "accumulatedRewards", + "nodeType": "MemberAccess", + "referencedDeclaration": 42652, + "src": "7229:20:68", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 45334, + "indexExpression": { + "expression": { + "id": 45331, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7250:3:68", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 45332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7254:6:68", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "7250:10:68", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7229:32:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 45335, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7264:1:68", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7229:36:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 45337, + "nodeType": "ExpressionStatement", + "src": "7229:36:68" + }, + { + "expression": { + "arguments": [ + { + "id": 45343, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45314, + "src": "7318:6:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "expression": { + "id": 45339, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "7285:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45340, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7287:14:68", + "memberName": "ipcGatewayAddr", + "nodeType": "MemberAccess", + "referencedDeclaration": 42683, + "src": "7285:16:68", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 45338, + "name": "IGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40421, + "src": "7276:8:68", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IGateway_$40421_$", + "typeString": "type(contract IGateway)" + } + }, + "id": 45341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7276:26:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGateway_$40421", + "typeString": "contract IGateway" + } + }, + "id": 45342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7303:14:68", + "memberName": "releaseRewards", + "nodeType": "MemberAccess", + "referencedDeclaration": 40364, + "src": "7276:41:68", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 45344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7276:49:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 45345, + "nodeType": "ExpressionStatement", + "src": "7276:49:68" + }, + { + "expression": { + "arguments": [ + { + "id": 45352, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45314, + "src": "7366:6:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "expression": { + "id": 45348, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7344:3:68", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 45349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7348:6:68", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "7344:10:68", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 45347, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7336:8:68", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 45346, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7336:8:68", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 45350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7336:19:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 45351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7356:9:68", + "memberName": "sendValue", + "nodeType": "MemberAccess", + "referencedDeclaration": 29541, + "src": "7336:29:68", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$", + "typeString": "function (address payable,uint256)" + } + }, + "id": 45353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7336:37:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 45354, + "nodeType": "ExpressionStatement", + "src": "7336:37:68" + } + ] + }, + "documentation": { + "id": 45308, + "nodeType": "StructuredDocumentation", + "src": "6928:105:68", + "text": "@notice method that allows a validator to withdraw it's accumulated rewards using pull-based transfer" + }, + "functionSelector": "3ccfd60b", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 45311, + "kind": "modifierInvocation", + "modifierName": { + "id": 45310, + "name": "signableOnly", + "nameLocations": [ + "7067:12:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 42799, + "src": "7067:12:68" + }, + "nodeType": "ModifierInvocation", + "src": "7067:12:68" + } + ], + "name": "withdraw", + "nameLocation": "7047:8:68", + "parameters": { + "id": 45309, + "nodeType": "ParameterList", + "parameters": [], + "src": "7055:2:68" + }, + "returnParameters": { + "id": 45312, + "nodeType": "ParameterList", + "parameters": [], + "src": "7080:0:68" + }, + "scope": 45623, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 45414, + "nodeType": "FunctionDefinition", + "src": "7422:422:68", + "nodes": [], + "body": { + "id": 45413, + "nodeType": "Block", + "src": "7588:256:68", + "nodes": [], + "statements": [ + { + "expression": { + "id": 45379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 45373, + "name": "source", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45363, + "src": "7598:6:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "baseExpression": { + "expression": { + "id": 45374, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "7607:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45375, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7609:20:68", + "memberName": "committedCheckpoints", + "nodeType": "MemberAccess", + "referencedDeclaration": 42632, + "src": "7607:22:68", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$44156_storage_$", + "typeString": "mapping(uint64 => struct BottomUpCheckpoint storage ref)" + } + }, + "id": 45377, + "indexExpression": { + "id": 45376, + "name": "e", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45359, + "src": "7630:1:68", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7607:25:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeString": "struct BottomUpCheckpoint storage ref" + } + }, + "id": 45378, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7633:6:68", + "memberName": "source", + "nodeType": "MemberAccess", + "referencedDeclaration": 44139, + "src": "7607:32:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeString": "struct SubnetID storage ref" + } + }, + "src": "7598:41:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + } + }, + "id": 45380, + "nodeType": "ExpressionStatement", + "src": "7598:41:68" + }, + { + "expression": { + "id": 45387, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 45381, + "name": "epoch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45365, + "src": "7649:5:68", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "baseExpression": { + "expression": { + "id": 45382, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "7657:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45383, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7659:20:68", + "memberName": "committedCheckpoints", + "nodeType": "MemberAccess", + "referencedDeclaration": 42632, + "src": "7657:22:68", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$44156_storage_$", + "typeString": "mapping(uint64 => struct BottomUpCheckpoint storage ref)" + } + }, + "id": 45385, + "indexExpression": { + "id": 45384, + "name": "e", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45359, + "src": "7680:1:68", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7657:25:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeString": "struct BottomUpCheckpoint storage ref" + } + }, + "id": 45386, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7683:5:68", + "memberName": "epoch", + "nodeType": "MemberAccess", + "referencedDeclaration": 44141, + "src": "7657:31:68", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "7649:39:68", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 45388, + "nodeType": "ExpressionStatement", + "src": "7649:39:68" + }, + { + "expression": { + "id": 45395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 45389, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45367, + "src": "7698:3:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "baseExpression": { + "expression": { + "id": 45390, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "7704:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45391, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7706:20:68", + "memberName": "committedCheckpoints", + "nodeType": "MemberAccess", + "referencedDeclaration": 42632, + "src": "7704:22:68", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$44156_storage_$", + "typeString": "mapping(uint64 => struct BottomUpCheckpoint storage ref)" + } + }, + "id": 45393, + "indexExpression": { + "id": 45392, + "name": "e", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45359, + "src": "7727:1:68", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7704:25:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeString": "struct BottomUpCheckpoint storage ref" + } + }, + "id": 45394, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7730:3:68", + "memberName": "fee", + "nodeType": "MemberAccess", + "referencedDeclaration": 44143, + "src": "7704:29:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7698:35:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 45396, + "nodeType": "ExpressionStatement", + "src": "7698:35:68" + }, + { + "expression": { + "id": 45403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 45397, + "name": "prevHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45369, + "src": "7743:8:68", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "baseExpression": { + "expression": { + "id": 45398, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "7754:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45399, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7756:20:68", + "memberName": "committedCheckpoints", + "nodeType": "MemberAccess", + "referencedDeclaration": 42632, + "src": "7754:22:68", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$44156_storage_$", + "typeString": "mapping(uint64 => struct BottomUpCheckpoint storage ref)" + } + }, + "id": 45401, + "indexExpression": { + "id": 45400, + "name": "e", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45359, + "src": "7777:1:68", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7754:25:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeString": "struct BottomUpCheckpoint storage ref" + } + }, + "id": 45402, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7780:8:68", + "memberName": "prevHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 44153, + "src": "7754:34:68", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "7743:45:68", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 45404, + "nodeType": "ExpressionStatement", + "src": "7743:45:68" + }, + { + "expression": { + "id": 45411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 45405, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45371, + "src": "7798:5:68", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "baseExpression": { + "expression": { + "id": 45406, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "7806:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45407, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7808:20:68", + "memberName": "committedCheckpoints", + "nodeType": "MemberAccess", + "referencedDeclaration": 42632, + "src": "7806:22:68", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$44156_storage_$", + "typeString": "mapping(uint64 => struct BottomUpCheckpoint storage ref)" + } + }, + "id": 45409, + "indexExpression": { + "id": 45408, + "name": "e", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45359, + "src": "7829:1:68", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7806:25:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeString": "struct BottomUpCheckpoint storage ref" + } + }, + "id": 45410, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7832:5:68", + "memberName": "proof", + "nodeType": "MemberAccess", + "referencedDeclaration": 44155, + "src": "7806:31:68", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "src": "7798:39:68", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 45412, + "nodeType": "ExpressionStatement", + "src": "7798:39:68" + } + ] + }, + "documentation": { + "id": 45357, + "nodeType": "StructuredDocumentation", + "src": "7386:31:68", + "text": "@notice get the total stake" + }, + "functionSelector": "98903748", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "committedCheckpoints", + "nameLocation": "7431:20:68", + "parameters": { + "id": 45360, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 45359, + "mutability": "mutable", + "name": "e", + "nameLocation": "7468:1:68", + "nodeType": "VariableDeclaration", + "scope": 45414, + "src": "7461:8:68", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 45358, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "7461:6:68", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "7451:24:68" + }, + "returnParameters": { + "id": 45372, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 45363, + "mutability": "mutable", + "name": "source", + "nameLocation": "7515:6:68", + "nodeType": "VariableDeclaration", + "scope": 45414, + "src": "7499:22:68", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID" + }, + "typeName": { + "id": 45362, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 45361, + "name": "SubnetID", + "nameLocations": [ + "7499:8:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44279, + "src": "7499:8:68" + }, + "referencedDeclaration": 44279, + "src": "7499:8:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeString": "struct SubnetID" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 45365, + "mutability": "mutable", + "name": "epoch", + "nameLocation": "7530:5:68", + "nodeType": "VariableDeclaration", + "scope": 45414, + "src": "7523:12:68", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 45364, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "7523:6:68", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 45367, + "mutability": "mutable", + "name": "fee", + "nameLocation": "7545:3:68", + "nodeType": "VariableDeclaration", + "scope": 45414, + "src": "7537:11:68", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 45366, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7537:7:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 45369, + "mutability": "mutable", + "name": "prevHash", + "nameLocation": "7558:8:68", + "nodeType": "VariableDeclaration", + "scope": 45414, + "src": "7550:16:68", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 45368, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7550:7:68", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 45371, + "mutability": "mutable", + "name": "proof", + "nameLocation": "7581:5:68", + "nodeType": "VariableDeclaration", + "scope": 45414, + "src": "7568:18:68", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 45370, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7568:5:68", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "7498:89:68" + }, + "scope": 45623, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 45443, + "nodeType": "FunctionDefinition", + "src": "8032:287:68", + "nodes": [], + "body": { + "id": 45442, + "nodeType": "Block", + "src": "8134:185:68", + "nodes": [], + "statements": [ + { + "assignments": [ + 45426 + ], + "declarations": [ + { + "constant": false, + "id": 45426, + "mutability": "mutable", + "name": "voteSubmission", + "nameLocation": "8180:14:68", + "nodeType": "VariableDeclaration", + "scope": 45442, + "src": "8144:50:68", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeString": "struct EpochVoteBottomUpSubmission" + }, + "typeName": { + "id": 45425, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 45424, + "name": "EpochVoteBottomUpSubmission", + "nameLocations": [ + "8144:27:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44233, + "src": "8144:27:68" + }, + "referencedDeclaration": 44233, + "src": "8144:27:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeString": "struct EpochVoteBottomUpSubmission" + } + }, + "visibility": "internal" + } + ], + "id": 45431, + "initialValue": { + "baseExpression": { + "expression": { + "id": 45427, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "8197:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45428, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8199:20:68", + "memberName": "epochVoteSubmissions", + "nodeType": "MemberAccess", + "referencedDeclaration": 42642, + "src": "8197:22:68", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_EpochVoteBottomUpSubmission_$44233_storage_$", + "typeString": "mapping(uint64 => struct EpochVoteBottomUpSubmission storage ref)" + } + }, + "id": 45430, + "indexExpression": { + "id": 45429, + "name": "epoch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45417, + "src": "8220:5:68", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8197:29:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage", + "typeString": "struct EpochVoteBottomUpSubmission storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8144:82:68" + }, + { + "expression": { + "baseExpression": { + "baseExpression": { + "expression": { + "expression": { + "id": 45432, + "name": "voteSubmission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45426, + "src": "8244:14:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeString": "struct EpochVoteBottomUpSubmission storage pointer" + } + }, + "id": 45433, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8259:4:68", + "memberName": "vote", + "nodeType": "MemberAccess", + "referencedDeclaration": 44227, + "src": "8244:19:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteSubmission_$44215_storage", + "typeString": "struct EpochVoteSubmission storage ref" + } + }, + "id": 45434, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8264:10:68", + "memberName": "submitters", + "nodeType": "MemberAccess", + "referencedDeclaration": 44208, + "src": "8244:30:68", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(address => bool))" + } + }, + "id": 45438, + "indexExpression": { + "expression": { + "expression": { + "id": 45435, + "name": "voteSubmission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45426, + "src": "8275:14:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeString": "struct EpochVoteBottomUpSubmission storage pointer" + } + }, + "id": 45436, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8290:4:68", + "memberName": "vote", + "nodeType": "MemberAccess", + "referencedDeclaration": 44227, + "src": "8275:19:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteSubmission_$44215_storage", + "typeString": "struct EpochVoteSubmission storage ref" + } + }, + "id": 45437, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8295:5:68", + "memberName": "nonce", + "nodeType": "MemberAccess", + "referencedDeclaration": 44198, + "src": "8275:25:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8244:57:68", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 45440, + "indexExpression": { + "id": 45439, + "name": "submitter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45419, + "src": "8302:9:68", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8244:68:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 45423, + "id": 45441, + "nodeType": "Return", + "src": "8237:75:68" + } + ] + }, + "documentation": { + "id": 45415, + "nodeType": "StructuredDocumentation", + "src": "7850:177:68", + "text": "@notice whether a validator has voted for a checkpoint submission during an epoch\n @param epoch - the epoch to check\n @param submitter - the validator to check" + }, + "functionSelector": "66d7bbbc", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "hasValidatorVotedForSubmission", + "nameLocation": "8041:30:68", + "parameters": { + "id": 45420, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 45417, + "mutability": "mutable", + "name": "epoch", + "nameLocation": "8079:5:68", + "nodeType": "VariableDeclaration", + "scope": 45443, + "src": "8072:12:68", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 45416, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "8072:6:68", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 45419, + "mutability": "mutable", + "name": "submitter", + "nameLocation": "8094:9:68", + "nodeType": "VariableDeclaration", + "scope": 45443, + "src": "8086:17:68", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 45418, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8086:7:68", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "8071:33:68" + }, + "returnParameters": { + "id": 45423, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 45422, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 45443, + "src": "8128:4:68", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 45421, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8128:4:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "8127:6:68" + }, + "scope": 45623, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 45470, + "nodeType": "FunctionDefinition", + "src": "8550:241:68", + "nodes": [], + "body": { + "id": 45469, + "nodeType": "Block", + "src": "8685:106:68", + "nodes": [], + "statements": [ + { + "expression": { + "id": 45459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 45454, + "name": "checkpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45452, + "src": "8695:10:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_memory_ptr", + "typeString": "struct BottomUpCheckpoint memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "expression": { + "id": 45455, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "8708:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45456, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8710:20:68", + "memberName": "committedCheckpoints", + "nodeType": "MemberAccess", + "referencedDeclaration": 42632, + "src": "8708:22:68", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$44156_storage_$", + "typeString": "mapping(uint64 => struct BottomUpCheckpoint storage ref)" + } + }, + "id": 45458, + "indexExpression": { + "id": 45457, + "name": "epoch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45446, + "src": "8731:5:68", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8708:29:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeString": "struct BottomUpCheckpoint storage ref" + } + }, + "src": "8695:42:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_memory_ptr", + "typeString": "struct BottomUpCheckpoint memory" + } + }, + "id": 45460, + "nodeType": "ExpressionStatement", + "src": "8695:42:68" + }, + { + "expression": { + "id": 45467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 45461, + "name": "exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45449, + "src": "8747:6:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 45466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "8756:28:68", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 45462, + "name": "checkpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45452, + "src": "8757:10:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_memory_ptr", + "typeString": "struct BottomUpCheckpoint memory" + } + }, + "id": 45463, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8768:6:68", + "memberName": "source", + "nodeType": "MemberAccess", + "referencedDeclaration": 44139, + "src": "8757:17:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + } + }, + "id": 45464, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8775:7:68", + "memberName": "isEmpty", + "nodeType": "MemberAccess", + "referencedDeclaration": 44130, + "src": "8757:25:68", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeString": "function (struct SubnetID memory) pure returns (bool)" + } + }, + "id": 45465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8757:27:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8747:37:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 45468, + "nodeType": "ExpressionStatement", + "src": "8747:37:68" + } + ] + }, + "documentation": { + "id": 45444, + "nodeType": "StructuredDocumentation", + "src": "8325:220:68", + "text": "@notice returns the committed bottom-up checkpoint at specific epoch\n @param epoch - the epoch to check\n @return exists - whether the checkpoint exists\n @return checkpoint - the checkpoint struct" + }, + "functionSelector": "6cb2ecee", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "bottomUpCheckpointAtEpoch", + "nameLocation": "8559:25:68", + "parameters": { + "id": 45447, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 45446, + "mutability": "mutable", + "name": "epoch", + "nameLocation": "8601:5:68", + "nodeType": "VariableDeclaration", + "scope": 45470, + "src": "8594:12:68", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 45445, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "8594:6:68", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "8584:28:68" + }, + "returnParameters": { + "id": 45453, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 45449, + "mutability": "mutable", + "name": "exists", + "nameLocation": "8639:6:68", + "nodeType": "VariableDeclaration", + "scope": 45470, + "src": "8634:11:68", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 45448, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8634:4:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 45452, + "mutability": "mutable", + "name": "checkpoint", + "nameLocation": "8673:10:68", + "nodeType": "VariableDeclaration", + "scope": 45470, + "src": "8647:36:68", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_memory_ptr", + "typeString": "struct BottomUpCheckpoint" + }, + "typeName": { + "id": 45451, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 45450, + "name": "BottomUpCheckpoint", + "nameLocations": [ + "8647:18:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44156, + "src": "8647:18:68" + }, + "referencedDeclaration": 44156, + "src": "8647:18:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeString": "struct BottomUpCheckpoint" + } + }, + "visibility": "internal" + } + ], + "src": "8633:51:68" + }, + "scope": 45623, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 45496, + "nodeType": "FunctionDefinition", + "src": "9019:240:68", + "nodes": [], + "body": { + "id": 45495, + "nodeType": "Block", + "src": "9110:149:68", + "nodes": [], + "statements": [ + { + "assignments": [ + 45481, + 45484 + ], + "declarations": [ + { + "constant": false, + "id": 45481, + "mutability": "mutable", + "name": "exists", + "nameLocation": "9126:6:68", + "nodeType": "VariableDeclaration", + "scope": 45495, + "src": "9121:11:68", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 45480, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9121:4:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 45484, + "mutability": "mutable", + "name": "checkpoint", + "nameLocation": "9160:10:68", + "nodeType": "VariableDeclaration", + "scope": 45495, + "src": "9134:36:68", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_memory_ptr", + "typeString": "struct BottomUpCheckpoint" + }, + "typeName": { + "id": 45483, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 45482, + "name": "BottomUpCheckpoint", + "nameLocations": [ + "9134:18:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44156, + "src": "9134:18:68" + }, + "referencedDeclaration": 44156, + "src": "9134:18:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeString": "struct BottomUpCheckpoint" + } + }, + "visibility": "internal" + } + ], + "id": 45488, + "initialValue": { + "arguments": [ + { + "id": 45486, + "name": "epoch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45473, + "src": "9200:5:68", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 45485, + "name": "bottomUpCheckpointAtEpoch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45470, + "src": "9174:25:68", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint64_$returns$_t_bool_$_t_struct$_BottomUpCheckpoint_$44156_memory_ptr_$", + "typeString": "function (uint64) view returns (bool,struct BottomUpCheckpoint memory)" + } + }, + "id": 45487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9174:32:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_BottomUpCheckpoint_$44156_memory_ptr_$", + "typeString": "tuple(bool,struct BottomUpCheckpoint memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9120:86:68" + }, + { + "expression": { + "components": [ + { + "id": 45489, + "name": "exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45481, + "src": "9224:6:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 45490, + "name": "checkpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45484, + "src": "9232:10:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_memory_ptr", + "typeString": "struct BottomUpCheckpoint memory" + } + }, + "id": 45491, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9243:6:68", + "memberName": "toHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 40594, + "src": "9232:17:68", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_BottomUpCheckpoint_$44156_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_BottomUpCheckpoint_$44156_memory_ptr_$", + "typeString": "function (struct BottomUpCheckpoint memory) pure returns (bytes32)" + } + }, + "id": 45492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9232:19:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 45493, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9223:29:68", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$", + "typeString": "tuple(bool,bytes32)" + } + }, + "functionReturnParameters": 45479, + "id": 45494, + "nodeType": "Return", + "src": "9216:36:68" + } + ] + }, + "documentation": { + "id": 45471, + "nodeType": "StructuredDocumentation", + "src": "8797:217:68", + "text": "@notice returns the historical committed bottom-up checkpoint hash\n @param epoch - the epoch to check\n @return exists - whether the checkpoint exists\n @return hash - the hash of the checkpoint" + }, + "functionSelector": "133f74ea", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "bottomUpCheckpointHashAtEpoch", + "nameLocation": "9028:29:68", + "parameters": { + "id": 45474, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 45473, + "mutability": "mutable", + "name": "epoch", + "nameLocation": "9065:5:68", + "nodeType": "VariableDeclaration", + "scope": 45496, + "src": "9058:12:68", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 45472, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "9058:6:68", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "9057:14:68" + }, + "returnParameters": { + "id": 45479, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 45476, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 45496, + "src": "9095:4:68", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 45475, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9095:4:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 45478, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 45496, + "src": "9101:7:68", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 45477, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "9101:7:68", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "9094:15:68" + }, + "scope": 45623, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 45550, + "nodeType": "FunctionDefinition", + "src": "9501:750:68", + "nodes": [], + "body": { + "id": 45549, + "nodeType": "Block", + "src": "9753:498:68", + "nodes": [], + "statements": [ + { + "assignments": [ + 45513 + ], + "declarations": [ + { + "constant": false, + "id": 45513, + "mutability": "mutable", + "name": "submissionHash", + "nameLocation": "9771:14:68", + "nodeType": "VariableDeclaration", + "scope": 45549, + "src": "9763:22:68", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 45512, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "9763:7:68", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 45517, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 45514, + "name": "submission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45503, + "src": "9788:10:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeString": "struct BottomUpCheckpoint calldata" + } + }, + "id": 45515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9799:6:68", + "memberName": "toHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 40594, + "src": "9788:17:68", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_BottomUpCheckpoint_$44156_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_BottomUpCheckpoint_$44156_memory_ptr_$", + "typeString": "function (struct BottomUpCheckpoint memory) pure returns (bytes32)" + } + }, + "id": 45516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9788:19:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9763:44:68" + }, + { + "expression": { + "id": 45531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 45518, + "name": "shouldExecuteVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45510, + "src": "9818:17:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 45521, + "name": "voteSubmission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45500, + "src": "9872:14:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeString": "struct EpochVoteBottomUpSubmission storage pointer" + } + }, + "id": 45522, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9887:4:68", + "memberName": "vote", + "nodeType": "MemberAccess", + "referencedDeclaration": 44227, + "src": "9872:19:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteSubmission_$44215_storage", + "typeString": "struct EpochVoteSubmission storage ref" + } + }, + { + "id": 45523, + "name": "submissionHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45513, + "src": "9905:14:68", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 45524, + "name": "submitterAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45505, + "src": "9933:16:68", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 45525, + "name": "submitterWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45507, + "src": "9963:15:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 45526, + "name": "submission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45503, + "src": "9992:10:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeString": "struct BottomUpCheckpoint calldata" + } + }, + "id": 45527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10003:5:68", + "memberName": "epoch", + "nodeType": "MemberAccess", + "referencedDeclaration": 44141, + "src": "9992:16:68", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "expression": { + "id": 45528, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "10022:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45529, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10024:10:68", + "memberName": "totalStake", + "nodeType": "MemberAccess", + "referencedDeclaration": 42616, + "src": "10022:12:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_EpochVoteSubmission_$44215_storage", + "typeString": "struct EpochVoteSubmission storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 45519, + "name": "LibVoting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43438, + "src": "9838:9:68", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibVoting_$43438_$", + "typeString": "type(library LibVoting)" + } + }, + "id": 45520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9848:10:68", + "memberName": "submitVote", + "nodeType": "MemberAccess", + "referencedDeclaration": 43360, + "src": "9838:20:68", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_EpochVoteSubmission_$44215_storage_ptr_$_t_bytes32_$_t_address_$_t_uint256_$_t_uint64_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (struct EpochVoteSubmission storage pointer,bytes32,address,uint256,uint64,uint256) returns (bool)" + } + }, + "id": 45530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9838:206:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "9818:226:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 45532, + "nodeType": "ExpressionStatement", + "src": "9818:226:68" + }, + { + "condition": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "baseExpression": { + "expression": { + "id": 45533, + "name": "voteSubmission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45500, + "src": "10111:14:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeString": "struct EpochVoteBottomUpSubmission storage pointer" + } + }, + "id": 45534, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10126:11:68", + "memberName": "submissions", + "nodeType": "MemberAccess", + "referencedDeclaration": 44232, + "src": "10111:26:68", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BottomUpCheckpoint_$44156_storage_$", + "typeString": "mapping(bytes32 => struct BottomUpCheckpoint storage ref)" + } + }, + "id": 45536, + "indexExpression": { + "id": 45535, + "name": "submissionHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45513, + "src": "10138:14:68", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10111:42:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeString": "struct BottomUpCheckpoint storage ref" + } + }, + "id": 45537, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10154:7:68", + "memberName": "isEmpty", + "nodeType": "MemberAccess", + "referencedDeclaration": 40640, + "src": "10111:50:68", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_BottomUpCheckpoint_$44156_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_BottomUpCheckpoint_$44156_memory_ptr_$", + "typeString": "function (struct BottomUpCheckpoint memory) pure returns (bool)" + } + }, + "id": 45538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10111:52:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 45548, + "nodeType": "IfStatement", + "src": "10107:138:68", + "trueBody": { + "id": 45547, + "nodeType": "Block", + "src": "10165:80:68", + "statements": [ + { + "expression": { + "id": 45545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 45539, + "name": "voteSubmission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45500, + "src": "10179:14:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeString": "struct EpochVoteBottomUpSubmission storage pointer" + } + }, + "id": 45542, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10194:11:68", + "memberName": "submissions", + "nodeType": "MemberAccess", + "referencedDeclaration": 44232, + "src": "10179:26:68", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BottomUpCheckpoint_$44156_storage_$", + "typeString": "mapping(bytes32 => struct BottomUpCheckpoint storage ref)" + } + }, + "id": 45543, + "indexExpression": { + "id": 45541, + "name": "submissionHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45513, + "src": "10206:14:68", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10179:42:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeString": "struct BottomUpCheckpoint storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 45544, + "name": "submission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45503, + "src": "10224:10:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeString": "struct BottomUpCheckpoint calldata" + } + }, + "src": "10179:55:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeString": "struct BottomUpCheckpoint storage ref" + } + }, + "id": 45546, + "nodeType": "ExpressionStatement", + "src": "10179:55:68" + } + ] + } + } + ] + }, + "documentation": { + "id": 45497, + "nodeType": "StructuredDocumentation", + "src": "9265:231:68", + "text": "@notice submits a vote for a checkpoint\n @param voteSubmission - the vote submission data\n @param submitterAddress - the validator that submits the vote\n @param submitterWeight - the weight of the validator" + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_submitBottomUpVote", + "nameLocation": "9510:19:68", + "parameters": { + "id": 45508, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 45500, + "mutability": "mutable", + "name": "voteSubmission", + "nameLocation": "9575:14:68", + "nodeType": "VariableDeclaration", + "scope": 45550, + "src": "9539:50:68", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeString": "struct EpochVoteBottomUpSubmission" + }, + "typeName": { + "id": 45499, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 45498, + "name": "EpochVoteBottomUpSubmission", + "nameLocations": [ + "9539:27:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44233, + "src": "9539:27:68" + }, + "referencedDeclaration": 44233, + "src": "9539:27:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeString": "struct EpochVoteBottomUpSubmission" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 45503, + "mutability": "mutable", + "name": "submission", + "nameLocation": "9627:10:68", + "nodeType": "VariableDeclaration", + "scope": 45550, + "src": "9599:38:68", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeString": "struct BottomUpCheckpoint" + }, + "typeName": { + "id": 45502, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 45501, + "name": "BottomUpCheckpoint", + "nameLocations": [ + "9599:18:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44156, + "src": "9599:18:68" + }, + "referencedDeclaration": 44156, + "src": "9599:18:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeString": "struct BottomUpCheckpoint" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 45505, + "mutability": "mutable", + "name": "submitterAddress", + "nameLocation": "9655:16:68", + "nodeType": "VariableDeclaration", + "scope": 45550, + "src": "9647:24:68", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 45504, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9647:7:68", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 45507, + "mutability": "mutable", + "name": "submitterWeight", + "nameLocation": "9689:15:68", + "nodeType": "VariableDeclaration", + "scope": 45550, + "src": "9681:23:68", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 45506, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9681:7:68", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9529:181:68" + }, + "returnParameters": { + "id": 45511, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 45510, + "mutability": "mutable", + "name": "shouldExecuteVote", + "nameLocation": "9734:17:68", + "nodeType": "VariableDeclaration", + "scope": 45550, + "src": "9729:22:68", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 45509, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9729:4:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "9728:24:68" + }, + "scope": 45623, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "id": 45622, + "nodeType": "FunctionDefinition", + "src": "10420:763:68", + "nodes": [], + "body": { + "id": 45621, + "nodeType": "Block", + "src": "10508:675:68", + "nodes": [], + "statements": [ + { + "assignments": [ + 45559 + ], + "declarations": [ + { + "constant": false, + "id": 45559, + "mutability": "mutable", + "name": "checkpoint", + "nameLocation": "10545:10:68", + "nodeType": "VariableDeclaration", + "scope": 45621, + "src": "10518:37:68", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeString": "struct BottomUpCheckpoint" + }, + "typeName": { + "id": 45558, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 45557, + "name": "BottomUpCheckpoint", + "nameLocations": [ + "10518:18:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44156, + "src": "10518:18:68" + }, + "referencedDeclaration": 44156, + "src": "10518:18:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeString": "struct BottomUpCheckpoint" + } + }, + "visibility": "internal" + } + ], + "id": 45566, + "initialValue": { + "baseExpression": { + "expression": { + "id": 45560, + "name": "voteSubmission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45554, + "src": "10558:14:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeString": "struct EpochVoteBottomUpSubmission storage pointer" + } + }, + "id": 45561, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10573:11:68", + "memberName": "submissions", + "nodeType": "MemberAccess", + "referencedDeclaration": 44232, + "src": "10558:26:68", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BottomUpCheckpoint_$44156_storage_$", + "typeString": "mapping(bytes32 => struct BottomUpCheckpoint storage ref)" + } + }, + "id": 45565, + "indexExpression": { + "expression": { + "expression": { + "id": 45562, + "name": "voteSubmission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45554, + "src": "10585:14:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeString": "struct EpochVoteBottomUpSubmission storage pointer" + } + }, + "id": 45563, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10600:4:68", + "memberName": "vote", + "nodeType": "MemberAccess", + "referencedDeclaration": 44227, + "src": "10585:19:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteSubmission_$44215_storage", + "typeString": "struct EpochVoteSubmission storage ref" + } + }, + "id": 45564, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10605:19:68", + "memberName": "mostVotedSubmission", + "nodeType": "MemberAccess", + "referencedDeclaration": 44202, + "src": "10585:39:68", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10558:67:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeString": "struct BottomUpCheckpoint storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10518:107:68" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 45571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 45567, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "10734:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45568, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10736:26:68", + "memberName": "prevExecutedCheckpointHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 42626, + "src": "10734:28:68", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 45569, + "name": "checkpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45559, + "src": "10766:10:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeString": "struct BottomUpCheckpoint storage pointer" + } + }, + "id": 45570, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10777:8:68", + "memberName": "prevHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 44153, + "src": "10766:19:68", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "10734:51:68", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "documentation": "Ensures the checkpoints are chained. If not, should abort the current checkpoint.", + "id": 45588, + "nodeType": "IfStatement", + "src": "10730:196:68", + "trueBody": { + "id": 45587, + "nodeType": "Block", + "src": "10787:139:68", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 45572, + "name": "voteSubmission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45554, + "src": "10801:14:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeString": "struct EpochVoteBottomUpSubmission storage pointer" + } + }, + "id": 45575, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10816:4:68", + "memberName": "vote", + "nodeType": "MemberAccess", + "referencedDeclaration": 44227, + "src": "10801:19:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteSubmission_$44215_storage", + "typeString": "struct EpochVoteSubmission storage ref" + } + }, + "id": 45576, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10821:5:68", + "memberName": "reset", + "nodeType": "MemberAccess", + "referencedDeclaration": 41132, + "src": "10801:25:68", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_EpochVoteSubmission_$44215_storage_ptr_$returns$__$attached_to$_t_struct$_EpochVoteSubmission_$44215_storage_ptr_$", + "typeString": "function (struct EpochVoteSubmission storage pointer)" + } + }, + "id": 45577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10801:27:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 45578, + "nodeType": "ExpressionStatement", + "src": "10801:27:68" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 45582, + "name": "checkpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45559, + "src": "10878:10:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeString": "struct BottomUpCheckpoint storage pointer" + } + }, + "id": 45583, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10889:5:68", + "memberName": "epoch", + "nodeType": "MemberAccess", + "referencedDeclaration": 44141, + "src": "10878:16:68", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "id": 45579, + "name": "LibVoting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43438, + "src": "10842:9:68", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibVoting_$43438_$", + "typeString": "type(library LibVoting)" + } + }, + "id": 45581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10852:25:68", + "memberName": "removeFromExecutableQueue", + "nodeType": "MemberAccess", + "referencedDeclaration": 43437, + "src": "10842:35:68", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 45584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10842:53:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 45585, + "nodeType": "ExpressionStatement", + "src": "10842:53:68" + }, + { + "functionReturnParameters": 45556, + "id": 45586, + "nodeType": "Return", + "src": "10909:7:68" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 45592, + "name": "checkpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45559, + "src": "10969:10:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeString": "struct BottomUpCheckpoint storage pointer" + } + }, + "id": 45593, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10980:5:68", + "memberName": "epoch", + "nodeType": "MemberAccess", + "referencedDeclaration": 44141, + "src": "10969:16:68", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "id": 45589, + "name": "LibVoting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43438, + "src": "10936:9:68", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibVoting_$43438_$", + "typeString": "type(library LibVoting)" + } + }, + "id": 45591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10946:22:68", + "memberName": "markSubmissionExecuted", + "nodeType": "MemberAccess", + "referencedDeclaration": 43169, + "src": "10936:32:68", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 45594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10936:50:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 45595, + "nodeType": "ExpressionStatement", + "src": "10936:50:68" + }, + { + "expression": { + "id": 45603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 45596, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "10997:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45600, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10999:20:68", + "memberName": "committedCheckpoints", + "nodeType": "MemberAccess", + "referencedDeclaration": 42632, + "src": "10997:22:68", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$44156_storage_$", + "typeString": "mapping(uint64 => struct BottomUpCheckpoint storage ref)" + } + }, + "id": 45601, + "indexExpression": { + "expression": { + "id": 45598, + "name": "checkpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45559, + "src": "11020:10:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeString": "struct BottomUpCheckpoint storage pointer" + } + }, + "id": 45599, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11031:5:68", + "memberName": "epoch", + "nodeType": "MemberAccess", + "referencedDeclaration": 44141, + "src": "11020:16:68", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10997:40:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeString": "struct BottomUpCheckpoint storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 45602, + "name": "checkpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45559, + "src": "11040:10:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeString": "struct BottomUpCheckpoint storage pointer" + } + }, + "src": "10997:53:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeString": "struct BottomUpCheckpoint storage ref" + } + }, + "id": 45604, + "nodeType": "ExpressionStatement", + "src": "10997:53:68" + }, + { + "expression": { + "id": 45611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 45605, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "11060:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45607, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "11062:26:68", + "memberName": "prevExecutedCheckpointHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 42626, + "src": "11060:28:68", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 45608, + "name": "checkpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45559, + "src": "11091:10:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeString": "struct BottomUpCheckpoint storage pointer" + } + }, + "id": 45609, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11102:6:68", + "memberName": "toHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 40594, + "src": "11091:17:68", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_BottomUpCheckpoint_$44156_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_BottomUpCheckpoint_$44156_memory_ptr_$", + "typeString": "function (struct BottomUpCheckpoint memory) pure returns (bytes32)" + } + }, + "id": 45610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11091:19:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "11060:50:68", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 45612, + "nodeType": "ExpressionStatement", + "src": "11060:50:68" + }, + { + "expression": { + "arguments": [ + { + "id": 45618, + "name": "checkpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45559, + "src": "11165:10:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeString": "struct BottomUpCheckpoint storage pointer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeString": "struct BottomUpCheckpoint storage pointer" + } + ], + "expression": { + "arguments": [ + { + "expression": { + "id": 45614, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42706, + "src": "11130:1:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 45615, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11132:14:68", + "memberName": "ipcGatewayAddr", + "nodeType": "MemberAccess", + "referencedDeclaration": 42683, + "src": "11130:16:68", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 45613, + "name": "IGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40421, + "src": "11121:8:68", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IGateway_$40421_$", + "typeString": "type(contract IGateway)" + } + }, + "id": 45616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11121:26:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IGateway_$40421", + "typeString": "contract IGateway" + } + }, + "id": 45617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11148:16:68", + "memberName": "commitChildCheck", + "nodeType": "MemberAccess", + "referencedDeclaration": 40375, + "src": "11121:43:68", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_struct$_BottomUpCheckpoint_$44156_memory_ptr_$returns$__$", + "typeString": "function (struct BottomUpCheckpoint memory) external" + } + }, + "id": 45619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11121:55:68", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 45620, + "nodeType": "ExpressionStatement", + "src": "11121:55:68" + } + ] + }, + "documentation": { + "id": 45551, + "nodeType": "StructuredDocumentation", + "src": "10257:158:68", + "text": "@notice method that commits a checkpoint after reaching majority\n @param voteSubmission - the last vote submission that reached majority for commit" + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_commitCheckpoint", + "nameLocation": "10429:17:68", + "parameters": { + "id": 45555, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 45554, + "mutability": "mutable", + "name": "voteSubmission", + "nameLocation": "10483:14:68", + "nodeType": "VariableDeclaration", + "scope": 45622, + "src": "10447:50:68", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeString": "struct EpochVoteBottomUpSubmission" + }, + "typeName": { + "id": 45553, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 45552, + "name": "EpochVoteBottomUpSubmission", + "nameLocations": [ + "10447:27:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44233, + "src": "10447:27:68" + }, + "referencedDeclaration": 44233, + "src": "10447:27:68", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeString": "struct EpochVoteBottomUpSubmission" + } + }, + "visibility": "internal" + } + ], + "src": "10446:52:68" + }, + "returnParameters": { + "id": 45556, + "nodeType": "ParameterList", + "parameters": [], + "src": "10508:0:68" + }, + "scope": 45623, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + } + ], + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 44809, + "name": "ISubnetActor", + "nameLocations": [ + "1803:12:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 40459, + "src": "1803:12:68" + }, + "id": 44810, + "nodeType": "InheritanceSpecifier", + "src": "1803:12:68" + }, + { + "baseName": { + "id": 44811, + "name": "SubnetActorModifiers", + "nameLocations": [ + "1817:20:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 42807, + "src": "1817:20:68" + }, + "id": 44812, + "nodeType": "InheritanceSpecifier", + "src": "1817:20:68" + }, + { + "baseName": { + "id": 44813, + "name": "ReentrancyGuard", + "nameLocations": [ + "1839:15:68" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 42567, + "src": "1839:15:68" + }, + "id": 44814, + "nodeType": "InheritanceSpecifier", + "src": "1839:15:68" + } + ], + "canonicalName": "SubnetActorManagerFacet", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 45623, + 42567, + 42807, + 40459 + ], + "name": "SubnetActorManagerFacet", + "nameLocation": "1776:23:68", + "scope": 45624, + "usedErrors": [ + 29492, + 29500, + 38160, + 38164, + 38166, + 38188, + 38190, + 38192, + 38194, + 38196, + 38202, + 38212, + 38222, + 38226, + 38228, + 38230, + 38238, + 42517 + ] + } + ], + "license": "UNLICENSED" + }, + "id": 68 +} \ No newline at end of file diff --git a/src/manager/evm/conversion.rs b/src/manager/evm/conversion.rs index 43955329..08f311ab 100644 --- a/src/manager/evm/conversion.rs +++ b/src/manager/evm/conversion.rs @@ -2,7 +2,10 @@ // SPDX-License-Identifier: MIT //! Type conversion between evm and fvm -use crate::manager::evm::manager::{agent_subnet_to_evm_addresses, ethers_address_to_fil_address}; +use crate::manager::evm::manager::{ + agent_subnet_to_evm_addresses, ethers_address_to_fil_address, subnet_actor_getter_facet, + subnet_actor_manager_facet, subnet_contract, +}; use crate::manager::SubnetInfo; use anyhow::anyhow; use ethers::abi::{ParamType, Token}; @@ -18,7 +21,27 @@ use ipc_sdk::subnet_id::SubnetID; use num_traits::ToPrimitive; use std::str::FromStr; -impl TryFrom for crate::manager::evm::subnet_contract::BottomUpCheckpoint { +/// The type conversion for IPC structs to evm solidity contracts. We need this convenient macro because +/// the abigen is creating the same struct but under different modules. Macro rules would save a lot of +/// code. +macro_rules! type_conversion { + ($module:ident) => { + impl From
for $module::FvmAddress { + fn from(value: Address) -> Self { + $module::FvmAddress { + addr_type: value.protocol() as u8, + payload: addr_payload_to_bytes(value.into_payload()), + } + } + } + }; +} + +type_conversion!(subnet_contract); +type_conversion!(subnet_actor_getter_facet); +type_conversion!(subnet_actor_manager_facet); + +impl TryFrom for subnet_contract::BottomUpCheckpoint { type Error = anyhow::Error; fn try_from(checkpoint: BottomUpCheckpoint) -> Result { @@ -28,7 +51,7 @@ impl TryFrom for crate::manager::evm::subnet_contract::Botto } } -impl TryFrom for crate::manager::evm::subnet_contract::BottomUpCheckpoint { +impl TryFrom for subnet_contract::BottomUpCheckpoint { type Error = anyhow::Error; fn try_from(check_data: CheckData) -> Result { @@ -247,15 +270,6 @@ impl TryFrom for Address { } } -impl From
for crate::manager::evm::subnet_contract::FvmAddress { - fn from(value: Address) -> Self { - crate::manager::evm::subnet_contract::FvmAddress { - addr_type: value.protocol() as u8, - payload: addr_payload_to_bytes(value.into_payload()), - } - } -} - impl TryFrom for SubnetID { type Error = anyhow::Error; diff --git a/src/manager/evm/manager.rs b/src/manager/evm/manager.rs index ee2a0a2b..6e0767d0 100644 --- a/src/manager/evm/manager.rs +++ b/src/manager/evm/manager.rs @@ -38,6 +38,14 @@ const SUBNET_NAME_MAX_LEN: usize = 32; // Create type bindings for the IPC Solidity contracts abigen!(Gateway, "contracts/Gateway.json"); abigen!(SubnetContract, "contracts/SubnetActor.json"); +abigen!( + SubnetActorGetterFacet, + "contracts/SubnetActorGetterFacet.json" +); +abigen!( + SubnetActorManagerFacet, + "contracts/SubnetActorManagerFacet.json" +); abigen!(SubnetRegistry, "contracts/SubnetRegistry.json"); pub struct EthSubnetManager { @@ -151,11 +159,11 @@ impl SubnetManager for EthSubnetManager { ); let signer = self.get_signer(&payload_to_evm_address(from.payload())?)?; - let contract = SubnetContract::new(address, Arc::new(signer)); + let contract = SubnetActorManagerFacet::new(address, Arc::new(signer)); let mut txn = contract.join( validator_net_addr, - subnet_contract::FvmAddress::from(worker_addr), + subnet_actor_manager_facet::FvmAddress::from(worker_addr), ); txn.tx.set_value(collateral); @@ -169,7 +177,7 @@ impl SubnetManager for EthSubnetManager { log::info!("leaving evm subnet: {subnet:} at contract: {address:}"); let signer = self.get_signer(&payload_to_evm_address(from.payload())?)?; - let contract = SubnetContract::new(address, Arc::new(signer)); + let contract = SubnetActorManagerFacet::new(address, Arc::new(signer)); contract.leave().send().await?.await?; @@ -181,7 +189,7 @@ impl SubnetManager for EthSubnetManager { log::info!("kill evm subnet: {subnet:} at contract: {address:}"); let signer = self.get_signer(&payload_to_evm_address(from.payload())?)?; - let contract = SubnetContract::new(address, Arc::new(signer)); + let contract = SubnetActorManagerFacet::new(address, Arc::new(signer)); contract.kill().send().await?.await?; From 9de87989afbf5daa60f0b327f9aea5f3558e8bc0 Mon Sep 17 00:00:00 2001 From: cryptoAtwill Date: Tue, 25 Jul 2023 12:55:17 +0800 Subject: [PATCH 03/17] revert conversion --- src/manager/evm/conversion.rs | 92 ++++++++++++++++++++--------------- src/manager/evm/convert.rs | 45 +++++++++++++++++ src/manager/evm/mod.rs | 2 + 3 files changed, 100 insertions(+), 39 deletions(-) create mode 100644 src/manager/evm/convert.rs diff --git a/src/manager/evm/conversion.rs b/src/manager/evm/conversion.rs index 08f311ab..d767cc41 100644 --- a/src/manager/evm/conversion.rs +++ b/src/manager/evm/conversion.rs @@ -2,46 +2,24 @@ // SPDX-License-Identifier: MIT //! Type conversion between evm and fvm -use crate::manager::evm::manager::{ - agent_subnet_to_evm_addresses, ethers_address_to_fil_address, subnet_actor_getter_facet, - subnet_actor_manager_facet, subnet_contract, -}; +use crate::manager::evm::manager::agent_subnet_to_evm_addresses; use crate::manager::SubnetInfo; use anyhow::anyhow; use ethers::abi::{ParamType, Token}; use ethers::types::U256; use fvm_ipld_encoding::RawBytes; use fvm_shared::address::{Address, Payload}; +use fvm_shared::bigint::BigInt; use fvm_shared::econ::TokenAmount; use fvm_shared::MethodNum; use ipc_gateway::checkpoint::{CheckData, ChildCheck}; use ipc_gateway::{BottomUpCheckpoint, CrossMsg, Status, StorableMsg}; use ipc_sdk::address::IPCAddress; use ipc_sdk::subnet_id::SubnetID; -use num_traits::ToPrimitive; +use primitives::EthAddress; use std::str::FromStr; -/// The type conversion for IPC structs to evm solidity contracts. We need this convenient macro because -/// the abigen is creating the same struct but under different modules. Macro rules would save a lot of -/// code. -macro_rules! type_conversion { - ($module:ident) => { - impl From
for $module::FvmAddress { - fn from(value: Address) -> Self { - $module::FvmAddress { - addr_type: value.protocol() as u8, - payload: addr_payload_to_bytes(value.into_payload()), - } - } - } - }; -} - -type_conversion!(subnet_contract); -type_conversion!(subnet_actor_getter_facet); -type_conversion!(subnet_actor_manager_facet); - -impl TryFrom for subnet_contract::BottomUpCheckpoint { +impl TryFrom for crate::manager::evm::subnet_contract::BottomUpCheckpoint { type Error = anyhow::Error; fn try_from(checkpoint: BottomUpCheckpoint) -> Result { @@ -51,7 +29,7 @@ impl TryFrom for subnet_contract::BottomUpCheckpoint { } } -impl TryFrom for subnet_contract::BottomUpCheckpoint { +impl TryFrom for crate::manager::evm::subnet_contract::BottomUpCheckpoint { type Error = anyhow::Error; fn try_from(check_data: CheckData) -> Result { @@ -77,7 +55,7 @@ impl TryFrom for subnet_contract::BottomUpCheckpoint { let b = crate::manager::evm::subnet_contract::BottomUpCheckpoint { source: crate::manager::evm::subnet_contract::SubnetID::try_from(&check_data.source)?, epoch: check_data.epoch as u64, - fee: U256::from_str(&check_data.cross_msgs.fee.atto().to_string())?, + fee: fil_to_eth_amount(&check_data.cross_msgs.fee)?, cross_msgs, children, @@ -119,13 +97,7 @@ impl TryFrom for crate::manager::evm::subnet_contract::StorableMsg type Error = anyhow::Error; fn try_from(value: StorableMsg) -> Result { - let msg_value = U256::from( - value - .value - .atto() - .to_u128() - .ok_or_else(|| anyhow!("cannot convert value: {:?}", value.value))?, - ); + let msg_value = fil_to_eth_amount(&value.value)?; log::info!( "storable message token amount: {:}, converted: {:?}", @@ -248,8 +220,8 @@ impl TryFrom for SubnetInfo { fn try_from(value: crate::manager::evm::gateway::Subnet) -> Result { Ok(SubnetInfo { id: SubnetID::try_from(value.id)?, - stake: TokenAmount::from_atto(value.stake.as_u128()), - circ_supply: TokenAmount::from_atto(value.circ_supply.as_u128()), + stake: eth_to_fil_amount(&value.stake)?, + circ_supply: eth_to_fil_amount(&value.circ_supply)?, status: match value.status { 1 => Status::Active, 2 => Status::Inactive, @@ -270,6 +242,15 @@ impl TryFrom for Address { } } +impl From
for crate::manager::evm::subnet_contract::FvmAddress { + fn from(value: Address) -> Self { + crate::manager::evm::subnet_contract::FvmAddress { + addr_type: value.protocol() as u8, + payload: addr_payload_to_bytes(value.into_payload()), + } + } +} + impl TryFrom for SubnetID { type Error = anyhow::Error; @@ -342,7 +323,7 @@ impl TryFrom for StorableMsg { to: IPCAddress::try_from(value.to)?, method: u32::from_be_bytes(value.method) as MethodNum, params: RawBytes::from(value.params.to_vec()), - value: TokenAmount::from_atto(value.value.as_u128()), + value: eth_to_fil_amount(&value.value)?, nonce: value.nonce, }; Ok(s) @@ -361,13 +342,36 @@ impl TryFrom for CrossMsg { } } +/// Converts a Fil TokenAmount into an ethers::U256 amount. +pub fn fil_to_eth_amount(amount: &TokenAmount) -> anyhow::Result { + let str = amount.atto().to_string(); + Ok(U256::from_dec_str(&str)?) +} + +/// Converts an ethers::U256 TokenAmount into a FIL amount. +pub fn eth_to_fil_amount(amount: &U256) -> anyhow::Result { + let v = BigInt::from_str(&amount.to_string())?; + Ok(TokenAmount::from_atto(v)) +} + +pub fn ethers_address_to_fil_address(addr: ðers::types::Address) -> anyhow::Result
{ + let raw_addr = format!("{addr:?}"); + log::debug!("raw evm subnet addr: {raw_addr:}"); + + let eth_addr = EthAddress::from_str(&raw_addr)?; + Ok(Address::from(eth_addr)) +} + #[cfg(test)] mod tests { + use crate::manager::evm::conversion::eth_to_fil_amount; use crate::manager::evm::subnet_contract::FvmAddress; - use fvm_shared::address::Address; + use fvm_shared::{address::Address, bigint::BigInt, econ::TokenAmount}; use primitives::EthAddress; use std::str::FromStr; + use super::fil_to_eth_amount; + #[test] fn test_fvm_address_encoding() { let test_evm_addr = @@ -381,4 +385,14 @@ mod tests { assert_eq!(addr, address); } + + #[test] + fn test_amount_conversion() { + let v = BigInt::from_str("100000000000000").unwrap(); + let fil_amount = TokenAmount::from_atto(v); + + let eth_amount = fil_to_eth_amount(&fil_amount).unwrap(); + let test_amount = eth_to_fil_amount(ð_amount).unwrap(); + assert_eq!(test_amount, fil_amount); + } } diff --git a/src/manager/evm/convert.rs b/src/manager/evm/convert.rs new file mode 100644 index 00000000..e60c937d --- /dev/null +++ b/src/manager/evm/convert.rs @@ -0,0 +1,45 @@ +//! Type conversion for IPC Agent struct with solidity contract struct + +use crate::manager::evm::manager::{ + subnet_actor_getter_facet, subnet_actor_manager_facet, +}; +use ethers::abi::Token; +use ethers::types::U256; +use fvm_shared::address::{Address, Payload}; + +/// The type conversion for IPC structs to evm solidity contracts. We need this convenient macro because +/// the abigen is creating the same struct but under different modules. This save a lot of +/// code. +macro_rules! type_conversion { + ($module:ident) => { + impl From
for $module::FvmAddress { + fn from(value: Address) -> Self { + $module::FvmAddress { + addr_type: value.protocol() as u8, + payload: addr_payload_to_bytes(value.into_payload()), + } + } + } + }; +} + +type_conversion!(subnet_actor_getter_facet); +type_conversion!(subnet_actor_manager_facet); + +/// Converts a Rust type FVM address into its underlying payload +/// so it can be represented internally in a Solidity contract. +fn addr_payload_to_bytes(payload: Payload) -> ethers::types::Bytes { + match payload { + Payload::Secp256k1(v) => ethers::types::Bytes::from(v), + Payload::Delegated(d) => { + let addr = d.subaddress(); + let b = ethers::abi::encode(&[Token::Tuple(vec![ + Token::Uint(U256::from(d.namespace())), + Token::Uint(U256::from(addr.len())), + Token::Bytes(addr.to_vec()), + ])]); + ethers::types::Bytes::from(b) + } + _ => unimplemented!(), + } +} diff --git a/src/manager/evm/mod.rs b/src/manager/evm/mod.rs index 0a65e8e5..d04efeda 100644 --- a/src/manager/evm/mod.rs +++ b/src/manager/evm/mod.rs @@ -1,7 +1,9 @@ // Copyright 2022-2023 Protocol Labs // SPDX-License-Identifier: MIT +#[deprecated] mod conversion; +mod convert; mod manager; use async_trait::async_trait; From b064d4f3728ea35f3acfe890e15d610b0cf67a35 Mon Sep 17 00:00:00 2001 From: cryptoAtwill Date: Tue, 25 Jul 2023 13:41:43 +0800 Subject: [PATCH 04/17] update gateway api --- contracts/GatewayGetterFacet.json | 9584 ++++++++++++++++++ contracts/GatewayManagerFacet.json | 7933 +++++++++++++++ contracts/GatewayRouterFacet.json | 14291 +++++++++++++++++++++++++++ src/manager/evm/convert.rs | 86 +- src/manager/evm/manager.rs | 29 +- src/manager/evm/mod.rs | 4 +- 6 files changed, 31909 insertions(+), 18 deletions(-) create mode 100644 contracts/GatewayGetterFacet.json create mode 100644 contracts/GatewayManagerFacet.json create mode 100644 contracts/GatewayRouterFacet.json diff --git a/contracts/GatewayGetterFacet.json b/contracts/GatewayGetterFacet.json new file mode 100644 index 00000000..414822cb --- /dev/null +++ b/contracts/GatewayGetterFacet.json @@ -0,0 +1,9584 @@ +{ + "abi": [ + { + "inputs": [], + "name": "NotRegisteredSubnet", + "type": "error" + }, + { + "inputs": [], + "name": "appliedTopDownNonce", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "bottomUpCheckPeriod", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "epoch", + "type": "uint64" + } + ], + "name": "bottomUpCheckpointAtEpoch", + "outputs": [ + { + "internalType": "bool", + "name": "exists", + "type": "bool" + }, + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple" + }, + { + "internalType": "uint64", + "name": "epoch", + "type": "uint64" + }, + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + }, + { + "components": [ + { + "components": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple" + } + ], + "internalType": "struct IPCAddress", + "name": "from", + "type": "tuple" + }, + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple" + } + ], + "internalType": "struct IPCAddress", + "name": "to", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "bytes4", + "name": "method", + "type": "bytes4" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "internalType": "struct StorableMsg", + "name": "message", + "type": "tuple" + }, + { + "internalType": "bool", + "name": "wrapped", + "type": "bool" + } + ], + "internalType": "struct CrossMsg[]", + "name": "crossMsgs", + "type": "tuple[]" + }, + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple" + }, + { + "internalType": "bytes32[]", + "name": "checks", + "type": "bytes32[]" + } + ], + "internalType": "struct ChildCheck[]", + "name": "children", + "type": "tuple[]" + }, + { + "internalType": "bytes32", + "name": "prevHash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "proof", + "type": "bytes" + } + ], + "internalType": "struct BottomUpCheckpoint", + "name": "checkpoint", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "epoch", + "type": "uint64" + } + ], + "name": "bottomUpCheckpointHashAtEpoch", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "e", + "type": "uint64" + } + ], + "name": "bottomUpCheckpoints", + "outputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple" + }, + { + "internalType": "uint64", + "name": "epoch", + "type": "uint64" + }, + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + }, + { + "components": [ + { + "components": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple" + } + ], + "internalType": "struct IPCAddress", + "name": "from", + "type": "tuple" + }, + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple" + } + ], + "internalType": "struct IPCAddress", + "name": "to", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "bytes4", + "name": "method", + "type": "bytes4" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "internalType": "struct StorableMsg", + "name": "message", + "type": "tuple" + }, + { + "internalType": "bool", + "name": "wrapped", + "type": "bool" + } + ], + "internalType": "struct CrossMsg[]", + "name": "crossMsgs", + "type": "tuple[]" + }, + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple" + }, + { + "internalType": "bytes32[]", + "name": "checks", + "type": "bytes32[]" + } + ], + "internalType": "struct ChildCheck[]", + "name": "children", + "type": "tuple[]" + }, + { + "internalType": "bytes32", + "name": "prevHash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "proof", + "type": "bytes" + } + ], + "internalType": "struct BottomUpCheckpoint", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "bottomUpNonce", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "crossMsgFee", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "executableQueue", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + } + ], + "name": "getAppliedTopDownNonce", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getGenesisEpoch", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getNetworkName", + "outputs": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + } + ], + "name": "getSubnet", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "components": [ + { + "internalType": "enum Status", + "name": "status", + "type": "uint8" + }, + { + "internalType": "uint64", + "name": "topDownNonce", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "appliedBottomUpNonce", + "type": "uint64" + }, + { + "internalType": "uint256", + "name": "stake", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "genesisEpoch", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "circSupply", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "id", + "type": "tuple" + }, + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple" + }, + { + "internalType": "uint64", + "name": "epoch", + "type": "uint64" + }, + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + }, + { + "components": [ + { + "components": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple" + } + ], + "internalType": "struct IPCAddress", + "name": "from", + "type": "tuple" + }, + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple" + } + ], + "internalType": "struct IPCAddress", + "name": "to", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "bytes4", + "name": "method", + "type": "bytes4" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "internalType": "struct StorableMsg", + "name": "message", + "type": "tuple" + }, + { + "internalType": "bool", + "name": "wrapped", + "type": "bool" + } + ], + "internalType": "struct CrossMsg[]", + "name": "crossMsgs", + "type": "tuple[]" + }, + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple" + }, + { + "internalType": "bytes32[]", + "name": "checks", + "type": "bytes32[]" + } + ], + "internalType": "struct ChildCheck[]", + "name": "children", + "type": "tuple[]" + }, + { + "internalType": "bytes32", + "name": "prevHash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "proof", + "type": "bytes" + } + ], + "internalType": "struct BottomUpCheckpoint", + "name": "prevCheckpoint", + "type": "tuple" + }, + { + "components": [ + { + "components": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple" + } + ], + "internalType": "struct IPCAddress", + "name": "from", + "type": "tuple" + }, + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple" + } + ], + "internalType": "struct IPCAddress", + "name": "to", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "bytes4", + "name": "method", + "type": "bytes4" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "internalType": "struct StorableMsg", + "name": "message", + "type": "tuple" + }, + { + "internalType": "bool", + "name": "wrapped", + "type": "bool" + } + ], + "internalType": "struct CrossMsg[]", + "name": "topDownMsgs", + "type": "tuple[]" + } + ], + "internalType": "struct Subnet", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getSubnetTopDownMsg", + "outputs": [ + { + "components": [ + { + "components": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple" + } + ], + "internalType": "struct IPCAddress", + "name": "from", + "type": "tuple" + }, + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple" + } + ], + "internalType": "struct IPCAddress", + "name": "to", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "bytes4", + "name": "method", + "type": "bytes4" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "internalType": "struct StorableMsg", + "name": "message", + "type": "tuple" + }, + { + "internalType": "bool", + "name": "wrapped", + "type": "bool" + } + ], + "internalType": "struct CrossMsg", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + } + ], + "name": "getSubnetTopDownMsgsLength", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + } + ], + "name": "getTopDownMsgs", + "outputs": [ + { + "components": [ + { + "components": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple" + } + ], + "internalType": "struct IPCAddress", + "name": "from", + "type": "tuple" + }, + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple" + } + ], + "internalType": "struct IPCAddress", + "name": "to", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "bytes4", + "name": "method", + "type": "bytes4" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "internalType": "struct StorableMsg", + "name": "message", + "type": "tuple" + }, + { + "internalType": "bool", + "name": "wrapped", + "type": "bool" + } + ], + "internalType": "struct CrossMsg[]", + "name": "", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "epoch", + "type": "uint64" + }, + { + "internalType": "address", + "name": "submitter", + "type": "address" + } + ], + "name": "hasValidatorVotedForSubmission", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "initialized", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lastVotingExecutedEpoch", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "majorityPercentage", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "minStake", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "id", + "type": "bytes32" + } + ], + "name": "postbox", + "outputs": [ + { + "components": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple" + } + ], + "internalType": "struct IPCAddress", + "name": "from", + "type": "tuple" + }, + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple" + } + ], + "internalType": "struct IPCAddress", + "name": "to", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "bytes4", + "name": "method", + "type": "bytes4" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "internalType": "struct StorableMsg", + "name": "storableMsg", + "type": "tuple" + }, + { + "internalType": "bool", + "name": "wrapped", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "h", + "type": "bytes32" + } + ], + "name": "subnets", + "outputs": [ + { + "components": [ + { + "internalType": "enum Status", + "name": "status", + "type": "uint8" + }, + { + "internalType": "uint64", + "name": "topDownNonce", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "appliedBottomUpNonce", + "type": "uint64" + }, + { + "internalType": "uint256", + "name": "stake", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "genesisEpoch", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "circSupply", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "id", + "type": "tuple" + }, + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple" + }, + { + "internalType": "uint64", + "name": "epoch", + "type": "uint64" + }, + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + }, + { + "components": [ + { + "components": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple" + } + ], + "internalType": "struct IPCAddress", + "name": "from", + "type": "tuple" + }, + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple" + } + ], + "internalType": "struct IPCAddress", + "name": "to", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "bytes4", + "name": "method", + "type": "bytes4" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "internalType": "struct StorableMsg", + "name": "message", + "type": "tuple" + }, + { + "internalType": "bool", + "name": "wrapped", + "type": "bool" + } + ], + "internalType": "struct CrossMsg[]", + "name": "crossMsgs", + "type": "tuple[]" + }, + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple" + }, + { + "internalType": "bytes32[]", + "name": "checks", + "type": "bytes32[]" + } + ], + "internalType": "struct ChildCheck[]", + "name": "children", + "type": "tuple[]" + }, + { + "internalType": "bytes32", + "name": "prevHash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "proof", + "type": "bytes" + } + ], + "internalType": "struct BottomUpCheckpoint", + "name": "prevCheckpoint", + "type": "tuple" + }, + { + "components": [ + { + "components": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple" + } + ], + "internalType": "struct IPCAddress", + "name": "from", + "type": "tuple" + }, + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple" + } + ], + "internalType": "struct IPCAddress", + "name": "to", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "bytes4", + "name": "method", + "type": "bytes4" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "internalType": "struct StorableMsg", + "name": "message", + "type": "tuple" + }, + { + "internalType": "bool", + "name": "wrapped", + "type": "bool" + } + ], + "internalType": "struct CrossMsg[]", + "name": "topDownMsgs", + "type": "tuple[]" + } + ], + "internalType": "struct Subnet", + "name": "subnet", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "topDownCheckPeriod", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSubnets", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalWeight", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": { + "object": "0x608060405234801561001057600080fd5b50614357806100206000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c806366d7bbbc116100de57806394074b03116100975780639e530b57116100715780639e530b5714610417578063a2b6715814610449578063ad81e2441461045a578063c66c66a11461046257600080fd5b806394074b03146103e757806396c82e57146103fc5780639d3070b51461040457600080fd5b806366d7bbbc1461030c5780636cb2ecee1461035c5780637d9740f41461037d5780638789f83b1461038e57806388f6aea5146103a65780638cfd78e7146103c657600080fd5b8063247294251161013057806324729425146102595780632cc14ea21461026b578063375b3c0a1461028b57806341b6a2e81461029357806351392fc0146102a4578063599c7bd1146102db57600080fd5b806302e30f9a1461017857806306c46853146101a15780630ea746f2146101c657806310d500e1146101e6578063133f74ea14610218578063158ef93e14610242575b600080fd5b61018b61018636600461390f565b610483565b6040516101989190613d2e565b60405180910390f35b6005546001600160401b03165b6040516001600160401b039091168152602001610198565b6101d96101d4366004613eb2565b610fd5565b6040516101989190613ef6565b6101ee611390565b604080516001600160401b0394851681529284166020840152921691810191909152606001610198565b61022b610226366004613f09565b6113e8565b604080519215158352602083019190915201610198565b60105460ff165b6040519015158152602001610198565b600a545b604051908152602001610198565b61027e610279366004613f09565b611481565b6040516101989190613f24565b60035461025d565b6009546001600160401b03166101ae565b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27054600160401b90046001600160401b03166101ae565b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27054600160801b900460ff166101ae565b61024961031a366004613f37565b6001600160401b03821660009081526011602090815260408083208054845260030182528083206001600160a01b038516845290915290205460ff1692915050565b61036f61036a366004613f09565b611b0a565b604051610198929190613f6a565b6007546001600160401b03166101ae565b600954600160401b90046001600160401b03166101ae565b6103b96103b4366004613f8d565b61220e565b6040516101989190613fc7565b6103d96103d436600461390f565b612616565b604051610198929190613fda565b6103ef6129a1565b6040516101989190613ffe565b600b5461025d565b61025d610412366004614011565b612a30565b61042a610425366004613f8d565b612a48565b6040805192151583526001600160401b03909116602083015201610198565b6002546001600160401b03166101ae565b6101ae612a8a565b610475610470366004613f8d565b612abd565b604051610198929190614045565b61048b6137a8565b60008281526004602052604090819020815161012081019092528054829060ff1660058111156104bd576104bd613928565b60058111156104ce576104ce613928565b815281546001600160401b0361010082048116602080850191909152600160481b90920481166040808501919091526001850154606085015260028501546080850152600385015460a085015280518082018252600486018054909316815260058601805483518187028101870190945280845260c090960195919485810193929083018282801561058957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161056b575b50505091909252505050815260408051610120810182526006840180546001600160401b031660e083019081526007860180548551602082810282018101909752818152968601969495939486948693610100870193909183018282801561061a57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116105fc575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015610a245760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561072b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161070d575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061076590614060565b80601f016020809104026020016040519081016040528092919081815260200182805461079190614060565b80156107de5780601f106107b3576101008083540402835291602001916107de565b820191906000526020600020905b8154815290600101906020018083116107c157829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561086f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610851575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906108a990614060565b80601f01602080910402602001604051908101604052809291908181526020018280546108d590614060565b80156109225780601f106108f757610100808354040283529160200191610922565b820191906000526020600020905b81548152906001019060200180831161090557829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161097d90614060565b80601f01602080910402602001604051908101604052809291908181526020018280546109a990614060565b80156109f65780601f106109cb576101008083540402835291602001916109f6565b820191906000526020600020905b8154815290600101906020018083116109d957829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101610685565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015610b5b576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015610ae757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ac9575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610b4357602002820191906000526020600020905b815481526020019060010190808311610b2f575b50505050508152505081526020019060010190610a51565b50505050815260200160068201548152602001600782018054610b7d90614060565b80601f0160208091040260200160405190810160405280929190818152602001828054610ba990614060565b8015610bf65780601f10610bcb57610100808354040283529160200191610bf6565b820191906000526020600020905b815481529060010190602001808311610bd957829003601f168201915b5050505050815250508152602001600e8201805480602002602001604051908101604052809291908181526020016000905b82821015610fc75760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015610cce57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610cb0575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610d0890614060565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3490614060565b8015610d815780601f10610d5657610100808354040283529160200191610d81565b820191906000526020600020905b815481529060010190602001808311610d6457829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015610e1257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610df4575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610e4c90614060565b80601f0160208091040260200160405190810160405280929190818152602001828054610e7890614060565b8015610ec55780601f10610e9a57610100808354040283529160200191610ec5565b820191906000526020600020905b815481529060010190602001808311610ea857829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191610f2090614060565b80601f0160208091040260200160405190810160405280929190818152602001828054610f4c90614060565b8015610f995780601f10610f6e57610100808354040283529160200191610f99565b820191906000526020600020905b815481529060010190602001808311610f7c57829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101610c28565b505050915250909392505050565b610fdd61380a565b6000610fe884613615565b91505080600e0183815481106110005761100061409a565b60009182526020918290206040805161018081018252600c90930290910180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561109f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611081575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906110d990614060565b80601f016020809104026020016040519081016040528092919081815260200182805461110590614060565b80156111525780601f1061112757610100808354040283529160200191611152565b820191906000526020600020905b81548152906001019060200180831161113557829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156111e357602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116111c5575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061121d90614060565b80601f016020809104026020016040519081016040528092919081815260200182805461124990614060565b80156112965780601f1061126b57610100808354040283529160200191611296565b820191906000526020600020905b81548152906001019060200180831161127957829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916112f190614060565b80601f016020809104026020016040519081016040528092919081815260200182805461131d90614060565b801561136a5780601f1061133f5761010080835404028352916020019161136a565b820191906000526020600020905b81548152906001019060200180831161134d57829003601f168201915b505050919092525050508152600b919091015460ff161515602090910152949350505050565b60008060006113dd7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e271546001600160401b0380821692600160401b8304821692600160801b900490911690565b925092509250909192565b6000806000806113f785611b0a565b6040516339aa47fb60e01b81529193509150829073__$1cd67d4dc9e627f0bec7928aa480e7d951$__906339aa47fb90611435908590600401614237565b602060405180830381865af4158015611452573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147691906142d4565b935093505050915091565b61148961382a565b6001600160401b03808316600090815260086020908152604091829020825161012081018452815490941660e085019081526001820180548551818602810186019096528086529294869492938693610100870193919083018282801561151957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114fb575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156119235760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561162a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161160c575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061166490614060565b80601f016020809104026020016040519081016040528092919081815260200182805461169090614060565b80156116dd5780601f106116b2576101008083540402835291602001916116dd565b820191906000526020600020905b8154815290600101906020018083116116c057829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561176e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611750575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906117a890614060565b80601f01602080910402602001604051908101604052809291908181526020018280546117d490614060565b80156118215780601f106117f657610100808354040283529160200191611821565b820191906000526020600020905b81548152906001019060200180831161180457829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161187c90614060565b80601f01602080910402602001604051908101604052809291908181526020018280546118a890614060565b80156118f55780601f106118ca576101008083540402835291602001916118f5565b820191906000526020600020905b8154815290600101906020018083116118d857829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101611584565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015611a5a576000848152602090819020604080516080810182526003860290920180546001600160401b0316838301908152600182018054845181880281018801909552808552949592948694929386936060870193909290918301828280156119e657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116119c8575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015611a4257602002820191906000526020600020905b815481526020019060010190808311611a2e575b50505050508152505081526020019060010190611950565b50505050815260200160068201548152602001600782018054611a7c90614060565b80601f0160208091040260200160405190810160405280929190818152602001828054611aa890614060565b8015611af55780601f10611aca57610100808354040283529160200191611af5565b820191906000526020600020905b815481529060010190602001808311611ad857829003601f168201915b5050505050815250509050919050565b905090565b6000611b1461382a565b6001600160401b03808416600090815260086020908152604091829020825161012081018452815490941660e0850190815260018201805485518186028101860190965280865292948694929386936101008701939190830182828015611ba457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611b86575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015611fae5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015611cb557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611c97575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190611cef90614060565b80601f0160208091040260200160405190810160405280929190818152602001828054611d1b90614060565b8015611d685780601f10611d3d57610100808354040283529160200191611d68565b820191906000526020600020905b815481529060010190602001808311611d4b57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015611df957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611ddb575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190611e3390614060565b80601f0160208091040260200160405190810160405280929190818152602001828054611e5f90614060565b8015611eac5780601f10611e8157610100808354040283529160200191611eac565b820191906000526020600020905b815481529060010190602001808311611e8f57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191611f0790614060565b80601f0160208091040260200160405190810160405280929190818152602001828054611f3390614060565b8015611f805780601f10611f5557610100808354040283529160200191611f80565b820191906000526020600020905b815481529060010190602001808311611f6357829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101611c0f565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b828210156120e5576000848152602090819020604080516080810182526003860290920180546001600160401b03168383019081526001820180548451818802810188019095528085529495929486949293869360608701939092909183018282801561207157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612053575b5050505050815250508152602001600282018054806020026020016040519081016040528092919081815260200182805480156120cd57602002820191906000526020600020905b8154815260200190600101908083116120b9575b50505050508152505081526020019060010190611fdb565b5050505081526020016006820154815260200160078201805461210790614060565b80601f016020809104026020016040519081016040528092919081815260200182805461213390614060565b80156121805780601f1061215557610100808354040283529160200191612180565b820191906000526020600020905b81548152906001019060200180831161216357829003601f168201915b5050509190925250508151604051630c133d1360e31b815292935073__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e89892506121c59190600401613ffe565b602060405180830381865af41580156121e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061220691906142ed565b159150915091565b606060008061222461221f8561430f565b613615565b915091508161224657604051630e991abd60e41b815260040160405180910390fd5b80600e01805480602002602001604051908101604052809291908181526020016000905b828210156126095760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561231057602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116122f2575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061234a90614060565b80601f016020809104026020016040519081016040528092919081815260200182805461237690614060565b80156123c35780601f10612398576101008083540402835291602001916123c3565b820191906000526020600020905b8154815290600101906020018083116123a657829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561245457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612436575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061248e90614060565b80601f01602080910402602001604051908101604052809291908181526020018280546124ba90614060565b80156125075780601f106124dc57610100808354040283529160200191612507565b820191906000526020600020905b8154815290600101906020018083116124ea57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161256290614060565b80601f016020809104026020016040519081016040528092919081815260200182805461258e90614060565b80156125db5780601f106125b0576101008083540402835291602001916125db565b820191906000526020600020905b8154815290600101906020018083116125be57829003601f168201915b505050919092525050508152600b919091015460ff161515602091820152908252600192909201910161226a565b5050505092505050919050565b61261e613875565b6000828152600660209081526040808320600b81015482516101408101845282546001600160401b03166101008201908152600184018054865181890281018901909752808752949660ff9094169592948794869460c086019487948694919386936101208a01939092918301828280156126c257602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116126a4575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906126fc90614060565b80601f016020809104026020016040519081016040528092919081815260200182805461272890614060565b80156127755780601f1061274a57610100808354040283529160200191612775565b820191906000526020600020905b81548152906001019060200180831161275857829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561280657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116127e8575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061284090614060565b80601f016020809104026020016040519081016040528092919081815260200182805461286c90614060565b80156128b95780601f1061288e576101008083540402835291602001916128b9565b820191906000526020600020905b81548152906001019060200180831161289c57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161291490614060565b80601f016020809104026020016040519081016040528092919081815260200182805461294090614060565b801561298d5780601f106129625761010080835404028352916020019161298d565b820191906000526020600020905b81548152906001019060200180831161297057829003601f168201915b505050505081525050915091509150915091565b604080518082018252600080825260606020808401919091528351808501855282546001600160401b03168152600180548651818502810185019097528087529495919485840193830182828015612a2257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612a04575b505050505081525050905090565b600080612a3c83613615565b600e0154949350505050565b6000808080612a5961221f8661430f565b9150915081612a6f575060009485945092505050565b546001956101009091046001600160401b0316945092505050565b6000611b057f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e270546001600160401b031690565b6000612ac76137a8565b612ad361221f8461430f565b60408051610120810190915281548290829060ff166005811115612af957612af9613928565b6005811115612b0a57612b0a613928565b815281546001600160401b0361010082048116602080850191909152600160481b90920481166040808501919091526001850154606085015260028501546080850152600385015460a085015280518082018252600486018054909316815260058601805483518187028101870190945280845260c0909601959194858101939290830182828015612bc557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612ba7575b50505091909252505050815260408051610120810182526006840180546001600160401b031660e0830190815260078601805485516020828102820181019097528181529686019694959394869486936101008701939091830182828015612c5657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612c38575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156130605760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015612d6757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612d49575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190612da190614060565b80601f0160208091040260200160405190810160405280929190818152602001828054612dcd90614060565b8015612e1a5780601f10612def57610100808354040283529160200191612e1a565b820191906000526020600020905b815481529060010190602001808311612dfd57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015612eab57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612e8d575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190612ee590614060565b80601f0160208091040260200160405190810160405280929190818152602001828054612f1190614060565b8015612f5e5780601f10612f3357610100808354040283529160200191612f5e565b820191906000526020600020905b815481529060010190602001808311612f4157829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191612fb990614060565b80601f0160208091040260200160405190810160405280929190818152602001828054612fe590614060565b80156130325780601f1061300757610100808354040283529160200191613032565b820191906000526020600020905b81548152906001019060200180831161301557829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101612cc1565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015613197576000848152602090819020604080516080810182526003860290920180546001600160401b03168383019081526001820180548451818802810188019095528085529495929486949293869360608701939092909183018282801561312357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613105575b50505050508152505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561317f57602002820191906000526020600020905b81548152602001906001019080831161316b575b5050505050815250508152602001906001019061308d565b505050508152602001600682015481526020016007820180546131b990614060565b80601f01602080910402602001604051908101604052809291908181526020018280546131e590614060565b80156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b5050505050815250508152602001600e8201805480602002602001604051908101604052809291908181526020016000905b828210156136035760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561330a57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116132ec575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061334490614060565b80601f016020809104026020016040519081016040528092919081815260200182805461337090614060565b80156133bd5780601f10613392576101008083540402835291602001916133bd565b820191906000526020600020905b8154815290600101906020018083116133a057829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561344e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613430575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061348890614060565b80601f01602080910402602001604051908101604052809291908181526020018280546134b490614060565b80156135015780601f106134d657610100808354040283529160200191613501565b820191906000526020600020905b8154815290600101906020018083116134e457829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161355c90614060565b80601f016020809104026020016040519081016040528092919081815260200182805461358890614060565b80156135d55780601f106135aa576101008083540402835291602001916135d5565b820191906000526020600020905b8154815290600101906020018083116135b857829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101613264565b50505091525092969095509350505050565b6040516390ba52cf60e01b815260009081908190600490829073__$a0fe38a9a81205afccc10810b09a4d3f45$__906390ba52cf906136579089908601613ffe565b602060405180830381865af4158015613674573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061369891906142d4565b81526020808201929092526040908101600020815180830183526004820180546001600160401b03168252600583018054855181880281018801909652808652939750919490938582019390929183018282801561371f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613701575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e898925061375e91600401613ffe565b602060405180830381865af415801561377b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061379f91906142ed565b15925050915091565b60408051610120810182526000808252602080830182905282840182905260608084018390526080840183905260a0840183905284518086019095529184528301529060c082019081526020016137fd61382a565b8152602001606081525090565b604051806040016040528061381d613875565b8152600060209091015290565b6040805161012081018252600060e0820181815260606101008401819052908352602083018290529282018190528282018390526080820183905260a082015260c081019190915290565b6040518060c001604052806138886138ca565b81526020016138956138ca565b81526020016000815260200160006001600160401b0316815260200160006001600160e01b0319168152602001606081525090565b604080516080810182526000918101918252606080820152908190815260200161390a6040518060400160405280600060ff168152602001606081525090565b905290565b60006020828403121561392157600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b6006811061395c57634e487b7160e01b600052602160045260246000fd5b9052565b6000604083016001600160401b0383511684526020808401516040828701528281518085526060880191508383019450600092505b808310156139be5784516001600160a01b03168252938301936001929092019190830190613995565b509695505050505050565b6000815180845260005b818110156139ef576020818501810151868301820152016139d3565b506000602082860101526020601f19601f83011685010191505092915050565b6000815160408452613a246040850182613960565b90506020830151848203602086015260ff81511682526020810151905060406020830152613a5560408301826139c9565b95945050505050565b6000815160c08452613a7360c0850182613a0f565b905060208301518482036020860152613a8c8282613a0f565b915050604083015160408501526001600160401b03606084015116606085015263ffffffff60e01b608084015116608085015260a083015184820360a0860152613a5582826139c9565b6000815160408452613aeb6040850182613a5e565b6020938401511515949093019390935250919050565b600081518084526020808501808196508360051b8101915082860160005b85811015613b49578284038952613b37848351613ad6565b98850198935090840190600101613b1f565b5091979650505050505050565b6000815160e08452613b6b60e0850182613960565b905060206001600160401b038185015116818601526040808501518187015260608501518684036060880152613ba18482613b01565b935050608085015186840360808801528381518086528486019150848160051b87010185840193506000805b83811015613c4157888303601f1901855285518051888552613bf189860182613960565b918a0151858303868c01528051808452908b01928592508b01905b80831015613c2c5783518252928b019260019290920191908b0190613c0c565b50978a0197968a019694505050600101613bcd565b505060a089015160a08b015260c0890151965089810360c08b0152613c6681886139c9565b9a9950505050505050505050565b6000610120613c8484845161393e565b6020830151613c9e60208601826001600160401b03169052565b506040830151613cb960408601826001600160401b03169052565b50606083015160608501526080830151608085015260a083015160a085015260c08301518160c0860152613cef82860182613960565b91505060e083015184820360e0860152613d098282613b56565b9150506101008084015185830382870152613d248382613b01565b9695505050505050565b602081526000613d416020830184613c74565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715613d8057613d80613d48565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613dae57613dae613d48565b604052919050565b80356001600160401b0381168114613dcd57600080fd5b919050565b80356001600160a01b0381168114613dcd57600080fd5b600060408284031215613dfb57600080fd5b613e03613d5e565b9050613e0e82613db6565b81526020808301356001600160401b0380821115613e2b57600080fd5b818501915085601f830112613e3f57600080fd5b813581811115613e5157613e51613d48565b8060051b9150613e62848301613d86565b8181529183018401918481019088841115613e7c57600080fd5b938501935b83851015613ea157613e9285613dd2565b82529385019390850190613e81565b808688015250505050505092915050565b60008060408385031215613ec557600080fd5b82356001600160401b03811115613edb57600080fd5b613ee785828601613de9565b95602094909401359450505050565b602081526000613d416020830184613ad6565b600060208284031215613f1b57600080fd5b613d4182613db6565b602081526000613d416020830184613b56565b60008060408385031215613f4a57600080fd5b613f5383613db6565b9150613f6160208401613dd2565b90509250929050565b8215158152604060208201526000613f856040830184613b56565b949350505050565b600060208284031215613f9f57600080fd5b81356001600160401b03811115613fb557600080fd5b820160408185031215613d4157600080fd5b602081526000613d416020830184613b01565b604081526000613fed6040830185613a5e565b905082151560208301529392505050565b602081526000613d416020830184613960565b60006020828403121561402357600080fd5b81356001600160401b0381111561403957600080fd5b613f8584828501613de9565b8215158152604060208201526000613f856040830184613c74565b600181811c9082168061407457607f821691505b60208210810361409457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501808196508360051b8101915082860160005b85811015613b49578284038952815160408151818752805160c080848a01526140fb6101008a0183613a0f565b915089830151603f196060818c860301818d01526141198584613a0f565b9686015160808d810191909152908601516001600160401b031660a0808e0191909152908601516001600160e01b031916938c0193909352918401518a860390920160e08b01525092905061416e81846139c9565b93890151801515898b0152939250614184915050565b99860199945050908401906001016140ce565b600081518084526020808501808196508360051b810191508286016000805b86811015614229578385038a528251604081518188526141d882890182613960565b92890151888403898b01528051808552908a01938693508a0191505b8083101561421457835182529289019260019290920191908901906141f4565b509b88019b96505050918501916001016141b6565b509298975050505050505050565b602081526000825160e06020840152614254610100840182613960565b90506001600160401b036020850151166040840152604084015160608401526060840151601f198085840301608086015261428f83836140b0565b925060808601519150808584030160a08601526142ac8383614197565b925060a086015160c086015260c08601519150808584030160e086015250613a5582826139c9565b6000602082840312156142e657600080fd5b5051919050565b6000602082840312156142ff57600080fd5b81518015158114613d4157600080fd5b600061431b3683613de9565b9291505056fea264697066735822122089a64dbd26e287d7f87f826cf9296ec57b25e86abfdfac5383c0f8caf2da12d064736f6c63430008130033", + "sourceMap": "691:5460:38:-:0;;;;;;;;;;;;;;;;;;;", + "linkReferences": { + "src/lib/CheckpointHelper.sol": { + "CheckpointHelper": [ + { + "start": 5165, + "length": 20 + } + ] + }, + "src/lib/SubnetIDHelper.sol": { + "SubnetIDHelper": [ + { + "start": 8637, + "length": 20 + }, + { + "start": 13904, + "length": 20 + }, + { + "start": 14167, + "length": 20 + } + ] + } + } + }, + "deployedBytecode": { + "object": "0x608060405234801561001057600080fd5b50600436106101735760003560e01c806366d7bbbc116100de57806394074b03116100975780639e530b57116100715780639e530b5714610417578063a2b6715814610449578063ad81e2441461045a578063c66c66a11461046257600080fd5b806394074b03146103e757806396c82e57146103fc5780639d3070b51461040457600080fd5b806366d7bbbc1461030c5780636cb2ecee1461035c5780637d9740f41461037d5780638789f83b1461038e57806388f6aea5146103a65780638cfd78e7146103c657600080fd5b8063247294251161013057806324729425146102595780632cc14ea21461026b578063375b3c0a1461028b57806341b6a2e81461029357806351392fc0146102a4578063599c7bd1146102db57600080fd5b806302e30f9a1461017857806306c46853146101a15780630ea746f2146101c657806310d500e1146101e6578063133f74ea14610218578063158ef93e14610242575b600080fd5b61018b61018636600461390f565b610483565b6040516101989190613d2e565b60405180910390f35b6005546001600160401b03165b6040516001600160401b039091168152602001610198565b6101d96101d4366004613eb2565b610fd5565b6040516101989190613ef6565b6101ee611390565b604080516001600160401b0394851681529284166020840152921691810191909152606001610198565b61022b610226366004613f09565b6113e8565b604080519215158352602083019190915201610198565b60105460ff165b6040519015158152602001610198565b600a545b604051908152602001610198565b61027e610279366004613f09565b611481565b6040516101989190613f24565b60035461025d565b6009546001600160401b03166101ae565b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27054600160401b90046001600160401b03166101ae565b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27054600160801b900460ff166101ae565b61024961031a366004613f37565b6001600160401b03821660009081526011602090815260408083208054845260030182528083206001600160a01b038516845290915290205460ff1692915050565b61036f61036a366004613f09565b611b0a565b604051610198929190613f6a565b6007546001600160401b03166101ae565b600954600160401b90046001600160401b03166101ae565b6103b96103b4366004613f8d565b61220e565b6040516101989190613fc7565b6103d96103d436600461390f565b612616565b604051610198929190613fda565b6103ef6129a1565b6040516101989190613ffe565b600b5461025d565b61025d610412366004614011565b612a30565b61042a610425366004613f8d565b612a48565b6040805192151583526001600160401b03909116602083015201610198565b6002546001600160401b03166101ae565b6101ae612a8a565b610475610470366004613f8d565b612abd565b604051610198929190614045565b61048b6137a8565b60008281526004602052604090819020815161012081019092528054829060ff1660058111156104bd576104bd613928565b60058111156104ce576104ce613928565b815281546001600160401b0361010082048116602080850191909152600160481b90920481166040808501919091526001850154606085015260028501546080850152600385015460a085015280518082018252600486018054909316815260058601805483518187028101870190945280845260c090960195919485810193929083018282801561058957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161056b575b50505091909252505050815260408051610120810182526006840180546001600160401b031660e083019081526007860180548551602082810282018101909752818152968601969495939486948693610100870193909183018282801561061a57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116105fc575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015610a245760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561072b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161070d575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061076590614060565b80601f016020809104026020016040519081016040528092919081815260200182805461079190614060565b80156107de5780601f106107b3576101008083540402835291602001916107de565b820191906000526020600020905b8154815290600101906020018083116107c157829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561086f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610851575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906108a990614060565b80601f01602080910402602001604051908101604052809291908181526020018280546108d590614060565b80156109225780601f106108f757610100808354040283529160200191610922565b820191906000526020600020905b81548152906001019060200180831161090557829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161097d90614060565b80601f01602080910402602001604051908101604052809291908181526020018280546109a990614060565b80156109f65780601f106109cb576101008083540402835291602001916109f6565b820191906000526020600020905b8154815290600101906020018083116109d957829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101610685565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015610b5b576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015610ae757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ac9575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610b4357602002820191906000526020600020905b815481526020019060010190808311610b2f575b50505050508152505081526020019060010190610a51565b50505050815260200160068201548152602001600782018054610b7d90614060565b80601f0160208091040260200160405190810160405280929190818152602001828054610ba990614060565b8015610bf65780601f10610bcb57610100808354040283529160200191610bf6565b820191906000526020600020905b815481529060010190602001808311610bd957829003601f168201915b5050505050815250508152602001600e8201805480602002602001604051908101604052809291908181526020016000905b82821015610fc75760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015610cce57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610cb0575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610d0890614060565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3490614060565b8015610d815780601f10610d5657610100808354040283529160200191610d81565b820191906000526020600020905b815481529060010190602001808311610d6457829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015610e1257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610df4575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610e4c90614060565b80601f0160208091040260200160405190810160405280929190818152602001828054610e7890614060565b8015610ec55780601f10610e9a57610100808354040283529160200191610ec5565b820191906000526020600020905b815481529060010190602001808311610ea857829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191610f2090614060565b80601f0160208091040260200160405190810160405280929190818152602001828054610f4c90614060565b8015610f995780601f10610f6e57610100808354040283529160200191610f99565b820191906000526020600020905b815481529060010190602001808311610f7c57829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101610c28565b505050915250909392505050565b610fdd61380a565b6000610fe884613615565b91505080600e0183815481106110005761100061409a565b60009182526020918290206040805161018081018252600c90930290910180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561109f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611081575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906110d990614060565b80601f016020809104026020016040519081016040528092919081815260200182805461110590614060565b80156111525780601f1061112757610100808354040283529160200191611152565b820191906000526020600020905b81548152906001019060200180831161113557829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156111e357602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116111c5575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061121d90614060565b80601f016020809104026020016040519081016040528092919081815260200182805461124990614060565b80156112965780601f1061126b57610100808354040283529160200191611296565b820191906000526020600020905b81548152906001019060200180831161127957829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916112f190614060565b80601f016020809104026020016040519081016040528092919081815260200182805461131d90614060565b801561136a5780601f1061133f5761010080835404028352916020019161136a565b820191906000526020600020905b81548152906001019060200180831161134d57829003601f168201915b505050919092525050508152600b919091015460ff161515602090910152949350505050565b60008060006113dd7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e271546001600160401b0380821692600160401b8304821692600160801b900490911690565b925092509250909192565b6000806000806113f785611b0a565b6040516339aa47fb60e01b81529193509150829073__$1cd67d4dc9e627f0bec7928aa480e7d951$__906339aa47fb90611435908590600401614237565b602060405180830381865af4158015611452573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147691906142d4565b935093505050915091565b61148961382a565b6001600160401b03808316600090815260086020908152604091829020825161012081018452815490941660e085019081526001820180548551818602810186019096528086529294869492938693610100870193919083018282801561151957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114fb575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156119235760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561162a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161160c575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061166490614060565b80601f016020809104026020016040519081016040528092919081815260200182805461169090614060565b80156116dd5780601f106116b2576101008083540402835291602001916116dd565b820191906000526020600020905b8154815290600101906020018083116116c057829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561176e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611750575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906117a890614060565b80601f01602080910402602001604051908101604052809291908181526020018280546117d490614060565b80156118215780601f106117f657610100808354040283529160200191611821565b820191906000526020600020905b81548152906001019060200180831161180457829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161187c90614060565b80601f01602080910402602001604051908101604052809291908181526020018280546118a890614060565b80156118f55780601f106118ca576101008083540402835291602001916118f5565b820191906000526020600020905b8154815290600101906020018083116118d857829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101611584565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015611a5a576000848152602090819020604080516080810182526003860290920180546001600160401b0316838301908152600182018054845181880281018801909552808552949592948694929386936060870193909290918301828280156119e657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116119c8575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015611a4257602002820191906000526020600020905b815481526020019060010190808311611a2e575b50505050508152505081526020019060010190611950565b50505050815260200160068201548152602001600782018054611a7c90614060565b80601f0160208091040260200160405190810160405280929190818152602001828054611aa890614060565b8015611af55780601f10611aca57610100808354040283529160200191611af5565b820191906000526020600020905b815481529060010190602001808311611ad857829003601f168201915b5050505050815250509050919050565b905090565b6000611b1461382a565b6001600160401b03808416600090815260086020908152604091829020825161012081018452815490941660e0850190815260018201805485518186028101860190965280865292948694929386936101008701939190830182828015611ba457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611b86575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015611fae5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015611cb557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611c97575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190611cef90614060565b80601f0160208091040260200160405190810160405280929190818152602001828054611d1b90614060565b8015611d685780601f10611d3d57610100808354040283529160200191611d68565b820191906000526020600020905b815481529060010190602001808311611d4b57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015611df957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611ddb575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190611e3390614060565b80601f0160208091040260200160405190810160405280929190818152602001828054611e5f90614060565b8015611eac5780601f10611e8157610100808354040283529160200191611eac565b820191906000526020600020905b815481529060010190602001808311611e8f57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191611f0790614060565b80601f0160208091040260200160405190810160405280929190818152602001828054611f3390614060565b8015611f805780601f10611f5557610100808354040283529160200191611f80565b820191906000526020600020905b815481529060010190602001808311611f6357829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101611c0f565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b828210156120e5576000848152602090819020604080516080810182526003860290920180546001600160401b03168383019081526001820180548451818802810188019095528085529495929486949293869360608701939092909183018282801561207157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612053575b5050505050815250508152602001600282018054806020026020016040519081016040528092919081815260200182805480156120cd57602002820191906000526020600020905b8154815260200190600101908083116120b9575b50505050508152505081526020019060010190611fdb565b5050505081526020016006820154815260200160078201805461210790614060565b80601f016020809104026020016040519081016040528092919081815260200182805461213390614060565b80156121805780601f1061215557610100808354040283529160200191612180565b820191906000526020600020905b81548152906001019060200180831161216357829003601f168201915b5050509190925250508151604051630c133d1360e31b815292935073__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e89892506121c59190600401613ffe565b602060405180830381865af41580156121e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061220691906142ed565b159150915091565b606060008061222461221f8561430f565b613615565b915091508161224657604051630e991abd60e41b815260040160405180910390fd5b80600e01805480602002602001604051908101604052809291908181526020016000905b828210156126095760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561231057602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116122f2575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061234a90614060565b80601f016020809104026020016040519081016040528092919081815260200182805461237690614060565b80156123c35780601f10612398576101008083540402835291602001916123c3565b820191906000526020600020905b8154815290600101906020018083116123a657829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561245457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612436575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061248e90614060565b80601f01602080910402602001604051908101604052809291908181526020018280546124ba90614060565b80156125075780601f106124dc57610100808354040283529160200191612507565b820191906000526020600020905b8154815290600101906020018083116124ea57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161256290614060565b80601f016020809104026020016040519081016040528092919081815260200182805461258e90614060565b80156125db5780601f106125b0576101008083540402835291602001916125db565b820191906000526020600020905b8154815290600101906020018083116125be57829003601f168201915b505050919092525050508152600b919091015460ff161515602091820152908252600192909201910161226a565b5050505092505050919050565b61261e613875565b6000828152600660209081526040808320600b81015482516101408101845282546001600160401b03166101008201908152600184018054865181890281018901909752808752949660ff9094169592948794869460c086019487948694919386936101208a01939092918301828280156126c257602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116126a4575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906126fc90614060565b80601f016020809104026020016040519081016040528092919081815260200182805461272890614060565b80156127755780601f1061274a57610100808354040283529160200191612775565b820191906000526020600020905b81548152906001019060200180831161275857829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561280657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116127e8575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061284090614060565b80601f016020809104026020016040519081016040528092919081815260200182805461286c90614060565b80156128b95780601f1061288e576101008083540402835291602001916128b9565b820191906000526020600020905b81548152906001019060200180831161289c57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161291490614060565b80601f016020809104026020016040519081016040528092919081815260200182805461294090614060565b801561298d5780601f106129625761010080835404028352916020019161298d565b820191906000526020600020905b81548152906001019060200180831161297057829003601f168201915b505050505081525050915091509150915091565b604080518082018252600080825260606020808401919091528351808501855282546001600160401b03168152600180548651818502810185019097528087529495919485840193830182828015612a2257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612a04575b505050505081525050905090565b600080612a3c83613615565b600e0154949350505050565b6000808080612a5961221f8661430f565b9150915081612a6f575060009485945092505050565b546001956101009091046001600160401b0316945092505050565b6000611b057f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e270546001600160401b031690565b6000612ac76137a8565b612ad361221f8461430f565b60408051610120810190915281548290829060ff166005811115612af957612af9613928565b6005811115612b0a57612b0a613928565b815281546001600160401b0361010082048116602080850191909152600160481b90920481166040808501919091526001850154606085015260028501546080850152600385015460a085015280518082018252600486018054909316815260058601805483518187028101870190945280845260c0909601959194858101939290830182828015612bc557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612ba7575b50505091909252505050815260408051610120810182526006840180546001600160401b031660e0830190815260078601805485516020828102820181019097528181529686019694959394869486936101008701939091830182828015612c5657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612c38575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156130605760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015612d6757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612d49575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190612da190614060565b80601f0160208091040260200160405190810160405280929190818152602001828054612dcd90614060565b8015612e1a5780601f10612def57610100808354040283529160200191612e1a565b820191906000526020600020905b815481529060010190602001808311612dfd57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015612eab57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612e8d575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190612ee590614060565b80601f0160208091040260200160405190810160405280929190818152602001828054612f1190614060565b8015612f5e5780601f10612f3357610100808354040283529160200191612f5e565b820191906000526020600020905b815481529060010190602001808311612f4157829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191612fb990614060565b80601f0160208091040260200160405190810160405280929190818152602001828054612fe590614060565b80156130325780601f1061300757610100808354040283529160200191613032565b820191906000526020600020905b81548152906001019060200180831161301557829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101612cc1565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015613197576000848152602090819020604080516080810182526003860290920180546001600160401b03168383019081526001820180548451818802810188019095528085529495929486949293869360608701939092909183018282801561312357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613105575b50505050508152505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561317f57602002820191906000526020600020905b81548152602001906001019080831161316b575b5050505050815250508152602001906001019061308d565b505050508152602001600682015481526020016007820180546131b990614060565b80601f01602080910402602001604051908101604052809291908181526020018280546131e590614060565b80156132325780601f1061320757610100808354040283529160200191613232565b820191906000526020600020905b81548152906001019060200180831161321557829003601f168201915b5050505050815250508152602001600e8201805480602002602001604051908101604052809291908181526020016000905b828210156136035760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561330a57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116132ec575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061334490614060565b80601f016020809104026020016040519081016040528092919081815260200182805461337090614060565b80156133bd5780601f10613392576101008083540402835291602001916133bd565b820191906000526020600020905b8154815290600101906020018083116133a057829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561344e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613430575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061348890614060565b80601f01602080910402602001604051908101604052809291908181526020018280546134b490614060565b80156135015780601f106134d657610100808354040283529160200191613501565b820191906000526020600020905b8154815290600101906020018083116134e457829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161355c90614060565b80601f016020809104026020016040519081016040528092919081815260200182805461358890614060565b80156135d55780601f106135aa576101008083540402835291602001916135d5565b820191906000526020600020905b8154815290600101906020018083116135b857829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101613264565b50505091525092969095509350505050565b6040516390ba52cf60e01b815260009081908190600490829073__$a0fe38a9a81205afccc10810b09a4d3f45$__906390ba52cf906136579089908601613ffe565b602060405180830381865af4158015613674573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061369891906142d4565b81526020808201929092526040908101600020815180830183526004820180546001600160401b03168252600583018054855181880281018801909652808652939750919490938582019390929183018282801561371f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613701575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e898925061375e91600401613ffe565b602060405180830381865af415801561377b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061379f91906142ed565b15925050915091565b60408051610120810182526000808252602080830182905282840182905260608084018390526080840183905260a0840183905284518086019095529184528301529060c082019081526020016137fd61382a565b8152602001606081525090565b604051806040016040528061381d613875565b8152600060209091015290565b6040805161012081018252600060e0820181815260606101008401819052908352602083018290529282018190528282018390526080820183905260a082015260c081019190915290565b6040518060c001604052806138886138ca565b81526020016138956138ca565b81526020016000815260200160006001600160401b0316815260200160006001600160e01b0319168152602001606081525090565b604080516080810182526000918101918252606080820152908190815260200161390a6040518060400160405280600060ff168152602001606081525090565b905290565b60006020828403121561392157600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b6006811061395c57634e487b7160e01b600052602160045260246000fd5b9052565b6000604083016001600160401b0383511684526020808401516040828701528281518085526060880191508383019450600092505b808310156139be5784516001600160a01b03168252938301936001929092019190830190613995565b509695505050505050565b6000815180845260005b818110156139ef576020818501810151868301820152016139d3565b506000602082860101526020601f19601f83011685010191505092915050565b6000815160408452613a246040850182613960565b90506020830151848203602086015260ff81511682526020810151905060406020830152613a5560408301826139c9565b95945050505050565b6000815160c08452613a7360c0850182613a0f565b905060208301518482036020860152613a8c8282613a0f565b915050604083015160408501526001600160401b03606084015116606085015263ffffffff60e01b608084015116608085015260a083015184820360a0860152613a5582826139c9565b6000815160408452613aeb6040850182613a5e565b6020938401511515949093019390935250919050565b600081518084526020808501808196508360051b8101915082860160005b85811015613b49578284038952613b37848351613ad6565b98850198935090840190600101613b1f565b5091979650505050505050565b6000815160e08452613b6b60e0850182613960565b905060206001600160401b038185015116818601526040808501518187015260608501518684036060880152613ba18482613b01565b935050608085015186840360808801528381518086528486019150848160051b87010185840193506000805b83811015613c4157888303601f1901855285518051888552613bf189860182613960565b918a0151858303868c01528051808452908b01928592508b01905b80831015613c2c5783518252928b019260019290920191908b0190613c0c565b50978a0197968a019694505050600101613bcd565b505060a089015160a08b015260c0890151965089810360c08b0152613c6681886139c9565b9a9950505050505050505050565b6000610120613c8484845161393e565b6020830151613c9e60208601826001600160401b03169052565b506040830151613cb960408601826001600160401b03169052565b50606083015160608501526080830151608085015260a083015160a085015260c08301518160c0860152613cef82860182613960565b91505060e083015184820360e0860152613d098282613b56565b9150506101008084015185830382870152613d248382613b01565b9695505050505050565b602081526000613d416020830184613c74565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715613d8057613d80613d48565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613dae57613dae613d48565b604052919050565b80356001600160401b0381168114613dcd57600080fd5b919050565b80356001600160a01b0381168114613dcd57600080fd5b600060408284031215613dfb57600080fd5b613e03613d5e565b9050613e0e82613db6565b81526020808301356001600160401b0380821115613e2b57600080fd5b818501915085601f830112613e3f57600080fd5b813581811115613e5157613e51613d48565b8060051b9150613e62848301613d86565b8181529183018401918481019088841115613e7c57600080fd5b938501935b83851015613ea157613e9285613dd2565b82529385019390850190613e81565b808688015250505050505092915050565b60008060408385031215613ec557600080fd5b82356001600160401b03811115613edb57600080fd5b613ee785828601613de9565b95602094909401359450505050565b602081526000613d416020830184613ad6565b600060208284031215613f1b57600080fd5b613d4182613db6565b602081526000613d416020830184613b56565b60008060408385031215613f4a57600080fd5b613f5383613db6565b9150613f6160208401613dd2565b90509250929050565b8215158152604060208201526000613f856040830184613b56565b949350505050565b600060208284031215613f9f57600080fd5b81356001600160401b03811115613fb557600080fd5b820160408185031215613d4157600080fd5b602081526000613d416020830184613b01565b604081526000613fed6040830185613a5e565b905082151560208301529392505050565b602081526000613d416020830184613960565b60006020828403121561402357600080fd5b81356001600160401b0381111561403957600080fd5b613f8584828501613de9565b8215158152604060208201526000613f856040830184613c74565b600181811c9082168061407457607f821691505b60208210810361409457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501808196508360051b8101915082860160005b85811015613b49578284038952815160408151818752805160c080848a01526140fb6101008a0183613a0f565b915089830151603f196060818c860301818d01526141198584613a0f565b9686015160808d810191909152908601516001600160401b031660a0808e0191909152908601516001600160e01b031916938c0193909352918401518a860390920160e08b01525092905061416e81846139c9565b93890151801515898b0152939250614184915050565b99860199945050908401906001016140ce565b600081518084526020808501808196508360051b810191508286016000805b86811015614229578385038a528251604081518188526141d882890182613960565b92890151888403898b01528051808552908a01938693508a0191505b8083101561421457835182529289019260019290920191908901906141f4565b509b88019b96505050918501916001016141b6565b509298975050505050505050565b602081526000825160e06020840152614254610100840182613960565b90506001600160401b036020850151166040840152604084015160608401526060840151601f198085840301608086015261428f83836140b0565b925060808601519150808584030160a08601526142ac8383614197565b925060a086015160c086015260c08601519150808584030160e086015250613a5582826139c9565b6000602082840312156142e657600080fd5b5051919050565b6000602082840312156142ff57600080fd5b81518015158114613d4157600080fd5b600061431b3683613de9565b9291505056fea264697066735822122089a64dbd26e287d7f87f826cf9296ec57b25e86abfdfac5383c0f8caf2da12d064736f6c63430008130033", + "sourceMap": "691:5460:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2259:109;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1391:107;1470:21;;-1:-1:-1;;;;;1470:21:38;1391:107;;;-1:-1:-1;;;;;7906:31:83;;;7888:50;;7876:2;7861:18;1391:107:38;7744:200:83;2792:278:38;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5727:174::-;;;:::i;:::-;;;;-1:-1:-1;;;;;10949:15:83;;;10931:34;;11001:15;;;10996:2;10981:18;;10974:43;11053:15;;11033:18;;;11026:43;;;;10882:2;10867:18;5727:174:38;10698:377:83;5317:240:38;;;;;;:::i;:::-;;:::i;:::-;;;;11462:14:83;;11455:22;11437:41;;11509:2;11494:18;;11487:34;;;;11410:18;5317:240:38;11269:258:83;1296:89:38;1365:13;;;;1296:89;;;11697:14:83;;11690:22;11672:41;;11660:2;11645:18;1296:89:38;11532:187:83;906:92:38;978:13;;906:92;;;11870:25:83;;;11858:2;11843:18;906:92:38;11724:177:83;1724:137:38;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1204:86::-;1273:10;;1204:86;;1004:95;1077:15;;-1:-1:-1;;;;;1077:15:38;1004:95;;5563:158;1438:42:58;3478:14;-1:-1:-1;;;3478:14:58;;-1:-1:-1;;;;;3478:14:58;5563:158:38;;6036:113;1438:42:58;9899:20;-1:-1:-1;;;9899:20:58;;;;6036:113:38;5563:158;4363:285;;;;;;:::i;:::-;-1:-1:-1;;;;;4527:29:38;;4459:4;4527:29;;;:22;:29;;;;;;;;4604:25;;4573:57;;:30;;:57;;;;;-1:-1:-1;;;;;4573:68:38;;;;;;;;;;;;4363:285;;;;;4859:240;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;1504:105::-;1582:20;;-1:-1:-1;;;;;1582:20:38;1504:105;;3898;3975:21;;-1:-1:-1;;;3975:21:38;;-1:-1:-1;;;;;3975:21:38;3898:105;;3076:298;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4009:166::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;1615:103::-;;;:::i;:::-;;;;;;;:::i;3802:90::-;3872:13;;3802:90;;2443:262;;;;;;:::i;:::-;;:::i;3497:299::-;;;;;;:::i;:::-;;:::i;:::-;;;;14759:14:83;;14752:22;14734:41;;-1:-1:-1;;;;;14811:31:83;;;14806:2;14791:18;;14784:59;14707:18;3497:299:38;14568:281:83;1105:93:38;1177:14;;-1:-1:-1;;;;;1177:14:38;1105:93;;5907:123;;;:::i;2057:196::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;2259:109::-;2310:20;;:::i;:::-;2349:1;:12;;;:9;:12;;;;;;;2342:19;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2342:19:38;;;;;;;;;;;;;-1:-1:-1;;;2342:19:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:38;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:38;;;;-1:-1:-1;;;2342:19:38;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:38;-1:-1:-1;;;;;2342:19:38;-1:-1:-1;;;;;2342:19:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:38;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:38;;;;-1:-1:-1;;;2342:19:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:38;;;;-1:-1:-1;;;2342:19:38;;-1:-1:-1;2342:19:38;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:38;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:38;;;;-1:-1:-1;;;2342:19:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:38;;;;-1:-1:-1;;;2342:19:38;;-1:-1:-1;2342:19:38;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:38;;;;;;-1:-1:-1;;;2342:19:38;;;;-1:-1:-1;;;;;;2342:19:38;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:38;;;;-1:-1:-1;;;2342:19:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:38;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:38;;;;-1:-1:-1;;;2342:19:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:38;;;;-1:-1:-1;;;2342:19:38;;-1:-1:-1;2342:19:38;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:38;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:38;;;;-1:-1:-1;;;2342:19:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:38;;;;-1:-1:-1;;;2342:19:38;;-1:-1:-1;2342:19:38;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:38;;;;;;-1:-1:-1;;;2342:19:38;;;;-1:-1:-1;;;;;;2342:19:38;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:38;;;;-1:-1:-1;;;2342:19:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:38;;-1:-1:-1;2342:19:38;;2259:109;-1:-1:-1;;;2259:109:38:o;2792:278::-;2885:15;;:::i;:::-;2966:21;2991:30;3012:8;2991:20;:30::i;:::-;2963:58;;;3038:6;:18;;3057:5;3038:25;;;;;;;;:::i;:::-;;;;;;;;;;3031:32;;;;;;;;3038:25;;;;;;;3031:32;;-1:-1:-1;;;;;3031:32:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;3038:25;;3031:32;;;;;3038:25;;3031:32;;;;;;3038:25;;3031:32;;3038:25;;3031:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3031:32:38;;;;;;;;;;;;;;;;-1:-1:-1;;;3031:32:38;;;;-1:-1:-1;;;3031:32:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3031:32:38;;;;-1:-1:-1;;;3031:32:38;;-1:-1:-1;3031:32:38;;;;;;;;;;;;;;;-1:-1:-1;;;;;3031:32:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3031:32:38;;;;;;;;;;;;;;;;-1:-1:-1;;;3031:32:38;;;;-1:-1:-1;;;3031:32:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3031:32:38;;;;-1:-1:-1;;;3031:32:38;;-1:-1:-1;3031:32:38;;;;;;;;;;;;;;-1:-1:-1;;;;;3031:32:38;;;;;;-1:-1:-1;;;3031:32:38;;;;-1:-1:-1;;;;;;3031:32:38;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3031:32:38;;;;-1:-1:-1;;;3031:32:38;;;;;;;;;;;;;;;;;;2792:278;-1:-1:-1;;;;2792:278:38:o;5727:174::-;5775:6;5783;5791;5867:27;9511:17:58;:24;-1:-1:-1;;;;;9511:24:58;;;;-1:-1:-1;;;9537:23:58;;;;;-1:-1:-1;;;9562:22:58;;;;;;9368:224;5867:27:38;5860:34;;;;;;5727:174;;;:::o;5317:240::-;5393:4;5399:7;5419:11;5432:36;5472:32;5498:5;5472:25;:32::i;:::-;5530:19;;-1:-1:-1;;;5530:19:38;;5418:86;;-1:-1:-1;5418:86:38;-1:-1:-1;5418:86:38;;5530:17;;;;:19;;5418:86;;5530:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5514:36;;;;;;5317:240;;;:::o;1724:137::-;1786:25;;:::i;:::-;-1:-1:-1;;;;;1830:24:38;;;:1;:24;;;:21;:24;;;;;;;;;1823:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1830:24;;1823:31;;;;1830:24;;1823:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1823:31:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1823:31:38;-1:-1:-1;;;;;1823:31:38;-1:-1:-1;;;;;1823:31:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1823:31:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1823:31:38;;;;;;;;;;;;;;;;-1:-1:-1;;;1823:31:38;;;;-1:-1:-1;;;1823:31:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1823:31:38;;;;-1:-1:-1;;;1823:31:38;;-1:-1:-1;1823:31:38;;;;;;;;;;;;;;;-1:-1:-1;;;;;1823:31:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1823:31:38;;;;;;;;;;;;;;;;-1:-1:-1;;;1823:31:38;;;;-1:-1:-1;;;1823:31:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1823:31:38;;;;-1:-1:-1;;;1823:31:38;;-1:-1:-1;1823:31:38;;;;;;;;;;;;;;-1:-1:-1;;;;;1823:31:38;;;;;;-1:-1:-1;;;1823:31:38;;;;-1:-1:-1;;;;;;1823:31:38;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1823:31:38;;;;-1:-1:-1;;;1823:31:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1823:31:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1823:31:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1724:137;;;:::o;5687:27::-;5680:34;;5563:158;:::o;4859:240::-;4943:11;4956:36;;:::i;:::-;-1:-1:-1;;;;;5017:28:38;;;:1;:28;;;:21;:28;;;;;;;;;5004:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5017:28;;5004:41;;;;5017:28;;5004:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5004:41:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5004:41:38;-1:-1:-1;;;;;5004:41:38;-1:-1:-1;;;;;5004:41:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5004:41:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5004:41:38;;;;;;;;;;;;;;;;-1:-1:-1;;;5004:41:38;;;;-1:-1:-1;;;5004:41:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5004:41:38;;;;-1:-1:-1;;;5004:41:38;;-1:-1:-1;5004:41:38;;;;;;;;;;;;;;;-1:-1:-1;;;;;5004:41:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5004:41:38;;;;;;;;;;;;;;;;-1:-1:-1;;;5004:41:38;;;;-1:-1:-1;;;5004:41:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5004:41:38;;;;-1:-1:-1;;;5004:41:38;;-1:-1:-1;5004:41:38;;;;;;;;;;;;;;-1:-1:-1;;;;;5004:41:38;;;;;;-1:-1:-1;;;5004:41:38;;;;-1:-1:-1;;;;;;5004:41:38;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5004:41:38;;;;-1:-1:-1;;;5004:41:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5004:41:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5004:41:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5004:41:38;;;;-1:-1:-1;;5065:17:38;;:27;;-1:-1:-1;;;5065:27:38;;5004:41;;-1:-1:-1;5065:25:38;;;;-1:-1:-1;5065:27:38;;:17;:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5064:28;5055:37;;4859:240;;;:::o;3076:298::-;3151:17;3181:15;;3223:30;;3244:8;3223:30;:::i;:::-;:20;:30::i;:::-;3180:73;;;;3268:10;3263:70;;3301:21;;-1:-1:-1;;;3301:21:38;;;;;;;;;;;3263:70;3349:6;:18;;3342:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3342:25:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3342:25:38;;;;;;;;;;;;;;;;-1:-1:-1;;;3342:25:38;;;;-1:-1:-1;;;3342:25:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3342:25:38;;;;-1:-1:-1;;;3342:25:38;;-1:-1:-1;3342:25:38;;;;;;;;;;;;;;;-1:-1:-1;;;;;3342:25:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3342:25:38;;;;;;;;;;;;;;;;-1:-1:-1;;;3342:25:38;;;;-1:-1:-1;;;3342:25:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3342:25:38;;;;-1:-1:-1;;;3342:25:38;;-1:-1:-1;3342:25:38;;;;;;;;;;;;;;-1:-1:-1;;;;;3342:25:38;;;;;;-1:-1:-1;;;3342:25:38;;;;-1:-1:-1;;;;;;3342:25:38;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3342:25:38;;;;-1:-1:-1;;;3342:25:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3076:298;;;:::o;4009:166::-;4059:30;;:::i;:::-;4091:12;4123:13;;;:9;:13;;;;;;;;4146:21;;;;4115:53;;;;;;;;;-1:-1:-1;;;;;4115:53:38;4146:21;4115:53;;;;;4146:21;4115:53;;;;;;;;;;;;;;;;;;;4123:13;;4146:21;;;;;4115:53;;4123:13;;4115:53;;;;;;4123:13;;4115:53;;;;4123:13;;4115:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4115:53:38;;;;;;;;;;;;;;;;-1:-1:-1;;;4115:53:38;;;;-1:-1:-1;;;4115:53:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4115:53:38;;;;-1:-1:-1;;;4115:53:38;;-1:-1:-1;4115:53:38;;;;;;;;;;;;;;;-1:-1:-1;;;;;4115:53:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4115:53:38;;;;;;;;;;;;;;;;-1:-1:-1;;;4115:53:38;;;;-1:-1:-1;;;4115:53:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4115:53:38;;;;-1:-1:-1;;;4115:53:38;;-1:-1:-1;4115:53:38;;;;;;;;;;;;;;-1:-1:-1;;;;;4115:53:38;;;;;;-1:-1:-1;;;4115:53:38;;;;-1:-1:-1;;;;;;4115:53:38;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4009:166;;;:::o;1615:103::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;1691:20:38;;;;;;;;;-1:-1:-1;;;;;1691:20:38;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1691:20:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1691:20:38;;;;;;;;;;;;;;;;;;;;;;;;;;;1615:103;:::o;2443:262::-;2528:7;2601:21;2626:30;2647:8;2626:20;:30::i;:::-;2673:18;;:25;;2443:262;-1:-1:-1;;;;2443:262:38:o;3497:299::-;3580:4;;;;3647:30;;3668:8;3647:30;:::i;:::-;3604:73;;;;3692:10;3687:59;;-1:-1:-1;3726:5:38;;;;-1:-1:-1;3497:299:38;-1:-1:-1;;;3497:299:38:o;3687:59::-;3769:19;3763:4;;3769:19;;;;-1:-1:-1;;;;;3769:19:38;;-1:-1:-1;3763:4:38;-1:-1:-1;;;3497:299:38:o;5907:123::-;5963:6;5988:35;1438:42:58;9732:25;-1:-1:-1;;;;;9732:25:58;;9598:166;2057:196:38;2127:4;2133:13;;:::i;:::-;2216:30;;2237:8;2216:30;:::i;:::-;2209:37;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2209:37:38;;;;;;;;;;;;;-1:-1:-1;;;2209:37:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:38;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:38;;;;-1:-1:-1;;;2209:37:38;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:38;-1:-1:-1;;;;;2209:37:38;-1:-1:-1;;;;;2209:37:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:38;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:38;;;;-1:-1:-1;;;2209:37:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:38;;;;-1:-1:-1;;;2209:37:38;;-1:-1:-1;2209:37:38;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:38;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:38;;;;-1:-1:-1;;;2209:37:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:38;;;;-1:-1:-1;;;2209:37:38;;-1:-1:-1;2209:37:38;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:38;;;;;;-1:-1:-1;;;2209:37:38;;;;-1:-1:-1;;;;;;2209:37:38;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:38;;;;-1:-1:-1;;;2209:37:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:38;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:38;;;;-1:-1:-1;;;2209:37:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:38;;;;-1:-1:-1;;;2209:37:38;;-1:-1:-1;2209:37:38;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:38;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:38;;;;-1:-1:-1;;;2209:37:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:38;;;;-1:-1:-1;;;2209:37:38;;-1:-1:-1;2209:37:38;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:38;;;;;;-1:-1:-1;;;2209:37:38;;;;-1:-1:-1;;;;;;2209:37:38;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:38;;;;-1:-1:-1;;;2209:37:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:38;;-1:-1:-1;2209:37:38;;;;-1:-1:-1;2057:196:38;-1:-1:-1;;;;2057:196:38:o;5818:272:54:-;6027:17;;-1:-1:-1;;;6027:17:54;;5886:10;;;;;;6017:9;;5886:10;;6027:15;;;;:17;;:8;;:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6017:28;;;;;;;;;;;;;;-1:-1:-1;6017:28:54;6064:17;;;;;;;:9;;;:17;;-1:-1:-1;;;;;6064:17:54;;;;;;;;;;;;;;;;;;;;;;;6017:28;;-1:-1:-1;6064:17:54;;:9;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6064:17:54;;;;;;;;;;;;;;;;-1:-1:-1;;;6064:17:54;;;;-1:-1:-1;;6064:19:54;;-1:-1:-1;;;6064:19:54;;:17;;;;-1:-1:-1;6064:19:54;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6063:20;6055:28;;5921:169;5818:272;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:180:83:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:83;;14:180;-1:-1:-1;14:180:83:o;199:127::-;260:10;255:3;251:20;248:1;241:31;291:4;288:1;281:15;315:4;312:1;305:15;331:234;409:1;402:5;399:12;389:143;;454:10;449:3;445:20;442:1;435:31;489:4;486:1;479:15;517:4;514:1;507:15;389:143;541:18;;331:234::o;677:689::-;728:3;767:4;762:3;758:14;-1:-1:-1;;;;;803:5:83;797:12;793:37;788:3;781:50;850:4;900:2;893:5;889:14;883:21;934:4;929:2;924:3;920:12;913:26;961:4;994:12;988:19;1029:6;1023:4;1016:20;1063:2;1058:3;1054:12;1045:21;;1107:2;1093:12;1089:21;1075:35;;1128:1;1119:10;;1138:201;1152:6;1149:1;1146:13;1138:201;;;1219:13;;-1:-1:-1;;;;;1215:39:83;1201:54;;1314:15;;;;1251:1;1167:9;;;;;1277:14;;;;1138:201;;;-1:-1:-1;1355:5:83;677:689;-1:-1:-1;;;;;;677:689:83:o;1371:422::-;1412:3;1450:5;1444:12;1477:6;1472:3;1465:19;1502:1;1512:162;1526:6;1523:1;1520:13;1512:162;;;1588:4;1644:13;;;1640:22;;1634:29;1616:11;;;1612:20;;1605:59;1541:12;1512:162;;;1516:3;1719:1;1712:4;1703:6;1698:3;1694:16;1690:27;1683:38;1782:4;1775:2;1771:7;1766:2;1758:6;1754:15;1750:29;1745:3;1741:39;1737:50;1730:57;;;1371:422;;;;:::o;1798:534::-;1851:3;1895:5;1889:12;1922:4;1917:3;1910:17;1948:56;1998:4;1993:3;1989:14;1975:12;1948:56;:::i;:::-;1936:68;;2052:4;2045:5;2041:16;2035:23;2100:3;2094:4;2090:14;2083:4;2078:3;2074:14;2067:38;2154:4;2137:14;2131:21;2127:32;2121:4;2114:46;2217:4;2201:14;2197:25;2191:32;2169:54;;2256:4;2249;2243;2239:15;2232:29;2277:49;2320:4;2314;2310:15;2294:14;2277:49;:::i;:::-;2270:56;1798:534;-1:-1:-1;;;;;1798:534:83:o;2337:768::-;2391:3;2435:5;2429:12;2462:4;2457:3;2450:17;2488:58;2540:4;2535:3;2531:14;2517:12;2488:58;:::i;:::-;2476:70;;2594:4;2587:5;2583:16;2577:23;2642:3;2636:4;2632:14;2625:4;2620:3;2616:14;2609:38;2670:50;2715:4;2699:14;2670:50;:::i;:::-;2656:64;;;2769:4;2762:5;2758:16;2752:23;2745:4;2740:3;2736:14;2729:47;-1:-1:-1;;;;;2829:4:83;2822:5;2818:16;2812:23;2808:48;2801:4;2796:3;2792:14;2785:72;2927:10;2922:3;2918:20;2910:4;2903:5;2899:16;2893:23;2889:50;2882:4;2877:3;2873:14;2866:74;2988:4;2981:5;2977:16;2971:23;3038:3;3030:6;3026:16;3019:4;3014:3;3010:14;3003:40;3059;3092:6;3076:14;3059:40;:::i;3206:305::-;3257:3;3301:5;3295:12;3328:4;3323:3;3316:17;3354:59;3407:4;3402:3;3398:14;3384:12;3354:59;:::i;:::-;3476:4;3465:16;;;3459:23;3452:31;3445:39;3429:14;;;;3422:63;;;;-1:-1:-1;3342:71:83;3206:305;-1:-1:-1;3206:305:83:o;3516:656::-;3599:3;3637:5;3631:12;3664:6;3659:3;3652:19;3690:4;3731:2;3726:3;3722:12;3756:11;3783;3776:18;;3833:6;3830:1;3826:14;3819:5;3815:26;3803:38;;3875:2;3868:5;3864:14;3896:1;3906:240;3920:6;3917:1;3914:13;3906:240;;;3991:5;3985:4;3981:16;3976:3;3969:29;4019:47;4061:4;4052:6;4046:13;4019:47;:::i;:::-;4124:12;;;;4011:55;-1:-1:-1;4089:15:83;;;;3942:1;3935:9;3906:240;;;-1:-1:-1;4162:4:83;;3516:656;-1:-1:-1;;;;;;;3516:656:83:o;4177:2198::-;4238:3;4282:5;4276:12;4309:4;4304:3;4297:17;4335:56;4385:4;4380:3;4376:14;4362:12;4335:56;:::i;:::-;4323:68;;4410:4;-1:-1:-1;;;;;4465:2:83;4458:5;4454:14;4448:21;4444:46;4439:2;4434:3;4430:12;4423:68;4510:4;4561:2;4554:5;4550:14;4544:21;4539:2;4534:3;4530:12;4523:43;4614:4;4607:5;4603:16;4597:23;4662:3;4656:4;4652:14;4645:4;4640:3;4636:14;4629:38;4690:80;4765:4;4749:14;4690:80;:::i;:::-;4676:94;;;4818:4;4811:5;4807:16;4801:23;4868:3;4860:6;4856:16;4849:4;4844:3;4840:14;4833:40;4895:6;4930:14;4924:21;4969:6;4961;4954:22;5006:2;4998:6;4994:15;4985:24;;5065:2;5055:6;5052:1;5048:14;5040:6;5036:27;5032:36;5111:2;5095:14;5091:23;5077:37;;5132:1;5153;5163:991;5179:6;5174:3;5171:15;5163:991;;;5250:19;;;-1:-1:-1;;5246:33:83;5232:48;;5303:13;;5351:9;;5373:18;;;5418:59;5461:15;;;5351:9;5418:59;:::i;:::-;5518:11;;;5512:18;5567:19;;;5550:15;;;5543:44;5648:21;;5682:24;;;5772:23;;;;5819:1;;-1:-1:-1;5728:15:83;;;5833:209;5849:8;5844:3;5841:17;5833:209;;;5926:15;;5912:30;;6011:17;;;;5877:1;5868:11;;;;;5968:14;;;;5833:209;;;-1:-1:-1;6093:15:83;;;;6130:14;;;;6065:5;-1:-1:-1;;;5205:1:83;5196:11;5163:991;;;5167:3;;6203:4;6196:5;6192:16;6186:23;6179:4;6174:3;6170:14;6163:47;6258:4;6251:5;6247:16;6241:23;6219:45;;6308:3;6300:6;6296:16;6289:4;6284:3;6280:14;6273:40;6329;6362:6;6346:14;6329:40;:::i;:::-;6322:47;4177:2198;-1:-1:-1;;;;;;;;;;4177:2198:83:o;6380:1097::-;6429:3;6457:6;6472:41;6509:3;6501:5;6495:12;6472:41;:::i;:::-;6559:4;6552:5;6548:16;6542:23;6574:47;6615:4;6610:3;6606:14;6592:12;-1:-1:-1;;;;;635:30:83;623:43;;570:102;6574:47;;6669:4;6662:5;6658:16;6652:23;6684:49;6727:4;6722:3;6718:14;6702;-1:-1:-1;;;;;635:30:83;623:43;;570:102;6684:49;;6782:4;6775:5;6771:16;6765:23;6758:4;6753:3;6749:14;6742:47;6838:4;6831:5;6827:16;6821:23;6814:4;6809:3;6805:14;6798:47;6894:4;6887:5;6883:16;6877:23;6870:4;6865:3;6861:14;6854:47;6949:4;6942:5;6938:16;6932:23;6987:2;6980:4;6975:3;6971:14;6964:26;7011:56;7063:2;7058:3;7054:12;7038:14;7011:56;:::i;:::-;6999:68;;;7115:4;7108:5;7104:16;7098:23;7163:3;7157:4;7153:14;7146:4;7141:3;7137:14;7130:38;7191:58;7244:4;7228:14;7191:58;:::i;:::-;7177:72;;;7268:6;7322:2;7315:5;7311:14;7305:21;7368:3;7360:6;7356:16;7351:2;7346:3;7342:12;7335:38;7389:82;7464:6;7448:14;7389:82;:::i;:::-;7382:89;6380:1097;-1:-1:-1;;;;;;6380:1097:83:o;7482:257::-;7661:2;7650:9;7643:21;7624:4;7681:52;7729:2;7718:9;7714:18;7706:6;7681:52;:::i;:::-;7673:60;7482:257;-1:-1:-1;;;7482:257:83:o;7949:127::-;8010:10;8005:3;8001:20;7998:1;7991:31;8041:4;8038:1;8031:15;8065:4;8062:1;8055:15;8081:257;8153:4;8147:11;;;8185:17;;-1:-1:-1;;;;;8217:34:83;;8253:22;;;8214:62;8211:88;;;8279:18;;:::i;:::-;8315:4;8308:24;8081:257;:::o;8343:275::-;8414:2;8408:9;8479:2;8460:13;;-1:-1:-1;;8456:27:83;8444:40;;-1:-1:-1;;;;;8499:34:83;;8535:22;;;8496:62;8493:88;;;8561:18;;:::i;:::-;8597:2;8590:22;8343:275;;-1:-1:-1;8343:275:83:o;8623:171::-;8690:20;;-1:-1:-1;;;;;8739:30:83;;8729:41;;8719:69;;8784:1;8781;8774:12;8719:69;8623:171;;;:::o;8799:173::-;8867:20;;-1:-1:-1;;;;;8916:31:83;;8906:42;;8896:70;;8962:1;8959;8952:12;8977:1027;9032:5;9080:4;9068:9;9063:3;9059:19;9055:30;9052:50;;;9098:1;9095;9088:12;9052:50;9120:22;;:::i;:::-;9111:31;;9165:28;9183:9;9165:28;:::i;:::-;9158:5;9151:43;9213:2;9266;9255:9;9251:18;9238:32;-1:-1:-1;;;;;9330:2:83;9322:6;9319:14;9316:34;;;9346:1;9343;9336:12;9316:34;9384:6;9373:9;9369:22;9359:32;;9429:3;9422:4;9418:2;9414:13;9410:23;9400:51;;9447:1;9444;9437:12;9400:51;9483:2;9470:16;9505:2;9501;9498:10;9495:36;;;9511:18;;:::i;:::-;9557:2;9554:1;9550:10;9540:20;;9580:28;9604:2;9600;9596:11;9580:28;:::i;:::-;9642:15;;;9712:11;;;9708:20;;;9673:12;;;;9740:15;;;9737:35;;;9768:1;9765;9758:12;9737:35;9792:11;;;;9812:148;9828:6;9823:3;9820:15;9812:148;;;9894:23;9913:3;9894:23;:::i;:::-;9882:36;;9845:12;;;;9938;;;;9812:148;;;9992:5;9987:2;9980:5;9976:14;9969:29;;;;;;;8977:1027;;;;:::o;10009:416::-;10104:6;10112;10165:2;10153:9;10144:7;10140:23;10136:32;10133:52;;;10181:1;10178;10171:12;10133:52;10221:9;10208:23;-1:-1:-1;;;;;10246:6:83;10243:30;10240:50;;;10286:1;10283;10276:12;10240:50;10309:59;10360:7;10351:6;10340:9;10336:22;10309:59;:::i;:::-;10299:69;10415:2;10400:18;;;;10387:32;;-1:-1:-1;;;;10009:416:83:o;10430:263::-;10613:2;10602:9;10595:21;10576:4;10633:54;10683:2;10672:9;10668:18;10660:6;10633:54;:::i;11080:184::-;11138:6;11191:2;11179:9;11170:7;11166:23;11162:32;11159:52;;;11207:1;11204;11197:12;11159:52;11230:28;11248:9;11230:28;:::i;11906:293::-;12109:2;12098:9;12091:21;12072:4;12129:64;12189:2;12178:9;12174:18;12166:6;12129:64;:::i;12204:258::-;12271:6;12279;12332:2;12320:9;12311:7;12307:23;12303:32;12300:52;;;12348:1;12345;12338:12;12300:52;12371:28;12389:9;12371:28;:::i;:::-;12361:38;;12418;12452:2;12441:9;12437:18;12418:38;:::i;:::-;12408:48;;12204:258;;;;;:::o;12467:374::-;12706:6;12699:14;12692:22;12681:9;12674:41;12751:2;12746;12735:9;12731:18;12724:30;12655:4;12771:64;12831:2;12820:9;12816:18;12808:6;12771:64;:::i;:::-;12763:72;12467:374;-1:-1:-1;;;;12467:374:83:o;12846:388::-;12934:6;12987:2;12975:9;12966:7;12962:23;12958:32;12955:52;;;13003:1;13000;12993:12;12955:52;13043:9;13030:23;-1:-1:-1;;;;;13068:6:83;13065:30;13062:50;;;13108:1;13105;13098:12;13062:50;13131:22;;13187:2;13169:16;;;13165:25;13162:45;;;13203:1;13200;13193:12;13239:345;13472:2;13461:9;13454:21;13435:4;13492:86;13574:2;13563:9;13559:18;13551:6;13492:86;:::i;13589:353::-;13800:2;13789:9;13782:21;13763:4;13820:57;13873:2;13862:9;13858:18;13850:6;13820:57;:::i;:::-;13812:65;;13927:6;13920:14;13913:22;13908:2;13897:9;13893:18;13886:50;13589:353;;;;;:::o;13947:263::-;14130:2;14119:9;14112:21;14093:4;14150:54;14200:2;14189:9;14185:18;14177:6;14150:54;:::i;14215:348::-;14301:6;14354:2;14342:9;14333:7;14329:23;14325:32;14322:52;;;14370:1;14367;14360:12;14322:52;14410:9;14397:23;-1:-1:-1;;;;;14435:6:83;14432:30;14429:50;;;14475:1;14472;14465:12;14429:50;14498:59;14549:7;14540:6;14529:9;14525:22;14498:59;:::i;14854:338::-;15069:6;15062:14;15055:22;15044:9;15037:41;15114:2;15109;15098:9;15094:18;15087:30;15018:4;15134:52;15182:2;15171:9;15167:18;15159:6;15134:52;:::i;15197:380::-;15276:1;15272:12;;;;15319;;;15340:61;;15394:4;15386:6;15382:17;15372:27;;15340:61;15447:2;15439:6;15436:14;15416:18;15413:38;15410:161;;15493:10;15488:3;15484:20;15481:1;15474:31;15528:4;15525:1;15518:15;15556:4;15553:1;15546:15;15410:161;;15197:380;;;:::o;15582:127::-;15643:10;15638:3;15634:20;15631:1;15624:31;15674:4;15671:1;15664:15;15698:4;15695:1;15688:15;15714:1865;15775:3;15813:5;15807:12;15840:6;15835:3;15828:19;15866:4;15907:2;15902:3;15898:12;15932:11;15959;15952:18;;16009:6;16006:1;16002:14;15995:5;15991:26;15979:38;;16051:2;16044:5;16040:14;16072:1;16082:1471;16096:6;16093:1;16090:13;16082:1471;;;16167:5;16161:4;16157:16;16152:3;16145:29;16203:6;16197:13;16233:4;16276:2;16270:9;16305:2;16299:4;16292:16;16349:12;16343:19;16385:4;16424:2;16419;16413:4;16409:13;16402:25;16454:60;16509:3;16503:4;16499:14;16483;16454:60;:::i;:::-;16440:74;;16573:2;16559:12;16555:21;16549:28;16604:2;16600:7;16630:2;16690;16683:4;16675:6;16671:17;16667:26;16662:2;16656:4;16652:13;16645:49;16721:52;16766:6;16750:14;16721:52;:::i;:::-;16802:21;;;16796:28;16847:3;16870:13;;;16863:25;;;;16929:21;;;16923:28;-1:-1:-1;;;;;17012:39:83;16974:3;16997:13;;;16990:62;;;;17097:21;;;17091:28;-1:-1:-1;;;;;;17087:55:83;17072:13;;;17065:78;;;;17184:21;;;17178:28;17246:17;;;17242:26;;;17125:3;17226:14;;17219:50;-1:-1:-1;17178:28:83;16707:66;-1:-1:-1;17295:40:83;16707:66;17178:28;17295:40;:::i;:::-;17376:11;;;17370:18;3180:13;;3173:21;17433:13;;;3161:34;17370:18;17282:53;-1:-1:-1;17401:46:83;;-1:-1:-1;;3110:91:83;17401:46;17531:12;;;;17468:5;-1:-1:-1;;17496:15:83;;;;16118:1;16111:9;16082:1471;;17584:1398;17647:3;17685:5;17679:12;17712:6;17707:3;17700:19;17738:4;17779:2;17774:3;17770:12;17804:11;17831;17824:18;;17881:6;17878:1;17874:14;17867:5;17863:26;17851:38;;17923:2;17916:5;17912:14;17944:1;17965;17975:981;17991:6;17986:3;17983:15;17975:981;;;18066:5;18060:4;18056:16;18051:3;18044:29;18102:6;18096:13;18132:4;18175:2;18169:9;18204:2;18198:4;18191:16;18234:55;18285:2;18279:4;18275:13;18261:12;18234:55;:::i;:::-;18330:11;;;18324:18;18377:17;;;18362:13;;;18355:40;18456:21;;18490:24;;;18580:23;;;;18627:1;;-1:-1:-1;18536:15:83;;;-1:-1:-1;18641:209:83;18657:8;18652:3;18649:17;18641:209;;;18734:15;;18720:30;;18819:17;;;;18685:1;18676:11;;;;;18776:14;;;;18641:209;;;-1:-1:-1;18934:12:83;;;;18871:5;-1:-1:-1;;;18899:15:83;;;;18017:1;18008:11;17975:981;;;-1:-1:-1;18972:4:83;;17584:1398;-1:-1:-1;;;;;;;;17584:1398:83:o;18987:1211::-;19198:2;19187:9;19180:21;19161:4;19236:6;19230:13;19279:4;19274:2;19263:9;19259:18;19252:32;19307:61;19363:3;19352:9;19348:19;19334:12;19307:61;:::i;:::-;19293:75;;-1:-1:-1;;;;;19426:2:83;19418:6;19414:15;19408:22;19404:47;19399:2;19388:9;19384:18;19377:75;19506:2;19498:6;19494:15;19488:22;19483:2;19472:9;19468:18;19461:50;19560:2;19552:6;19548:15;19542:22;19587:2;19583:7;19655:2;19643:9;19635:6;19631:22;19627:31;19621:3;19610:9;19606:19;19599:60;19682;19735:6;19719:14;19682:60;:::i;:::-;19668:74;;19791:3;19783:6;19779:16;19773:23;19751:45;;19861:2;19849:9;19841:6;19837:22;19833:31;19827:3;19816:9;19812:19;19805:60;19888:62;19943:6;19927:14;19888:62;:::i;:::-;19874:76;;20005:3;19997:6;19993:16;19987:23;19981:3;19970:9;19966:19;19959:52;20060:3;20052:6;20048:16;20042:23;20020:45;;20131:2;20119:9;20111:6;20107:22;20103:31;20096:4;20085:9;20081:20;20074:61;;20152:40;20185:6;20169:14;20152:40;:::i;20203:184::-;20273:6;20326:2;20314:9;20305:7;20301:23;20297:32;20294:52;;;20342:1;20339;20332:12;20294:52;-1:-1:-1;20365:16:83;;20203:184;-1:-1:-1;20203:184:83:o;20668:277::-;20735:6;20788:2;20776:9;20767:7;20763:23;20759:32;20756:52;;;20804:1;20801;20794:12;20756:52;20836:9;20830:16;20889:5;20882:13;20875:21;20868:5;20865:32;20855:60;;20911:1;20908;20901:12;20950:198;21056:9;21093:49;21127:14;21120:5;21093:49;:::i;:::-;21080:62;20950:198;-1:-1:-1;;20950:198:83:o", + "linkReferences": { + "src/lib/CheckpointHelper.sol": { + "CheckpointHelper": [ + { + "start": 5133, + "length": 20 + } + ] + }, + "src/lib/SubnetIDHelper.sol": { + "SubnetIDHelper": [ + { + "start": 8605, + "length": 20 + }, + { + "start": 13872, + "length": 20 + }, + { + "start": 14135, + "length": 20 + } + ] + } + } + }, + "methodIdentifiers": { + "appliedTopDownNonce()": "8789f83b", + "bottomUpCheckPeriod()": "06c46853", + "bottomUpCheckpointAtEpoch(uint64)": "6cb2ecee", + "bottomUpCheckpointHashAtEpoch(uint64)": "133f74ea", + "bottomUpCheckpoints(uint64)": "2cc14ea2", + "bottomUpNonce()": "41b6a2e8", + "crossMsgFee()": "24729425", + "executableQueue()": "10d500e1", + "getAppliedTopDownNonce((uint64,address[]))": "9e530b57", + "getGenesisEpoch()": "51392fc0", + "getNetworkName()": "94074b03", + "getSubnet((uint64,address[]))": "c66c66a1", + "getSubnetTopDownMsg((uint64,address[]),uint256)": "0ea746f2", + "getSubnetTopDownMsgsLength((uint64,address[]))": "9d3070b5", + "getTopDownMsgs((uint64,address[]))": "88f6aea5", + "hasValidatorVotedForSubmission(uint64,address)": "66d7bbbc", + "initialized()": "158ef93e", + "lastVotingExecutedEpoch()": "ad81e244", + "majorityPercentage()": "599c7bd1", + "minStake()": "375b3c0a", + "postbox(bytes32)": "8cfd78e7", + "subnets(bytes32)": "02e30f9a", + "topDownCheckPeriod()": "7d9740f4", + "totalSubnets()": "a2b67158", + "totalWeight()": "96c82e57" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"NotRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"appliedTopDownNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpCheckPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"}],\"name\":\"bottomUpCheckpointAtEpoch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"checks\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ChildCheck[]\",\"name\":\"children\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"}],\"name\":\"bottomUpCheckpointHashAtEpoch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"e\",\"type\":\"uint64\"}],\"name\":\"bottomUpCheckpoints\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"checks\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ChildCheck[]\",\"name\":\"children\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"crossMsgFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executableQueue\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"getAppliedTopDownNonce\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGenesisEpoch\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNetworkName\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"getSubnet\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"enum Status\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"topDownNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"appliedBottomUpNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"genesisEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"circSupply\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"id\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"checks\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ChildCheck[]\",\"name\":\"children\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"prevCheckpoint\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"topDownMsgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Subnet\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getSubnetTopDownMsg\",\"outputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"getSubnetTopDownMsgsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"getTopDownMsgs\",\"outputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"hasValidatorVotedForSubmission\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastVotingExecutedEpoch\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"majorityPercentage\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"postbox\",\"outputs\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"storableMsg\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"h\",\"type\":\"bytes32\"}],\"name\":\"subnets\",\"outputs\":[{\"components\":[{\"internalType\":\"enum Status\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"topDownNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"appliedBottomUpNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"genesisEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"circSupply\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"id\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"checks\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ChildCheck[]\",\"name\":\"children\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"prevCheckpoint\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"topDownMsgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Subnet\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"topDownCheckPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSubnets\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"bottomUpCheckpointAtEpoch(uint64)\":{\"params\":{\"epoch\":\"- the epoch to check\"},\"returns\":{\"checkpoint\":\"- the checkpoint struct\",\"exists\":\"- whether the checkpoint exists\"}},\"bottomUpCheckpointHashAtEpoch(uint64)\":{\"params\":{\"epoch\":\"- the epoch to check\"},\"returns\":{\"_0\":\"exists - whether the checkpoint exists\",\"_1\":\"hash - the hash of the checkpoint\"}},\"getAppliedTopDownNonce((uint64,address[]))\":{\"params\":{\"subnetId\":\"- The subnet id to fetch messages from\"}},\"getSubnet((uint64,address[]))\":{\"params\":{\"subnetId\":\"the id of the subnet\"},\"returns\":{\"_0\":\"found whether the subnet exists\",\"_1\":\"subnet - the subnet struct\"}},\"hasValidatorVotedForSubmission(uint64,address)\":{\"params\":{\"epoch\":\"- the epoch to check\",\"submitter\":\"- the validator to check\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"bottomUpCheckpointAtEpoch(uint64)\":{\"notice\":\"returns the current bottom-up checkpoint\"},\"bottomUpCheckpointHashAtEpoch(uint64)\":{\"notice\":\"returns the historical bottom-up checkpoint hash\"},\"getAppliedTopDownNonce((uint64,address[]))\":{\"notice\":\"Get the latest applied top down nonce\"},\"getSubnet((uint64,address[]))\":{\"notice\":\"returns the subnet with the given id\"},\"getSubnetTopDownMsg((uint64,address[]),uint256)\":{\"notice\":\"get the top-down message at the given index for the given subnet\"},\"getSubnetTopDownMsgsLength((uint64,address[]))\":{\"notice\":\"get number of top-down messages for the given subnet\"},\"hasValidatorVotedForSubmission(uint64,address)\":{\"notice\":\"whether a validator has voted for a checkpoint submission during an epoch\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/GatewayGetterFacet.sol\":\"GatewayGetterFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xb8d40721965efd93b5369d55083181226d3c7e1be4a968c04de35d44ba44f29a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5c4b0089788aa7112cce88602212c3895999f464e00d1c40d7f27ac9288798b\",\"dweb:/ipfs/Qmd69EuGeoCYPfPkGA4hayH4s2upmAe3XaoDf4ggYNEoZ4\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x31f34a3baec77c087d2bdbc5c277f169e505b905aeb43cfcea1734175140f621\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5a3bc8093b31b685ef879e8ffaaab614594cb6f98ddac4f18c411f7bbf99d0d\",\"dweb:/ipfs/QmSFfA9pH3xo8hnWKCFKTwGi8kz68YXuAwyLXsYe6KjC3Z\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xdb6d7e26320438bdd421598eb64e6fe2b03867a4dd07c9c820994b7bec26f7b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2adf1566393ddf260fb2064dd0c67be00123b8978be8b62cc45ac97aff859949\",\"dweb:/ipfs/QmaDLzQpnitEJDAJo4squpKumr5x4D2QYetPdT3jZd8hYm\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x8a925dea568a61a38de9615aae7bb462d9eb6f8eb2c6ca409f1e740519077ab8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b7e2f836581694867c09bb9c80ff2ab6ae039ece2ff3bbf4d1bc2026449fa551\",\"dweb:/ipfs/QmVMvaQSCRBHZudSV8AzimYre76tJVm4UrHYnrT89zcjho\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0xf29c18f694b5acc919b7cada2875ca3bd2c52ddd7ef86ee747aab0faeb50ac8b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d8fb92f533cc119c578da73b06efe76b0efaa612af7c77178eb903952fcf53df\",\"dweb:/ipfs/QmdosRgUmvwXRnxq5TmoJoFMs7TULduTFpMUNyYXQNGfQD\"]},\"src/enums/VoteExecutionStatus.sol\":{\"keccak256\":\"0x56d1db8abf83feb0f1d69f1919fbd5bd79c6f3c5bf3c149950d307b9d62b6455\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb2ec0f87a9091eab463ac6a776d5737189e0239f412b36b975bb0be1fcb4ad8\",\"dweb:/ipfs/QmWiXwab54Ag2f1kyGjqT3brh5JrV5Lc7cqod9VPaS5ey6\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xab09aee88feca01f5c23baa475aa02bb8c1b189e60a7b81848a07e00b9ab708c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1f5d874688d7316a0eb382b6fb1e7ea6648b15aaaab95acc51f18bfcab851d61\",\"dweb:/ipfs/QmdZRRmWrkrn5MmEX3n5yWEREtoCvXNxzoVkPWSH64ENpd\"]},\"src/gateway/GatewayGetterFacet.sol\":{\"keccak256\":\"0x587fa15a86e9e70572d4d79ed921da2063a588ec724380b8775148b8e5f57b0f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://11f9f98d6d5176011c4c453fbc39f892a9dbca21674f2a3110cb1d419ba3d5a4\",\"dweb:/ipfs/QmfLPMf3JrF1eYzJMuTJnXbyQrvbUKJb9CcG2hK5n3oLfo\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x57865785239b076bc429cd989bc5cb2a2e68050c7293a5a537d8cdeded170294\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://28285703560a0bbfa247c894c9f14f2a14e02e430e7dedb0a05b58c53aed3763\",\"dweb:/ipfs/QmcrNx18jZYJ7dRduWu1do3th74cHy7zn9Zx8x13WsCLj5\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0xe3f7371c7c7af8dfa71daa6c4171f6853c9ab1fdd619c09eb12c11ff18d17d91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6a09ea45ed335eada22e7cf3643c17d1c59750ed2156cc29c0960a8e8b53e394\",\"dweb:/ipfs/QmSYTNGqP9wEJnPDXmvghfL8zL8BrHGnixhbsimA9oydLG\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x86bf44c7e35907c1b0ed2fd55a6a8a277b46e6ee52b6933610504bc1d2de3b12\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb47357cd7342f951e5d08b1960e9ab7d458463e71ce08ff61b900bbb04118f0\",\"dweb:/ipfs/QmTKHhnYs1xKZUwCmSRPmSi5utfGrosYV57fSoGF7bGnJs\"]},\"src/lib/CheckpointHelper.sol\":{\"keccak256\":\"0x25d67ccc67b6b537df920c92dc3c704dc097e000c444149d3732e1d20848a269\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5823e88c38b5c4e90ee5700cee5a5fd8d982015dab7ea1cbe2f26d62a359ae76\",\"dweb:/ipfs/QmT9Ves86HoEqQciunzEwvDsyv2dgQwF8uPUjNuGsycHuF\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0xe7aacc0bc5eb10763685d6766524f6db05b151b37de4ccbd2b04649e54b9af36\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d6fae33fe9dc258efc3e0c484c6e69ff8314af266c78fd9b3d20c5bf8f251865\",\"dweb:/ipfs/QmYYpC6GnJNRvAg3MCSHKHk47cas888N3HzmMrmiRT4bnJ\"]},\"src/lib/EpochVoteSubmissionHelper.sol\":{\"keccak256\":\"0x1eaf867ddfc3e83d5a2ca50a81809e1529ea2436a8d2697d868bc8653b8c6c9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://65eb6a69fdb0fd8bfc1cd3d5044791225ff9fa8887dda49fd530e7c46e6e5366\",\"dweb:/ipfs/QmepF17eiqGqiNJRfeCohdeVw2aJxgkFS1AyFSM78v16nC\"]},\"src/lib/ExecutableQueueHelper.sol\":{\"keccak256\":\"0x66b7ba58bb9ba987789f22dcc5e44f1720876a79a52a9630d886490d48f80ece\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8b388b9f63b4f86ac03f24089a1f110e482ae89b1eb628fc78aeead1d6f50869\",\"dweb:/ipfs/QmVGVh9r2GBgXRn7Z13sMKmnn3xjfHm9tM3mnLUH1UwjQX\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x80d7d30532305664e31ad114d702904287e6f93954b420315f660ddf30791ac6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0b108070a13f76614f36e46f0af85d12aa53209ff9bb9c32ee1945be3e0a1fe1\",\"dweb:/ipfs/QmcyMuCZB4Z3qFUUjvcoVeSePJXU5F9hN4Zhy94U2qqcPq\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0x3cf0150c6f1e19b48ca307604973f583aba8d2192a6d39572e2e780991a9c916\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://64d570ab21b83384e044296b02c63e195a5eb53a68ea527aaa62862e47edd627\",\"dweb:/ipfs/QmUwdSq1J5LzUxAHjKk395BWsobnYSh9fsJBQeiUbz2NJe\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3404decb343fa34603a0dce10d00ce0c97da50951792ef500d080e5167136fcb\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2bc38db8ab67aa48356a397f866cc54deac21f861d1349f80cd21103d893718f\",\"dweb:/ipfs/QmajCZg8ZpT9Kh35gXnxPkjCLCzRYFtYsNXTVGTvSugUZf\"]},\"src/lib/LibVoting.sol\":{\"keccak256\":\"0x3e5c9359758e7a7200c3a1e7c3a8edfbe6912e8c0a2edde1d2a9e4907b89cb91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://589fa228fdc537a56839520408ec06fc34658ef7a3ca7481b089f9d966f8ed39\",\"dweb:/ipfs/QmNQ4kPeGN5JAhFQyfEnYmmvp83dPQ6QhQKQfZhqgWKjDK\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0xf82021571aa9a7b021b2d24b2c0eb80c5796b9f28ebb6a1c239146c0c0168817\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b546fc429093a558b9382e28886d1f09e7f308e55f6398989583bc420a630326\",\"dweb:/ipfs/QmSmQPQbMBX8N8r8nGboBWdzJjUaK7ACaFUf8XosZVZPT8\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0xcddaa4630a6f68c59a819bafee579a8979cc9fd7b00d5b49f99eeefb9ce0c02c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9713f988a5709dea3ee0fb204a2d0b64b0dc115912ed9eb128f479156d97a949\",\"dweb:/ipfs/QmUjTAvd2eAYQFqgfZUf5R67daeC7eUKrL6WrFb8oEWB9j\"]},\"src/structs/EpochVoteSubmission.sol\":{\"keccak256\":\"0x4cc52a36cac1a063bf1f996b91ea81ce118b7ce8923e62cec6e5bf08b689e96a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb33236d8c7a40e17c416a21e9f0df268d6a7f4d6ba1df86ab0c2dbf444702e9\",\"dweb:/ipfs/QmXEbdkweqL1f4Q71YPiuxwhQooh1oim9oBybAbr9Jd3A2\"]},\"src/structs/ExecutableQueue.sol\":{\"keccak256\":\"0xfacfd91786edac0462f4bba34d3a3766c8785925ae96301b68b76fba78c5cab4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb421106bc9158e8a12dd7054d265113dd890337937e73acb03f03e33a13eb18\",\"dweb:/ipfs/Qmdxs4akDWuzwf5nYsCaNuYNZ5sTrMCzdgVMuSpKCjFyaP\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xbaae3da91048d76b5bab0404eebf7dc41ed273a8cd1f4143ea1b3403d89f77c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5a69d76f5022d2e19f69ef0d70d4c5e3a3e7ae8e02fcfdb2682c901ac2f3a707\",\"dweb:/ipfs/QmYEWyPz9UqVssUpU42VTv6DhzRNAfaHKt9ZsNCAvtLjTr\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0xb37b12df0c9ff47c2e88f9612b624bb44e6de5dfb8030dfd83582997dcd6aa83\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a321a05abf7b3b461e3d6c4ac27b18d3e14dffad9e2bf9a0ceb68538a02ab1e4\",\"dweb:/ipfs/QmPo878trP8pv9yXXpwUHSnP7Xt6uz9eWuB25pz2JGiCot\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.19+commit.7dd6d404" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [], + "type": "error", + "name": "NotRegisteredSubnet" + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "appliedTopDownNonce", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "bottomUpCheckPeriod", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "epoch", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function", + "name": "bottomUpCheckpointAtEpoch", + "outputs": [ + { + "internalType": "bool", + "name": "exists", + "type": "bool" + }, + { + "internalType": "struct BottomUpCheckpoint", + "name": "checkpoint", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "uint64", + "name": "epoch", + "type": "uint64" + }, + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + }, + { + "internalType": "struct CrossMsg[]", + "name": "crossMsgs", + "type": "tuple[]", + "components": [ + { + "internalType": "struct StorableMsg", + "name": "message", + "type": "tuple", + "components": [ + { + "internalType": "struct IPCAddress", + "name": "from", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ] + }, + { + "internalType": "struct IPCAddress", + "name": "to", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ] + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "bytes4", + "name": "method", + "type": "bytes4" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ] + }, + { + "internalType": "bool", + "name": "wrapped", + "type": "bool" + } + ] + }, + { + "internalType": "struct ChildCheck[]", + "name": "children", + "type": "tuple[]", + "components": [ + { + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "bytes32[]", + "name": "checks", + "type": "bytes32[]" + } + ] + }, + { + "internalType": "bytes32", + "name": "prevHash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "proof", + "type": "bytes" + } + ] + } + ] + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "epoch", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function", + "name": "bottomUpCheckpointHashAtEpoch", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "e", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function", + "name": "bottomUpCheckpoints", + "outputs": [ + { + "internalType": "struct BottomUpCheckpoint", + "name": "", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "uint64", + "name": "epoch", + "type": "uint64" + }, + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + }, + { + "internalType": "struct CrossMsg[]", + "name": "crossMsgs", + "type": "tuple[]", + "components": [ + { + "internalType": "struct StorableMsg", + "name": "message", + "type": "tuple", + "components": [ + { + "internalType": "struct IPCAddress", + "name": "from", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ] + }, + { + "internalType": "struct IPCAddress", + "name": "to", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ] + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "bytes4", + "name": "method", + "type": "bytes4" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ] + }, + { + "internalType": "bool", + "name": "wrapped", + "type": "bool" + } + ] + }, + { + "internalType": "struct ChildCheck[]", + "name": "children", + "type": "tuple[]", + "components": [ + { + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "bytes32[]", + "name": "checks", + "type": "bytes32[]" + } + ] + }, + { + "internalType": "bytes32", + "name": "prevHash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "proof", + "type": "bytes" + } + ] + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "bottomUpNonce", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "crossMsgFee", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "executableQueue", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ] + }, + { + "inputs": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + } + ], + "stateMutability": "view", + "type": "function", + "name": "getAppliedTopDownNonce", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "getGenesisEpoch", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "getNetworkName", + "outputs": [ + { + "internalType": "struct SubnetID", + "name": "", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + } + ] + }, + { + "inputs": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + } + ], + "stateMutability": "view", + "type": "function", + "name": "getSubnet", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "internalType": "struct Subnet", + "name": "", + "type": "tuple", + "components": [ + { + "internalType": "enum Status", + "name": "status", + "type": "uint8" + }, + { + "internalType": "uint64", + "name": "topDownNonce", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "appliedBottomUpNonce", + "type": "uint64" + }, + { + "internalType": "uint256", + "name": "stake", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "genesisEpoch", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "circSupply", + "type": "uint256" + }, + { + "internalType": "struct SubnetID", + "name": "id", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct BottomUpCheckpoint", + "name": "prevCheckpoint", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "uint64", + "name": "epoch", + "type": "uint64" + }, + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + }, + { + "internalType": "struct CrossMsg[]", + "name": "crossMsgs", + "type": "tuple[]", + "components": [ + { + "internalType": "struct StorableMsg", + "name": "message", + "type": "tuple", + "components": [ + { + "internalType": "struct IPCAddress", + "name": "from", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ] + }, + { + "internalType": "struct IPCAddress", + "name": "to", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ] + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "bytes4", + "name": "method", + "type": "bytes4" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ] + }, + { + "internalType": "bool", + "name": "wrapped", + "type": "bool" + } + ] + }, + { + "internalType": "struct ChildCheck[]", + "name": "children", + "type": "tuple[]", + "components": [ + { + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "bytes32[]", + "name": "checks", + "type": "bytes32[]" + } + ] + }, + { + "internalType": "bytes32", + "name": "prevHash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "proof", + "type": "bytes" + } + ] + }, + { + "internalType": "struct CrossMsg[]", + "name": "topDownMsgs", + "type": "tuple[]", + "components": [ + { + "internalType": "struct StorableMsg", + "name": "message", + "type": "tuple", + "components": [ + { + "internalType": "struct IPCAddress", + "name": "from", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ] + }, + { + "internalType": "struct IPCAddress", + "name": "to", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ] + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "bytes4", + "name": "method", + "type": "bytes4" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ] + }, + { + "internalType": "bool", + "name": "wrapped", + "type": "bool" + } + ] + } + ] + } + ] + }, + { + "inputs": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "getSubnetTopDownMsg", + "outputs": [ + { + "internalType": "struct CrossMsg", + "name": "", + "type": "tuple", + "components": [ + { + "internalType": "struct StorableMsg", + "name": "message", + "type": "tuple", + "components": [ + { + "internalType": "struct IPCAddress", + "name": "from", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ] + }, + { + "internalType": "struct IPCAddress", + "name": "to", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ] + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "bytes4", + "name": "method", + "type": "bytes4" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ] + }, + { + "internalType": "bool", + "name": "wrapped", + "type": "bool" + } + ] + } + ] + }, + { + "inputs": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + } + ], + "stateMutability": "view", + "type": "function", + "name": "getSubnetTopDownMsgsLength", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + } + ], + "stateMutability": "view", + "type": "function", + "name": "getTopDownMsgs", + "outputs": [ + { + "internalType": "struct CrossMsg[]", + "name": "", + "type": "tuple[]", + "components": [ + { + "internalType": "struct StorableMsg", + "name": "message", + "type": "tuple", + "components": [ + { + "internalType": "struct IPCAddress", + "name": "from", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ] + }, + { + "internalType": "struct IPCAddress", + "name": "to", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ] + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "bytes4", + "name": "method", + "type": "bytes4" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ] + }, + { + "internalType": "bool", + "name": "wrapped", + "type": "bool" + } + ] + } + ] + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "epoch", + "type": "uint64" + }, + { + "internalType": "address", + "name": "submitter", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "hasValidatorVotedForSubmission", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "initialized", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "lastVotingExecutedEpoch", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "majorityPercentage", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "minStake", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "id", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function", + "name": "postbox", + "outputs": [ + { + "internalType": "struct StorableMsg", + "name": "storableMsg", + "type": "tuple", + "components": [ + { + "internalType": "struct IPCAddress", + "name": "from", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ] + }, + { + "internalType": "struct IPCAddress", + "name": "to", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ] + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "bytes4", + "name": "method", + "type": "bytes4" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ] + }, + { + "internalType": "bool", + "name": "wrapped", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "h", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function", + "name": "subnets", + "outputs": [ + { + "internalType": "struct Subnet", + "name": "subnet", + "type": "tuple", + "components": [ + { + "internalType": "enum Status", + "name": "status", + "type": "uint8" + }, + { + "internalType": "uint64", + "name": "topDownNonce", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "appliedBottomUpNonce", + "type": "uint64" + }, + { + "internalType": "uint256", + "name": "stake", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "genesisEpoch", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "circSupply", + "type": "uint256" + }, + { + "internalType": "struct SubnetID", + "name": "id", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct BottomUpCheckpoint", + "name": "prevCheckpoint", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "uint64", + "name": "epoch", + "type": "uint64" + }, + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + }, + { + "internalType": "struct CrossMsg[]", + "name": "crossMsgs", + "type": "tuple[]", + "components": [ + { + "internalType": "struct StorableMsg", + "name": "message", + "type": "tuple", + "components": [ + { + "internalType": "struct IPCAddress", + "name": "from", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ] + }, + { + "internalType": "struct IPCAddress", + "name": "to", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ] + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "bytes4", + "name": "method", + "type": "bytes4" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ] + }, + { + "internalType": "bool", + "name": "wrapped", + "type": "bool" + } + ] + }, + { + "internalType": "struct ChildCheck[]", + "name": "children", + "type": "tuple[]", + "components": [ + { + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "bytes32[]", + "name": "checks", + "type": "bytes32[]" + } + ] + }, + { + "internalType": "bytes32", + "name": "prevHash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "proof", + "type": "bytes" + } + ] + }, + { + "internalType": "struct CrossMsg[]", + "name": "topDownMsgs", + "type": "tuple[]", + "components": [ + { + "internalType": "struct StorableMsg", + "name": "message", + "type": "tuple", + "components": [ + { + "internalType": "struct IPCAddress", + "name": "from", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ] + }, + { + "internalType": "struct IPCAddress", + "name": "to", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ] + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "bytes4", + "name": "method", + "type": "bytes4" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ] + }, + { + "internalType": "bool", + "name": "wrapped", + "type": "bool" + } + ] + } + ] + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "topDownCheckPeriod", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "totalSubnets", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "totalWeight", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + } + ], + "devdoc": { + "kind": "dev", + "methods": { + "bottomUpCheckpointAtEpoch(uint64)": { + "params": { + "epoch": "- the epoch to check" + }, + "returns": { + "checkpoint": "- the checkpoint struct", + "exists": "- whether the checkpoint exists" + } + }, + "bottomUpCheckpointHashAtEpoch(uint64)": { + "params": { + "epoch": "- the epoch to check" + }, + "returns": { + "_0": "exists - whether the checkpoint exists", + "_1": "hash - the hash of the checkpoint" + } + }, + "getAppliedTopDownNonce((uint64,address[]))": { + "params": { + "subnetId": "- The subnet id to fetch messages from" + } + }, + "getSubnet((uint64,address[]))": { + "params": { + "subnetId": "the id of the subnet" + }, + "returns": { + "_0": "found whether the subnet exists", + "_1": "subnet - the subnet struct" + } + }, + "hasValidatorVotedForSubmission(uint64,address)": { + "params": { + "epoch": "- the epoch to check", + "submitter": "- the validator to check" + } + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": { + "bottomUpCheckpointAtEpoch(uint64)": { + "notice": "returns the current bottom-up checkpoint" + }, + "bottomUpCheckpointHashAtEpoch(uint64)": { + "notice": "returns the historical bottom-up checkpoint hash" + }, + "getAppliedTopDownNonce((uint64,address[]))": { + "notice": "Get the latest applied top down nonce" + }, + "getSubnet((uint64,address[]))": { + "notice": "returns the subnet with the given id" + }, + "getSubnetTopDownMsg((uint64,address[]),uint256)": { + "notice": "get the top-down message at the given index for the given subnet" + }, + "getSubnetTopDownMsgsLength((uint64,address[]))": { + "notice": "get number of top-down messages for the given subnet" + }, + "hasValidatorVotedForSubmission(uint64,address)": { + "notice": "whether a validator has voted for a checkpoint submission during an epoch" + } + }, + "version": 1 + } + }, + "settings": { + "remappings": [ + ":@openzeppelin/=node_modules/@openzeppelin/", + ":ds-test/=lib/forge-std/lib/ds-test/src/", + ":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", + ":fevmate/=lib/fevmate/contracts/", + ":forge-std/=lib/forge-std/src/", + ":hardhat-deploy/=node_modules/hardhat-deploy/", + ":hardhat/=node_modules/hardhat/", + ":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/", + ":openzeppelin/=lib/openzeppelin-contracts/contracts/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "src/gateway/GatewayGetterFacet.sol": "GatewayGetterFacet" + }, + "libraries": {} + }, + "sources": { + "lib/fevmate/contracts/utils/FilAddress.sol": { + "keccak256": "0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31", + "urls": [ + "bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7", + "dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/Address.sol": { + "keccak256": "0xb8d40721965efd93b5369d55083181226d3c7e1be4a968c04de35d44ba44f29a", + "urls": [ + "bzz-raw://e5c4b0089788aa7112cce88602212c3895999f464e00d1c40d7f27ac9288798b", + "dweb:/ipfs/Qmd69EuGeoCYPfPkGA4hayH4s2upmAe3XaoDf4ggYNEoZ4" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/Strings.sol": { + "keccak256": "0x31f34a3baec77c087d2bdbc5c277f169e505b905aeb43cfcea1734175140f621", + "urls": [ + "bzz-raw://b5a3bc8093b31b685ef879e8ffaaab614594cb6f98ddac4f18c411f7bbf99d0d", + "dweb:/ipfs/QmSFfA9pH3xo8hnWKCFKTwGi8kz68YXuAwyLXsYe6KjC3Z" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol": { + "keccak256": "0xdb6d7e26320438bdd421598eb64e6fe2b03867a4dd07c9c820994b7bec26f7b0", + "urls": [ + "bzz-raw://2adf1566393ddf260fb2064dd0c67be00123b8978be8b62cc45ac97aff859949", + "dweb:/ipfs/QmaDLzQpnitEJDAJo4squpKumr5x4D2QYetPdT3jZd8hYm" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol": { + "keccak256": "0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb", + "urls": [ + "bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b", + "dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z" + ], + "license": "MIT" + }, + "src/constants/Constants.sol": { + "keccak256": "0x8a925dea568a61a38de9615aae7bb462d9eb6f8eb2c6ca409f1e740519077ab8", + "urls": [ + "bzz-raw://b7e2f836581694867c09bb9c80ff2ab6ae039ece2ff3bbf4d1bc2026449fa551", + "dweb:/ipfs/QmVMvaQSCRBHZudSV8AzimYre76tJVm4UrHYnrT89zcjho" + ], + "license": "UNLICENSED" + }, + "src/enums/Status.sol": { + "keccak256": "0xf29c18f694b5acc919b7cada2875ca3bd2c52ddd7ef86ee747aab0faeb50ac8b", + "urls": [ + "bzz-raw://d8fb92f533cc119c578da73b06efe76b0efaa612af7c77178eb903952fcf53df", + "dweb:/ipfs/QmdosRgUmvwXRnxq5TmoJoFMs7TULduTFpMUNyYXQNGfQD" + ], + "license": "UNLICENSED" + }, + "src/enums/VoteExecutionStatus.sol": { + "keccak256": "0x56d1db8abf83feb0f1d69f1919fbd5bd79c6f3c5bf3c149950d307b9d62b6455", + "urls": [ + "bzz-raw://bb2ec0f87a9091eab463ac6a776d5737189e0239f412b36b975bb0be1fcb4ad8", + "dweb:/ipfs/QmWiXwab54Ag2f1kyGjqT3brh5JrV5Lc7cqod9VPaS5ey6" + ], + "license": "UNLICENSED" + }, + "src/errors/IPCErrors.sol": { + "keccak256": "0xab09aee88feca01f5c23baa475aa02bb8c1b189e60a7b81848a07e00b9ab708c", + "urls": [ + "bzz-raw://1f5d874688d7316a0eb382b6fb1e7ea6648b15aaaab95acc51f18bfcab851d61", + "dweb:/ipfs/QmdZRRmWrkrn5MmEX3n5yWEREtoCvXNxzoVkPWSH64ENpd" + ], + "license": "UNLICENSED" + }, + "src/gateway/GatewayGetterFacet.sol": { + "keccak256": "0x587fa15a86e9e70572d4d79ed921da2063a588ec724380b8775148b8e5f57b0f", + "urls": [ + "bzz-raw://11f9f98d6d5176011c4c453fbc39f892a9dbca21674f2a3110cb1d419ba3d5a4", + "dweb:/ipfs/QmfLPMf3JrF1eYzJMuTJnXbyQrvbUKJb9CcG2hK5n3oLfo" + ], + "license": "UNLICENSED" + }, + "src/interfaces/IGateway.sol": { + "keccak256": "0x57865785239b076bc429cd989bc5cb2a2e68050c7293a5a537d8cdeded170294", + "urls": [ + "bzz-raw://28285703560a0bbfa247c894c9f14f2a14e02e430e7dedb0a05b58c53aed3763", + "dweb:/ipfs/QmcrNx18jZYJ7dRduWu1do3th74cHy7zn9Zx8x13WsCLj5" + ], + "license": "UNLICENSED" + }, + "src/interfaces/ISubnetActor.sol": { + "keccak256": "0xe3f7371c7c7af8dfa71daa6c4171f6853c9ab1fdd619c09eb12c11ff18d17d91", + "urls": [ + "bzz-raw://6a09ea45ed335eada22e7cf3643c17d1c59750ed2156cc29c0960a8e8b53e394", + "dweb:/ipfs/QmSYTNGqP9wEJnPDXmvghfL8zL8BrHGnixhbsimA9oydLG" + ], + "license": "UNLICENSED" + }, + "src/lib/AccountHelper.sol": { + "keccak256": "0x86bf44c7e35907c1b0ed2fd55a6a8a277b46e6ee52b6933610504bc1d2de3b12", + "urls": [ + "bzz-raw://bb47357cd7342f951e5d08b1960e9ab7d458463e71ce08ff61b900bbb04118f0", + "dweb:/ipfs/QmTKHhnYs1xKZUwCmSRPmSi5utfGrosYV57fSoGF7bGnJs" + ], + "license": "UNLICENSED" + }, + "src/lib/CheckpointHelper.sol": { + "keccak256": "0x25d67ccc67b6b537df920c92dc3c704dc097e000c444149d3732e1d20848a269", + "urls": [ + "bzz-raw://5823e88c38b5c4e90ee5700cee5a5fd8d982015dab7ea1cbe2f26d62a359ae76", + "dweb:/ipfs/QmT9Ves86HoEqQciunzEwvDsyv2dgQwF8uPUjNuGsycHuF" + ], + "license": "UNLICENSED" + }, + "src/lib/CrossMsgHelper.sol": { + "keccak256": "0xe7aacc0bc5eb10763685d6766524f6db05b151b37de4ccbd2b04649e54b9af36", + "urls": [ + "bzz-raw://d6fae33fe9dc258efc3e0c484c6e69ff8314af266c78fd9b3d20c5bf8f251865", + "dweb:/ipfs/QmYYpC6GnJNRvAg3MCSHKHk47cas888N3HzmMrmiRT4bnJ" + ], + "license": "UNLICENSED" + }, + "src/lib/EpochVoteSubmissionHelper.sol": { + "keccak256": "0x1eaf867ddfc3e83d5a2ca50a81809e1529ea2436a8d2697d868bc8653b8c6c9e", + "urls": [ + "bzz-raw://65eb6a69fdb0fd8bfc1cd3d5044791225ff9fa8887dda49fd530e7c46e6e5366", + "dweb:/ipfs/QmepF17eiqGqiNJRfeCohdeVw2aJxgkFS1AyFSM78v16nC" + ], + "license": "UNLICENSED" + }, + "src/lib/ExecutableQueueHelper.sol": { + "keccak256": "0x66b7ba58bb9ba987789f22dcc5e44f1720876a79a52a9630d886490d48f80ece", + "urls": [ + "bzz-raw://8b388b9f63b4f86ac03f24089a1f110e482ae89b1eb628fc78aeead1d6f50869", + "dweb:/ipfs/QmVGVh9r2GBgXRn7Z13sMKmnn3xjfHm9tM3mnLUH1UwjQX" + ], + "license": "UNLICENSED" + }, + "src/lib/FvmAddressHelper.sol": { + "keccak256": "0x80d7d30532305664e31ad114d702904287e6f93954b420315f660ddf30791ac6", + "urls": [ + "bzz-raw://0b108070a13f76614f36e46f0af85d12aa53209ff9bb9c32ee1945be3e0a1fe1", + "dweb:/ipfs/QmcyMuCZB4Z3qFUUjvcoVeSePJXU5F9hN4Zhy94U2qqcPq" + ], + "license": "UNLICENSED" + }, + "src/lib/LibGateway.sol": { + "keccak256": "0x3cf0150c6f1e19b48ca307604973f583aba8d2192a6d39572e2e780991a9c916", + "urls": [ + "bzz-raw://64d570ab21b83384e044296b02c63e195a5eb53a68ea527aaa62862e47edd627", + "dweb:/ipfs/QmUwdSq1J5LzUxAHjKk395BWsobnYSh9fsJBQeiUbz2NJe" + ], + "license": "UNLICENSED" + }, + "src/lib/LibGatewayActorStorage.sol": { + "keccak256": "0x3404decb343fa34603a0dce10d00ce0c97da50951792ef500d080e5167136fcb", + "urls": [ + "bzz-raw://2bc38db8ab67aa48356a397f866cc54deac21f861d1349f80cd21103d893718f", + "dweb:/ipfs/QmajCZg8ZpT9Kh35gXnxPkjCLCzRYFtYsNXTVGTvSugUZf" + ], + "license": "UNLICENSED" + }, + "src/lib/LibVoting.sol": { + "keccak256": "0x3e5c9359758e7a7200c3a1e7c3a8edfbe6912e8c0a2edde1d2a9e4907b89cb91", + "urls": [ + "bzz-raw://589fa228fdc537a56839520408ec06fc34658ef7a3ca7481b089f9d966f8ed39", + "dweb:/ipfs/QmNQ4kPeGN5JAhFQyfEnYmmvp83dPQ6QhQKQfZhqgWKjDK" + ], + "license": "UNLICENSED" + }, + "src/lib/SubnetIDHelper.sol": { + "keccak256": "0xf82021571aa9a7b021b2d24b2c0eb80c5796b9f28ebb6a1c239146c0c0168817", + "urls": [ + "bzz-raw://b546fc429093a558b9382e28886d1f09e7f308e55f6398989583bc420a630326", + "dweb:/ipfs/QmSmQPQbMBX8N8r8nGboBWdzJjUaK7ACaFUf8XosZVZPT8" + ], + "license": "UNLICENSED" + }, + "src/structs/Checkpoint.sol": { + "keccak256": "0xcddaa4630a6f68c59a819bafee579a8979cc9fd7b00d5b49f99eeefb9ce0c02c", + "urls": [ + "bzz-raw://9713f988a5709dea3ee0fb204a2d0b64b0dc115912ed9eb128f479156d97a949", + "dweb:/ipfs/QmUjTAvd2eAYQFqgfZUf5R67daeC7eUKrL6WrFb8oEWB9j" + ], + "license": "UNLICENSED" + }, + "src/structs/EpochVoteSubmission.sol": { + "keccak256": "0x4cc52a36cac1a063bf1f996b91ea81ce118b7ce8923e62cec6e5bf08b689e96a", + "urls": [ + "bzz-raw://fb33236d8c7a40e17c416a21e9f0df268d6a7f4d6ba1df86ab0c2dbf444702e9", + "dweb:/ipfs/QmXEbdkweqL1f4Q71YPiuxwhQooh1oim9oBybAbr9Jd3A2" + ], + "license": "UNLICENSED" + }, + "src/structs/ExecutableQueue.sol": { + "keccak256": "0xfacfd91786edac0462f4bba34d3a3766c8785925ae96301b68b76fba78c5cab4", + "urls": [ + "bzz-raw://bb421106bc9158e8a12dd7054d265113dd890337937e73acb03f03e33a13eb18", + "dweb:/ipfs/Qmdxs4akDWuzwf5nYsCaNuYNZ5sTrMCzdgVMuSpKCjFyaP" + ], + "license": "UNLICENSED" + }, + "src/structs/FvmAddress.sol": { + "keccak256": "0xbaae3da91048d76b5bab0404eebf7dc41ed273a8cd1f4143ea1b3403d89f77c9", + "urls": [ + "bzz-raw://5a69d76f5022d2e19f69ef0d70d4c5e3a3e7ae8e02fcfdb2682c901ac2f3a707", + "dweb:/ipfs/QmYEWyPz9UqVssUpU42VTv6DhzRNAfaHKt9ZsNCAvtLjTr" + ], + "license": "UNLICENSED" + }, + "src/structs/Subnet.sol": { + "keccak256": "0xb37b12df0c9ff47c2e88f9612b624bb44e6de5dfb8030dfd83582997dcd6aa83", + "urls": [ + "bzz-raw://a321a05abf7b3b461e3d6c4ac27b18d3e14dffad9e2bf9a0ceb68538a02ab1e4", + "dweb:/ipfs/QmPo878trP8pv9yXXpwUHSnP7Xt6uz9eWuB25pz2JGiCot" + ], + "license": "UNLICENSED" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "src/gateway/GatewayGetterFacet.sol", + "id": 38677, + "exportedSymbols": { + "BottomUpCheckpoint": [ + 44156 + ], + "CheckpointHelper": [ + 40776 + ], + "ChildCheck": [ + 44170 + ], + "CrossMsg": [ + 44176 + ], + "EpochVoteTopDownSubmission": [ + 44224 + ], + "GatewayActorStorage": [ + 42387 + ], + "GatewayGetterFacet": [ + 38676 + ], + "LibGateway": [ + 42262 + ], + "LibVoting": [ + 43438 + ], + "NotRegisteredSubnet": [ + 38220 + ], + "Status": [ + 38137 + ], + "StorableMsg": [ + 44191 + ], + "Subnet": [ + 44303 + ], + "SubnetID": [ + 44279 + ], + "SubnetIDHelper": [ + 44131 + ] + }, + "nodeType": "SourceUnit", + "src": "39:6113:38", + "nodes": [ + { + "id": 38240, + "nodeType": "PragmaDirective", + "src": "39:23:38", + "nodes": [], + "literals": [ + "solidity", + "0.8", + ".19" + ] + }, + { + "id": 38242, + "nodeType": "ImportDirective", + "src": "64:43:38", + "nodes": [], + "absolutePath": "src/enums/Status.sol", + "file": "../enums/Status.sol", + "nameLocation": "-1:-1:-1", + "scope": 38677, + "sourceUnit": 38138, + "symbolAliases": [ + { + "foreign": { + "id": 38241, + "name": "Status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38137, + "src": "72:6:38", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 38247, + "nodeType": "ImportDirective", + "src": "108:96:38", + "nodes": [], + "absolutePath": "src/structs/Checkpoint.sol", + "file": "../structs/Checkpoint.sol", + "nameLocation": "-1:-1:-1", + "scope": 38677, + "sourceUnit": 44192, + "symbolAliases": [ + { + "foreign": { + "id": 38243, + "name": "CrossMsg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44176, + "src": "116:8:38", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 38244, + "name": "BottomUpCheckpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44156, + "src": "126:18:38", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 38245, + "name": "StorableMsg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44191, + "src": "146:11:38", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 38246, + "name": "ChildCheck", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44170, + "src": "159:10:38", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 38249, + "nodeType": "ImportDirective", + "src": "205:78:38", + "nodes": [], + "absolutePath": "src/structs/EpochVoteSubmission.sol", + "file": "../structs/EpochVoteSubmission.sol", + "nameLocation": "-1:-1:-1", + "scope": 38677, + "sourceUnit": 44234, + "symbolAliases": [ + { + "foreign": { + "id": 38248, + "name": "EpochVoteTopDownSubmission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44224, + "src": "213:26:38", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 38252, + "nodeType": "ImportDirective", + "src": "284:55:38", + "nodes": [], + "absolutePath": "src/structs/Subnet.sol", + "file": "../structs/Subnet.sol", + "nameLocation": "-1:-1:-1", + "scope": 38677, + "sourceUnit": 44311, + "symbolAliases": [ + { + "foreign": { + "id": 38250, + "name": "SubnetID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44279, + "src": "292:8:38", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 38251, + "name": "Subnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44303, + "src": "302:6:38", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 38254, + "nodeType": "ImportDirective", + "src": "340:60:38", + "nodes": [], + "absolutePath": "src/errors/IPCErrors.sol", + "file": "../errors/IPCErrors.sol", + "nameLocation": "-1:-1:-1", + "scope": 38677, + "sourceUnit": 38239, + "symbolAliases": [ + { + "foreign": { + "id": 38253, + "name": "NotRegisteredSubnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38220, + "src": "348:19:38", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 38256, + "nodeType": "ImportDirective", + "src": "401:61:38", + "nodes": [], + "absolutePath": "src/lib/CheckpointHelper.sol", + "file": "../lib/CheckpointHelper.sol", + "nameLocation": "-1:-1:-1", + "scope": 38677, + "sourceUnit": 40777, + "symbolAliases": [ + { + "foreign": { + "id": 38255, + "name": "CheckpointHelper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40776, + "src": "409:16:38", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 38258, + "nodeType": "ImportDirective", + "src": "463:49:38", + "nodes": [], + "absolutePath": "src/lib/LibGateway.sol", + "file": "../lib/LibGateway.sol", + "nameLocation": "-1:-1:-1", + "scope": 38677, + "sourceUnit": 42263, + "symbolAliases": [ + { + "foreign": { + "id": 38257, + "name": "LibGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42262, + "src": "471:10:38", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 38260, + "nodeType": "ImportDirective", + "src": "513:70:38", + "nodes": [], + "absolutePath": "src/lib/LibGatewayActorStorage.sol", + "file": "../lib/LibGatewayActorStorage.sol", + "nameLocation": "-1:-1:-1", + "scope": 38677, + "sourceUnit": 42505, + "symbolAliases": [ + { + "foreign": { + "id": 38259, + "name": "GatewayActorStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42387, + "src": "521:19:38", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 38262, + "nodeType": "ImportDirective", + "src": "584:47:38", + "nodes": [], + "absolutePath": "src/lib/LibVoting.sol", + "file": "../lib/LibVoting.sol", + "nameLocation": "-1:-1:-1", + "scope": 38677, + "sourceUnit": 43439, + "symbolAliases": [ + { + "foreign": { + "id": 38261, + "name": "LibVoting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43438, + "src": "592:9:38", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 38264, + "nodeType": "ImportDirective", + "src": "632:57:38", + "nodes": [], + "absolutePath": "src/lib/SubnetIDHelper.sol", + "file": "../lib/SubnetIDHelper.sol", + "nameLocation": "-1:-1:-1", + "scope": 38677, + "sourceUnit": 44132, + "symbolAliases": [ + { + "foreign": { + "id": 38263, + "name": "SubnetIDHelper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44131, + "src": "640:14:38", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 38676, + "nodeType": "ContractDefinition", + "src": "691:5460:38", + "nodes": [ + { + "id": 38267, + "nodeType": "VariableDeclaration", + "src": "778:30:38", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "s", + "nameLocation": "807:1:38", + "scope": 38676, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage" + }, + "typeName": { + "id": 38266, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38265, + "name": "GatewayActorStorage", + "nameLocations": [ + "778:19:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 42387, + "src": "778:19:38" + }, + "referencedDeclaration": 42387, + "src": "778:19:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage_ptr", + "typeString": "struct GatewayActorStorage" + } + }, + "visibility": "internal" + }, + { + "id": 38271, + "nodeType": "UsingForDirective", + "src": "815:34:38", + "nodes": [], + "global": false, + "libraryName": { + "id": 38268, + "name": "SubnetIDHelper", + "nameLocations": [ + "821:14:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44131, + "src": "821:14:38" + }, + "typeName": { + "id": 38270, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38269, + "name": "SubnetID", + "nameLocations": [ + "840:8:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44279, + "src": "840:8:38" + }, + "referencedDeclaration": 44279, + "src": "840:8:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeString": "struct SubnetID" + } + } + }, + { + "id": 38275, + "nodeType": "UsingForDirective", + "src": "854:46:38", + "nodes": [], + "global": false, + "libraryName": { + "id": 38272, + "name": "CheckpointHelper", + "nameLocations": [ + "860:16:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 40776, + "src": "860:16:38" + }, + "typeName": { + "id": 38274, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38273, + "name": "BottomUpCheckpoint", + "nameLocations": [ + "881:18:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44156, + "src": "881:18:38" + }, + "referencedDeclaration": 44156, + "src": "881:18:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeString": "struct BottomUpCheckpoint" + } + } + }, + { + "id": 38284, + "nodeType": "FunctionDefinition", + "src": "906:92:38", + "nodes": [], + "body": { + "id": 38283, + "nodeType": "Block", + "src": "961:37:38", + "nodes": [], + "statements": [ + { + "expression": { + "expression": { + "id": 38280, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38267, + "src": "978:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 38281, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "980:11:38", + "memberName": "crossMsgFee", + "nodeType": "MemberAccess", + "referencedDeclaration": 42346, + "src": "978:13:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 38279, + "id": 38282, + "nodeType": "Return", + "src": "971:20:38" + } + ] + }, + "functionSelector": "24729425", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "crossMsgFee", + "nameLocation": "915:11:38", + "parameters": { + "id": 38276, + "nodeType": "ParameterList", + "parameters": [], + "src": "926:2:38" + }, + "returnParameters": { + "id": 38279, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38278, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 38284, + "src": "952:7:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 38277, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "952:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "951:9:38" + }, + "scope": 38676, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 38293, + "nodeType": "FunctionDefinition", + "src": "1004:95:38", + "nodes": [], + "body": { + "id": 38292, + "nodeType": "Block", + "src": "1060:39:38", + "nodes": [], + "statements": [ + { + "expression": { + "expression": { + "id": 38289, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38267, + "src": "1077:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 38290, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1079:13:38", + "memberName": "bottomUpNonce", + "nodeType": "MemberAccess", + "referencedDeclaration": 42340, + "src": "1077:15:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 38288, + "id": 38291, + "nodeType": "Return", + "src": "1070:22:38" + } + ] + }, + "functionSelector": "41b6a2e8", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "bottomUpNonce", + "nameLocation": "1013:13:38", + "parameters": { + "id": 38285, + "nodeType": "ParameterList", + "parameters": [], + "src": "1026:2:38" + }, + "returnParameters": { + "id": 38288, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38287, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 38293, + "src": "1052:6:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 38286, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1052:6:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "1051:8:38" + }, + "scope": 38676, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 38302, + "nodeType": "FunctionDefinition", + "src": "1105:93:38", + "nodes": [], + "body": { + "id": 38301, + "nodeType": "Block", + "src": "1160:38:38", + "nodes": [], + "statements": [ + { + "expression": { + "expression": { + "id": 38298, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38267, + "src": "1177:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 38299, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1179:12:38", + "memberName": "totalSubnets", + "nodeType": "MemberAccess", + "referencedDeclaration": 42310, + "src": "1177:14:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 38297, + "id": 38300, + "nodeType": "Return", + "src": "1170:21:38" + } + ] + }, + "functionSelector": "a2b67158", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSubnets", + "nameLocation": "1114:12:38", + "parameters": { + "id": 38294, + "nodeType": "ParameterList", + "parameters": [], + "src": "1126:2:38" + }, + "returnParameters": { + "id": 38297, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38296, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 38302, + "src": "1152:6:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 38295, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1152:6:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "1151:8:38" + }, + "scope": 38676, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 38311, + "nodeType": "FunctionDefinition", + "src": "1204:86:38", + "nodes": [], + "body": { + "id": 38310, + "nodeType": "Block", + "src": "1256:34:38", + "nodes": [], + "statements": [ + { + "expression": { + "expression": { + "id": 38307, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38267, + "src": "1273:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 38308, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1275:8:38", + "memberName": "minStake", + "nodeType": "MemberAccess", + "referencedDeclaration": 42313, + "src": "1273:10:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 38306, + "id": 38309, + "nodeType": "Return", + "src": "1266:17:38" + } + ] + }, + "functionSelector": "375b3c0a", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "minStake", + "nameLocation": "1213:8:38", + "parameters": { + "id": 38303, + "nodeType": "ParameterList", + "parameters": [], + "src": "1221:2:38" + }, + "returnParameters": { + "id": 38306, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38305, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 38311, + "src": "1247:7:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 38304, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1247:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1246:9:38" + }, + "scope": 38676, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 38320, + "nodeType": "FunctionDefinition", + "src": "1296:89:38", + "nodes": [], + "body": { + "id": 38319, + "nodeType": "Block", + "src": "1348:37:38", + "nodes": [], + "statements": [ + { + "expression": { + "expression": { + "id": 38316, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38267, + "src": "1365:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 38317, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1367:11:38", + "memberName": "initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 42380, + "src": "1365:13:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 38315, + "id": 38318, + "nodeType": "Return", + "src": "1358:20:38" + } + ] + }, + "functionSelector": "158ef93e", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "initialized", + "nameLocation": "1305:11:38", + "parameters": { + "id": 38312, + "nodeType": "ParameterList", + "parameters": [], + "src": "1316:2:38" + }, + "returnParameters": { + "id": 38315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38314, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 38320, + "src": "1342:4:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 38313, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1342:4:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1341:6:38" + }, + "scope": 38676, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 38329, + "nodeType": "FunctionDefinition", + "src": "1391:107:38", + "nodes": [], + "body": { + "id": 38328, + "nodeType": "Block", + "src": "1453:45:38", + "nodes": [], + "statements": [ + { + "expression": { + "expression": { + "id": 38325, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38267, + "src": "1470:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 38326, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1472:19:38", + "memberName": "bottomUpCheckPeriod", + "nodeType": "MemberAccess", + "referencedDeclaration": 42322, + "src": "1470:21:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 38324, + "id": 38327, + "nodeType": "Return", + "src": "1463:28:38" + } + ] + }, + "functionSelector": "06c46853", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "bottomUpCheckPeriod", + "nameLocation": "1400:19:38", + "parameters": { + "id": 38321, + "nodeType": "ParameterList", + "parameters": [], + "src": "1419:2:38" + }, + "returnParameters": { + "id": 38324, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38323, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 38329, + "src": "1445:6:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 38322, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1445:6:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "1444:8:38" + }, + "scope": 38676, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 38338, + "nodeType": "FunctionDefinition", + "src": "1504:105:38", + "nodes": [], + "body": { + "id": 38337, + "nodeType": "Block", + "src": "1565:44:38", + "nodes": [], + "statements": [ + { + "expression": { + "expression": { + "id": 38334, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38267, + "src": "1582:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 38335, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1584:18:38", + "memberName": "topDownCheckPeriod", + "nodeType": "MemberAccess", + "referencedDeclaration": 42331, + "src": "1582:20:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 38333, + "id": 38336, + "nodeType": "Return", + "src": "1575:27:38" + } + ] + }, + "functionSelector": "7d9740f4", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "topDownCheckPeriod", + "nameLocation": "1513:18:38", + "parameters": { + "id": 38330, + "nodeType": "ParameterList", + "parameters": [], + "src": "1531:2:38" + }, + "returnParameters": { + "id": 38333, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38332, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 38338, + "src": "1557:6:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 38331, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1557:6:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "1556:8:38" + }, + "scope": 38676, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 38348, + "nodeType": "FunctionDefinition", + "src": "1615:103:38", + "nodes": [], + "body": { + "id": 38347, + "nodeType": "Block", + "src": "1681:37:38", + "nodes": [], + "statements": [ + { + "expression": { + "expression": { + "id": 38344, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38267, + "src": "1698:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 38345, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1700:11:38", + "memberName": "networkName", + "nodeType": "MemberAccess", + "referencedDeclaration": 42307, + "src": "1698:13:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeString": "struct SubnetID storage ref" + } + }, + "functionReturnParameters": 38343, + "id": 38346, + "nodeType": "Return", + "src": "1691:20:38" + } + ] + }, + "functionSelector": "94074b03", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getNetworkName", + "nameLocation": "1624:14:38", + "parameters": { + "id": 38339, + "nodeType": "ParameterList", + "parameters": [], + "src": "1638:2:38" + }, + "returnParameters": { + "id": 38343, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38342, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 38348, + "src": "1664:15:38", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID" + }, + "typeName": { + "id": 38341, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38340, + "name": "SubnetID", + "nameLocations": [ + "1664:8:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44279, + "src": "1664:8:38" + }, + "referencedDeclaration": 44279, + "src": "1664:8:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeString": "struct SubnetID" + } + }, + "visibility": "internal" + } + ], + "src": "1663:17:38" + }, + "scope": 38676, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 38362, + "nodeType": "FunctionDefinition", + "src": "1724:137:38", + "nodes": [], + "body": { + "id": 38361, + "nodeType": "Block", + "src": "1813:48:38", + "nodes": [], + "statements": [ + { + "expression": { + "baseExpression": { + "expression": { + "id": 38356, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38267, + "src": "1830:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 38357, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1832:19:38", + "memberName": "bottomUpCheckpoints", + "nodeType": "MemberAccess", + "referencedDeclaration": 42337, + "src": "1830:21:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$44156_storage_$", + "typeString": "mapping(uint64 => struct BottomUpCheckpoint storage ref)" + } + }, + "id": 38359, + "indexExpression": { + "id": 38358, + "name": "e", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38350, + "src": "1852:1:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1830:24:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeString": "struct BottomUpCheckpoint storage ref" + } + }, + "functionReturnParameters": 38355, + "id": 38360, + "nodeType": "Return", + "src": "1823:31:38" + } + ] + }, + "functionSelector": "2cc14ea2", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "bottomUpCheckpoints", + "nameLocation": "1733:19:38", + "parameters": { + "id": 38351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38350, + "mutability": "mutable", + "name": "e", + "nameLocation": "1760:1:38", + "nodeType": "VariableDeclaration", + "scope": 38362, + "src": "1753:8:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 38349, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1753:6:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "1752:10:38" + }, + "returnParameters": { + "id": 38355, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38354, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 38362, + "src": "1786:25:38", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_memory_ptr", + "typeString": "struct BottomUpCheckpoint" + }, + "typeName": { + "id": 38353, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38352, + "name": "BottomUpCheckpoint", + "nameLocations": [ + "1786:18:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44156, + "src": "1786:18:38" + }, + "referencedDeclaration": 44156, + "src": "1786:18:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeString": "struct BottomUpCheckpoint" + } + }, + "visibility": "internal" + } + ], + "src": "1785:27:38" + }, + "scope": 38676, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 38380, + "nodeType": "FunctionDefinition", + "src": "2057:196:38", + "nodes": [], + "body": { + "id": 38379, + "nodeType": "Block", + "src": "2148:105:38", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 38376, + "name": "subnetId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38366, + "src": "2237:8:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_calldata_ptr", + "typeString": "struct SubnetID calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_SubnetID_$44279_calldata_ptr", + "typeString": "struct SubnetID calldata" + } + ], + "expression": { + "id": 38374, + "name": "LibGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42262, + "src": "2216:10:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeString": "type(library LibGateway)" + } + }, + "id": 38375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2227:9:38", + "memberName": "getSubnet", + "nodeType": "MemberAccess", + "referencedDeclaration": 42261, + "src": "2216:20:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeString": "function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)" + } + }, + "id": 38377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2216:30:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeString": "tuple(bool,struct Subnet storage pointer)" + } + }, + "functionReturnParameters": 38373, + "id": 38378, + "nodeType": "Return", + "src": "2209:37:38" + } + ] + }, + "documentation": { + "id": 38363, + "nodeType": "StructuredDocumentation", + "src": "1867:185:38", + "text": "@notice returns the subnet with the given id\n @param subnetId the id of the subnet\n @return found whether the subnet exists\n @return subnet - the subnet struct" + }, + "functionSelector": "c66c66a1", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getSubnet", + "nameLocation": "2066:9:38", + "parameters": { + "id": 38367, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38366, + "mutability": "mutable", + "name": "subnetId", + "nameLocation": "2094:8:38", + "nodeType": "VariableDeclaration", + "scope": 38380, + "src": "2076:26:38", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_calldata_ptr", + "typeString": "struct SubnetID" + }, + "typeName": { + "id": 38365, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38364, + "name": "SubnetID", + "nameLocations": [ + "2076:8:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44279, + "src": "2076:8:38" + }, + "referencedDeclaration": 44279, + "src": "2076:8:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeString": "struct SubnetID" + } + }, + "visibility": "internal" + } + ], + "src": "2075:28:38" + }, + "returnParameters": { + "id": 38373, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38369, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 38380, + "src": "2127:4:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 38368, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2127:4:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 38372, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 38380, + "src": "2133:13:38", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_memory_ptr", + "typeString": "struct Subnet" + }, + "typeName": { + "id": 38371, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38370, + "name": "Subnet", + "nameLocations": [ + "2133:6:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44303, + "src": "2133:6:38" + }, + "referencedDeclaration": 44303, + "src": "2133:6:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet" + } + }, + "visibility": "internal" + } + ], + "src": "2126:21:38" + }, + "scope": 38676, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 38394, + "nodeType": "FunctionDefinition", + "src": "2259:109:38", + "nodes": [], + "body": { + "id": 38393, + "nodeType": "Block", + "src": "2332:36:38", + "nodes": [], + "statements": [ + { + "expression": { + "baseExpression": { + "expression": { + "id": 38388, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38267, + "src": "2349:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 38389, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2351:7:38", + "memberName": "subnets", + "nodeType": "MemberAccess", + "referencedDeclaration": 42319, + "src": "2349:9:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Subnet_$44303_storage_$", + "typeString": "mapping(bytes32 => struct Subnet storage ref)" + } + }, + "id": 38391, + "indexExpression": { + "id": 38390, + "name": "h", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38382, + "src": "2359:1:38", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2349:12:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage", + "typeString": "struct Subnet storage ref" + } + }, + "functionReturnParameters": 38387, + "id": 38392, + "nodeType": "Return", + "src": "2342:19:38" + } + ] + }, + "functionSelector": "02e30f9a", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "subnets", + "nameLocation": "2268:7:38", + "parameters": { + "id": 38383, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38382, + "mutability": "mutable", + "name": "h", + "nameLocation": "2284:1:38", + "nodeType": "VariableDeclaration", + "scope": 38394, + "src": "2276:9:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 38381, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2276:7:38", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2275:11:38" + }, + "returnParameters": { + "id": 38387, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38386, + "mutability": "mutable", + "name": "subnet", + "nameLocation": "2324:6:38", + "nodeType": "VariableDeclaration", + "scope": 38394, + "src": "2310:20:38", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_memory_ptr", + "typeString": "struct Subnet" + }, + "typeName": { + "id": 38385, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38384, + "name": "Subnet", + "nameLocations": [ + "2310:6:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44303, + "src": "2310:6:38" + }, + "referencedDeclaration": 44303, + "src": "2310:6:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet" + } + }, + "visibility": "internal" + } + ], + "src": "2309:22:38" + }, + "scope": 38676, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 38416, + "nodeType": "FunctionDefinition", + "src": "2443:262:38", + "nodes": [], + "body": { + "id": 38415, + "nodeType": "Block", + "src": "2537:168:38", + "nodes": [], + "statements": [ + { + "assignments": [ + null, + 38405 + ], + "declarations": [ + null, + { + "constant": false, + "id": 38405, + "mutability": "mutable", + "name": "subnet", + "nameLocation": "2616:6:38", + "nodeType": "VariableDeclaration", + "scope": 38415, + "src": "2601:21:38", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet" + }, + "typeName": { + "id": 38404, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38403, + "name": "Subnet", + "nameLocations": [ + "2601:6:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44303, + "src": "2601:6:38" + }, + "referencedDeclaration": 44303, + "src": "2601:6:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet" + } + }, + "visibility": "internal" + } + ], + "id": 38410, + "initialValue": { + "arguments": [ + { + "id": 38408, + "name": "subnetId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38398, + "src": "2647:8:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + } + ], + "expression": { + "id": 38406, + "name": "LibGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42262, + "src": "2626:10:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeString": "type(library LibGateway)" + } + }, + "id": 38407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2637:9:38", + "memberName": "getSubnet", + "nodeType": "MemberAccess", + "referencedDeclaration": 42261, + "src": "2626:20:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeString": "function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)" + } + }, + "id": 38409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2626:30:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeString": "tuple(bool,struct Subnet storage pointer)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2598:58:38" + }, + { + "expression": { + "expression": { + "expression": { + "id": 38411, + "name": "subnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38405, + "src": "2673:6:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet storage pointer" + } + }, + "id": 38412, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2680:11:38", + "memberName": "topDownMsgs", + "nodeType": "MemberAccess", + "referencedDeclaration": 44302, + "src": "2673:18:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_storage_$dyn_storage", + "typeString": "struct CrossMsg storage ref[] storage ref" + } + }, + "id": 38413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2692:6:38", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2673:25:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 38402, + "id": 38414, + "nodeType": "Return", + "src": "2666:32:38" + } + ] + }, + "documentation": { + "id": 38395, + "nodeType": "StructuredDocumentation", + "src": "2374:64:38", + "text": "@notice get number of top-down messages for the given subnet" + }, + "functionSelector": "9d3070b5", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getSubnetTopDownMsgsLength", + "nameLocation": "2452:26:38", + "parameters": { + "id": 38399, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38398, + "mutability": "mutable", + "name": "subnetId", + "nameLocation": "2495:8:38", + "nodeType": "VariableDeclaration", + "scope": 38416, + "src": "2479:24:38", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID" + }, + "typeName": { + "id": 38397, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38396, + "name": "SubnetID", + "nameLocations": [ + "2479:8:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44279, + "src": "2479:8:38" + }, + "referencedDeclaration": 44279, + "src": "2479:8:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeString": "struct SubnetID" + } + }, + "visibility": "internal" + } + ], + "src": "2478:26:38" + }, + "returnParameters": { + "id": 38402, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38401, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 38416, + "src": "2528:7:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 38400, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2528:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2527:9:38" + }, + "scope": 38676, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 38442, + "nodeType": "FunctionDefinition", + "src": "2792:278:38", + "nodes": [], + "body": { + "id": 38441, + "nodeType": "Block", + "src": "2902:168:38", + "nodes": [], + "statements": [ + { + "assignments": [ + null, + 38430 + ], + "declarations": [ + null, + { + "constant": false, + "id": 38430, + "mutability": "mutable", + "name": "subnet", + "nameLocation": "2981:6:38", + "nodeType": "VariableDeclaration", + "scope": 38441, + "src": "2966:21:38", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet" + }, + "typeName": { + "id": 38429, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38428, + "name": "Subnet", + "nameLocations": [ + "2966:6:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44303, + "src": "2966:6:38" + }, + "referencedDeclaration": 44303, + "src": "2966:6:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet" + } + }, + "visibility": "internal" + } + ], + "id": 38435, + "initialValue": { + "arguments": [ + { + "id": 38433, + "name": "subnetId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38420, + "src": "3012:8:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + } + ], + "expression": { + "id": 38431, + "name": "LibGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42262, + "src": "2991:10:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeString": "type(library LibGateway)" + } + }, + "id": 38432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3002:9:38", + "memberName": "getSubnet", + "nodeType": "MemberAccess", + "referencedDeclaration": 42261, + "src": "2991:20:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeString": "function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)" + } + }, + "id": 38434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2991:30:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeString": "tuple(bool,struct Subnet storage pointer)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2963:58:38" + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 38436, + "name": "subnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38430, + "src": "3038:6:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet storage pointer" + } + }, + "id": 38437, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3045:11:38", + "memberName": "topDownMsgs", + "nodeType": "MemberAccess", + "referencedDeclaration": 44302, + "src": "3038:18:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_storage_$dyn_storage", + "typeString": "struct CrossMsg storage ref[] storage ref" + } + }, + "id": 38439, + "indexExpression": { + "id": 38438, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38422, + "src": "3057:5:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3038:25:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_storage", + "typeString": "struct CrossMsg storage ref" + } + }, + "functionReturnParameters": 38427, + "id": 38440, + "nodeType": "Return", + "src": "3031:32:38" + } + ] + }, + "documentation": { + "id": 38417, + "nodeType": "StructuredDocumentation", + "src": "2711:76:38", + "text": "@notice get the top-down message at the given index for the given subnet" + }, + "functionSelector": "0ea746f2", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getSubnetTopDownMsg", + "nameLocation": "2801:19:38", + "parameters": { + "id": 38423, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38420, + "mutability": "mutable", + "name": "subnetId", + "nameLocation": "2837:8:38", + "nodeType": "VariableDeclaration", + "scope": 38442, + "src": "2821:24:38", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID" + }, + "typeName": { + "id": 38419, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38418, + "name": "SubnetID", + "nameLocations": [ + "2821:8:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44279, + "src": "2821:8:38" + }, + "referencedDeclaration": 44279, + "src": "2821:8:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeString": "struct SubnetID" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 38422, + "mutability": "mutable", + "name": "index", + "nameLocation": "2855:5:38", + "nodeType": "VariableDeclaration", + "scope": 38442, + "src": "2847:13:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 38421, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2847:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2820:41:38" + }, + "returnParameters": { + "id": 38427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38426, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 38442, + "src": "2885:15:38", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeString": "struct CrossMsg" + }, + "typeName": { + "id": 38425, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38424, + "name": "CrossMsg", + "nameLocations": [ + "2885:8:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44176, + "src": "2885:8:38" + }, + "referencedDeclaration": 44176, + "src": "2885:8:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeString": "struct CrossMsg" + } + }, + "visibility": "internal" + } + ], + "src": "2884:17:38" + }, + "scope": 38676, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 38473, + "nodeType": "FunctionDefinition", + "src": "3076:298:38", + "nodes": [], + "body": { + "id": 38472, + "nodeType": "Block", + "src": "3170:204:38", + "nodes": [], + "statements": [ + { + "assignments": [ + 38453, + 38456 + ], + "declarations": [ + { + "constant": false, + "id": 38453, + "mutability": "mutable", + "name": "registered", + "nameLocation": "3186:10:38", + "nodeType": "VariableDeclaration", + "scope": 38472, + "src": "3181:15:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 38452, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3181:4:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 38456, + "mutability": "mutable", + "name": "subnet", + "nameLocation": "3213:6:38", + "nodeType": "VariableDeclaration", + "scope": 38472, + "src": "3198:21:38", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet" + }, + "typeName": { + "id": 38455, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38454, + "name": "Subnet", + "nameLocations": [ + "3198:6:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44303, + "src": "3198:6:38" + }, + "referencedDeclaration": 44303, + "src": "3198:6:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet" + } + }, + "visibility": "internal" + } + ], + "id": 38461, + "initialValue": { + "arguments": [ + { + "id": 38459, + "name": "subnetId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38445, + "src": "3244:8:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_calldata_ptr", + "typeString": "struct SubnetID calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_SubnetID_$44279_calldata_ptr", + "typeString": "struct SubnetID calldata" + } + ], + "expression": { + "id": 38457, + "name": "LibGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42262, + "src": "3223:10:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeString": "type(library LibGateway)" + } + }, + "id": 38458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3234:9:38", + "memberName": "getSubnet", + "nodeType": "MemberAccess", + "referencedDeclaration": 42261, + "src": "3223:20:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeString": "function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)" + } + }, + "id": 38460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3223:30:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeString": "tuple(bool,struct Subnet storage pointer)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3180:73:38" + }, + { + "condition": { + "id": 38463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3267:11:38", + "subExpression": { + "id": 38462, + "name": "registered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38453, + "src": "3268:10:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 38468, + "nodeType": "IfStatement", + "src": "3263:70:38", + "trueBody": { + "id": 38467, + "nodeType": "Block", + "src": "3280:53:38", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 38464, + "name": "NotRegisteredSubnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38220, + "src": "3301:19:38", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 38465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3301:21:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38466, + "nodeType": "RevertStatement", + "src": "3294:28:38" + } + ] + } + }, + { + "expression": { + "expression": { + "id": 38469, + "name": "subnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38456, + "src": "3349:6:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet storage pointer" + } + }, + "id": 38470, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3356:11:38", + "memberName": "topDownMsgs", + "nodeType": "MemberAccess", + "referencedDeclaration": 44302, + "src": "3349:18:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_storage_$dyn_storage", + "typeString": "struct CrossMsg storage ref[] storage ref" + } + }, + "functionReturnParameters": 38451, + "id": 38471, + "nodeType": "Return", + "src": "3342:25:38" + } + ] + }, + "functionSelector": "88f6aea5", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTopDownMsgs", + "nameLocation": "3085:14:38", + "parameters": { + "id": 38446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38445, + "mutability": "mutable", + "name": "subnetId", + "nameLocation": "3118:8:38", + "nodeType": "VariableDeclaration", + "scope": 38473, + "src": "3100:26:38", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_calldata_ptr", + "typeString": "struct SubnetID" + }, + "typeName": { + "id": 38444, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38443, + "name": "SubnetID", + "nameLocations": [ + "3100:8:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44279, + "src": "3100:8:38" + }, + "referencedDeclaration": 44279, + "src": "3100:8:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeString": "struct SubnetID" + } + }, + "visibility": "internal" + } + ], + "src": "3099:28:38" + }, + "returnParameters": { + "id": 38451, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38450, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 38473, + "src": "3151:17:38", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CrossMsg[]" + }, + "typeName": { + "baseType": { + "id": 38448, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38447, + "name": "CrossMsg", + "nameLocations": [ + "3151:8:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44176, + "src": "3151:8:38" + }, + "referencedDeclaration": 44176, + "src": "3151:8:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeString": "struct CrossMsg" + } + }, + "id": 38449, + "nodeType": "ArrayTypeName", + "src": "3151:10:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_storage_$dyn_storage_ptr", + "typeString": "struct CrossMsg[]" + } + }, + "visibility": "internal" + } + ], + "src": "3150:19:38" + }, + "scope": 38676, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 38508, + "nodeType": "FunctionDefinition", + "src": "3497:299:38", + "nodes": [], + "body": { + "id": 38507, + "nodeType": "Block", + "src": "3594:202:38", + "nodes": [], + "statements": [ + { + "assignments": [ + 38485, + 38488 + ], + "declarations": [ + { + "constant": false, + "id": 38485, + "mutability": "mutable", + "name": "registered", + "nameLocation": "3610:10:38", + "nodeType": "VariableDeclaration", + "scope": 38507, + "src": "3605:15:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 38484, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3605:4:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 38488, + "mutability": "mutable", + "name": "subnet", + "nameLocation": "3637:6:38", + "nodeType": "VariableDeclaration", + "scope": 38507, + "src": "3622:21:38", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet" + }, + "typeName": { + "id": 38487, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38486, + "name": "Subnet", + "nameLocations": [ + "3622:6:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44303, + "src": "3622:6:38" + }, + "referencedDeclaration": 44303, + "src": "3622:6:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet" + } + }, + "visibility": "internal" + } + ], + "id": 38493, + "initialValue": { + "arguments": [ + { + "id": 38491, + "name": "subnetId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38477, + "src": "3668:8:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_calldata_ptr", + "typeString": "struct SubnetID calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_SubnetID_$44279_calldata_ptr", + "typeString": "struct SubnetID calldata" + } + ], + "expression": { + "id": 38489, + "name": "LibGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42262, + "src": "3647:10:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeString": "type(library LibGateway)" + } + }, + "id": 38490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3658:9:38", + "memberName": "getSubnet", + "nodeType": "MemberAccess", + "referencedDeclaration": 42261, + "src": "3647:20:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeString": "function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)" + } + }, + "id": 38492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3647:30:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeString": "tuple(bool,struct Subnet storage pointer)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3604:73:38" + }, + { + "condition": { + "id": 38495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3691:11:38", + "subExpression": { + "id": 38494, + "name": "registered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38485, + "src": "3692:10:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 38501, + "nodeType": "IfStatement", + "src": "3687:59:38", + "trueBody": { + "id": 38500, + "nodeType": "Block", + "src": "3704:42:38", + "statements": [ + { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 38496, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3726:5:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 38497, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3733:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 38498, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3725:10:38", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 38483, + "id": 38499, + "nodeType": "Return", + "src": "3718:17:38" + } + ] + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 38502, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3763:4:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "expression": { + "id": 38503, + "name": "subnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38488, + "src": "3769:6:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet storage pointer" + } + }, + "id": 38504, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3776:12:38", + "memberName": "topDownNonce", + "nodeType": "MemberAccess", + "referencedDeclaration": 44284, + "src": "3769:19:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "id": 38505, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3762:27:38", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint64_$", + "typeString": "tuple(bool,uint64)" + } + }, + "functionReturnParameters": 38483, + "id": 38506, + "nodeType": "Return", + "src": "3755:34:38" + } + ] + }, + "documentation": { + "id": 38474, + "nodeType": "StructuredDocumentation", + "src": "3380:112:38", + "text": "@notice Get the latest applied top down nonce\n @param subnetId - The subnet id to fetch messages from" + }, + "functionSelector": "9e530b57", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getAppliedTopDownNonce", + "nameLocation": "3506:22:38", + "parameters": { + "id": 38478, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38477, + "mutability": "mutable", + "name": "subnetId", + "nameLocation": "3547:8:38", + "nodeType": "VariableDeclaration", + "scope": 38508, + "src": "3529:26:38", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_calldata_ptr", + "typeString": "struct SubnetID" + }, + "typeName": { + "id": 38476, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38475, + "name": "SubnetID", + "nameLocations": [ + "3529:8:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44279, + "src": "3529:8:38" + }, + "referencedDeclaration": 44279, + "src": "3529:8:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeString": "struct SubnetID" + } + }, + "visibility": "internal" + } + ], + "src": "3528:28:38" + }, + "returnParameters": { + "id": 38483, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38480, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 38508, + "src": "3580:4:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 38479, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3580:4:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 38482, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 38508, + "src": "3586:6:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 38481, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3586:6:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "3579:14:38" + }, + "scope": 38676, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 38517, + "nodeType": "FunctionDefinition", + "src": "3802:90:38", + "nodes": [], + "body": { + "id": 38516, + "nodeType": "Block", + "src": "3855:37:38", + "nodes": [], + "statements": [ + { + "expression": { + "expression": { + "id": 38513, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38267, + "src": "3872:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 38514, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3874:11:38", + "memberName": "totalWeight", + "nodeType": "MemberAccess", + "referencedDeclaration": 42349, + "src": "3872:13:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 38512, + "id": 38515, + "nodeType": "Return", + "src": "3865:20:38" + } + ] + }, + "functionSelector": "96c82e57", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalWeight", + "nameLocation": "3811:11:38", + "parameters": { + "id": 38509, + "nodeType": "ParameterList", + "parameters": [], + "src": "3822:2:38" + }, + "returnParameters": { + "id": 38512, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38511, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 38517, + "src": "3846:7:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 38510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3846:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3845:9:38" + }, + "scope": 38676, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 38526, + "nodeType": "FunctionDefinition", + "src": "3898:105:38", + "nodes": [], + "body": { + "id": 38525, + "nodeType": "Block", + "src": "3958:45:38", + "nodes": [], + "statements": [ + { + "expression": { + "expression": { + "id": 38522, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38267, + "src": "3975:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 38523, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3977:19:38", + "memberName": "appliedTopDownNonce", + "nodeType": "MemberAccess", + "referencedDeclaration": 42343, + "src": "3975:21:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 38521, + "id": 38524, + "nodeType": "Return", + "src": "3968:28:38" + } + ] + }, + "functionSelector": "8789f83b", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "appliedTopDownNonce", + "nameLocation": "3907:19:38", + "parameters": { + "id": 38518, + "nodeType": "ParameterList", + "parameters": [], + "src": "3926:2:38" + }, + "returnParameters": { + "id": 38521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38520, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 38526, + "src": "3950:6:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 38519, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3950:6:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "3949:8:38" + }, + "scope": 38676, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 38549, + "nodeType": "FunctionDefinition", + "src": "4009:166:38", + "nodes": [], + "body": { + "id": 38548, + "nodeType": "Block", + "src": "4105:70:38", + "nodes": [], + "statements": [ + { + "expression": { + "components": [ + { + "expression": { + "baseExpression": { + "expression": { + "id": 38536, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38267, + "src": "4123:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 38537, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4125:7:38", + "memberName": "postbox", + "nodeType": "MemberAccess", + "referencedDeclaration": 42328, + "src": "4123:9:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$44176_storage_$", + "typeString": "mapping(bytes32 => struct CrossMsg storage ref)" + } + }, + "id": 38539, + "indexExpression": { + "id": 38538, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38528, + "src": "4133:2:38", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4123:13:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_storage", + "typeString": "struct CrossMsg storage ref" + } + }, + "id": 38540, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4137:7:38", + "memberName": "message", + "nodeType": "MemberAccess", + "referencedDeclaration": 44173, + "src": "4123:21:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StorableMsg_$44191_storage", + "typeString": "struct StorableMsg storage ref" + } + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 38541, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38267, + "src": "4146:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 38542, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4148:7:38", + "memberName": "postbox", + "nodeType": "MemberAccess", + "referencedDeclaration": 42328, + "src": "4146:9:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$44176_storage_$", + "typeString": "mapping(bytes32 => struct CrossMsg storage ref)" + } + }, + "id": 38544, + "indexExpression": { + "id": 38543, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38528, + "src": "4156:2:38", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4146:13:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_storage", + "typeString": "struct CrossMsg storage ref" + } + }, + "id": 38545, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4160:7:38", + "memberName": "wrapped", + "nodeType": "MemberAccess", + "referencedDeclaration": 44175, + "src": "4146:21:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 38546, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4122:46:38", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_struct$_StorableMsg_$44191_storage_$_t_bool_$", + "typeString": "tuple(struct StorableMsg storage ref,bool)" + } + }, + "functionReturnParameters": 38535, + "id": 38547, + "nodeType": "Return", + "src": "4115:53:38" + } + ] + }, + "functionSelector": "8cfd78e7", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "postbox", + "nameLocation": "4018:7:38", + "parameters": { + "id": 38529, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38528, + "mutability": "mutable", + "name": "id", + "nameLocation": "4034:2:38", + "nodeType": "VariableDeclaration", + "scope": 38549, + "src": "4026:10:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 38527, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4026:7:38", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4025:12:38" + }, + "returnParameters": { + "id": 38535, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38532, + "mutability": "mutable", + "name": "storableMsg", + "nameLocation": "4078:11:38", + "nodeType": "VariableDeclaration", + "scope": 38549, + "src": "4059:30:38", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StorableMsg_$44191_memory_ptr", + "typeString": "struct StorableMsg" + }, + "typeName": { + "id": 38531, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38530, + "name": "StorableMsg", + "nameLocations": [ + "4059:11:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44191, + "src": "4059:11:38" + }, + "referencedDeclaration": 44191, + "src": "4059:11:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StorableMsg_$44191_storage_ptr", + "typeString": "struct StorableMsg" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 38534, + "mutability": "mutable", + "name": "wrapped", + "nameLocation": "4096:7:38", + "nodeType": "VariableDeclaration", + "scope": 38549, + "src": "4091:12:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 38533, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4091:4:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4058:46:38" + }, + "scope": 38676, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 38578, + "nodeType": "FunctionDefinition", + "src": "4363:285:38", + "nodes": [], + "body": { + "id": 38577, + "nodeType": "Block", + "src": "4465:183:38", + "nodes": [], + "statements": [ + { + "assignments": [ + 38561 + ], + "declarations": [ + { + "constant": false, + "id": 38561, + "mutability": "mutable", + "name": "voteSubmission", + "nameLocation": "4510:14:38", + "nodeType": "VariableDeclaration", + "scope": 38577, + "src": "4475:49:38", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeString": "struct EpochVoteTopDownSubmission" + }, + "typeName": { + "id": 38560, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38559, + "name": "EpochVoteTopDownSubmission", + "nameLocations": [ + "4475:26:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44224, + "src": "4475:26:38" + }, + "referencedDeclaration": 44224, + "src": "4475:26:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeString": "struct EpochVoteTopDownSubmission" + } + }, + "visibility": "internal" + } + ], + "id": 38566, + "initialValue": { + "baseExpression": { + "expression": { + "id": 38562, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38267, + "src": "4527:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 38563, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4529:20:38", + "memberName": "epochVoteSubmissions", + "nodeType": "MemberAccess", + "referencedDeclaration": 42386, + "src": "4527:22:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_EpochVoteTopDownSubmission_$44224_storage_$", + "typeString": "mapping(uint64 => struct EpochVoteTopDownSubmission storage ref)" + } + }, + "id": 38565, + "indexExpression": { + "id": 38564, + "name": "epoch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38552, + "src": "4550:5:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4527:29:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage", + "typeString": "struct EpochVoteTopDownSubmission storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4475:81:38" + }, + { + "expression": { + "baseExpression": { + "baseExpression": { + "expression": { + "expression": { + "id": 38567, + "name": "voteSubmission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38561, + "src": "4573:14:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeString": "struct EpochVoteTopDownSubmission storage pointer" + } + }, + "id": 38568, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4588:4:38", + "memberName": "vote", + "nodeType": "MemberAccess", + "referencedDeclaration": 44218, + "src": "4573:19:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteSubmission_$44215_storage", + "typeString": "struct EpochVoteSubmission storage ref" + } + }, + "id": 38569, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4593:10:38", + "memberName": "submitters", + "nodeType": "MemberAccess", + "referencedDeclaration": 44208, + "src": "4573:30:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(address => bool))" + } + }, + "id": 38573, + "indexExpression": { + "expression": { + "expression": { + "id": 38570, + "name": "voteSubmission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38561, + "src": "4604:14:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeString": "struct EpochVoteTopDownSubmission storage pointer" + } + }, + "id": 38571, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4619:4:38", + "memberName": "vote", + "nodeType": "MemberAccess", + "referencedDeclaration": 44218, + "src": "4604:19:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteSubmission_$44215_storage", + "typeString": "struct EpochVoteSubmission storage ref" + } + }, + "id": 38572, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4624:5:38", + "memberName": "nonce", + "nodeType": "MemberAccess", + "referencedDeclaration": 44198, + "src": "4604:25:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4573:57:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 38575, + "indexExpression": { + "id": 38574, + "name": "submitter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38554, + "src": "4631:9:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4573:68:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 38558, + "id": 38576, + "nodeType": "Return", + "src": "4566:75:38" + } + ] + }, + "documentation": { + "id": 38550, + "nodeType": "StructuredDocumentation", + "src": "4181:177:38", + "text": "@notice whether a validator has voted for a checkpoint submission during an epoch\n @param epoch - the epoch to check\n @param submitter - the validator to check" + }, + "functionSelector": "66d7bbbc", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "hasValidatorVotedForSubmission", + "nameLocation": "4372:30:38", + "parameters": { + "id": 38555, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38552, + "mutability": "mutable", + "name": "epoch", + "nameLocation": "4410:5:38", + "nodeType": "VariableDeclaration", + "scope": 38578, + "src": "4403:12:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 38551, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4403:6:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 38554, + "mutability": "mutable", + "name": "submitter", + "nameLocation": "4425:9:38", + "nodeType": "VariableDeclaration", + "scope": 38578, + "src": "4417:17:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 38553, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4417:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4402:33:38" + }, + "returnParameters": { + "id": 38558, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38557, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 38578, + "src": "4459:4:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 38556, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4459:4:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4458:6:38" + }, + "scope": 38676, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 38605, + "nodeType": "FunctionDefinition", + "src": "4859:240:38", + "nodes": [], + "body": { + "id": 38604, + "nodeType": "Block", + "src": "4994:105:38", + "nodes": [], + "statements": [ + { + "expression": { + "id": 38594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 38589, + "name": "checkpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38587, + "src": "5004:10:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_memory_ptr", + "typeString": "struct BottomUpCheckpoint memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "expression": { + "id": 38590, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38267, + "src": "5017:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 38591, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5019:19:38", + "memberName": "bottomUpCheckpoints", + "nodeType": "MemberAccess", + "referencedDeclaration": 42337, + "src": "5017:21:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$44156_storage_$", + "typeString": "mapping(uint64 => struct BottomUpCheckpoint storage ref)" + } + }, + "id": 38593, + "indexExpression": { + "id": 38592, + "name": "epoch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38581, + "src": "5039:5:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5017:28:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeString": "struct BottomUpCheckpoint storage ref" + } + }, + "src": "5004:41:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_memory_ptr", + "typeString": "struct BottomUpCheckpoint memory" + } + }, + "id": 38595, + "nodeType": "ExpressionStatement", + "src": "5004:41:38" + }, + { + "expression": { + "id": 38602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 38596, + "name": "exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38584, + "src": "5055:6:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 38601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "5064:28:38", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 38597, + "name": "checkpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38587, + "src": "5065:10:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_memory_ptr", + "typeString": "struct BottomUpCheckpoint memory" + } + }, + "id": 38598, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5076:6:38", + "memberName": "source", + "nodeType": "MemberAccess", + "referencedDeclaration": 44139, + "src": "5065:17:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + } + }, + "id": 38599, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5083:7:38", + "memberName": "isEmpty", + "nodeType": "MemberAccess", + "referencedDeclaration": 44130, + "src": "5065:25:38", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeString": "function (struct SubnetID memory) pure returns (bool)" + } + }, + "id": 38600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5065:27:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5055:37:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 38603, + "nodeType": "ExpressionStatement", + "src": "5055:37:38" + } + ] + }, + "documentation": { + "id": 38579, + "nodeType": "StructuredDocumentation", + "src": "4654:200:38", + "text": "@notice returns the current bottom-up checkpoint\n @param epoch - the epoch to check\n @return exists - whether the checkpoint exists\n @return checkpoint - the checkpoint struct" + }, + "functionSelector": "6cb2ecee", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "bottomUpCheckpointAtEpoch", + "nameLocation": "4868:25:38", + "parameters": { + "id": 38582, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38581, + "mutability": "mutable", + "name": "epoch", + "nameLocation": "4910:5:38", + "nodeType": "VariableDeclaration", + "scope": 38605, + "src": "4903:12:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 38580, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4903:6:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "4893:28:38" + }, + "returnParameters": { + "id": 38588, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38584, + "mutability": "mutable", + "name": "exists", + "nameLocation": "4948:6:38", + "nodeType": "VariableDeclaration", + "scope": 38605, + "src": "4943:11:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 38583, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4943:4:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 38587, + "mutability": "mutable", + "name": "checkpoint", + "nameLocation": "4982:10:38", + "nodeType": "VariableDeclaration", + "scope": 38605, + "src": "4956:36:38", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_memory_ptr", + "typeString": "struct BottomUpCheckpoint" + }, + "typeName": { + "id": 38586, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38585, + "name": "BottomUpCheckpoint", + "nameLocations": [ + "4956:18:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44156, + "src": "4956:18:38" + }, + "referencedDeclaration": 44156, + "src": "4956:18:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeString": "struct BottomUpCheckpoint" + } + }, + "visibility": "internal" + } + ], + "src": "4942:51:38" + }, + "scope": 38676, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 38631, + "nodeType": "FunctionDefinition", + "src": "5317:240:38", + "nodes": [], + "body": { + "id": 38630, + "nodeType": "Block", + "src": "5408:149:38", + "nodes": [], + "statements": [ + { + "assignments": [ + 38616, + 38619 + ], + "declarations": [ + { + "constant": false, + "id": 38616, + "mutability": "mutable", + "name": "exists", + "nameLocation": "5424:6:38", + "nodeType": "VariableDeclaration", + "scope": 38630, + "src": "5419:11:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 38615, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5419:4:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 38619, + "mutability": "mutable", + "name": "checkpoint", + "nameLocation": "5458:10:38", + "nodeType": "VariableDeclaration", + "scope": 38630, + "src": "5432:36:38", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_memory_ptr", + "typeString": "struct BottomUpCheckpoint" + }, + "typeName": { + "id": 38618, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38617, + "name": "BottomUpCheckpoint", + "nameLocations": [ + "5432:18:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44156, + "src": "5432:18:38" + }, + "referencedDeclaration": 44156, + "src": "5432:18:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeString": "struct BottomUpCheckpoint" + } + }, + "visibility": "internal" + } + ], + "id": 38623, + "initialValue": { + "arguments": [ + { + "id": 38621, + "name": "epoch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38608, + "src": "5498:5:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 38620, + "name": "bottomUpCheckpointAtEpoch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38605, + "src": "5472:25:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint64_$returns$_t_bool_$_t_struct$_BottomUpCheckpoint_$44156_memory_ptr_$", + "typeString": "function (uint64) view returns (bool,struct BottomUpCheckpoint memory)" + } + }, + "id": 38622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5472:32:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_BottomUpCheckpoint_$44156_memory_ptr_$", + "typeString": "tuple(bool,struct BottomUpCheckpoint memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5418:86:38" + }, + { + "expression": { + "components": [ + { + "id": 38624, + "name": "exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38616, + "src": "5522:6:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 38625, + "name": "checkpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38619, + "src": "5530:10:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_memory_ptr", + "typeString": "struct BottomUpCheckpoint memory" + } + }, + "id": 38626, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5541:6:38", + "memberName": "toHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 40594, + "src": "5530:17:38", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_BottomUpCheckpoint_$44156_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_BottomUpCheckpoint_$44156_memory_ptr_$", + "typeString": "function (struct BottomUpCheckpoint memory) pure returns (bytes32)" + } + }, + "id": 38627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5530:19:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 38628, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5521:29:38", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$", + "typeString": "tuple(bool,bytes32)" + } + }, + "functionReturnParameters": 38614, + "id": 38629, + "nodeType": "Return", + "src": "5514:36:38" + } + ] + }, + "documentation": { + "id": 38606, + "nodeType": "StructuredDocumentation", + "src": "5105:207:38", + "text": "@notice returns the historical bottom-up checkpoint hash\n @param epoch - the epoch to check\n @return exists - whether the checkpoint exists\n @return hash - the hash of the checkpoint" + }, + "functionSelector": "133f74ea", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "bottomUpCheckpointHashAtEpoch", + "nameLocation": "5326:29:38", + "parameters": { + "id": 38609, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38608, + "mutability": "mutable", + "name": "epoch", + "nameLocation": "5363:5:38", + "nodeType": "VariableDeclaration", + "scope": 38631, + "src": "5356:12:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 38607, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "5356:6:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "5355:14:38" + }, + "returnParameters": { + "id": 38614, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38611, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 38631, + "src": "5393:4:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 38610, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5393:4:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 38613, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 38631, + "src": "5399:7:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 38612, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5399:7:38", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5392:15:38" + }, + "scope": 38676, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 38641, + "nodeType": "FunctionDefinition", + "src": "5563:158:38", + "nodes": [], + "body": { + "id": 38640, + "nodeType": "Block", + "src": "5619:102:38", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 38636, + "name": "LibVoting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43438, + "src": "5687:9:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibVoting_$43438_$", + "typeString": "type(library LibVoting)" + } + }, + "id": 38637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5697:15:38", + "memberName": "getGenesisEpoch", + "nodeType": "MemberAccess", + "referencedDeclaration": 43037, + "src": "5687:25:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint64_$", + "typeString": "function () view returns (uint64)" + } + }, + "id": 38638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5687:27:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 38635, + "id": 38639, + "nodeType": "Return", + "src": "5680:34:38" + } + ] + }, + "functionSelector": "51392fc0", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getGenesisEpoch", + "nameLocation": "5572:15:38", + "parameters": { + "id": 38632, + "nodeType": "ParameterList", + "parameters": [], + "src": "5587:2:38" + }, + "returnParameters": { + "id": 38635, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38634, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 38641, + "src": "5611:6:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 38633, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "5611:6:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "5610:8:38" + }, + "scope": 38676, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 38655, + "nodeType": "FunctionDefinition", + "src": "5727:174:38", + "nodes": [], + "body": { + "id": 38654, + "nodeType": "Block", + "src": "5799:102:38", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 38650, + "name": "LibVoting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43438, + "src": "5867:9:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibVoting_$43438_$", + "typeString": "type(library LibVoting)" + } + }, + "id": 38651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5877:15:38", + "memberName": "executableQueue", + "nodeType": "MemberAccess", + "referencedDeclaration": 43387, + "src": "5867:25:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint64_$_t_uint64_$_t_uint64_$", + "typeString": "function () view returns (uint64,uint64,uint64)" + } + }, + "id": 38652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5867:27:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint64_$_t_uint64_$_t_uint64_$", + "typeString": "tuple(uint64,uint64,uint64)" + } + }, + "functionReturnParameters": 38649, + "id": 38653, + "nodeType": "Return", + "src": "5860:34:38" + } + ] + }, + "functionSelector": "10d500e1", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "executableQueue", + "nameLocation": "5736:15:38", + "parameters": { + "id": 38642, + "nodeType": "ParameterList", + "parameters": [], + "src": "5751:2:38" + }, + "returnParameters": { + "id": 38649, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38644, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 38655, + "src": "5775:6:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 38643, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "5775:6:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 38646, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 38655, + "src": "5783:6:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 38645, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "5783:6:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 38648, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 38655, + "src": "5791:6:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 38647, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "5791:6:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "5774:24:38" + }, + "scope": 38676, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 38665, + "nodeType": "FunctionDefinition", + "src": "5907:123:38", + "nodes": [], + "body": { + "id": 38664, + "nodeType": "Block", + "src": "5971:59:38", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 38660, + "name": "LibVoting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43438, + "src": "5988:9:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibVoting_$43438_$", + "typeString": "type(library LibVoting)" + } + }, + "id": 38661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5998:23:38", + "memberName": "lastVotingExecutedEpoch", + "nodeType": "MemberAccess", + "referencedDeclaration": 43402, + "src": "5988:33:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint64_$", + "typeString": "function () view returns (uint64)" + } + }, + "id": 38662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5988:35:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 38659, + "id": 38663, + "nodeType": "Return", + "src": "5981:42:38" + } + ] + }, + "functionSelector": "ad81e244", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "lastVotingExecutedEpoch", + "nameLocation": "5916:23:38", + "parameters": { + "id": 38656, + "nodeType": "ParameterList", + "parameters": [], + "src": "5939:2:38" + }, + "returnParameters": { + "id": 38659, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38658, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 38665, + "src": "5963:6:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 38657, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "5963:6:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "5962:8:38" + }, + "scope": 38676, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 38675, + "nodeType": "FunctionDefinition", + "src": "6036:113:38", + "nodes": [], + "body": { + "id": 38674, + "nodeType": "Block", + "src": "6095:54:38", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 38670, + "name": "LibVoting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43438, + "src": "6112:9:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibVoting_$43438_$", + "typeString": "type(library LibVoting)" + } + }, + "id": 38671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6122:18:38", + "memberName": "majorityPercentage", + "nodeType": "MemberAccess", + "referencedDeclaration": 43417, + "src": "6112:28:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint64_$", + "typeString": "function () view returns (uint64)" + } + }, + "id": 38672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6112:30:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 38669, + "id": 38673, + "nodeType": "Return", + "src": "6105:37:38" + } + ] + }, + "functionSelector": "599c7bd1", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "majorityPercentage", + "nameLocation": "6045:18:38", + "parameters": { + "id": 38666, + "nodeType": "ParameterList", + "parameters": [], + "src": "6063:2:38" + }, + "returnParameters": { + "id": 38669, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38668, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 38675, + "src": "6087:6:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 38667, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "6087:6:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "6086:8:38" + }, + "scope": 38676, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "GatewayGetterFacet", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 38676 + ], + "name": "GatewayGetterFacet", + "nameLocation": "700:18:38", + "scope": 38677, + "usedErrors": [ + 38220 + ] + } + ], + "license": "UNLICENSED" + }, + "id": 38 +} \ No newline at end of file diff --git a/contracts/GatewayManagerFacet.json b/contracts/GatewayManagerFacet.json new file mode 100644 index 00000000..132aaa61 --- /dev/null +++ b/contracts/GatewayManagerFacet.json @@ -0,0 +1,7933 @@ +{ + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + } + ], + "name": "AddressEmptyCode", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "AddressInsufficientBalance", + "type": "error" + }, + { + "inputs": [], + "name": "AlreadyInitialized", + "type": "error" + }, + { + "inputs": [], + "name": "AlreadyRegisteredSubnet", + "type": "error" + }, + { + "inputs": [], + "name": "CallFailed", + "type": "error" + }, + { + "inputs": [], + "name": "CannotReleaseZero", + "type": "error" + }, + { + "inputs": [], + "name": "FailedInnerCall", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientFunds", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidActorAddress", + "type": "error" + }, + { + "inputs": [], + "name": "NotEmptySubnetCircSupply", + "type": "error" + }, + { + "inputs": [], + "name": "NotEnoughFee", + "type": "error" + }, + { + "inputs": [], + "name": "NotEnoughFunds", + "type": "error" + }, + { + "inputs": [], + "name": "NotEnoughFundsToRelease", + "type": "error" + }, + { + "inputs": [], + "name": "NotRegisteredSubnet", + "type": "error" + }, + { + "inputs": [], + "name": "NotSignableAccount", + "type": "error" + }, + { + "inputs": [], + "name": "NotSystemActor", + "type": "error" + }, + { + "inputs": [], + "name": "ReentrancyError", + "type": "error" + }, + { + "inputs": [], + "name": "ValidatorWeightIsZero", + "type": "error" + }, + { + "inputs": [], + "name": "ValidatorsAndWeightsLengthMismatch", + "type": "error" + }, + { + "inputs": [], + "name": "addStake", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "to", + "type": "tuple" + } + ], + "name": "fund", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "genesisEpoch", + "type": "uint64" + } + ], + "name": "initGenesisEpoch", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "kill", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "register", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "to", + "type": "tuple" + } + ], + "name": "release", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "releaseRewards", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "releaseStake", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "validators", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "weights", + "type": "uint256[]" + } + ], + "name": "setMembership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": { + "object": "0x608060405234801561001057600080fd5b506128de806100206000396000f3fe6080604052600436106100865760003560e01c806345f544851161005957806345f54485146100dd5780635a627dbc146100fd5780636b2c1eef14610105578063f75bc55714610118578063f8703bb81461013857600080fd5b806313f353881461008b57806318f44b70146100ad5780631aa3a008146100c057806341c0e1b5146100c8575b600080fd5b34801561009757600080fd5b506100ab6100a6366004611c32565b610158565b005b6100ab6100bb366004611c6e565b6101dc565b6100ab61031b565b3480156100d457600080fd5b506100ab61050d565b3480156100e957600080fd5b506100ab6100f8366004611cd1565b61078f565b6100ab61098f565b6100ab610113366004611cea565b610a32565b34801561012457600080fd5b506100ab610133366004611e5a565b610ae4565b34801561014457600080fd5b506100ab610153366004611cd1565b610bf0565b610160610c88565b60105460ff16156101835760405162dc149f60e41b815260040160405180910390fd5b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27080546fffffffffffffffff00000000000000001916600160401b6001600160401b03841602179055506010805460ff19166001179055565b6101e4610d1a565b6101ec610daa565b600073__$33b79814e84bf6cf5e47244090b19ce5f8$__6399aa0eb48433856000600a01543461021c9190611f2a565b6040518563ffffffff1660e01b815260040161023b9493929190611fd5565b600060405180830381865af4158015610258573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261028091908101906122e0565b905061028b81610dcd565b610316610297846123fd565b604051632cff562160e11b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__916359feac42916102cd91906004016124b3565b602060405180830381865af41580156102ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030e91906124c6565b600a546110a0565b505050565b60035434101561033e57604051631036b5ad60e31b815260040160405180910390fd5b604080518082018252600080546001600160401b031682526001805484516020828102820181019096528181529294859381860193909290918301828280156103b057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610392575b50505091909252505060405163aa5106cb60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263aa5106cb92506103f19133906004016124e3565b600060405180830381865af415801561040e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610436919081019061250d565b9050600080610444836110fe565b91509150811561046757604051631b538cdf60e11b815260040160405180910390fd5b825160048201805467ffffffffffffffff19166001600160401b0390921691909117815560208085015180518693926104a79260058701929101906119f6565b505034600183810191909155825460ff191681178355436002808501919091558054919250906000906104e49084906001600160401b0316612557565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550505050565b60008061051933611291565b915091508161053b57604051630e991abd60e41b815260040160405180910390fd5b60038101541561055e57604051637c67c70160e11b815260040160405180910390fd5b600180820154600280549192916000906105829084906001600160401b031661257e565b82546101009290920a6001600160401b03818102199093169183160217909155604080518082018252600486810180549094168252600587018054845160208083028201810190965281815292965060009593948086019392919083018282801561061657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116105f8575b5050509190925250506040516390ba52cf60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__926390ba52cf9250610655916004016124b3565b602060405180830381865af4158015610672573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610696919061259e565b815260208101919091526040016000908120805470ffffffffffffffffffffffffffffffffff1916815560018101829055600281018290556003810182905560048101805467ffffffffffffffff19168155909190816106f96005850182611a5b565b505060068201805467ffffffffffffffff191681556000818161071f6007870182611a5b565b505060028201805467ffffffffffffffff1916905560006003830181905561074b906004840190611a7c565b610759600583016000611a9d565b60068201600090556007820160006107719190611abe565b506107829050600e83016000611a7c565b50610316905033826113c9565b7f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600958054600019016107d3576040516329f745a760e01b815260040160405180910390fd5b6001815560008290036107f95760405163c79cad7b60e01b815260040160405180910390fd5b60008061080533611291565b915091508161082757604051630e991abd60e41b815260040160405180910390fd5b838160010154101561084c576040516379b33e7960e01b815260040160405180910390fd5b838160010160008282546108609190611f2a565b90915550506003546001820154101561087f57805460ff191660021781555b6040805180820182526004830180546001600160401b031682526005840180548451602082810282018101909652818152610986958a9594938186019390918301828280156108f757602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116108d9575b505050919092525050604051632cff562160e11b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__926359feac429250610936916004016124b3565b602060405180830381865af4158015610953573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097791906124c6565b6001600160a01b0316906113c9565b50506000905550565b600034116109b057604051631036b5ad60e31b815260040160405180910390fd5b6000806109bc33611291565b91509150816109de57604051630e991abd60e41b815260040160405180910390fd5b348160010160008282546109f291906125b7565b9091555060029050815460ff166005811115610a1057610a10612541565b03610a2e57600354600182015410610a2e57805460ff191660011781555b5050565b610a3a610d1a565b610a42610daa565b600073__$33b79814e84bf6cf5e47244090b19ce5f8$__631860845e6000800133856000600a015434610a759190611f2a565b6040518563ffffffff1660e01b8152600401610a949493929190612637565b600060405180830381865af4158015610ab1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ad991908101906122e0565b9050610a2e8161145e565b610aec610c88565b8051825114610b0e5760405163465f0a7d60e01b815260040160405180910390fd5b600d8054600090610b1e9061267d565b909155508151600090815b81811015610be7576000858281518110610b4557610b45612696565b6020026020010151905060006001600160a01b0316816001600160a01b031614610bde576000858381518110610b7d57610b7d612696565b6020026020010151905080600003610ba85760405163389b457d60e01b815260040160405180910390fd5b600d546000908152600c602090815260408083206001600160a01b03861684529091529020819055610bda81866125b7565b9450505b50600101610b29565b5050600b555050565b7f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095805460001901610c34576040516329f745a760e01b815260040160405180910390fd5b600181556000829003610c5a5760405163c79cad7b60e01b815260040160405180910390fd5b600080610c6633611291565b915091508161087f57604051630e991abd60e41b815260040160405180910390fd5b604051635d3f8a6960e01b815233600482015273__$e800e3908cdbb6b1b5bd452383a17b18f7$__90635d3f8a6990602401602060405180830381865af4158015610cd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfb91906126ac565b610d185760405163f0d97f3b60e01b815260040160405180910390fd5b565b604051630972932760e21b815233600482015273__$e800e3908cdbb6b1b5bd452383a17b18f7$__906325ca4c9c90602401602060405180830381865af4158015610d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8d91906126ac565b610d1857604051630a23da2b60e31b815260040160405180910390fd5b600a54341015610d18576040516334472ad760e11b815260040160405180910390fd5b8051602001515160405163089032d560e01b8152600091829173__$a0fe38a9a81205afccc10810b09a4d3f45$__9163089032d591610e11919085906004016126c7565b600060405180830381865af4158015610e2e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e56919081019061250d565b9050600080610e64836110fe565b9150915081610e8657604051630e991abd60e41b815260040160405180910390fd5b805485516101009091046001600160401b0316606090910181905260019082908290610eb3908290612557565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550846000015160400151816003016000828254610ef391906125b7565b9091555050600e810180546001808201835560009283526020928390208851805180518051600c909602909301805467ffffffffffffffff19166001600160401b039096169590951785558286015180518c979395879593948694938593610f629385019291909101906119f6565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190610f98908261276e565b505050506020838101518051805160048601805467ffffffffffffffff19166001600160401b03909216919091178155818401518051939550909391928492610fe89260058901929101906119f6565b505050602082810151805160028401805460ff191660ff90921691909117815591810151909190600384019061101e908261276e565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a82019061107b908261276e565b50505060209190910151600b909101805460ff19169115159190911790555050505050565b806000036110ac575050565b6103166110c1836001600160a01b0316611669565b6040805160248082018690528251808303909101815260449091019091526020810180516001600160e01b0316632a7edd8f60e21b1790526116b0565b6040516390ba52cf60e01b815260009081908190600490829073__$a0fe38a9a81205afccc10810b09a4d3f45$__906390ba52cf9061114090899086016124b3565b602060405180830381865af415801561115d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611181919061259e565b81526020808201929092526040908101600020815180830183526004820180546001600160401b03168252600583018054855181880281018801909652808652939750919490938582019390929183018282801561120857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116111ea575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e8989250611247916004016124b3565b602060405180830381865af4158015611264573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128891906126ac565b15925050915091565b600080806001600160a01b0384166112bc576040516370e4510960e01b815260040160405180910390fd5b60408051808201825282546001600160401b031681526001830180548351602082810282018101909552818152600094869381860193909183018282801561132d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161130f575b50505091909252505060405163aa5106cb60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263aa5106cb925061136e9189906004016124e3565b600060405180830381865af415801561138b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113b3919081019061250d565b90506113be816110fe565b935093505050915091565b804710156113ea5760405163356680b760e01b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611437576040519150601f19603f3d011682016040523d82523d6000602084013e61143c565b606091505b505090508061031657604051633204506f60e01b815260040160405180910390fd5b6000806114696116ca565b600985015486516001600160401b03909116606090910152600a85015460038201805492955090935091506000906114a29084906125b7565b90915550506004810180546001808201835560009283526020928390208651805180518051600c909602909301805467ffffffffffffffff19166001600160401b039096169590951785558286015180518a9793958795939486949385936115119385019291909101906119f6565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190611547908261276e565b505050506020838101518051805160048601805467ffffffffffffffff19166001600160401b039092169190911781558184015180519395509093919284926115979260058901929101906119f6565b505050602082810151805160028401805460ff191660ff9092169190911781559181015190919060038401906115cd908261276e565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a82019061162a908261276e565b50505060209190910151600b909101805460ff1916911515919091179055600982018054600191906000906104e49084906001600160401b0316612557565b600080600061167784611800565b915091508161168857509192915050565b6000806116948361183c565b91509150816116a7575093949350505050565b95945050505050565b60606116c1838360006118a66118bf565b90505b92915050565b6005546000908190819081906116ea9043906001600160401b0316611965565b6001600160401b038082166000908152600884016020908152604091829020825180840184528154909416845260018101805484518185028101850190955280855295985090965092938693858301939290919083018282801561177757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611759575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e89892506117b6916004016124b3565b602060405180830381865af41580156117d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f791906126ac565b15935050909192565b60008073ffffffffffffffffffffffff0000000000000000831660ff60981b810361183657600192506001600160401b03841691505b50915091565b600080826000526016600a602060006002607f60991b015afa9150600051806001600160a01b031691508060a01c61ffff16905061040a81146118825760009250600091505b5081158061189157503d601614155b156118a157506000928392509050565b915091565b604051630a12f52160e11b815260040160405180910390fd5b6060824710156118e95760405163cd78605960e01b81523060048201526024015b60405180910390fd5b600080866001600160a01b03168587604051611905919061282d565b60006040518083038185875af1925050503d8060008114611942576040519150601f19603f3d011682016040523d82523d6000602084013e611947565b606091505b509150915061195887838387611987565b925050505b949350505050565b6000816119728185612849565b61197d906001612557565b6116c1919061287d565b606083156119d55782516000036119ce57846001600160a01b03163b6000036119ce57604051639996b31560e01b81526001600160a01b03861660048201526024016118e0565b508161195d565b61195d83838151156119ea5781518083602001fd5b6118a68163ffffffff16565b828054828255906000526020600020908101928215611a4b579160200282015b82811115611a4b57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611a16565b50611a57929150611af4565b5090565b5080546000825590600052602060002090810190611a799190611af4565b50565b50805460008255600c0290600052602060002090810190611a799190611b09565b5080546000825560030290600052602060002090810190611a799190611bdb565b508054611aca906126ec565b6000825580601f10611ada575050565b601f016020900490600052602060002090810190611a7991905b5b80821115611a575760008155600101611af5565b80821115611a5757805467ffffffffffffffff191681556000818181818181611b356001830182611a5b565b505060028201805460ff191681556000611b526003850182611abe565b5050505060048201805467ffffffffffffffff1916815560008181611b7a6005870182611a5b565b505060028201805460ff191681556000611b976003850182611abe565b50506000600885018190556009850180546001600160601b0319169055611bc49250600a85019150611abe565b505050600b8101805460ff19169055600c01611b09565b80821115611a5757805467ffffffffffffffff1916815560008181611c036001830182611a5b565b50611c149050600283016000611a5b565b50600301611bdb565b6001600160401b0381168114611a7957600080fd5b600060208284031215611c4457600080fd5b8135611c4f81611c1d565b9392505050565b600060408284031215611c6857600080fd5b50919050565b60008060408385031215611c8157600080fd5b82356001600160401b0380821115611c9857600080fd5b611ca486838701611c56565b93506020850135915080821115611cba57600080fd5b50611cc785828601611c56565b9150509250929050565b600060208284031215611ce357600080fd5b5035919050565b600060208284031215611cfc57600080fd5b81356001600160401b03811115611d1257600080fd5b61195d84828501611c56565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715611d5657611d56611d1e565b60405290565b60405160c081016001600160401b0381118282101715611d5657611d56611d1e565b604051601f8201601f191681016001600160401b0381118282101715611da657611da6611d1e565b604052919050565b60006001600160401b03821115611dc757611dc7611d1e565b5060051b60200190565b6001600160a01b0381168114611a7957600080fd5b600082601f830112611df757600080fd5b81356020611e0c611e0783611dae565b611d7e565b82815260059290921b84018101918181019086841115611e2b57600080fd5b8286015b84811015611e4f578035611e4281611dd1565b8352918301918301611e2f565b509695505050505050565b60008060408385031215611e6d57600080fd5b82356001600160401b0380821115611e8457600080fd5b611e9086838701611de6565b9350602091508185013581811115611ea757600080fd5b85019050601f81018613611eba57600080fd5b8035611ec8611e0782611dae565b81815260059190911b82018301908381019088831115611ee757600080fd5b928401925b82841015611f0557833582529284019290840190611eec565b80955050505050509250929050565b634e487b7160e01b600052601160045260246000fd5b818103818111156116c4576116c4611f14565b60ff81168114611a7957600080fd5b60008135611f5981611f3d565b60ff168352602082013536839003601e19018112611f7657600080fd5b82016020810190356001600160401b03811115611f9257600080fd5b803603821315611fa157600080fd5b60406020860152806040860152808260608701376000606082870101526060601f19601f8301168601019250505092915050565b60808152600060c082018635611fea81611c1d565b6001600160401b03908116608085015260209088820135368a9003601e1901811261201457600080fd5b890182810190358281111561202857600080fd5b8060051b360382131561203a57600080fd5b604060a0880152938490529260e0860191506000905b8082101561208257843561206381611dd1565b6001600160a01b03168352938301939183019160019190910190612050565b50506001600160a01b0388168583015284810360408601526120a48188611f4c565b935050505082606083015295945050505050565b80516120c381611c1d565b919050565b6000604082840312156120da57600080fd5b6120e2611d34565b905081516120ef81611c1d565b81526020828101516001600160401b0381111561210b57600080fd5b8301601f8101851361211c57600080fd5b805161212a611e0782611dae565b81815260059190911b8201830190838101908783111561214957600080fd5b928401925b8284101561217057835161216181611dd1565b8252928401929084019061214e565b8085870152505050505092915050565b60005b8381101561219b578181015183820152602001612183565b50506000910152565b600082601f8301126121b557600080fd5b81516001600160401b038111156121ce576121ce611d1e565b6121e1601f8201601f1916602001611d7e565b8181528460208386010111156121f657600080fd5b61195d826020830160208701612180565b60006040828403121561221957600080fd5b612221611d34565b905081516001600160401b038082111561223a57600080fd5b612246858386016120c8565b8352602084015191508082111561225c57600080fd5b908301906040828603121561227057600080fd5b612278611d34565b825161228381611f3d565b815260208301518281111561229757600080fd5b6122a3878286016121a4565b60208301525080602085015250505092915050565b80516001600160e01b0319811681146120c357600080fd5b805180151581146120c357600080fd5b6000602082840312156122f257600080fd5b81516001600160401b038082111561230957600080fd5b908301906040828603121561231d57600080fd5b612325611d34565b82518281111561233457600080fd5b830160c0818803121561234657600080fd5b61234e611d5c565b81518481111561235d57600080fd5b61236989828501612207565b82525060208201518481111561237e57600080fd5b61238a89828501612207565b602083015250604082015160408201526123a6606083016120b8565b60608201526123b7608083016122b8565b608082015260a0820151848111156123ce57600080fd5b6123da898285016121a4565b60a0830152508252506123ef602084016122d0565b602082015295945050505050565b60006040823603121561240f57600080fd5b612417611d34565b823561242281611c1d565b815260208301356001600160401b0381111561243d57600080fd5b61244936828601611de6565b60208301525092915050565b6000604083016001600160401b0383511684526020808401516040828701528281518085526060880191508383019450600092505b80831015611e4f5784516001600160a01b0316825293830193600192909201919083019061248a565b6020815260006116c16020830184612455565b6000602082840312156124d857600080fd5b8151611c4f81611dd1565b6040815260006124f66040830185612455565b905060018060a01b03831660208301529392505050565b60006020828403121561251f57600080fd5b81516001600160401b0381111561253557600080fd5b61195d848285016120c8565b634e487b7160e01b600052602160045260246000fd5b6001600160401b0381811683821601908082111561257757612577611f14565b5092915050565b6001600160401b0382811682821603908082111561257757612577611f14565b6000602082840312156125b057600080fd5b5051919050565b808201808211156116c4576116c4611f14565b6000604083016001600160401b0383541684526001808401602060408188015283825480865260608901915083600052826000209550600093505b8084101561262b5785546001600160a01b03168252948401949284019290820190612605565b50979650505050505050565b60808152600061264a60808301876125ca565b6001600160a01b0386166020840152828103604084015261266b8186611f4c565b91505082606083015295945050505050565b60006001820161268f5761268f611f14565b5060010190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156126be57600080fd5b6116c1826122d0565b6040815260006126da6040830185612455565b82810360208401526116a781856125ca565b600181811c9082168061270057607f821691505b602082108103611c6857634e487b7160e01b600052602260045260246000fd5b601f82111561031657600081815260208120601f850160051c810160208610156127475750805b601f850160051c820191505b8181101561276657828155600101612753565b505050505050565b81516001600160401b0381111561278757612787611d1e565b61279b8161279584546126ec565b84612720565b602080601f8311600181146127d057600084156127b85750858301515b600019600386901b1c1916600185901b178555612766565b600085815260208120601f198616915b828110156127ff578886015182559484019460019091019084016127e0565b508582101561281d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000825161283f818460208701612180565b9190910192915050565b60006001600160401b038084168061287157634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b6001600160401b038181168382160280821691908281146128a0576128a0611f14565b50509291505056fea2646970667358221220149701e5bce4b12b7b6d6beb34f2e2e2c898c66ffd445c22db65e79fb213e5a664736f6c63430008130033", + "sourceMap": "991:6627:39:-:0;;;;;;;;;;;;;;;;;;;", + "linkReferences": { + "src/lib/AccountHelper.sol": { + "AccountHelper": [ + { + "start": 3261, + "length": 20 + }, + { + "start": 3407, + "length": 20 + } + ] + }, + "src/lib/CrossMsgHelper.sol": { + "CrossMsgHelper": [ + { + "start": 528, + "length": 20 + }, + { + "start": 2662, + "length": 20 + } + ] + }, + "src/lib/SubnetIDHelper.sol": { + "SubnetIDHelper": [ + { + "start": 710, + "length": 20 + }, + { + "start": 1000, + "length": 20 + }, + { + "start": 1614, + "length": 20 + }, + { + "start": 2351, + "length": 20 + }, + { + "start": 3592, + "length": 20 + }, + { + "start": 4409, + "length": 20 + }, + { + "start": 4672, + "length": 20 + }, + { + "start": 4965, + "length": 20 + }, + { + "start": 6063, + "length": 20 + } + ] + } + } + }, + "deployedBytecode": { + "object": "0x6080604052600436106100865760003560e01c806345f544851161005957806345f54485146100dd5780635a627dbc146100fd5780636b2c1eef14610105578063f75bc55714610118578063f8703bb81461013857600080fd5b806313f353881461008b57806318f44b70146100ad5780631aa3a008146100c057806341c0e1b5146100c8575b600080fd5b34801561009757600080fd5b506100ab6100a6366004611c32565b610158565b005b6100ab6100bb366004611c6e565b6101dc565b6100ab61031b565b3480156100d457600080fd5b506100ab61050d565b3480156100e957600080fd5b506100ab6100f8366004611cd1565b61078f565b6100ab61098f565b6100ab610113366004611cea565b610a32565b34801561012457600080fd5b506100ab610133366004611e5a565b610ae4565b34801561014457600080fd5b506100ab610153366004611cd1565b610bf0565b610160610c88565b60105460ff16156101835760405162dc149f60e41b815260040160405180910390fd5b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27080546fffffffffffffffff00000000000000001916600160401b6001600160401b03841602179055506010805460ff19166001179055565b6101e4610d1a565b6101ec610daa565b600073__$33b79814e84bf6cf5e47244090b19ce5f8$__6399aa0eb48433856000600a01543461021c9190611f2a565b6040518563ffffffff1660e01b815260040161023b9493929190611fd5565b600060405180830381865af4158015610258573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261028091908101906122e0565b905061028b81610dcd565b610316610297846123fd565b604051632cff562160e11b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__916359feac42916102cd91906004016124b3565b602060405180830381865af41580156102ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030e91906124c6565b600a546110a0565b505050565b60035434101561033e57604051631036b5ad60e31b815260040160405180910390fd5b604080518082018252600080546001600160401b031682526001805484516020828102820181019096528181529294859381860193909290918301828280156103b057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610392575b50505091909252505060405163aa5106cb60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263aa5106cb92506103f19133906004016124e3565b600060405180830381865af415801561040e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610436919081019061250d565b9050600080610444836110fe565b91509150811561046757604051631b538cdf60e11b815260040160405180910390fd5b825160048201805467ffffffffffffffff19166001600160401b0390921691909117815560208085015180518693926104a79260058701929101906119f6565b505034600183810191909155825460ff191681178355436002808501919091558054919250906000906104e49084906001600160401b0316612557565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550505050565b60008061051933611291565b915091508161053b57604051630e991abd60e41b815260040160405180910390fd5b60038101541561055e57604051637c67c70160e11b815260040160405180910390fd5b600180820154600280549192916000906105829084906001600160401b031661257e565b82546101009290920a6001600160401b03818102199093169183160217909155604080518082018252600486810180549094168252600587018054845160208083028201810190965281815292965060009593948086019392919083018282801561061657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116105f8575b5050509190925250506040516390ba52cf60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__926390ba52cf9250610655916004016124b3565b602060405180830381865af4158015610672573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610696919061259e565b815260208101919091526040016000908120805470ffffffffffffffffffffffffffffffffff1916815560018101829055600281018290556003810182905560048101805467ffffffffffffffff19168155909190816106f96005850182611a5b565b505060068201805467ffffffffffffffff191681556000818161071f6007870182611a5b565b505060028201805467ffffffffffffffff1916905560006003830181905561074b906004840190611a7c565b610759600583016000611a9d565b60068201600090556007820160006107719190611abe565b506107829050600e83016000611a7c565b50610316905033826113c9565b7f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600958054600019016107d3576040516329f745a760e01b815260040160405180910390fd5b6001815560008290036107f95760405163c79cad7b60e01b815260040160405180910390fd5b60008061080533611291565b915091508161082757604051630e991abd60e41b815260040160405180910390fd5b838160010154101561084c576040516379b33e7960e01b815260040160405180910390fd5b838160010160008282546108609190611f2a565b90915550506003546001820154101561087f57805460ff191660021781555b6040805180820182526004830180546001600160401b031682526005840180548451602082810282018101909652818152610986958a9594938186019390918301828280156108f757602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116108d9575b505050919092525050604051632cff562160e11b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__926359feac429250610936916004016124b3565b602060405180830381865af4158015610953573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097791906124c6565b6001600160a01b0316906113c9565b50506000905550565b600034116109b057604051631036b5ad60e31b815260040160405180910390fd5b6000806109bc33611291565b91509150816109de57604051630e991abd60e41b815260040160405180910390fd5b348160010160008282546109f291906125b7565b9091555060029050815460ff166005811115610a1057610a10612541565b03610a2e57600354600182015410610a2e57805460ff191660011781555b5050565b610a3a610d1a565b610a42610daa565b600073__$33b79814e84bf6cf5e47244090b19ce5f8$__631860845e6000800133856000600a015434610a759190611f2a565b6040518563ffffffff1660e01b8152600401610a949493929190612637565b600060405180830381865af4158015610ab1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ad991908101906122e0565b9050610a2e8161145e565b610aec610c88565b8051825114610b0e5760405163465f0a7d60e01b815260040160405180910390fd5b600d8054600090610b1e9061267d565b909155508151600090815b81811015610be7576000858281518110610b4557610b45612696565b6020026020010151905060006001600160a01b0316816001600160a01b031614610bde576000858381518110610b7d57610b7d612696565b6020026020010151905080600003610ba85760405163389b457d60e01b815260040160405180910390fd5b600d546000908152600c602090815260408083206001600160a01b03861684529091529020819055610bda81866125b7565b9450505b50600101610b29565b5050600b555050565b7f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095805460001901610c34576040516329f745a760e01b815260040160405180910390fd5b600181556000829003610c5a5760405163c79cad7b60e01b815260040160405180910390fd5b600080610c6633611291565b915091508161087f57604051630e991abd60e41b815260040160405180910390fd5b604051635d3f8a6960e01b815233600482015273__$e800e3908cdbb6b1b5bd452383a17b18f7$__90635d3f8a6990602401602060405180830381865af4158015610cd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfb91906126ac565b610d185760405163f0d97f3b60e01b815260040160405180910390fd5b565b604051630972932760e21b815233600482015273__$e800e3908cdbb6b1b5bd452383a17b18f7$__906325ca4c9c90602401602060405180830381865af4158015610d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8d91906126ac565b610d1857604051630a23da2b60e31b815260040160405180910390fd5b600a54341015610d18576040516334472ad760e11b815260040160405180910390fd5b8051602001515160405163089032d560e01b8152600091829173__$a0fe38a9a81205afccc10810b09a4d3f45$__9163089032d591610e11919085906004016126c7565b600060405180830381865af4158015610e2e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e56919081019061250d565b9050600080610e64836110fe565b9150915081610e8657604051630e991abd60e41b815260040160405180910390fd5b805485516101009091046001600160401b0316606090910181905260019082908290610eb3908290612557565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550846000015160400151816003016000828254610ef391906125b7565b9091555050600e810180546001808201835560009283526020928390208851805180518051600c909602909301805467ffffffffffffffff19166001600160401b039096169590951785558286015180518c979395879593948694938593610f629385019291909101906119f6565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190610f98908261276e565b505050506020838101518051805160048601805467ffffffffffffffff19166001600160401b03909216919091178155818401518051939550909391928492610fe89260058901929101906119f6565b505050602082810151805160028401805460ff191660ff90921691909117815591810151909190600384019061101e908261276e565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a82019061107b908261276e565b50505060209190910151600b909101805460ff19169115159190911790555050505050565b806000036110ac575050565b6103166110c1836001600160a01b0316611669565b6040805160248082018690528251808303909101815260449091019091526020810180516001600160e01b0316632a7edd8f60e21b1790526116b0565b6040516390ba52cf60e01b815260009081908190600490829073__$a0fe38a9a81205afccc10810b09a4d3f45$__906390ba52cf9061114090899086016124b3565b602060405180830381865af415801561115d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611181919061259e565b81526020808201929092526040908101600020815180830183526004820180546001600160401b03168252600583018054855181880281018801909652808652939750919490938582019390929183018282801561120857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116111ea575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e8989250611247916004016124b3565b602060405180830381865af4158015611264573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128891906126ac565b15925050915091565b600080806001600160a01b0384166112bc576040516370e4510960e01b815260040160405180910390fd5b60408051808201825282546001600160401b031681526001830180548351602082810282018101909552818152600094869381860193909183018282801561132d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161130f575b50505091909252505060405163aa5106cb60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263aa5106cb925061136e9189906004016124e3565b600060405180830381865af415801561138b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113b3919081019061250d565b90506113be816110fe565b935093505050915091565b804710156113ea5760405163356680b760e01b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611437576040519150601f19603f3d011682016040523d82523d6000602084013e61143c565b606091505b505090508061031657604051633204506f60e01b815260040160405180910390fd5b6000806114696116ca565b600985015486516001600160401b03909116606090910152600a85015460038201805492955090935091506000906114a29084906125b7565b90915550506004810180546001808201835560009283526020928390208651805180518051600c909602909301805467ffffffffffffffff19166001600160401b039096169590951785558286015180518a9793958795939486949385936115119385019291909101906119f6565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190611547908261276e565b505050506020838101518051805160048601805467ffffffffffffffff19166001600160401b039092169190911781558184015180519395509093919284926115979260058901929101906119f6565b505050602082810151805160028401805460ff191660ff9092169190911781559181015190919060038401906115cd908261276e565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a82019061162a908261276e565b50505060209190910151600b909101805460ff1916911515919091179055600982018054600191906000906104e49084906001600160401b0316612557565b600080600061167784611800565b915091508161168857509192915050565b6000806116948361183c565b91509150816116a7575093949350505050565b95945050505050565b60606116c1838360006118a66118bf565b90505b92915050565b6005546000908190819081906116ea9043906001600160401b0316611965565b6001600160401b038082166000908152600884016020908152604091829020825180840184528154909416845260018101805484518185028101850190955280855295985090965092938693858301939290919083018282801561177757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611759575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e89892506117b6916004016124b3565b602060405180830381865af41580156117d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f791906126ac565b15935050909192565b60008073ffffffffffffffffffffffff0000000000000000831660ff60981b810361183657600192506001600160401b03841691505b50915091565b600080826000526016600a602060006002607f60991b015afa9150600051806001600160a01b031691508060a01c61ffff16905061040a81146118825760009250600091505b5081158061189157503d601614155b156118a157506000928392509050565b915091565b604051630a12f52160e11b815260040160405180910390fd5b6060824710156118e95760405163cd78605960e01b81523060048201526024015b60405180910390fd5b600080866001600160a01b03168587604051611905919061282d565b60006040518083038185875af1925050503d8060008114611942576040519150601f19603f3d011682016040523d82523d6000602084013e611947565b606091505b509150915061195887838387611987565b925050505b949350505050565b6000816119728185612849565b61197d906001612557565b6116c1919061287d565b606083156119d55782516000036119ce57846001600160a01b03163b6000036119ce57604051639996b31560e01b81526001600160a01b03861660048201526024016118e0565b508161195d565b61195d83838151156119ea5781518083602001fd5b6118a68163ffffffff16565b828054828255906000526020600020908101928215611a4b579160200282015b82811115611a4b57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611a16565b50611a57929150611af4565b5090565b5080546000825590600052602060002090810190611a799190611af4565b50565b50805460008255600c0290600052602060002090810190611a799190611b09565b5080546000825560030290600052602060002090810190611a799190611bdb565b508054611aca906126ec565b6000825580601f10611ada575050565b601f016020900490600052602060002090810190611a7991905b5b80821115611a575760008155600101611af5565b80821115611a5757805467ffffffffffffffff191681556000818181818181611b356001830182611a5b565b505060028201805460ff191681556000611b526003850182611abe565b5050505060048201805467ffffffffffffffff1916815560008181611b7a6005870182611a5b565b505060028201805460ff191681556000611b976003850182611abe565b50506000600885018190556009850180546001600160601b0319169055611bc49250600a85019150611abe565b505050600b8101805460ff19169055600c01611b09565b80821115611a5757805467ffffffffffffffff1916815560008181611c036001830182611a5b565b50611c149050600283016000611a5b565b50600301611bdb565b6001600160401b0381168114611a7957600080fd5b600060208284031215611c4457600080fd5b8135611c4f81611c1d565b9392505050565b600060408284031215611c6857600080fd5b50919050565b60008060408385031215611c8157600080fd5b82356001600160401b0380821115611c9857600080fd5b611ca486838701611c56565b93506020850135915080821115611cba57600080fd5b50611cc785828601611c56565b9150509250929050565b600060208284031215611ce357600080fd5b5035919050565b600060208284031215611cfc57600080fd5b81356001600160401b03811115611d1257600080fd5b61195d84828501611c56565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715611d5657611d56611d1e565b60405290565b60405160c081016001600160401b0381118282101715611d5657611d56611d1e565b604051601f8201601f191681016001600160401b0381118282101715611da657611da6611d1e565b604052919050565b60006001600160401b03821115611dc757611dc7611d1e565b5060051b60200190565b6001600160a01b0381168114611a7957600080fd5b600082601f830112611df757600080fd5b81356020611e0c611e0783611dae565b611d7e565b82815260059290921b84018101918181019086841115611e2b57600080fd5b8286015b84811015611e4f578035611e4281611dd1565b8352918301918301611e2f565b509695505050505050565b60008060408385031215611e6d57600080fd5b82356001600160401b0380821115611e8457600080fd5b611e9086838701611de6565b9350602091508185013581811115611ea757600080fd5b85019050601f81018613611eba57600080fd5b8035611ec8611e0782611dae565b81815260059190911b82018301908381019088831115611ee757600080fd5b928401925b82841015611f0557833582529284019290840190611eec565b80955050505050509250929050565b634e487b7160e01b600052601160045260246000fd5b818103818111156116c4576116c4611f14565b60ff81168114611a7957600080fd5b60008135611f5981611f3d565b60ff168352602082013536839003601e19018112611f7657600080fd5b82016020810190356001600160401b03811115611f9257600080fd5b803603821315611fa157600080fd5b60406020860152806040860152808260608701376000606082870101526060601f19601f8301168601019250505092915050565b60808152600060c082018635611fea81611c1d565b6001600160401b03908116608085015260209088820135368a9003601e1901811261201457600080fd5b890182810190358281111561202857600080fd5b8060051b360382131561203a57600080fd5b604060a0880152938490529260e0860191506000905b8082101561208257843561206381611dd1565b6001600160a01b03168352938301939183019160019190910190612050565b50506001600160a01b0388168583015284810360408601526120a48188611f4c565b935050505082606083015295945050505050565b80516120c381611c1d565b919050565b6000604082840312156120da57600080fd5b6120e2611d34565b905081516120ef81611c1d565b81526020828101516001600160401b0381111561210b57600080fd5b8301601f8101851361211c57600080fd5b805161212a611e0782611dae565b81815260059190911b8201830190838101908783111561214957600080fd5b928401925b8284101561217057835161216181611dd1565b8252928401929084019061214e565b8085870152505050505092915050565b60005b8381101561219b578181015183820152602001612183565b50506000910152565b600082601f8301126121b557600080fd5b81516001600160401b038111156121ce576121ce611d1e565b6121e1601f8201601f1916602001611d7e565b8181528460208386010111156121f657600080fd5b61195d826020830160208701612180565b60006040828403121561221957600080fd5b612221611d34565b905081516001600160401b038082111561223a57600080fd5b612246858386016120c8565b8352602084015191508082111561225c57600080fd5b908301906040828603121561227057600080fd5b612278611d34565b825161228381611f3d565b815260208301518281111561229757600080fd5b6122a3878286016121a4565b60208301525080602085015250505092915050565b80516001600160e01b0319811681146120c357600080fd5b805180151581146120c357600080fd5b6000602082840312156122f257600080fd5b81516001600160401b038082111561230957600080fd5b908301906040828603121561231d57600080fd5b612325611d34565b82518281111561233457600080fd5b830160c0818803121561234657600080fd5b61234e611d5c565b81518481111561235d57600080fd5b61236989828501612207565b82525060208201518481111561237e57600080fd5b61238a89828501612207565b602083015250604082015160408201526123a6606083016120b8565b60608201526123b7608083016122b8565b608082015260a0820151848111156123ce57600080fd5b6123da898285016121a4565b60a0830152508252506123ef602084016122d0565b602082015295945050505050565b60006040823603121561240f57600080fd5b612417611d34565b823561242281611c1d565b815260208301356001600160401b0381111561243d57600080fd5b61244936828601611de6565b60208301525092915050565b6000604083016001600160401b0383511684526020808401516040828701528281518085526060880191508383019450600092505b80831015611e4f5784516001600160a01b0316825293830193600192909201919083019061248a565b6020815260006116c16020830184612455565b6000602082840312156124d857600080fd5b8151611c4f81611dd1565b6040815260006124f66040830185612455565b905060018060a01b03831660208301529392505050565b60006020828403121561251f57600080fd5b81516001600160401b0381111561253557600080fd5b61195d848285016120c8565b634e487b7160e01b600052602160045260246000fd5b6001600160401b0381811683821601908082111561257757612577611f14565b5092915050565b6001600160401b0382811682821603908082111561257757612577611f14565b6000602082840312156125b057600080fd5b5051919050565b808201808211156116c4576116c4611f14565b6000604083016001600160401b0383541684526001808401602060408188015283825480865260608901915083600052826000209550600093505b8084101561262b5785546001600160a01b03168252948401949284019290820190612605565b50979650505050505050565b60808152600061264a60808301876125ca565b6001600160a01b0386166020840152828103604084015261266b8186611f4c565b91505082606083015295945050505050565b60006001820161268f5761268f611f14565b5060010190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156126be57600080fd5b6116c1826122d0565b6040815260006126da6040830185612455565b82810360208401526116a781856125ca565b600181811c9082168061270057607f821691505b602082108103611c6857634e487b7160e01b600052602260045260246000fd5b601f82111561031657600081815260208120601f850160051c810160208610156127475750805b601f850160051c820191505b8181101561276657828155600101612753565b505050505050565b81516001600160401b0381111561278757612787611d1e565b61279b8161279584546126ec565b84612720565b602080601f8311600181146127d057600084156127b85750858301515b600019600386901b1c1916600185901b178555612766565b600085815260208120601f198616915b828110156127ff578886015182559484019460019091019084016127e0565b508582101561281d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000825161283f818460208701612180565b9190910192915050565b60006001600160401b038084168061287157634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b6001600160401b038181168382160280821691908281146128a0576128a0611f14565b50509291505056fea2646970667358221220149701e5bce4b12b7b6d6beb34f2e2e2c898c66ffd445c22db65e79fb213e5a664736f6c63430008130033", + "sourceMap": "991:6627:39:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1307:240;;;;;;;;;;-1:-1:-1;1307:240:39;;;;;:::i;:::-;;:::i;:::-;;4592:387;;;;;;:::i;:::-;;:::i;1658:551::-;;;:::i;3873:454::-;;;;;;;;;;;;;:::i;2833:591::-;;;;;;;;;;-1:-1:-1;2833:591:39;;;;;:::i;:::-;;:::i;2280:489::-;;;:::i;5136:318::-;;;;;;:::i;:::-;;:::i;5644:1972::-;;;;;;;;;;-1:-1:-1;5644:1972:39;;;;;:::i;:::-;;:::i;3430:369::-;;;;;;;;;;-1:-1:-1;3430:369:39;;;;;:::i;:::-;;:::i;1307:240::-;4696:18:55;:16;:18::i;:::-;1393:13:39::1;::::0;::::1;;1389:71;;;1429:20;;-1:-1:-1::0;;;1429:20:39::1;;;;;;;;;;;1389:71;1438:42:58::0;2861:29;;-1:-1:-1;;2861:29:58;-1:-1:-1;;;;;;;;2861:29:58;;;;;;-1:-1:-1;1520:13:39::1;:20:::0;;-1:-1:-1;;1520:20:39::1;1536:4;1520:20;::::0;;1307:240::o;4592:387::-;4620:15:55;:13;:15::i;:::-;4766:9:::1;:7;:9::i;:::-;4705:24:39::2;4732:14;:28;4761:8;4771:10;4783:2;4799:1;:13;;;4787:9;:25;;;;:::i;:::-;4732:81;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;::::0;;::::2;-1:-1:-1::0;;4732:81:39::2;::::0;::::2;;::::0;::::2;::::0;;;::::2;::::0;::::2;:::i;:::-;4705:108;;4860:37;4888:8;4860:27;:37::i;:::-;4908:64;4937:17;:8:::0;:17:::2;:::i;:::-;:19;::::0;-1:-1:-1;;;4937:19:39;;:17:::2;::::0;::::2;::::0;:19:::2;::::0;:17;:19:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4958:13;::::0;4908:28:::2;:64::i;:::-;4695:284;4592:387:::0;;:::o;1658:551::-;1721:10;;1709:9;:22;1705:76;;;1754:16;;-1:-1:-1;;;1754:16:39;;;;;;;;;;;1705:76;1818:28;;;;;;;;1791:24;1818:28;;-1:-1:-1;;;;;1818:28:39;;;;;;;;;;;;;;;;;;;;;;1791:24;;;;1818:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1818:28:39;;;;;;;;;;;;;;;;-1:-1:-1;;;1818:28:39;;;;-1:-1:-1;;1818:40:39;;-1:-1:-1;;;1818:40:39;;:28;;;;-1:-1:-1;1818:40:39;;1847:10;;1818:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1818:40:39;;;;;;;;;;;;:::i;:::-;1791:67;;1870:15;1887:21;1912:30;1933:8;1912:20;:30::i;:::-;1869:73;;;;1957:10;1953:73;;;1990:25;;-1:-1:-1;;;1990:25:39;;;;;;;;;;;1953:73;2036:20;;:9;;;:20;;-1:-1:-1;;2036:20:39;-1:-1:-1;;;;;2036:20:39;;;;;;;;;;;;;;;;;;:9;:20;;;;;;;;;;:::i;:::-;-1:-1:-1;;2081:9:39;2066:12;;;;:24;;;;2100:29;;-1:-1:-1;;2100:29:39;;;;;2161:12;2139:19;;;;:34;;;;2183:19;;2066:12;;-1:-1:-1;2139:19:39;-1:-1:-1;;2183:19:39;;2066:12;;-1:-1:-1;;;;;2183:19:39;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;2183:19:39;;;;;-1:-1:-1;;;;;2183:19:39;;;;;;1695:514;;;1658:551::o;3873:454::-;3909:15;3926:21;3951:32;3972:10;3951:20;:32::i;:::-;3908:75;;;;3999:10;3994:70;;4032:21;;-1:-1:-1;;;4032:21:39;;;;;;;;;;;3994:70;4077:17;;;;:21;4073:85;;4121:26;;-1:-1:-1;;;4121:26:39;;;;;;;;;;;4073:85;4184:12;;;;;4207:14;:19;;4184:12;;;4168:13;;4207:19;;4184:12;;-1:-1:-1;;;;;4207:19:39;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;4207:19:39;;;;;;;;;;;;;;;4254:16;;;;;;;;4244:9;4254;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;4244:9;;-1:-1:-1;;;4254:16:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4254:16:39;;;;;;;;;;;;;;;;-1:-1:-1;;;4254:16:39;;;;-1:-1:-1;;4254:18:39;;-1:-1:-1;;;4254:18:39;;:16;;;;-1:-1:-1;4254:18:39;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4244:29;;;;;;;;;;;-1:-1:-1;4244:29:39;;;4237:36;;-1:-1:-1;;4237:36:39;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4237:36:39;;;4244:29;;-1:-1:-1;;4237:36:39;;;;-1:-1:-1;4237:36:39;:::i;:::-;-1:-1:-1;;4237:36:39;;;;;-1:-1:-1;;4237:36:39;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;4237:36:39;;;;;-1:-1:-1;;4237:36:39;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;4237:36:39;;-1:-1:-1;4237:36:39;;;;;:::i;:::-;-1:-1:-1;4284:36:39;;-1:-1:-1;4292:10:39;4314:5;4284:29;:36::i;2833:591::-;240:48:56;575:8;;-1:-1:-1;;575:20:56;571:50;;604:17;;-1:-1:-1;;;604:17:56;;;;;;;;;;;571:50;470:1;631:19;;:8;2907:11:39;;;2903:68:::1;;2941:19;;-1:-1:-1::0;;;2941:19:39::1;;;;;;;;;;;2903:68;2982:15;2999:21:::0;3024:32:::1;3045:10;3024:20;:32::i;:::-;2981:75;;;;3072:10;3067:70;;3105:21;;-1:-1:-1::0;;;3105:21:39::1;;;;;;;;;;;3067:70;3165:6;3150;:12;;;:21;3146:84;;;3194:25;;-1:-1:-1::0;;;3194:25:39::1;;;;;;;;;;;3146:84;3256:6;3240;:12;;;:22;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;3292:10:39::1;::::0;3277:12:::1;::::0;::::1;::::0;:25:::1;3273:87;;;3318:31:::0;;-1:-1:-1;;3318:31:39::1;3334:15;3318:31;::::0;;3273:87:::1;3378:18;::::0;;;;::::1;::::0;;:9:::1;::::0;::::1;:18:::0;;-1:-1:-1;;;;;3378:18:39::1;::::0;;;;;;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;3370:47:::1;::::0;3410:6;;3378:18;:9;:18;;::::1;::::0;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;3378:18:39::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;;;3378:18:39;;;;-1:-1:-1;;3378:20:39::1;::::0;-1:-1:-1;;;3378:20:39;;:18:::1;::::0;::::1;::::0;-1:-1:-1;3378:20:39::1;::::0;::::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;3370:39:39::1;::::0;::::1;:47::i;:::-;-1:-1:-1::0;;427:1:56;671:23;;-1:-1:-1;2833:591:39:o;2280:489::-;2344:1;2331:9;:14;2327:68;;2368:16;;-1:-1:-1;;;2368:16:39;;;;;;;;;;;2327:68;2406:15;2423:21;2448:32;2469:10;2448:20;:32::i;:::-;2405:75;;;;2496:10;2491:70;;2529:21;;-1:-1:-1;;;2529:21:39;;;;;;;;;;;2491:70;2587:9;2571:6;:12;;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;2628:15:39;;-1:-1:-1;2611:13:39;;;;:32;;;;;;;;:::i;:::-;;2607:156;;2679:10;;2663:12;;;;:26;2659:94;;2709:29;;-1:-1:-1;;2709:29:39;2725:13;2709:29;;;2659:94;2317:452;;2280:489::o;5136:318::-;4620:15:55;:13;:15::i;:::-;4766:9:::1;:7;:9::i;:::-;5224:24:39::2;5251:14;:31;5296:1;:13:::0;::::2;5323:10;5347:2;5375:1;:13;;;5363:9;:25;;;;:::i;:::-;5251:147;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;::::0;;::::2;-1:-1:-1::0;;5251:147:39::2;::::0;::::2;;::::0;::::2;::::0;;;::::2;::::0;::::2;:::i;:::-;5224:174;;5409:38;5438:8;5409:28;:38::i;5644:1972::-:0;4696:18:55;:16;:18::i;:::-;5782:7:39::1;:14;5761:10;:17;:35;5757:109;;5819:36;;-1:-1:-1::0;;;5819:36:39::1;;;;;;;;;;;5757:109;5926:16;5924:18:::0;;5926:1:::1;::::0;5924:18:::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;6063:17:39;;5953:29:::1;::::0;;6090:1473:::1;6140:16;6123:14;:33;6090:1473;;;6174:24;6201:10;6212:14;6201:26;;;;;;;;:::i;:::-;;;;;;;6174:53;;6273:1;-1:-1:-1::0;;;;;6245:30:39::1;:16;-1:-1:-1::0;;;;;6245:30:39::1;;6241:379;;6295:23;6321:7;6329:14;6321:23;;;;;;;;:::i;:::-;;;;;;;6295:49;;6367:15;6386:1;6367:20:::0;6363:97:::1;;6418:23;;-1:-1:-1::0;;;6418:23:39::1;;;;;;;;;;;6363:97;6493:16;::::0;6478:1:::1;:32:::0;;;:14:::1;:32;::::0;;;;;;;-1:-1:-1;;;;;6478:50:39;::::1;::::0;;;;;;;:68;;;6565:40:::1;6531:15:::0;6565:40;::::1;:::i;:::-;;;6277:343;6241:379;-1:-1:-1::0;7522:16:39::1;;6090:1473;;;-1:-1:-1::0;;7572:13:39::1;:37:::0;-1:-1:-1;;5644:1972:39:o;3430:369::-;240:48:56;575:8;;-1:-1:-1;;575:20:56;571:50;;604:17;;-1:-1:-1;;;604:17:56;;;;;;;;;;;571:50;470:1;631:19;;:8;3506:11:39;;;3502:68:::1;;3540:19;;-1:-1:-1::0;;;3540:19:39::1;;;;;;;;;;;3502:68;3581:15;3598:21:::0;3623:32:::1;3644:10;3623:20;:32::i;:::-;3580:75;;;;3670:10;3665:70;;3703:21;;-1:-1:-1::0;;;3703:21:39::1;;;;;;;;;;;4442:138:55::0;4498:26;;-1:-1:-1;;;4498:26:55;;:10;:26;;;18186:51:83;4498:24:55;;;;18159:18:83;;4498:26:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4493:81;;4547:16;;-1:-1:-1;;;4547:16:55;;;;;;;;;;;4493:81;4442:138::o;4170:135::-;4223:22;;-1:-1:-1;;;4223:22:55;;:10;:22;;;18186:51:83;4223:20:55;;;;18159:18:83;;4223:22:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4218:81;;4268:20;;-1:-1:-1;;;4268:20:55;;;;;;;;;;;4311:125;4369:13;;4357:9;:25;4353:77;;;4405:14;;-1:-1:-1;;;4405:14:55;;;;;;;;;;;3353:588:54;3532:20;;:23;;;:32;:52;;-1:-1:-1;;;3532:52:54;;3428:29;;;;3532:37;;;;:52;;:32;3428:29;;3532:52;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3532:52:54;;;;;;;;;;;;:::i;:::-;3505:79;;3596:15;3613:21;3638:19;3648:8;3638:9;:19::i;:::-;3595:62;;;;3673:10;3668:70;;3706:21;;-1:-1:-1;;;3706:21:54;;;;;;;;;;;3668:70;3777:19;;3748:20;;3777:19;;;;-1:-1:-1;;;;;3777:19:54;3748:26;;;;:48;;;3777:19;;;;;;3806:24;;3777:19;;3806:24;:::i;:::-;;;;;;;;-1:-1:-1;;;;;3806:24:54;;;;;-1:-1:-1;;;;;3806:24:54;;;;;;3861:12;:20;;;:26;;;3840:6;:17;;;:47;;;;;;;:::i;:::-;;;;-1:-1:-1;;3897:18:54;;;:37;;;;;;;;-1:-1:-1;3897:37:54;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3897:37:54;-1:-1:-1;;;;;3897:37:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;3897:37:54;;;;;;;;;;;;-1:-1:-1;;3897:37:54;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;3897:37:54;;;;;;;;;;;;;;-1:-1:-1;;3897:37:54;-1:-1:-1;;;;;3897:37:54;;;;;;;;;;;;;;;;;-1:-1:-1;3897:37:54;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;3897:37:54;;;;;;;;;;;;-1:-1:-1;;3897:37:54;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;3897:37:54;;;;;;;;-1:-1:-1;3897:37:54;;;;;;;;;;;;;;;-1:-1:-1;;;3897:37:54;-1:-1:-1;;;;;;3897:37:54;;;-1:-1:-1;;;;;3897:37:54;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;3897:37:54;;;;;;;;;;;;-1:-1:-1;;3897:37:54;;;;;;;;;;-1:-1:-1;;;;;3353:588:54:o;4748:287::-;4826:6;4836:1;4826:11;4822:48;;4748:287;;:::o;4822:48::-;4930:98;4951:14;:2;-1:-1:-1;;;;;4951:12:54;;:14::i;:::-;4967:60;;;;;;;21558:25:83;;;4967:60:54;;;;;;;;;;21531:18:83;;;;4967:60:54;;;;;;;;-1:-1:-1;;;;;4967:60:54;-1:-1:-1;;;4967:60:54;;;4930:20;:98::i;5818:272::-;6027:17;;-1:-1:-1;;;6027:17:54;;5886:10;;;;;;6017:9;;5886:10;;6027:15;;;;:17;;:8;;:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6017:28;;;;;;;;;;;;;;-1:-1:-1;6017:28:54;6064:17;;;;;;;:9;;;:17;;-1:-1:-1;;;;;6064:17:54;;;;;;;;;;;;;;;;;;;;;;;6017:28;;-1:-1:-1;6064:17:54;;:9;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6064:17:54;;;;;;;;;;;;;;;;-1:-1:-1;;;6064:17:54;;;;-1:-1:-1;;6064:19:54;;-1:-1:-1;;;6064:19:54;;:17;;;;-1:-1:-1;6064:19:54;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6063:20;6055:28;;5921:169;5818:272;;;:::o;5250:372::-;5307:10;;;-1:-1:-1;;;;;5433:19:54;;5429:78;;5475:21;;-1:-1:-1;;;5475:21:54;;;;;;;;;;;5429:78;5543:28;;;;;;;;;;-1:-1:-1;;;;;5543:28:54;;;;;;;;;;;;;;;;;;;;;;;;5516:24;;5543:1;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5543:28:54;;;;;;;;;;;;;;;;-1:-1:-1;;;5543:28:54;;;;-1:-1:-1;;5543:35:54;;-1:-1:-1;;;5543:35:54;;:28;;;;-1:-1:-1;5543:35:54;;5572:5;;5543:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5543:35:54;;;;;;;;;;;;:::i;:::-;5516:62;;5596:19;5606:8;5596:9;:19::i;:::-;5589:26;;;;;;5250:372;;;:::o;13246:258:0:-;13354:7;13330:21;:31;13326:63;;;13370:19;;-1:-1:-1;;;13370:19:0;;;;;;;;;;;13326:63;13401:12;13419:10;-1:-1:-1;;;;;13419:15:0;13442:7;13419:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13400:54;;;13469:7;13464:33;;13485:12;;-1:-1:-1;;;13485:12:0;;;;;;;;;;;4143:412:54;4219:29;4301:37;4342:30;:28;:30::i;:::-;4412:15;;;;4383:20;;-1:-1:-1;;;;;4412:15:54;;;4383:26;;;;:44;4456:13;;;;4438:14;;;:31;;4296:76;;-1:-1:-1;4456:13:54;;-1:-1:-1;4438:14:54;-1:-1:-1;4412:15:54;;4438:31;;4456:13;;4438:31;:::i;:::-;;;;-1:-1:-1;;4479:20:54;;;:39;;;;;;;;-1:-1:-1;4479:39:54;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4479:39:54;-1:-1:-1;;;;;4479:39:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;4479:39:54;;;;;;;;;;;;-1:-1:-1;;4479:39:54;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;4479:39:54;;;;;;;;;;;;;;-1:-1:-1;;4479:39:54;-1:-1:-1;;;;;4479:39:54;;;;;;;;;;;;;;;;;-1:-1:-1;4479:39:54;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;4479:39:54;;;;;;;;;;;;-1:-1:-1;;4479:39:54;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;4479:39:54;;;;;;;;-1:-1:-1;4479:39:54;;;;;;;;;;;;;;;-1:-1:-1;;;4479:39:54;-1:-1:-1;;;;;;4479:39:54;;;-1:-1:-1;;;;;4479:39:54;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;4479:39:54;;;;;;;;;;;;-1:-1:-1;;4479:39:54;;;;;;;;;;4528:15;;;:20;;-1:-1:-1;;4528:15:54;-1:-1:-1;;4528:20:54;;-1:-1:-1;;;;;;;4528:20:54;;:::i;2356:528:0:-;2410:7;2506:9;2517;2530:15;2542:2;2530:11;:15::i;:::-;2505:40;;;;2560:4;2555:45;;-1:-1:-1;2587:2:0;;2356:528;-1:-1:-1;;2356:528:0:o;2555:45::-;2733:12;2747:11;2762:17;2776:2;2762:13;:17::i;:::-;2732:47;;;;2794:7;2789:89;;-1:-1:-1;2824:2:0;;2356:528;-1:-1:-1;;;;2356:528:0:o;2789:89::-;2864:3;2356:528;-1:-1:-1;;;;;2356:528:0:o;2565:166:19:-;2640:12;2671:53;2693:6;2701:4;2707:1;2710:13;2671:21;:53::i;:::-;2664:60;;2565:166;;;;;:::o;2733:416:54:-;3022:21;;2820:11;;;;;;;;2985:59;;3008:12;;-1:-1:-1;;;;;3022:21:54;2985:22;:59::i;:::-;-1:-1:-1;;;;;3067:28:54;;;;;;;:21;;;:28;;;;;;;;;3115:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2977:67;;-1:-1:-1;3067:28:54;;-1:-1:-1;3115:25:54;;3067:28;;3115:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3115:25:54;;;;;;;;;;;;;;;;-1:-1:-1;;;3115:25:54;;;;-1:-1:-1;;3115:27:54;;-1:-1:-1;;;3115:27:54;;:25;;;;-1:-1:-1;3115:27:54;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3114:28;3105:37;;2890:259;2733:416;;;:::o;4411:476:0:-;4467:9;4478;4636:8;4632:2;4628:17;-1:-1:-1;;;4763:6:0;4760:27;4757:114;;4814:4;4806:12;;-1:-1:-1;;;;;4845:2:0;4841:16;4835:22;;4757:114;;4411:476;;;:::o;7171:2211::-;7229:12;7243:11;8058:3;8055:1;8048:14;8141:2;8137;8133;8130:1;-1:-1:-1;;;;;8097:5:0;8086:58;8075:69;;8405:1;8399:8;8445:6;-1:-1:-1;;;;;8427:25:0;8420:32;;8828:6;8823:3;8819:16;8811:6;8807:29;8793:43;;8870:6;8862;8859:18;8849:103;;8908:5;8897:16;;8937:1;8930:8;;8849:103;;9290:7;9289:8;:34;;;-1:-1:-1;13641:16:0;9321:2;9301:22;;9289:34;9285:91;;;-1:-1:-1;9347:5:0;;;;-1:-1:-1;7171:2211:0;-1:-1:-1;7171:2211:0:o;9285:91::-;7171:2211;;;:::o;8154:80:19:-;8210:17;;-1:-1:-1;;;8210:17:19;;;;;;;;;;;4063:483;4239:12;4291:5;4267:21;:29;4263:108;;;4319:41;;-1:-1:-1;;;4319:41:19;;4354:4;4319:41;;;18186:51:83;18159:18;;4319:41:19;;;;;;;;4263:108;4381:12;4395:23;4422:6;-1:-1:-1;;;;;4422:11:19;4441:5;4448:4;4422:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4380:73;;;;4470:69;4497:6;4505:7;4514:10;4526:12;4470:26;:69::i;:::-;4463:76;;;;4063:483;;;;;;;:::o;3077:173:58:-;3163:6;3232:11;3190:33;3232:11;3197;3190:33;:::i;:::-;3189:39;;3227:1;3189:39;:::i;:::-;3188:55;;;;:::i;6395:692:19:-;6586:12;6614:7;6610:471;;;6641:10;:17;6662:1;6641:22;6637:339;;6865:6;-1:-1:-1;;;;;6865:18:19;;6887:1;6865:23;6861:101;;6919:24;;-1:-1:-1;;;6919:24:19;;-1:-1:-1;;;;;18204:32:83;;6919:24:19;;;18186:51:83;18159:18;;6919:24:19;18032:211:83;6861:101:19;-1:-1:-1;6996:10:19;6989:17;;6610:471;7037:33;7045:10;7057:12;8410:17;;:21;8406:411;;8638:10;8632:17;8694:15;8681:10;8677:2;8673:19;8666:44;8406:411;8754:14;:12;:14;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;14:129:83;-1:-1:-1;;;;;92:5:83;88:30;81:5;78:41;68:69;;133:1;130;123:12;148:245;206:6;259:2;247:9;238:7;234:23;230:32;227:52;;;275:1;272;265:12;227:52;314:9;301:23;333:30;357:5;333:30;:::i;:::-;382:5;148:245;-1:-1:-1;;;148:245:83:o;398:156::-;459:5;504:2;495:6;490:3;486:16;482:25;479:45;;;520:1;517;510:12;479:45;-1:-1:-1;542:6:83;398:156;-1:-1:-1;398:156:83:o;559:619::-;687:6;695;748:2;736:9;727:7;723:23;719:32;716:52;;;764:1;761;754:12;716:52;804:9;791:23;-1:-1:-1;;;;;874:2:83;866:6;863:14;860:34;;;890:1;887;880:12;860:34;913:68;973:7;964:6;953:9;949:22;913:68;:::i;:::-;903:78;;1034:2;1023:9;1019:18;1006:32;990:48;;1063:2;1053:8;1050:16;1047:36;;;1079:1;1076;1069:12;1047:36;;1102:70;1164:7;1153:8;1142:9;1138:24;1102:70;:::i;:::-;1092:80;;;559:619;;;;;:::o;1183:180::-;1242:6;1295:2;1283:9;1274:7;1270:23;1266:32;1263:52;;;1311:1;1308;1301:12;1263:52;-1:-1:-1;1334:23:83;;1183:180;-1:-1:-1;1183:180:83:o;1368:361::-;1458:6;1511:2;1499:9;1490:7;1486:23;1482:32;1479:52;;;1527:1;1524;1517:12;1479:52;1567:9;1554:23;-1:-1:-1;;;;;1592:6:83;1589:30;1586:50;;;1632:1;1629;1622:12;1586:50;1655:68;1715:7;1706:6;1695:9;1691:22;1655:68;:::i;1734:127::-;1795:10;1790:3;1786:20;1783:1;1776:31;1826:4;1823:1;1816:15;1850:4;1847:1;1840:15;1866:257;1938:4;1932:11;;;1970:17;;-1:-1:-1;;;;;2002:34:83;;2038:22;;;1999:62;1996:88;;;2064:18;;:::i;:::-;2100:4;2093:24;1866:257;:::o;2128:253::-;2200:2;2194:9;2242:4;2230:17;;-1:-1:-1;;;;;2262:34:83;;2298:22;;;2259:62;2256:88;;;2324:18;;:::i;2386:275::-;2457:2;2451:9;2522:2;2503:13;;-1:-1:-1;;2499:27:83;2487:40;;-1:-1:-1;;;;;2542:34:83;;2578:22;;;2539:62;2536:88;;;2604:18;;:::i;:::-;2640:2;2633:22;2386:275;;-1:-1:-1;2386:275:83:o;2666:183::-;2726:4;-1:-1:-1;;;;;2751:6:83;2748:30;2745:56;;;2781:18;;:::i;:::-;-1:-1:-1;2826:1:83;2822:14;2838:4;2818:25;;2666:183::o;2854:131::-;-1:-1:-1;;;;;2929:31:83;;2919:42;;2909:70;;2975:1;2972;2965:12;2990:737;3044:5;3097:3;3090:4;3082:6;3078:17;3074:27;3064:55;;3115:1;3112;3105:12;3064:55;3151:6;3138:20;3177:4;3201:60;3217:43;3257:2;3217:43;:::i;:::-;3201:60;:::i;:::-;3295:15;;;3381:1;3377:10;;;;3365:23;;3361:32;;;3326:12;;;;3405:15;;;3402:35;;;3433:1;3430;3423:12;3402:35;3469:2;3461:6;3457:15;3481:217;3497:6;3492:3;3489:15;3481:217;;;3577:3;3564:17;3594:31;3619:5;3594:31;:::i;:::-;3638:18;;3676:12;;;;3514;;3481:217;;;-1:-1:-1;3716:5:83;2990:737;-1:-1:-1;;;;;;2990:737:83:o;3732:1138::-;3850:6;3858;3911:2;3899:9;3890:7;3886:23;3882:32;3879:52;;;3927:1;3924;3917:12;3879:52;3967:9;3954:23;-1:-1:-1;;;;;4037:2:83;4029:6;4026:14;4023:34;;;4053:1;4050;4043:12;4023:34;4076:61;4129:7;4120:6;4109:9;4105:22;4076:61;:::i;:::-;4066:71;;4156:2;4146:12;;4211:2;4200:9;4196:18;4183:32;4240:2;4230:8;4227:16;4224:36;;;4256:1;4253;4246:12;4224:36;4279:24;;;-1:-1:-1;4334:4:83;4326:13;;4322:27;-1:-1:-1;4312:55:83;;4363:1;4360;4353:12;4312:55;4399:2;4386:16;4422:60;4438:43;4478:2;4438:43;:::i;4422:60::-;4516:15;;;4598:1;4594:10;;;;4586:19;;4582:28;;;4547:12;;;;4622:19;;;4619:39;;;4654:1;4651;4644:12;4619:39;4678:11;;;;4698:142;4714:6;4709:3;4706:15;4698:142;;;4780:17;;4768:30;;4731:12;;;;4818;;;;4698:142;;;4859:5;4849:15;;;;;;;3732:1138;;;;;:::o;4875:127::-;4936:10;4931:3;4927:20;4924:1;4917:31;4967:4;4964:1;4957:15;4991:4;4988:1;4981:15;5007:128;5074:9;;;5095:11;;;5092:37;;;5109:18;;:::i;5249:114::-;5333:4;5326:5;5322:16;5315:5;5312:27;5302:55;;5353:1;5350;5343:12;5368:873;5430:3;5476:5;5463:19;5491:31;5514:7;5491:31;:::i;:::-;5556:4;5543:18;5531:31;;5621:4;5610:16;;5597:30;5678:14;5674:26;;;-1:-1:-1;;5670:40:83;5646:65;;5636:93;;5725:1;5722;5715:12;5636:93;5753:30;;5864:4;5851:18;;;5806:21;-1:-1:-1;;;;;5881:30:83;;5878:50;;;5924:1;5921;5914:12;5878:50;5973:6;5957:14;5953:27;5944:7;5940:41;5937:61;;;5994:1;5991;5984:12;5937:61;6030:4;6023;6018:3;6014:14;6007:28;6067:6;6060:4;6055:3;6051:14;6044:30;6119:6;6110:7;6105:2;6100:3;6096:12;6083:43;6169:1;6164:2;6155:6;6150:3;6146:16;6142:25;6135:36;6232:2;6225;6221:7;6216:2;6208:6;6204:15;6200:29;6195:3;6191:39;6187:48;6180:55;;;;5368:873;;;;:::o;6246:1707::-;6583:3;6572:9;6565:22;6546:4;6625:3;6614:9;6610:19;6664:6;6651:20;6680:30;6704:5;6680:30;:::i;:::-;-1:-1:-1;;;;;6784:14:83;;;6778:3;6763:19;;6756:43;6818:4;;6870:15;;;6857:29;6937:14;6933:27;;;-1:-1:-1;;6929:41:83;6905:66;;6895:94;;6985:1;6982;6975:12;6895:94;7013:31;;7112:16;;;;7067:21;7140:14;;;7137:34;;;7167:1;7164;7157:12;7137:34;7223:6;7220:1;7216:14;7200;7196:35;7187:7;7183:49;7180:69;;;7245:1;7242;7235:12;7180:69;7286:4;7280:3;7265:19;;7258:33;7326:22;;;;7406:7;7379:3;7364:19;;;-1:-1:-1;7431:1:83;;7441:283;7455:6;7452:1;7449:13;7441:283;;;7532:6;7519:20;7552:33;7577:7;7552:33;:::i;:::-;-1:-1:-1;;;;;7610:33:83;7598:46;;7699:15;;;;7664:12;;;;7640:1;7470:9;;;;;7441:283;;;-1:-1:-1;;;;;;;5206:31:83;;7760:18;;;5194:44;7826:9;7821:3;7817:19;7810:4;7799:9;7795:20;7788:49;7854:50;7900:3;7892:6;7854:50;:::i;:::-;7846:58;;;;;7940:6;7935:2;7924:9;7920:18;7913:34;6246:1707;;;;;;;:::o;7958:136::-;8036:13;;8058:30;8036:13;8058:30;:::i;:::-;7958:136;;;:::o;8099:1097::-;8165:5;8213:4;8201:9;8196:3;8192:19;8188:30;8185:50;;;8231:1;8228;8221:12;8185:50;8253:22;;:::i;:::-;8244:31;;8305:9;8299:16;8324:32;8348:7;8324:32;:::i;:::-;8365:22;;8406:2;8437:18;;;8431:25;-1:-1:-1;;;;;8468:30:83;;8465:50;;;8511:1;8508;8501:12;8465:50;8534:22;;8587:4;8579:13;;8575:23;-1:-1:-1;8565:51:83;;8612:1;8609;8602:12;8565:51;8641:2;8635:9;8664:60;8680:43;8720:2;8680:43;:::i;8664:60::-;8758:15;;;8840:1;8836:10;;;;8828:19;;8824:28;;;8789:12;;;;8864:15;;;8861:35;;;8892:1;8889;8882:12;8861:35;8916:11;;;;8936:216;8952:6;8947:3;8944:15;8936:216;;;9027:3;9021:10;9044:33;9069:7;9044:33;:::i;:::-;9090:20;;8969:12;;;;9130;;;;8936:216;;;9184:5;9179:2;9172:5;9168:14;9161:29;;;;;;8099:1097;;;;:::o;9201:250::-;9286:1;9296:113;9310:6;9307:1;9304:13;9296:113;;;9386:11;;;9380:18;9367:11;;;9360:39;9332:2;9325:10;9296:113;;;-1:-1:-1;;9443:1:83;9425:16;;9418:27;9201:250::o;9456:509::-;9509:5;9562:3;9555:4;9547:6;9543:17;9539:27;9529:55;;9580:1;9577;9570:12;9529:55;9609:6;9603:13;-1:-1:-1;;;;;9631:2:83;9628:26;9625:52;;;9657:18;;:::i;:::-;9701:55;9744:2;9725:13;;-1:-1:-1;;9721:27:83;9750:4;9717:38;9701:55;:::i;:::-;9781:2;9772:7;9765:19;9827:3;9820:4;9815:2;9807:6;9803:15;9799:26;9796:35;9793:55;;;9844:1;9841;9834:12;9793:55;9857:77;9931:2;9924:4;9915:7;9911:18;9904:4;9896:6;9892:17;9857:77;:::i;9970:949::-;10038:5;10086:4;10074:9;10069:3;10065:19;10061:30;10058:50;;;10104:1;10101;10094:12;10058:50;10126:22;;:::i;:::-;10117:31;;10177:9;10171:16;-1:-1:-1;;;;;10247:2:83;10239:6;10236:14;10233:34;;;10263:1;10260;10253:12;10233:34;10290:66;10352:3;10343:6;10332:9;10328:22;10290:66;:::i;:::-;10283:5;10276:81;10403:2;10392:9;10388:18;10382:25;10366:41;;10432:2;10422:8;10419:16;10416:36;;;10448:1;10445;10438:12;10416:36;10471:24;;;;10525:4;10511:12;;;10507:23;10504:43;;;10543:1;10540;10533:12;10504:43;10571:22;;:::i;:::-;10623:2;10617:9;10635:31;10658:7;10635:31;:::i;:::-;10675:24;;10738:2;10730:11;;10724:18;10754:16;;;10751:36;;;10783:1;10780;10773:12;10751:36;10821:51;10868:3;10857:8;10853:2;10849:17;10821:51;:::i;:::-;10816:2;10807:7;10803:16;10796:77;;10905:7;10900:2;10893:5;10889:14;10882:31;;;;9970:949;;;;:::o;10924:177::-;11002:13;;-1:-1:-1;;;;;;11044:32:83;;11034:43;;11024:71;;11091:1;11088;11081:12;11106:164;11182:13;;11231;;11224:21;11214:32;;11204:60;;11260:1;11257;11250:12;11275:1533;11372:6;11425:2;11413:9;11404:7;11400:23;11396:32;11393:52;;;11441:1;11438;11431:12;11393:52;11474:9;11468:16;-1:-1:-1;;;;;11544:2:83;11536:6;11533:14;11530:34;;;11560:1;11557;11550:12;11530:34;11583:22;;;;11639:4;11621:16;;;11617:27;11614:47;;;11657:1;11654;11647:12;11614:47;11683:22;;:::i;:::-;11736:2;11730:9;11764:2;11754:8;11751:16;11748:36;;;11780:1;11777;11770:12;11748:36;11803:17;;11854:4;11836:16;;;11832:27;11829:47;;;11872:1;11869;11862:12;11829:47;11900:22;;:::i;:::-;11953:2;11947:9;11981:2;11971:8;11968:16;11965:36;;;11997:1;11994;11987:12;11965:36;12026:67;12085:7;12074:8;12070:2;12066:17;12026:67;:::i;:::-;12017:7;12010:84;;12133:2;12129;12125:11;12119:18;12162:2;12152:8;12149:16;12146:36;;;12178:1;12175;12168:12;12146:36;12216:67;12275:7;12264:8;12260:2;12256:17;12216:67;:::i;:::-;12211:2;12202:7;12198:16;12191:93;;12334:4;12330:2;12326:13;12320:20;12313:4;12304:7;12300:18;12293:48;12375:41;12412:2;12408;12404:11;12375:41;:::i;:::-;12370:2;12361:7;12357:16;12350:67;12452:42;12489:3;12485:2;12481:12;12452:42;:::i;:::-;12446:3;12437:7;12433:17;12426:69;12534:3;12530:2;12526:12;12520:19;12564:2;12554:8;12551:16;12548:36;;;12580:1;12577;12570:12;12548:36;12619:55;12666:7;12655:8;12651:2;12647:17;12619:55;:::i;:::-;12613:3;12600:17;;12593:82;-1:-1:-1;12684:22:83;;-1:-1:-1;12738:39:83;12773:2;12765:11;;12738:39;:::i;:::-;12733:2;12722:14;;12715:63;12726:5;11275:1533;-1:-1:-1;;;;;11275:1533:83:o;12813:594::-;12919:9;12978:4;12970:5;12954:14;12950:26;12946:37;12943:57;;;12996:1;12993;12986:12;12943:57;13024:22;;:::i;:::-;13083:5;13070:19;13098:32;13122:7;13098:32;:::i;:::-;13139:24;;13210:2;13199:14;;13186:28;-1:-1:-1;;;;;13226:30:83;;13223:50;;;13269:1;13266;13259:12;13223:50;13307:64;13356:14;13347:6;13340:5;13336:18;13307:64;:::i;:::-;13302:2;13289:16;;13282:90;-1:-1:-1;13293:7:83;12813:594;-1:-1:-1;;12813:594:83:o;13412:689::-;13463:3;13502:4;13497:3;13493:14;-1:-1:-1;;;;;13538:5:83;13532:12;13528:37;13523:3;13516:50;13585:4;13635:2;13628:5;13624:14;13618:21;13669:4;13664:2;13659:3;13655:12;13648:26;13696:4;13729:12;13723:19;13764:6;13758:4;13751:20;13798:2;13793:3;13789:12;13780:21;;13842:2;13828:12;13824:21;13810:35;;13863:1;13854:10;;13873:201;13887:6;13884:1;13881:13;13873:201;;;13954:13;;-1:-1:-1;;;;;13950:39:83;13936:54;;14049:15;;;;13986:1;13902:9;;;;;14012:14;;;;13873:201;;14106:271;14297:2;14286:9;14279:21;14260:4;14317:54;14367:2;14356:9;14352:18;14344:6;14317:54;:::i;14382:251::-;14452:6;14505:2;14493:9;14484:7;14480:23;14476:32;14473:52;;;14521:1;14518;14511:12;14473:52;14553:9;14547:16;14572:31;14597:5;14572:31;:::i;14638:368::-;14857:2;14846:9;14839:21;14820:4;14877:54;14927:2;14916:9;14912:18;14904:6;14877:54;:::i;:::-;14869:62;;14996:1;14992;14987:3;14983:11;14979:19;14971:6;14967:32;14962:2;14951:9;14947:18;14940:60;14638:368;;;;;:::o;15011:363::-;15108:6;15161:2;15149:9;15140:7;15136:23;15132:32;15129:52;;;15177:1;15174;15167:12;15129:52;15210:9;15204:16;-1:-1:-1;;;;;15235:6:83;15232:30;15229:50;;;15275:1;15272;15265:12;15229:50;15298:70;15360:7;15351:6;15340:9;15336:22;15298:70;:::i;15379:127::-;15440:10;15435:3;15431:20;15428:1;15421:31;15471:4;15468:1;15461:15;15495:4;15492:1;15485:15;15511:180;-1:-1:-1;;;;;15616:10:83;;;15628;;;15612:27;;15651:11;;;15648:37;;;15665:18;;:::i;:::-;15648:37;15511:180;;;;:::o;15696:183::-;-1:-1:-1;;;;;15815:10:83;;;15803;;;15799:27;;15838:12;;;15835:38;;;15853:18;;:::i;15884:184::-;15954:6;16007:2;15995:9;15986:7;15982:23;15978:32;15975:52;;;16023:1;16020;16013:12;15975:52;-1:-1:-1;16046:16:83;;15884:184;-1:-1:-1;15884:184:83:o;16073:125::-;16138:9;;;16159:10;;;16156:36;;;16172:18;;:::i;16340:741::-;16399:3;16438:4;16433:3;16429:14;-1:-1:-1;;;;;16474:5:83;16468:12;16464:37;16459:3;16452:50;16521:4;16565:2;16558:5;16554:14;16587:4;16621;16616:2;16611:3;16607:12;16600:26;16648:4;16681:12;16675:19;16716:6;16710:4;16703:20;16750:2;16745:3;16741:12;16732:21;;16772:12;16769:1;16762:23;16821:2;16818:1;16808:16;16794:30;;16842:1;16833:10;;16852:202;16866:6;16863:1;16860:13;16852:202;;;16934:13;;-1:-1:-1;;;;;16930:39:83;16916:54;;17029:15;;;;16881:10;;;;16992:14;;;;16852:202;;;-1:-1:-1;17070:5:83;16340:741;-1:-1:-1;;;;;;;16340:741:83:o;17086:669::-;17418:3;17407:9;17400:22;17381:4;17445:63;17503:3;17492:9;17488:19;17480:6;17445:63;:::i;:::-;-1:-1:-1;;;;;17544:32:83;;17539:2;17524:18;;17517:60;17613:22;;;17608:2;17593:18;;17586:50;17653:53;17617:6;17691;17653:53;:::i;:::-;17645:61;;;17742:6;17737:2;17726:9;17722:18;17715:34;17086:669;;;;;;;:::o;17760:135::-;17799:3;17820:17;;;17817:43;;17840:18;;:::i;:::-;-1:-1:-1;17887:1:83;17876:13;;17760:135::o;17900:127::-;17961:10;17956:3;17952:20;17949:1;17942:31;17992:4;17989:1;17982:15;18016:4;18013:1;18006:15;18248:202;18315:6;18368:2;18356:9;18347:7;18343:23;18339:32;18336:52;;;18384:1;18381;18374:12;18336:52;18407:37;18434:9;18407:37;:::i;18455:482::-;18725:2;18714:9;18707:21;18688:4;18751:54;18801:2;18790:9;18786:18;18778:6;18751:54;:::i;:::-;18853:9;18845:6;18841:22;18836:2;18825:9;18821:18;18814:50;18881;18924:6;18916;18881:50;:::i;18942:380::-;19021:1;19017:12;;;;19064;;;19085:61;;19139:4;19131:6;19127:17;19117:27;;19085:61;19192:2;19184:6;19181:14;19161:18;19158:38;19155:161;;19238:10;19233:3;19229:20;19226:1;19219:31;19273:4;19270:1;19263:15;19301:4;19298:1;19291:15;19327:544;19428:2;19423:3;19420:11;19417:448;;;19464:1;19489:5;19485:2;19478:17;19534:4;19530:2;19520:19;19604:2;19592:10;19588:19;19585:1;19581:27;19575:4;19571:38;19640:4;19628:10;19625:20;19622:47;;;-1:-1:-1;19663:4:83;19622:47;19718:2;19713:3;19709:12;19706:1;19702:20;19696:4;19692:31;19682:41;;19773:82;19791:2;19784:5;19781:13;19773:82;;;19836:17;;;19817:1;19806:13;19773:82;;;19777:3;;;19327:544;;;:::o;20047:1360::-;20171:3;20165:10;-1:-1:-1;;;;;20190:6:83;20187:30;20184:56;;;20220:18;;:::i;:::-;20249:96;20338:6;20298:38;20330:4;20324:11;20298:38;:::i;:::-;20292:4;20249:96;:::i;:::-;20400:4;;20464:2;20453:14;;20481:1;20476:674;;;;21194:1;21211:6;21208:89;;;-1:-1:-1;21263:19:83;;;21257:26;21208:89;-1:-1:-1;;20004:1:83;20000:11;;;19996:24;19992:29;19982:40;20028:1;20024:11;;;19979:57;21310:81;;20446:955;;20476:674;16287:1;16280:14;;;16324:4;16311:18;;-1:-1:-1;;20512:20:83;;;20641:236;20655:7;20652:1;20649:14;20641:236;;;20744:19;;;20738:26;20723:42;;20836:27;;;;20804:1;20792:14;;;;20671:19;;20641:236;;;20645:3;20905:6;20896:7;20893:19;20890:201;;;20966:19;;;20960:26;-1:-1:-1;;21049:1:83;21045:14;;;21061:3;21041:24;21037:37;21033:42;21018:58;21003:74;;20890:201;-1:-1:-1;;;;;21137:1:83;21121:14;;;21117:22;21104:36;;-1:-1:-1;20047:1360:83:o;22012:287::-;22141:3;22179:6;22173:13;22195:66;22254:6;22249:3;22242:4;22234:6;22230:17;22195:66;:::i;:::-;22277:16;;;;;22012:287;-1:-1:-1;;22012:287:83:o;22304:296::-;22343:1;-1:-1:-1;;;;;22414:2:83;22411:1;22407:10;22436:3;22426:134;;22482:10;22477:3;22473:20;22470:1;22463:31;22517:4;22514:1;22507:15;22545:4;22542:1;22535:15;22426:134;22578:10;;22574:20;;;;;22304:296;-1:-1:-1;;22304:296:83:o;22605:257::-;-1:-1:-1;;;;;22726:10:83;;;22738;;;22722:27;22769:20;;;;22676:18;22808:24;;;22798:58;;22836:18;;:::i;:::-;22798:58;;22605:257;;;;:::o", + "linkReferences": { + "src/lib/AccountHelper.sol": { + "AccountHelper": [ + { + "start": 3229, + "length": 20 + }, + { + "start": 3375, + "length": 20 + } + ] + }, + "src/lib/CrossMsgHelper.sol": { + "CrossMsgHelper": [ + { + "start": 496, + "length": 20 + }, + { + "start": 2630, + "length": 20 + } + ] + }, + "src/lib/SubnetIDHelper.sol": { + "SubnetIDHelper": [ + { + "start": 678, + "length": 20 + }, + { + "start": 968, + "length": 20 + }, + { + "start": 1582, + "length": 20 + }, + { + "start": 2319, + "length": 20 + }, + { + "start": 3560, + "length": 20 + }, + { + "start": 4377, + "length": 20 + }, + { + "start": 4640, + "length": 20 + }, + { + "start": 4933, + "length": 20 + }, + { + "start": 6031, + "length": 20 + } + ] + } + } + }, + "methodIdentifiers": { + "addStake()": "5a627dbc", + "fund((uint64,address[]),(uint8,bytes))": "18f44b70", + "initGenesisEpoch(uint64)": "13f35388", + "kill()": "41c0e1b5", + "register()": "1aa3a008", + "release((uint8,bytes))": "6b2c1eef", + "releaseRewards(uint256)": "f8703bb8", + "releaseStake(uint256)": "45f54485", + "setMembership(address[],uint256[])": "f75bc557" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotReleaseZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidActorAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEmptySubnetCircSupply\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFee\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFundsToRelease\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSignableAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSystemActor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorWeightIsZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorsAndWeightsLengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"}],\"name\":\"fund\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"genesisEpoch\",\"type\":\"uint64\"}],\"name\":\"initGenesisEpoch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"releaseRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"releaseStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"weights\",\"type\":\"uint256[]\"}],\"name\":\"setMembership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"kind\":\"dev\",\"methods\":{\"fund((uint64,address[]),(uint8,bytes))\":{\"params\":{\"subnetId\":\"- subnet to fund\",\"to\":\"- the address to send funds to\"}},\"initGenesisEpoch(uint64)\":{\"params\":{\"genesisEpoch\":\"- genesis epoch to set\"}},\"setMembership(address[],uint256[])\":{\"params\":{\"validators\":\"- list of validator addresses\",\"weights\":\"- list of validators voting powers\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addStake()\":{\"notice\":\"addStake - add collateral for an existing subnet\"},\"fund((uint64,address[]),(uint8,bytes))\":{\"notice\":\"fund - commit a top-down message releasing funds in a child subnet. There is an associated fee that gets distributed to validators in the subnet as well\"},\"initGenesisEpoch(uint64)\":{\"notice\":\"initialize the contract with the genesis epoch\"},\"kill()\":{\"notice\":\"kill an existing subnet. It's balance must be empty\"},\"register()\":{\"notice\":\"register a subnet in the gateway. called by a subnet when it reaches the threshold stake\"},\"release((uint8,bytes))\":{\"notice\":\"release method locks funds in the current subnet and sends a cross message up the hierarchy to the parent gateway to release the funds\"},\"releaseStake(uint256)\":{\"notice\":\"release collateral for an existing subnet\"},\"setMembership(address[],uint256[])\":{\"notice\":\"set up the top-down validators and their voting power\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/GatewayManagerFacet.sol\":\"GatewayManagerFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xb8d40721965efd93b5369d55083181226d3c7e1be4a968c04de35d44ba44f29a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5c4b0089788aa7112cce88602212c3895999f464e00d1c40d7f27ac9288798b\",\"dweb:/ipfs/Qmd69EuGeoCYPfPkGA4hayH4s2upmAe3XaoDf4ggYNEoZ4\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x31f34a3baec77c087d2bdbc5c277f169e505b905aeb43cfcea1734175140f621\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5a3bc8093b31b685ef879e8ffaaab614594cb6f98ddac4f18c411f7bbf99d0d\",\"dweb:/ipfs/QmSFfA9pH3xo8hnWKCFKTwGi8kz68YXuAwyLXsYe6KjC3Z\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xdb6d7e26320438bdd421598eb64e6fe2b03867a4dd07c9c820994b7bec26f7b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2adf1566393ddf260fb2064dd0c67be00123b8978be8b62cc45ac97aff859949\",\"dweb:/ipfs/QmaDLzQpnitEJDAJo4squpKumr5x4D2QYetPdT3jZd8hYm\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x8a925dea568a61a38de9615aae7bb462d9eb6f8eb2c6ca409f1e740519077ab8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b7e2f836581694867c09bb9c80ff2ab6ae039ece2ff3bbf4d1bc2026449fa551\",\"dweb:/ipfs/QmVMvaQSCRBHZudSV8AzimYre76tJVm4UrHYnrT89zcjho\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0xf29c18f694b5acc919b7cada2875ca3bd2c52ddd7ef86ee747aab0faeb50ac8b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d8fb92f533cc119c578da73b06efe76b0efaa612af7c77178eb903952fcf53df\",\"dweb:/ipfs/QmdosRgUmvwXRnxq5TmoJoFMs7TULduTFpMUNyYXQNGfQD\"]},\"src/enums/VoteExecutionStatus.sol\":{\"keccak256\":\"0x56d1db8abf83feb0f1d69f1919fbd5bd79c6f3c5bf3c149950d307b9d62b6455\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb2ec0f87a9091eab463ac6a776d5737189e0239f412b36b975bb0be1fcb4ad8\",\"dweb:/ipfs/QmWiXwab54Ag2f1kyGjqT3brh5JrV5Lc7cqod9VPaS5ey6\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xab09aee88feca01f5c23baa475aa02bb8c1b189e60a7b81848a07e00b9ab708c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1f5d874688d7316a0eb382b6fb1e7ea6648b15aaaab95acc51f18bfcab851d61\",\"dweb:/ipfs/QmdZRRmWrkrn5MmEX3n5yWEREtoCvXNxzoVkPWSH64ENpd\"]},\"src/gateway/GatewayManagerFacet.sol\":{\"keccak256\":\"0xdc5631a874d43a651bb393dc5561b6c7c238755b3d098b1b4906e1ad93dc35fa\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d461cf11b54f0edb1d0c89a2062f6044a4036db121052666a016b78095094a90\",\"dweb:/ipfs/QmUEheM9diusRxsNRNZ67ek963dENpdiSmjSFJFXCX6R25\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x57865785239b076bc429cd989bc5cb2a2e68050c7293a5a537d8cdeded170294\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://28285703560a0bbfa247c894c9f14f2a14e02e430e7dedb0a05b58c53aed3763\",\"dweb:/ipfs/QmcrNx18jZYJ7dRduWu1do3th74cHy7zn9Zx8x13WsCLj5\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0xe3f7371c7c7af8dfa71daa6c4171f6853c9ab1fdd619c09eb12c11ff18d17d91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6a09ea45ed335eada22e7cf3643c17d1c59750ed2156cc29c0960a8e8b53e394\",\"dweb:/ipfs/QmSYTNGqP9wEJnPDXmvghfL8zL8BrHGnixhbsimA9oydLG\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x86bf44c7e35907c1b0ed2fd55a6a8a277b46e6ee52b6933610504bc1d2de3b12\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb47357cd7342f951e5d08b1960e9ab7d458463e71ce08ff61b900bbb04118f0\",\"dweb:/ipfs/QmTKHhnYs1xKZUwCmSRPmSi5utfGrosYV57fSoGF7bGnJs\"]},\"src/lib/CheckpointHelper.sol\":{\"keccak256\":\"0x25d67ccc67b6b537df920c92dc3c704dc097e000c444149d3732e1d20848a269\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5823e88c38b5c4e90ee5700cee5a5fd8d982015dab7ea1cbe2f26d62a359ae76\",\"dweb:/ipfs/QmT9Ves86HoEqQciunzEwvDsyv2dgQwF8uPUjNuGsycHuF\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0xe7aacc0bc5eb10763685d6766524f6db05b151b37de4ccbd2b04649e54b9af36\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d6fae33fe9dc258efc3e0c484c6e69ff8314af266c78fd9b3d20c5bf8f251865\",\"dweb:/ipfs/QmYYpC6GnJNRvAg3MCSHKHk47cas888N3HzmMrmiRT4bnJ\"]},\"src/lib/EpochVoteSubmissionHelper.sol\":{\"keccak256\":\"0x1eaf867ddfc3e83d5a2ca50a81809e1529ea2436a8d2697d868bc8653b8c6c9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://65eb6a69fdb0fd8bfc1cd3d5044791225ff9fa8887dda49fd530e7c46e6e5366\",\"dweb:/ipfs/QmepF17eiqGqiNJRfeCohdeVw2aJxgkFS1AyFSM78v16nC\"]},\"src/lib/ExecutableQueueHelper.sol\":{\"keccak256\":\"0x66b7ba58bb9ba987789f22dcc5e44f1720876a79a52a9630d886490d48f80ece\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8b388b9f63b4f86ac03f24089a1f110e482ae89b1eb628fc78aeead1d6f50869\",\"dweb:/ipfs/QmVGVh9r2GBgXRn7Z13sMKmnn3xjfHm9tM3mnLUH1UwjQX\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x80d7d30532305664e31ad114d702904287e6f93954b420315f660ddf30791ac6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0b108070a13f76614f36e46f0af85d12aa53209ff9bb9c32ee1945be3e0a1fe1\",\"dweb:/ipfs/QmcyMuCZB4Z3qFUUjvcoVeSePJXU5F9hN4Zhy94U2qqcPq\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0x3cf0150c6f1e19b48ca307604973f583aba8d2192a6d39572e2e780991a9c916\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://64d570ab21b83384e044296b02c63e195a5eb53a68ea527aaa62862e47edd627\",\"dweb:/ipfs/QmUwdSq1J5LzUxAHjKk395BWsobnYSh9fsJBQeiUbz2NJe\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3404decb343fa34603a0dce10d00ce0c97da50951792ef500d080e5167136fcb\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2bc38db8ab67aa48356a397f866cc54deac21f861d1349f80cd21103d893718f\",\"dweb:/ipfs/QmajCZg8ZpT9Kh35gXnxPkjCLCzRYFtYsNXTVGTvSugUZf\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0xb96c3d7a112d3319919f047c4ab0d475ab8b602e141f9f7fd00ffcbf8175a630\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://aad83180ce083e22e0c05504dd4bcb8d8b865f38a930684fbe1b5c9ee1aa356f\",\"dweb:/ipfs/QmbqLgq1hCyMhBpa97K2rTQLJHfvHBCzJGE9kiA6LpPDji\"]},\"src/lib/LibVoting.sol\":{\"keccak256\":\"0x3e5c9359758e7a7200c3a1e7c3a8edfbe6912e8c0a2edde1d2a9e4907b89cb91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://589fa228fdc537a56839520408ec06fc34658ef7a3ca7481b089f9d966f8ed39\",\"dweb:/ipfs/QmNQ4kPeGN5JAhFQyfEnYmmvp83dPQ6QhQKQfZhqgWKjDK\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0xf82021571aa9a7b021b2d24b2c0eb80c5796b9f28ebb6a1c239146c0c0168817\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b546fc429093a558b9382e28886d1f09e7f308e55f6398989583bc420a630326\",\"dweb:/ipfs/QmSmQPQbMBX8N8r8nGboBWdzJjUaK7ACaFUf8XosZVZPT8\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0xcddaa4630a6f68c59a819bafee579a8979cc9fd7b00d5b49f99eeefb9ce0c02c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9713f988a5709dea3ee0fb204a2d0b64b0dc115912ed9eb128f479156d97a949\",\"dweb:/ipfs/QmUjTAvd2eAYQFqgfZUf5R67daeC7eUKrL6WrFb8oEWB9j\"]},\"src/structs/EpochVoteSubmission.sol\":{\"keccak256\":\"0x4cc52a36cac1a063bf1f996b91ea81ce118b7ce8923e62cec6e5bf08b689e96a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb33236d8c7a40e17c416a21e9f0df268d6a7f4d6ba1df86ab0c2dbf444702e9\",\"dweb:/ipfs/QmXEbdkweqL1f4Q71YPiuxwhQooh1oim9oBybAbr9Jd3A2\"]},\"src/structs/ExecutableQueue.sol\":{\"keccak256\":\"0xfacfd91786edac0462f4bba34d3a3766c8785925ae96301b68b76fba78c5cab4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb421106bc9158e8a12dd7054d265113dd890337937e73acb03f03e33a13eb18\",\"dweb:/ipfs/Qmdxs4akDWuzwf5nYsCaNuYNZ5sTrMCzdgVMuSpKCjFyaP\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xbaae3da91048d76b5bab0404eebf7dc41ed273a8cd1f4143ea1b3403d89f77c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5a69d76f5022d2e19f69ef0d70d4c5e3a3e7ae8e02fcfdb2682c901ac2f3a707\",\"dweb:/ipfs/QmYEWyPz9UqVssUpU42VTv6DhzRNAfaHKt9ZsNCAvtLjTr\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0xb37b12df0c9ff47c2e88f9612b624bb44e6de5dfb8030dfd83582997dcd6aa83\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a321a05abf7b3b461e3d6c4ac27b18d3e14dffad9e2bf9a0ceb68538a02ab1e4\",\"dweb:/ipfs/QmPo878trP8pv9yXXpwUHSnP7Xt6uz9eWuB25pz2JGiCot\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.19+commit.7dd6d404" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + } + ], + "type": "error", + "name": "AddressEmptyCode" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "type": "error", + "name": "AddressInsufficientBalance" + }, + { + "inputs": [], + "type": "error", + "name": "AlreadyInitialized" + }, + { + "inputs": [], + "type": "error", + "name": "AlreadyRegisteredSubnet" + }, + { + "inputs": [], + "type": "error", + "name": "CallFailed" + }, + { + "inputs": [], + "type": "error", + "name": "CannotReleaseZero" + }, + { + "inputs": [], + "type": "error", + "name": "FailedInnerCall" + }, + { + "inputs": [], + "type": "error", + "name": "InsufficientFunds" + }, + { + "inputs": [], + "type": "error", + "name": "InvalidActorAddress" + }, + { + "inputs": [], + "type": "error", + "name": "NotEmptySubnetCircSupply" + }, + { + "inputs": [], + "type": "error", + "name": "NotEnoughFee" + }, + { + "inputs": [], + "type": "error", + "name": "NotEnoughFunds" + }, + { + "inputs": [], + "type": "error", + "name": "NotEnoughFundsToRelease" + }, + { + "inputs": [], + "type": "error", + "name": "NotRegisteredSubnet" + }, + { + "inputs": [], + "type": "error", + "name": "NotSignableAccount" + }, + { + "inputs": [], + "type": "error", + "name": "NotSystemActor" + }, + { + "inputs": [], + "type": "error", + "name": "ReentrancyError" + }, + { + "inputs": [], + "type": "error", + "name": "ValidatorWeightIsZero" + }, + { + "inputs": [], + "type": "error", + "name": "ValidatorsAndWeightsLengthMismatch" + }, + { + "inputs": [], + "stateMutability": "payable", + "type": "function", + "name": "addStake" + }, + { + "inputs": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct FvmAddress", + "name": "to", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ], + "stateMutability": "payable", + "type": "function", + "name": "fund" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "genesisEpoch", + "type": "uint64" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "initGenesisEpoch" + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "kill" + }, + { + "inputs": [], + "stateMutability": "payable", + "type": "function", + "name": "register" + }, + { + "inputs": [ + { + "internalType": "struct FvmAddress", + "name": "to", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ], + "stateMutability": "payable", + "type": "function", + "name": "release" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "releaseRewards" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "releaseStake" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "validators", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "weights", + "type": "uint256[]" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "setMembership" + } + ], + "devdoc": { + "kind": "dev", + "methods": { + "fund((uint64,address[]),(uint8,bytes))": { + "params": { + "subnetId": "- subnet to fund", + "to": "- the address to send funds to" + } + }, + "initGenesisEpoch(uint64)": { + "params": { + "genesisEpoch": "- genesis epoch to set" + } + }, + "setMembership(address[],uint256[])": { + "params": { + "validators": "- list of validator addresses", + "weights": "- list of validators voting powers" + } + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": { + "addStake()": { + "notice": "addStake - add collateral for an existing subnet" + }, + "fund((uint64,address[]),(uint8,bytes))": { + "notice": "fund - commit a top-down message releasing funds in a child subnet. There is an associated fee that gets distributed to validators in the subnet as well" + }, + "initGenesisEpoch(uint64)": { + "notice": "initialize the contract with the genesis epoch" + }, + "kill()": { + "notice": "kill an existing subnet. It's balance must be empty" + }, + "register()": { + "notice": "register a subnet in the gateway. called by a subnet when it reaches the threshold stake" + }, + "release((uint8,bytes))": { + "notice": "release method locks funds in the current subnet and sends a cross message up the hierarchy to the parent gateway to release the funds" + }, + "releaseStake(uint256)": { + "notice": "release collateral for an existing subnet" + }, + "setMembership(address[],uint256[])": { + "notice": "set up the top-down validators and their voting power" + } + }, + "version": 1 + } + }, + "settings": { + "remappings": [ + ":@openzeppelin/=node_modules/@openzeppelin/", + ":ds-test/=lib/forge-std/lib/ds-test/src/", + ":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", + ":fevmate/=lib/fevmate/contracts/", + ":forge-std/=lib/forge-std/src/", + ":hardhat-deploy/=node_modules/hardhat-deploy/", + ":hardhat/=node_modules/hardhat/", + ":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/", + ":openzeppelin/=lib/openzeppelin-contracts/contracts/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "src/gateway/GatewayManagerFacet.sol": "GatewayManagerFacet" + }, + "libraries": {} + }, + "sources": { + "lib/fevmate/contracts/utils/FilAddress.sol": { + "keccak256": "0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31", + "urls": [ + "bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7", + "dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/Address.sol": { + "keccak256": "0xb8d40721965efd93b5369d55083181226d3c7e1be4a968c04de35d44ba44f29a", + "urls": [ + "bzz-raw://e5c4b0089788aa7112cce88602212c3895999f464e00d1c40d7f27ac9288798b", + "dweb:/ipfs/Qmd69EuGeoCYPfPkGA4hayH4s2upmAe3XaoDf4ggYNEoZ4" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/Strings.sol": { + "keccak256": "0x31f34a3baec77c087d2bdbc5c277f169e505b905aeb43cfcea1734175140f621", + "urls": [ + "bzz-raw://b5a3bc8093b31b685ef879e8ffaaab614594cb6f98ddac4f18c411f7bbf99d0d", + "dweb:/ipfs/QmSFfA9pH3xo8hnWKCFKTwGi8kz68YXuAwyLXsYe6KjC3Z" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol": { + "keccak256": "0xdb6d7e26320438bdd421598eb64e6fe2b03867a4dd07c9c820994b7bec26f7b0", + "urls": [ + "bzz-raw://2adf1566393ddf260fb2064dd0c67be00123b8978be8b62cc45ac97aff859949", + "dweb:/ipfs/QmaDLzQpnitEJDAJo4squpKumr5x4D2QYetPdT3jZd8hYm" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol": { + "keccak256": "0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb", + "urls": [ + "bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b", + "dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z" + ], + "license": "MIT" + }, + "src/constants/Constants.sol": { + "keccak256": "0x8a925dea568a61a38de9615aae7bb462d9eb6f8eb2c6ca409f1e740519077ab8", + "urls": [ + "bzz-raw://b7e2f836581694867c09bb9c80ff2ab6ae039ece2ff3bbf4d1bc2026449fa551", + "dweb:/ipfs/QmVMvaQSCRBHZudSV8AzimYre76tJVm4UrHYnrT89zcjho" + ], + "license": "UNLICENSED" + }, + "src/enums/Status.sol": { + "keccak256": "0xf29c18f694b5acc919b7cada2875ca3bd2c52ddd7ef86ee747aab0faeb50ac8b", + "urls": [ + "bzz-raw://d8fb92f533cc119c578da73b06efe76b0efaa612af7c77178eb903952fcf53df", + "dweb:/ipfs/QmdosRgUmvwXRnxq5TmoJoFMs7TULduTFpMUNyYXQNGfQD" + ], + "license": "UNLICENSED" + }, + "src/enums/VoteExecutionStatus.sol": { + "keccak256": "0x56d1db8abf83feb0f1d69f1919fbd5bd79c6f3c5bf3c149950d307b9d62b6455", + "urls": [ + "bzz-raw://bb2ec0f87a9091eab463ac6a776d5737189e0239f412b36b975bb0be1fcb4ad8", + "dweb:/ipfs/QmWiXwab54Ag2f1kyGjqT3brh5JrV5Lc7cqod9VPaS5ey6" + ], + "license": "UNLICENSED" + }, + "src/errors/IPCErrors.sol": { + "keccak256": "0xab09aee88feca01f5c23baa475aa02bb8c1b189e60a7b81848a07e00b9ab708c", + "urls": [ + "bzz-raw://1f5d874688d7316a0eb382b6fb1e7ea6648b15aaaab95acc51f18bfcab851d61", + "dweb:/ipfs/QmdZRRmWrkrn5MmEX3n5yWEREtoCvXNxzoVkPWSH64ENpd" + ], + "license": "UNLICENSED" + }, + "src/gateway/GatewayManagerFacet.sol": { + "keccak256": "0xdc5631a874d43a651bb393dc5561b6c7c238755b3d098b1b4906e1ad93dc35fa", + "urls": [ + "bzz-raw://d461cf11b54f0edb1d0c89a2062f6044a4036db121052666a016b78095094a90", + "dweb:/ipfs/QmUEheM9diusRxsNRNZ67ek963dENpdiSmjSFJFXCX6R25" + ], + "license": "UNLICENSED" + }, + "src/interfaces/IGateway.sol": { + "keccak256": "0x57865785239b076bc429cd989bc5cb2a2e68050c7293a5a537d8cdeded170294", + "urls": [ + "bzz-raw://28285703560a0bbfa247c894c9f14f2a14e02e430e7dedb0a05b58c53aed3763", + "dweb:/ipfs/QmcrNx18jZYJ7dRduWu1do3th74cHy7zn9Zx8x13WsCLj5" + ], + "license": "UNLICENSED" + }, + "src/interfaces/ISubnetActor.sol": { + "keccak256": "0xe3f7371c7c7af8dfa71daa6c4171f6853c9ab1fdd619c09eb12c11ff18d17d91", + "urls": [ + "bzz-raw://6a09ea45ed335eada22e7cf3643c17d1c59750ed2156cc29c0960a8e8b53e394", + "dweb:/ipfs/QmSYTNGqP9wEJnPDXmvghfL8zL8BrHGnixhbsimA9oydLG" + ], + "license": "UNLICENSED" + }, + "src/lib/AccountHelper.sol": { + "keccak256": "0x86bf44c7e35907c1b0ed2fd55a6a8a277b46e6ee52b6933610504bc1d2de3b12", + "urls": [ + "bzz-raw://bb47357cd7342f951e5d08b1960e9ab7d458463e71ce08ff61b900bbb04118f0", + "dweb:/ipfs/QmTKHhnYs1xKZUwCmSRPmSi5utfGrosYV57fSoGF7bGnJs" + ], + "license": "UNLICENSED" + }, + "src/lib/CheckpointHelper.sol": { + "keccak256": "0x25d67ccc67b6b537df920c92dc3c704dc097e000c444149d3732e1d20848a269", + "urls": [ + "bzz-raw://5823e88c38b5c4e90ee5700cee5a5fd8d982015dab7ea1cbe2f26d62a359ae76", + "dweb:/ipfs/QmT9Ves86HoEqQciunzEwvDsyv2dgQwF8uPUjNuGsycHuF" + ], + "license": "UNLICENSED" + }, + "src/lib/CrossMsgHelper.sol": { + "keccak256": "0xe7aacc0bc5eb10763685d6766524f6db05b151b37de4ccbd2b04649e54b9af36", + "urls": [ + "bzz-raw://d6fae33fe9dc258efc3e0c484c6e69ff8314af266c78fd9b3d20c5bf8f251865", + "dweb:/ipfs/QmYYpC6GnJNRvAg3MCSHKHk47cas888N3HzmMrmiRT4bnJ" + ], + "license": "UNLICENSED" + }, + "src/lib/EpochVoteSubmissionHelper.sol": { + "keccak256": "0x1eaf867ddfc3e83d5a2ca50a81809e1529ea2436a8d2697d868bc8653b8c6c9e", + "urls": [ + "bzz-raw://65eb6a69fdb0fd8bfc1cd3d5044791225ff9fa8887dda49fd530e7c46e6e5366", + "dweb:/ipfs/QmepF17eiqGqiNJRfeCohdeVw2aJxgkFS1AyFSM78v16nC" + ], + "license": "UNLICENSED" + }, + "src/lib/ExecutableQueueHelper.sol": { + "keccak256": "0x66b7ba58bb9ba987789f22dcc5e44f1720876a79a52a9630d886490d48f80ece", + "urls": [ + "bzz-raw://8b388b9f63b4f86ac03f24089a1f110e482ae89b1eb628fc78aeead1d6f50869", + "dweb:/ipfs/QmVGVh9r2GBgXRn7Z13sMKmnn3xjfHm9tM3mnLUH1UwjQX" + ], + "license": "UNLICENSED" + }, + "src/lib/FvmAddressHelper.sol": { + "keccak256": "0x80d7d30532305664e31ad114d702904287e6f93954b420315f660ddf30791ac6", + "urls": [ + "bzz-raw://0b108070a13f76614f36e46f0af85d12aa53209ff9bb9c32ee1945be3e0a1fe1", + "dweb:/ipfs/QmcyMuCZB4Z3qFUUjvcoVeSePJXU5F9hN4Zhy94U2qqcPq" + ], + "license": "UNLICENSED" + }, + "src/lib/LibGateway.sol": { + "keccak256": "0x3cf0150c6f1e19b48ca307604973f583aba8d2192a6d39572e2e780991a9c916", + "urls": [ + "bzz-raw://64d570ab21b83384e044296b02c63e195a5eb53a68ea527aaa62862e47edd627", + "dweb:/ipfs/QmUwdSq1J5LzUxAHjKk395BWsobnYSh9fsJBQeiUbz2NJe" + ], + "license": "UNLICENSED" + }, + "src/lib/LibGatewayActorStorage.sol": { + "keccak256": "0x3404decb343fa34603a0dce10d00ce0c97da50951792ef500d080e5167136fcb", + "urls": [ + "bzz-raw://2bc38db8ab67aa48356a397f866cc54deac21f861d1349f80cd21103d893718f", + "dweb:/ipfs/QmajCZg8ZpT9Kh35gXnxPkjCLCzRYFtYsNXTVGTvSugUZf" + ], + "license": "UNLICENSED" + }, + "src/lib/LibReentrancyGuard.sol": { + "keccak256": "0xb96c3d7a112d3319919f047c4ab0d475ab8b602e141f9f7fd00ffcbf8175a630", + "urls": [ + "bzz-raw://aad83180ce083e22e0c05504dd4bcb8d8b865f38a930684fbe1b5c9ee1aa356f", + "dweb:/ipfs/QmbqLgq1hCyMhBpa97K2rTQLJHfvHBCzJGE9kiA6LpPDji" + ], + "license": "UNLICENSED" + }, + "src/lib/LibVoting.sol": { + "keccak256": "0x3e5c9359758e7a7200c3a1e7c3a8edfbe6912e8c0a2edde1d2a9e4907b89cb91", + "urls": [ + "bzz-raw://589fa228fdc537a56839520408ec06fc34658ef7a3ca7481b089f9d966f8ed39", + "dweb:/ipfs/QmNQ4kPeGN5JAhFQyfEnYmmvp83dPQ6QhQKQfZhqgWKjDK" + ], + "license": "UNLICENSED" + }, + "src/lib/SubnetIDHelper.sol": { + "keccak256": "0xf82021571aa9a7b021b2d24b2c0eb80c5796b9f28ebb6a1c239146c0c0168817", + "urls": [ + "bzz-raw://b546fc429093a558b9382e28886d1f09e7f308e55f6398989583bc420a630326", + "dweb:/ipfs/QmSmQPQbMBX8N8r8nGboBWdzJjUaK7ACaFUf8XosZVZPT8" + ], + "license": "UNLICENSED" + }, + "src/structs/Checkpoint.sol": { + "keccak256": "0xcddaa4630a6f68c59a819bafee579a8979cc9fd7b00d5b49f99eeefb9ce0c02c", + "urls": [ + "bzz-raw://9713f988a5709dea3ee0fb204a2d0b64b0dc115912ed9eb128f479156d97a949", + "dweb:/ipfs/QmUjTAvd2eAYQFqgfZUf5R67daeC7eUKrL6WrFb8oEWB9j" + ], + "license": "UNLICENSED" + }, + "src/structs/EpochVoteSubmission.sol": { + "keccak256": "0x4cc52a36cac1a063bf1f996b91ea81ce118b7ce8923e62cec6e5bf08b689e96a", + "urls": [ + "bzz-raw://fb33236d8c7a40e17c416a21e9f0df268d6a7f4d6ba1df86ab0c2dbf444702e9", + "dweb:/ipfs/QmXEbdkweqL1f4Q71YPiuxwhQooh1oim9oBybAbr9Jd3A2" + ], + "license": "UNLICENSED" + }, + "src/structs/ExecutableQueue.sol": { + "keccak256": "0xfacfd91786edac0462f4bba34d3a3766c8785925ae96301b68b76fba78c5cab4", + "urls": [ + "bzz-raw://bb421106bc9158e8a12dd7054d265113dd890337937e73acb03f03e33a13eb18", + "dweb:/ipfs/Qmdxs4akDWuzwf5nYsCaNuYNZ5sTrMCzdgVMuSpKCjFyaP" + ], + "license": "UNLICENSED" + }, + "src/structs/FvmAddress.sol": { + "keccak256": "0xbaae3da91048d76b5bab0404eebf7dc41ed273a8cd1f4143ea1b3403d89f77c9", + "urls": [ + "bzz-raw://5a69d76f5022d2e19f69ef0d70d4c5e3a3e7ae8e02fcfdb2682c901ac2f3a707", + "dweb:/ipfs/QmYEWyPz9UqVssUpU42VTv6DhzRNAfaHKt9ZsNCAvtLjTr" + ], + "license": "UNLICENSED" + }, + "src/structs/Subnet.sol": { + "keccak256": "0xb37b12df0c9ff47c2e88f9612b624bb44e6de5dfb8030dfd83582997dcd6aa83", + "urls": [ + "bzz-raw://a321a05abf7b3b461e3d6c4ac27b18d3e14dffad9e2bf9a0ceb68538a02ab1e4", + "dweb:/ipfs/QmPo878trP8pv9yXXpwUHSnP7Xt6uz9eWuB25pz2JGiCot" + ], + "license": "UNLICENSED" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "src/gateway/GatewayManagerFacet.sol", + "id": 39253, + "exportedSymbols": { + "AlreadyInitialized": [ + 38148 + ], + "AlreadyRegisteredSubnet": [ + 38150 + ], + "CannotReleaseZero": [ + 38154 + ], + "CrossMsg": [ + 44176 + ], + "CrossMsgHelper": [ + 41103 + ], + "FilAddress": [ + 298 + ], + "FvmAddress": [ + 44253 + ], + "FvmAddressHelper": [ + 41482 + ], + "GatewayActorModifiers": [ + 42504 + ], + "GatewayManagerFacet": [ + 39252 + ], + "LibGateway": [ + 42262 + ], + "LibVoting": [ + 43438 + ], + "NotEmptySubnetCircSupply": [ + 38198 + ], + "NotEnoughFunds": [ + 38206 + ], + "NotEnoughFundsToRelease": [ + 38208 + ], + "NotRegisteredSubnet": [ + 38220 + ], + "ReentrancyGuard": [ + 42567 + ], + "Status": [ + 38137 + ], + "Subnet": [ + 44303 + ], + "SubnetID": [ + 44279 + ], + "SubnetIDHelper": [ + 44131 + ], + "ValidatorWeightIsZero": [ + 38232 + ], + "ValidatorsAndWeightsLengthMismatch": [ + 38234 + ] + }, + "nodeType": "SourceUnit", + "src": "39:7580:39", + "nodes": [ + { + "id": 38678, + "nodeType": "PragmaDirective", + "src": "39:23:39", + "nodes": [], + "literals": [ + "solidity", + "0.8", + ".19" + ] + }, + { + "id": 38680, + "nodeType": "ImportDirective", + "src": "64:72:39", + "nodes": [], + "absolutePath": "src/lib/LibGatewayActorStorage.sol", + "file": "../lib/LibGatewayActorStorage.sol", + "nameLocation": "-1:-1:-1", + "scope": 39253, + "sourceUnit": 42505, + "symbolAliases": [ + { + "foreign": { + "id": 38679, + "name": "GatewayActorModifiers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42504, + "src": "72:21:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 38682, + "nodeType": "ImportDirective", + "src": "137:51:39", + "nodes": [], + "absolutePath": "src/structs/Checkpoint.sol", + "file": "../structs/Checkpoint.sol", + "nameLocation": "-1:-1:-1", + "scope": 39253, + "sourceUnit": 44192, + "symbolAliases": [ + { + "foreign": { + "id": 38681, + "name": "CrossMsg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44176, + "src": "145:8:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 38684, + "nodeType": "ImportDirective", + "src": "189:43:39", + "nodes": [], + "absolutePath": "src/enums/Status.sol", + "file": "../enums/Status.sol", + "nameLocation": "-1:-1:-1", + "scope": 39253, + "sourceUnit": 38138, + "symbolAliases": [ + { + "foreign": { + "id": 38683, + "name": "Status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38137, + "src": "197:6:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 38686, + "nodeType": "ImportDirective", + "src": "233:53:39", + "nodes": [], + "absolutePath": "src/structs/FvmAddress.sol", + "file": "../structs/FvmAddress.sol", + "nameLocation": "-1:-1:-1", + "scope": 39253, + "sourceUnit": 44261, + "symbolAliases": [ + { + "foreign": { + "id": 38685, + "name": "FvmAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44253, + "src": "241:10:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 38689, + "nodeType": "ImportDirective", + "src": "287:55:39", + "nodes": [], + "absolutePath": "src/structs/Subnet.sol", + "file": "../structs/Subnet.sol", + "nameLocation": "-1:-1:-1", + "scope": 39253, + "sourceUnit": 44311, + "symbolAliases": [ + { + "foreign": { + "id": 38687, + "name": "SubnetID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44279, + "src": "295:8:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 38688, + "name": "Subnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44303, + "src": "305:6:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 38699, + "nodeType": "ImportDirective", + "src": "343:250:39", + "nodes": [], + "absolutePath": "src/errors/IPCErrors.sol", + "file": "../errors/IPCErrors.sol", + "nameLocation": "-1:-1:-1", + "scope": 39253, + "sourceUnit": 38239, + "symbolAliases": [ + { + "foreign": { + "id": 38690, + "name": "AlreadyInitialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38148, + "src": "351:18:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 38691, + "name": "AlreadyRegisteredSubnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38150, + "src": "371:23:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 38692, + "name": "CannotReleaseZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38154, + "src": "396:17:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 38693, + "name": "NotEnoughFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38206, + "src": "415:14:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 38694, + "name": "NotEnoughFundsToRelease", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38208, + "src": "431:23:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 38695, + "name": "NotEmptySubnetCircSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38198, + "src": "456:24:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 38696, + "name": "NotRegisteredSubnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38220, + "src": "482:19:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 38697, + "name": "ValidatorsAndWeightsLengthMismatch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38234, + "src": "503:34:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 38698, + "name": "ValidatorWeightIsZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38232, + "src": "539:21:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 38701, + "nodeType": "ImportDirective", + "src": "594:49:39", + "nodes": [], + "absolutePath": "src/lib/LibGateway.sol", + "file": "../lib/LibGateway.sol", + "nameLocation": "-1:-1:-1", + "scope": 39253, + "sourceUnit": 42263, + "symbolAliases": [ + { + "foreign": { + "id": 38700, + "name": "LibGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42262, + "src": "602:10:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 38703, + "nodeType": "ImportDirective", + "src": "644:61:39", + "nodes": [], + "absolutePath": "src/lib/FvmAddressHelper.sol", + "file": "../lib/FvmAddressHelper.sol", + "nameLocation": "-1:-1:-1", + "scope": 39253, + "sourceUnit": 41483, + "symbolAliases": [ + { + "foreign": { + "id": 38702, + "name": "FvmAddressHelper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41482, + "src": "652:16:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 38705, + "nodeType": "ImportDirective", + "src": "706:57:39", + "nodes": [], + "absolutePath": "src/lib/SubnetIDHelper.sol", + "file": "../lib/SubnetIDHelper.sol", + "nameLocation": "-1:-1:-1", + "scope": 39253, + "sourceUnit": 44132, + "symbolAliases": [ + { + "foreign": { + "id": 38704, + "name": "SubnetIDHelper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44131, + "src": "714:14:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 38707, + "nodeType": "ImportDirective", + "src": "764:57:39", + "nodes": [], + "absolutePath": "src/lib/CrossMsgHelper.sol", + "file": "../lib/CrossMsgHelper.sol", + "nameLocation": "-1:-1:-1", + "scope": 39253, + "sourceUnit": 41104, + "symbolAliases": [ + { + "foreign": { + "id": 38706, + "name": "CrossMsgHelper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41103, + "src": "772:14:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 38709, + "nodeType": "ImportDirective", + "src": "822:56:39", + "nodes": [], + "absolutePath": "lib/fevmate/contracts/utils/FilAddress.sol", + "file": "fevmate/utils/FilAddress.sol", + "nameLocation": "-1:-1:-1", + "scope": 39253, + "sourceUnit": 299, + "symbolAliases": [ + { + "foreign": { + "id": 38708, + "name": "FilAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 298, + "src": "830:10:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 38711, + "nodeType": "ImportDirective", + "src": "879:62:39", + "nodes": [], + "absolutePath": "src/lib/LibReentrancyGuard.sol", + "file": "../lib/LibReentrancyGuard.sol", + "nameLocation": "-1:-1:-1", + "scope": 39253, + "sourceUnit": 42568, + "symbolAliases": [ + { + "foreign": { + "id": 38710, + "name": "ReentrancyGuard", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42567, + "src": "887:15:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 38713, + "nodeType": "ImportDirective", + "src": "942:47:39", + "nodes": [], + "absolutePath": "src/lib/LibVoting.sol", + "file": "../lib/LibVoting.sol", + "nameLocation": "-1:-1:-1", + "scope": 39253, + "sourceUnit": 43439, + "symbolAliases": [ + { + "foreign": { + "id": 38712, + "name": "LibVoting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43438, + "src": "950:9:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 39252, + "nodeType": "ContractDefinition", + "src": "991:6627:39", + "nodes": [ + { + "id": 38720, + "nodeType": "UsingForDirective", + "src": "1068:37:39", + "nodes": [], + "global": false, + "libraryName": { + "id": 38718, + "name": "FilAddress", + "nameLocations": [ + "1074:10:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 298, + "src": "1074:10:39" + }, + "typeName": { + "id": 38719, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1089:15:39", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + }, + { + "id": 38724, + "nodeType": "UsingForDirective", + "src": "1110:34:39", + "nodes": [], + "global": false, + "libraryName": { + "id": 38721, + "name": "SubnetIDHelper", + "nameLocations": [ + "1116:14:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44131, + "src": "1116:14:39" + }, + "typeName": { + "id": 38723, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38722, + "name": "SubnetID", + "nameLocations": [ + "1135:8:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44279, + "src": "1135:8:39" + }, + "referencedDeclaration": 44279, + "src": "1135:8:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeString": "struct SubnetID" + } + } + }, + { + "id": 38728, + "nodeType": "UsingForDirective", + "src": "1149:38:39", + "nodes": [], + "global": false, + "libraryName": { + "id": 38725, + "name": "FvmAddressHelper", + "nameLocations": [ + "1155:16:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 41482, + "src": "1155:16:39" + }, + "typeName": { + "id": 38727, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38726, + "name": "FvmAddress", + "nameLocations": [ + "1176:10:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44253, + "src": "1176:10:39" + }, + "referencedDeclaration": 44253, + "src": "1176:10:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_FvmAddress_$44253_storage_ptr", + "typeString": "struct FvmAddress" + } + } + }, + { + "id": 38756, + "nodeType": "FunctionDefinition", + "src": "1307:240:39", + "nodes": [], + "body": { + "id": 38755, + "nodeType": "Block", + "src": "1379:168:39", + "nodes": [], + "statements": [ + { + "condition": { + "expression": { + "id": 38736, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "1393:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 38737, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1395:11:39", + "memberName": "initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 42380, + "src": "1393:13:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 38742, + "nodeType": "IfStatement", + "src": "1389:71:39", + "trueBody": { + "id": 38741, + "nodeType": "Block", + "src": "1408:52:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 38738, + "name": "AlreadyInitialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38148, + "src": "1429:18:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 38739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1429:20:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38740, + "nodeType": "RevertStatement", + "src": "1422:27:39" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 38746, + "name": "genesisEpoch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38731, + "src": "1497:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "id": 38743, + "name": "LibVoting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43438, + "src": "1470:9:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibVoting_$43438_$", + "typeString": "type(library LibVoting)" + } + }, + "id": 38745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1480:16:39", + "memberName": "initGenesisEpoch", + "nodeType": "MemberAccess", + "referencedDeclaration": 42997, + "src": "1470:26:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 38747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1470:40:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38748, + "nodeType": "ExpressionStatement", + "src": "1470:40:39" + }, + { + "expression": { + "id": 38753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 38749, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "1520:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 38751, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "1522:11:39", + "memberName": "initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 42380, + "src": "1520:13:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 38752, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1536:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1520:20:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 38754, + "nodeType": "ExpressionStatement", + "src": "1520:20:39" + } + ] + }, + "documentation": { + "id": 38729, + "nodeType": "StructuredDocumentation", + "src": "1193:109:39", + "text": "@notice initialize the contract with the genesis epoch\n @param genesisEpoch - genesis epoch to set" + }, + "functionSelector": "13f35388", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 38734, + "kind": "modifierInvocation", + "modifierName": { + "id": 38733, + "name": "systemActorOnly", + "nameLocations": [ + "1363:15:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 42496, + "src": "1363:15:39" + }, + "nodeType": "ModifierInvocation", + "src": "1363:15:39" + } + ], + "name": "initGenesisEpoch", + "nameLocation": "1316:16:39", + "parameters": { + "id": 38732, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38731, + "mutability": "mutable", + "name": "genesisEpoch", + "nameLocation": "1340:12:39", + "nodeType": "VariableDeclaration", + "scope": 38756, + "src": "1333:19:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 38730, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1333:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "1332:21:39" + }, + "returnParameters": { + "id": 38735, + "nodeType": "ParameterList", + "parameters": [], + "src": "1379:0:39" + }, + "scope": 39252, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 38830, + "nodeType": "FunctionDefinition", + "src": "1658:551:39", + "nodes": [], + "body": { + "id": 38829, + "nodeType": "Block", + "src": "1695:514:39", + "nodes": [], + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 38764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 38760, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1709:3:39", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 38761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1713:5:39", + "memberName": "value", + "nodeType": "MemberAccess", + "src": "1709:9:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 38762, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "1721:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 38763, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1723:8:39", + "memberName": "minStake", + "nodeType": "MemberAccess", + "referencedDeclaration": 42313, + "src": "1721:10:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1709:22:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 38769, + "nodeType": "IfStatement", + "src": "1705:76:39", + "trueBody": { + "id": 38768, + "nodeType": "Block", + "src": "1733:48:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 38765, + "name": "NotEnoughFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38206, + "src": "1754:14:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 38766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1754:16:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38767, + "nodeType": "RevertStatement", + "src": "1747:23:39" + } + ] + } + }, + { + "assignments": [ + 38772 + ], + "declarations": [ + { + "constant": false, + "id": 38772, + "mutability": "mutable", + "name": "subnetId", + "nameLocation": "1807:8:39", + "nodeType": "VariableDeclaration", + "scope": 38829, + "src": "1791:24:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID" + }, + "typeName": { + "id": 38771, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38770, + "name": "SubnetID", + "nameLocations": [ + "1791:8:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44279, + "src": "1791:8:39" + }, + "referencedDeclaration": 44279, + "src": "1791:8:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeString": "struct SubnetID" + } + }, + "visibility": "internal" + } + ], + "id": 38779, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 38776, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1847:3:39", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 38777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1851:6:39", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1847:10:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "expression": { + "id": 38773, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "1818:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 38774, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1820:11:39", + "memberName": "networkName", + "nodeType": "MemberAccess", + "referencedDeclaration": 42307, + "src": "1818:13:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeString": "struct SubnetID storage ref" + } + }, + "id": 38775, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1832:14:39", + "memberName": "createSubnetId", + "nodeType": "MemberAccess", + "referencedDeclaration": 43778, + "src": "1818:28:39", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$44279_memory_ptr_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeString": "function (struct SubnetID memory,address) pure returns (struct SubnetID memory)" + } + }, + "id": 38778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1818:40:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1791:67:39" + }, + { + "assignments": [ + 38781, + 38784 + ], + "declarations": [ + { + "constant": false, + "id": 38781, + "mutability": "mutable", + "name": "registered", + "nameLocation": "1875:10:39", + "nodeType": "VariableDeclaration", + "scope": 38829, + "src": "1870:15:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 38780, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1870:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 38784, + "mutability": "mutable", + "name": "subnet", + "nameLocation": "1902:6:39", + "nodeType": "VariableDeclaration", + "scope": 38829, + "src": "1887:21:39", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet" + }, + "typeName": { + "id": 38783, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38782, + "name": "Subnet", + "nameLocations": [ + "1887:6:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44303, + "src": "1887:6:39" + }, + "referencedDeclaration": 44303, + "src": "1887:6:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet" + } + }, + "visibility": "internal" + } + ], + "id": 38789, + "initialValue": { + "arguments": [ + { + "id": 38787, + "name": "subnetId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38772, + "src": "1933:8:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + } + ], + "expression": { + "id": 38785, + "name": "LibGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42262, + "src": "1912:10:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeString": "type(library LibGateway)" + } + }, + "id": 38786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1923:9:39", + "memberName": "getSubnet", + "nodeType": "MemberAccess", + "referencedDeclaration": 42261, + "src": "1912:20:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeString": "function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)" + } + }, + "id": 38788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1912:30:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeString": "tuple(bool,struct Subnet storage pointer)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1869:73:39" + }, + { + "condition": { + "id": 38790, + "name": "registered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38781, + "src": "1957:10:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 38795, + "nodeType": "IfStatement", + "src": "1953:73:39", + "trueBody": { + "id": 38794, + "nodeType": "Block", + "src": "1969:57:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 38791, + "name": "AlreadyRegisteredSubnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38150, + "src": "1990:23:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 38792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1990:25:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38793, + "nodeType": "RevertStatement", + "src": "1983:32:39" + } + ] + } + }, + { + "expression": { + "id": 38800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 38796, + "name": "subnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38784, + "src": "2036:6:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet storage pointer" + } + }, + "id": 38798, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "2043:2:39", + "memberName": "id", + "nodeType": "MemberAccess", + "referencedDeclaration": 44295, + "src": "2036:9:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeString": "struct SubnetID storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 38799, + "name": "subnetId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38772, + "src": "2048:8:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + } + }, + "src": "2036:20:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeString": "struct SubnetID storage ref" + } + }, + "id": 38801, + "nodeType": "ExpressionStatement", + "src": "2036:20:39" + }, + { + "expression": { + "id": 38807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 38802, + "name": "subnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38784, + "src": "2066:6:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet storage pointer" + } + }, + "id": 38804, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "2073:5:39", + "memberName": "stake", + "nodeType": "MemberAccess", + "referencedDeclaration": 44288, + "src": "2066:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 38805, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2081:3:39", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 38806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2085:5:39", + "memberName": "value", + "nodeType": "MemberAccess", + "src": "2081:9:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2066:24:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 38808, + "nodeType": "ExpressionStatement", + "src": "2066:24:39" + }, + { + "expression": { + "id": 38814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 38809, + "name": "subnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38784, + "src": "2100:6:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet storage pointer" + } + }, + "id": 38811, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "2107:6:39", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 44282, + "src": "2100:13:39", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 38812, + "name": "Status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38137, + "src": "2116:6:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Status_$38137_$", + "typeString": "type(enum Status)" + } + }, + "id": 38813, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2123:6:39", + "memberName": "Active", + "nodeType": "MemberAccess", + "referencedDeclaration": 38132, + "src": "2116:13:39", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "src": "2100:29:39", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "id": 38815, + "nodeType": "ExpressionStatement", + "src": "2100:29:39" + }, + { + "expression": { + "id": 38821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 38816, + "name": "subnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38784, + "src": "2139:6:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet storage pointer" + } + }, + "id": 38818, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "2146:12:39", + "memberName": "genesisEpoch", + "nodeType": "MemberAccess", + "referencedDeclaration": 44290, + "src": "2139:19:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 38819, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "2161:5:39", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 38820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2167:6:39", + "memberName": "number", + "nodeType": "MemberAccess", + "src": "2161:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2139:34:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 38822, + "nodeType": "ExpressionStatement", + "src": "2139:34:39" + }, + { + "expression": { + "id": 38827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 38823, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "2183:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 38825, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "2185:12:39", + "memberName": "totalSubnets", + "nodeType": "MemberAccess", + "referencedDeclaration": 42310, + "src": "2183:14:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 38826, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2201:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2183:19:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 38828, + "nodeType": "ExpressionStatement", + "src": "2183:19:39" + } + ] + }, + "documentation": { + "id": 38757, + "nodeType": "StructuredDocumentation", + "src": "1553:100:39", + "text": "@notice register a subnet in the gateway. called by a subnet when it reaches the threshold stake" + }, + "functionSelector": "1aa3a008", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "register", + "nameLocation": "1667:8:39", + "parameters": { + "id": 38758, + "nodeType": "ParameterList", + "parameters": [], + "src": "1675:2:39" + }, + "returnParameters": { + "id": 38759, + "nodeType": "ParameterList", + "parameters": [], + "src": "1695:0:39" + }, + "scope": 39252, + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "id": 38890, + "nodeType": "FunctionDefinition", + "src": "2280:489:39", + "nodes": [], + "body": { + "id": 38889, + "nodeType": "Block", + "src": "2317:452:39", + "nodes": [], + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 38837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 38834, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2331:3:39", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 38835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2335:5:39", + "memberName": "value", + "nodeType": "MemberAccess", + "src": "2331:9:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "30", + "id": 38836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2344:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2331:14:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 38842, + "nodeType": "IfStatement", + "src": "2327:68:39", + "trueBody": { + "id": 38841, + "nodeType": "Block", + "src": "2347:48:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 38838, + "name": "NotEnoughFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38206, + "src": "2368:14:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 38839, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2368:16:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38840, + "nodeType": "RevertStatement", + "src": "2361:23:39" + } + ] + } + }, + { + "assignments": [ + 38844, + 38847 + ], + "declarations": [ + { + "constant": false, + "id": 38844, + "mutability": "mutable", + "name": "registered", + "nameLocation": "2411:10:39", + "nodeType": "VariableDeclaration", + "scope": 38889, + "src": "2406:15:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 38843, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2406:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 38847, + "mutability": "mutable", + "name": "subnet", + "nameLocation": "2438:6:39", + "nodeType": "VariableDeclaration", + "scope": 38889, + "src": "2423:21:39", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet" + }, + "typeName": { + "id": 38846, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38845, + "name": "Subnet", + "nameLocations": [ + "2423:6:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44303, + "src": "2423:6:39" + }, + "referencedDeclaration": 44303, + "src": "2423:6:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet" + } + }, + "visibility": "internal" + } + ], + "id": 38853, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 38850, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2469:3:39", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 38851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2473:6:39", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2469:10:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 38848, + "name": "LibGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42262, + "src": "2448:10:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeString": "type(library LibGateway)" + } + }, + "id": 38849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2459:9:39", + "memberName": "getSubnet", + "nodeType": "MemberAccess", + "referencedDeclaration": 42224, + "src": "2448:20:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeString": "function (address) view returns (bool,struct Subnet storage pointer)" + } + }, + "id": 38852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2448:32:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeString": "tuple(bool,struct Subnet storage pointer)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2405:75:39" + }, + { + "condition": { + "id": 38855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2495:11:39", + "subExpression": { + "id": 38854, + "name": "registered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38844, + "src": "2496:10:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 38860, + "nodeType": "IfStatement", + "src": "2491:70:39", + "trueBody": { + "id": 38859, + "nodeType": "Block", + "src": "2508:53:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 38856, + "name": "NotRegisteredSubnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38220, + "src": "2529:19:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 38857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2529:21:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38858, + "nodeType": "RevertStatement", + "src": "2522:28:39" + } + ] + } + }, + { + "expression": { + "id": 38866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 38861, + "name": "subnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38847, + "src": "2571:6:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet storage pointer" + } + }, + "id": 38863, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "2578:5:39", + "memberName": "stake", + "nodeType": "MemberAccess", + "referencedDeclaration": 44288, + "src": "2571:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "expression": { + "id": 38864, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2587:3:39", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 38865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2591:5:39", + "memberName": "value", + "nodeType": "MemberAccess", + "src": "2587:9:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2571:25:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 38867, + "nodeType": "ExpressionStatement", + "src": "2571:25:39" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + }, + "id": 38872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 38868, + "name": "subnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38847, + "src": "2611:6:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet storage pointer" + } + }, + "id": 38869, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2618:6:39", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 44282, + "src": "2611:13:39", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 38870, + "name": "Status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38137, + "src": "2628:6:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Status_$38137_$", + "typeString": "type(enum Status)" + } + }, + "id": 38871, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2635:8:39", + "memberName": "Inactive", + "nodeType": "MemberAccess", + "referencedDeclaration": 38133, + "src": "2628:15:39", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "src": "2611:32:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 38888, + "nodeType": "IfStatement", + "src": "2607:156:39", + "trueBody": { + "id": 38887, + "nodeType": "Block", + "src": "2645:118:39", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 38877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 38873, + "name": "subnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38847, + "src": "2663:6:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet storage pointer" + } + }, + "id": 38874, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2670:5:39", + "memberName": "stake", + "nodeType": "MemberAccess", + "referencedDeclaration": 44288, + "src": "2663:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "expression": { + "id": 38875, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "2679:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 38876, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2681:8:39", + "memberName": "minStake", + "nodeType": "MemberAccess", + "referencedDeclaration": 42313, + "src": "2679:10:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2663:26:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 38886, + "nodeType": "IfStatement", + "src": "2659:94:39", + "trueBody": { + "id": 38885, + "nodeType": "Block", + "src": "2691:62:39", + "statements": [ + { + "expression": { + "id": 38883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 38878, + "name": "subnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38847, + "src": "2709:6:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet storage pointer" + } + }, + "id": 38880, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "2716:6:39", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 44282, + "src": "2709:13:39", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 38881, + "name": "Status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38137, + "src": "2725:6:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Status_$38137_$", + "typeString": "type(enum Status)" + } + }, + "id": 38882, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2732:6:39", + "memberName": "Active", + "nodeType": "MemberAccess", + "referencedDeclaration": 38132, + "src": "2725:13:39", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "src": "2709:29:39", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "id": 38884, + "nodeType": "ExpressionStatement", + "src": "2709:29:39" + } + ] + } + } + ] + } + } + ] + }, + "documentation": { + "id": 38831, + "nodeType": "StructuredDocumentation", + "src": "2215:60:39", + "text": "@notice addStake - add collateral for an existing subnet" + }, + "functionSelector": "5a627dbc", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addStake", + "nameLocation": "2289:8:39", + "parameters": { + "id": 38832, + "nodeType": "ParameterList", + "parameters": [], + "src": "2297:2:39" + }, + "returnParameters": { + "id": 38833, + "nodeType": "ParameterList", + "parameters": [], + "src": "2317:0:39" + }, + "scope": 39252, + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "id": 38965, + "nodeType": "FunctionDefinition", + "src": "2833:591:39", + "nodes": [], + "body": { + "id": 38964, + "nodeType": "Block", + "src": "2893:531:39", + "nodes": [], + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 38900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 38898, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38893, + "src": "2907:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 38899, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2917:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2907:11:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 38905, + "nodeType": "IfStatement", + "src": "2903:68:39", + "trueBody": { + "id": 38904, + "nodeType": "Block", + "src": "2920:51:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 38901, + "name": "CannotReleaseZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38154, + "src": "2941:17:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 38902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2941:19:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38903, + "nodeType": "RevertStatement", + "src": "2934:26:39" + } + ] + } + }, + { + "assignments": [ + 38907, + 38910 + ], + "declarations": [ + { + "constant": false, + "id": 38907, + "mutability": "mutable", + "name": "registered", + "nameLocation": "2987:10:39", + "nodeType": "VariableDeclaration", + "scope": 38964, + "src": "2982:15:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 38906, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2982:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 38910, + "mutability": "mutable", + "name": "subnet", + "nameLocation": "3014:6:39", + "nodeType": "VariableDeclaration", + "scope": 38964, + "src": "2999:21:39", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet" + }, + "typeName": { + "id": 38909, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38908, + "name": "Subnet", + "nameLocations": [ + "2999:6:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44303, + "src": "2999:6:39" + }, + "referencedDeclaration": 44303, + "src": "2999:6:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet" + } + }, + "visibility": "internal" + } + ], + "id": 38916, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 38913, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3045:3:39", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 38914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3049:6:39", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3045:10:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 38911, + "name": "LibGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42262, + "src": "3024:10:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeString": "type(library LibGateway)" + } + }, + "id": 38912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3035:9:39", + "memberName": "getSubnet", + "nodeType": "MemberAccess", + "referencedDeclaration": 42224, + "src": "3024:20:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeString": "function (address) view returns (bool,struct Subnet storage pointer)" + } + }, + "id": 38915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3024:32:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeString": "tuple(bool,struct Subnet storage pointer)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2981:75:39" + }, + { + "condition": { + "id": 38918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3071:11:39", + "subExpression": { + "id": 38917, + "name": "registered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38907, + "src": "3072:10:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 38923, + "nodeType": "IfStatement", + "src": "3067:70:39", + "trueBody": { + "id": 38922, + "nodeType": "Block", + "src": "3084:53:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 38919, + "name": "NotRegisteredSubnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38220, + "src": "3105:19:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 38920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3105:21:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38921, + "nodeType": "RevertStatement", + "src": "3098:28:39" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 38927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 38924, + "name": "subnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38910, + "src": "3150:6:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet storage pointer" + } + }, + "id": 38925, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3157:5:39", + "memberName": "stake", + "nodeType": "MemberAccess", + "referencedDeclaration": 44288, + "src": "3150:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 38926, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38893, + "src": "3165:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3150:21:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 38932, + "nodeType": "IfStatement", + "src": "3146:84:39", + "trueBody": { + "id": 38931, + "nodeType": "Block", + "src": "3173:57:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 38928, + "name": "NotEnoughFundsToRelease", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38208, + "src": "3194:23:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 38929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3194:25:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38930, + "nodeType": "RevertStatement", + "src": "3187:32:39" + } + ] + } + }, + { + "expression": { + "id": 38937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 38933, + "name": "subnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38910, + "src": "3240:6:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet storage pointer" + } + }, + "id": 38935, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3247:5:39", + "memberName": "stake", + "nodeType": "MemberAccess", + "referencedDeclaration": 44288, + "src": "3240:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 38936, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38893, + "src": "3256:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3240:22:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 38938, + "nodeType": "ExpressionStatement", + "src": "3240:22:39" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 38943, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 38939, + "name": "subnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38910, + "src": "3277:6:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet storage pointer" + } + }, + "id": 38940, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3284:5:39", + "memberName": "stake", + "nodeType": "MemberAccess", + "referencedDeclaration": 44288, + "src": "3277:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 38941, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "3292:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 38942, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3294:8:39", + "memberName": "minStake", + "nodeType": "MemberAccess", + "referencedDeclaration": 42313, + "src": "3292:10:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3277:25:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 38952, + "nodeType": "IfStatement", + "src": "3273:87:39", + "trueBody": { + "id": 38951, + "nodeType": "Block", + "src": "3304:56:39", + "statements": [ + { + "expression": { + "id": 38949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 38944, + "name": "subnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38910, + "src": "3318:6:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet storage pointer" + } + }, + "id": 38946, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3325:6:39", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 44282, + "src": "3318:13:39", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 38947, + "name": "Status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38137, + "src": "3334:6:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Status_$38137_$", + "typeString": "type(enum Status)" + } + }, + "id": 38948, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3341:8:39", + "memberName": "Inactive", + "nodeType": "MemberAccess", + "referencedDeclaration": 38133, + "src": "3334:15:39", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "src": "3318:31:39", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "id": 38950, + "nodeType": "ExpressionStatement", + "src": "3318:31:39" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 38961, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38893, + "src": "3410:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 38955, + "name": "subnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38910, + "src": "3378:6:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet storage pointer" + } + }, + "id": 38956, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3385:2:39", + "memberName": "id", + "nodeType": "MemberAccess", + "referencedDeclaration": 44295, + "src": "3378:9:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeString": "struct SubnetID storage ref" + } + }, + "id": 38957, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3388:8:39", + "memberName": "getActor", + "nodeType": "MemberAccess", + "referencedDeclaration": 43808, + "src": "3378:18:39", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeString": "function (struct SubnetID memory) pure returns (address)" + } + }, + "id": 38958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3378:20:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 38954, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3370:8:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 38953, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3370:8:39", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 38959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3370:29:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 38960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3400:9:39", + "memberName": "sendValue", + "nodeType": "MemberAccess", + "referencedDeclaration": 290, + "src": "3370:39:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$", + "typeString": "function (address payable,uint256)" + } + }, + "id": 38962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3370:47:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38963, + "nodeType": "ExpressionStatement", + "src": "3370:47:39" + } + ] + }, + "documentation": { + "id": 38891, + "nodeType": "StructuredDocumentation", + "src": "2775:53:39", + "text": "@notice release collateral for an existing subnet" + }, + "functionSelector": "45f54485", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 38896, + "kind": "modifierInvocation", + "modifierName": { + "id": 38895, + "name": "nonReentrant", + "nameLocations": [ + "2880:12:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 42553, + "src": "2880:12:39" + }, + "nodeType": "ModifierInvocation", + "src": "2880:12:39" + } + ], + "name": "releaseStake", + "nameLocation": "2842:12:39", + "parameters": { + "id": 38894, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38893, + "mutability": "mutable", + "name": "amount", + "nameLocation": "2863:6:39", + "nodeType": "VariableDeclaration", + "scope": 38965, + "src": "2855:14:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 38892, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2855:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2854:16:39" + }, + "returnParameters": { + "id": 38897, + "nodeType": "ParameterList", + "parameters": [], + "src": "2893:0:39" + }, + "scope": 39252, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 39010, + "nodeType": "FunctionDefinition", + "src": "3430:369:39", + "nodes": [], + "body": { + "id": 39009, + "nodeType": "Block", + "src": "3492:307:39", + "nodes": [], + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 38974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 38972, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38967, + "src": "3506:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 38973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3516:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3506:11:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 38979, + "nodeType": "IfStatement", + "src": "3502:68:39", + "trueBody": { + "id": 38978, + "nodeType": "Block", + "src": "3519:51:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 38975, + "name": "CannotReleaseZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38154, + "src": "3540:17:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 38976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3540:19:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38977, + "nodeType": "RevertStatement", + "src": "3533:26:39" + } + ] + } + }, + { + "assignments": [ + 38981, + 38984 + ], + "declarations": [ + { + "constant": false, + "id": 38981, + "mutability": "mutable", + "name": "registered", + "nameLocation": "3586:10:39", + "nodeType": "VariableDeclaration", + "scope": 39009, + "src": "3581:15:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 38980, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3581:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 38984, + "mutability": "mutable", + "name": "subnet", + "nameLocation": "3613:6:39", + "nodeType": "VariableDeclaration", + "scope": 39009, + "src": "3598:21:39", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet" + }, + "typeName": { + "id": 38983, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38982, + "name": "Subnet", + "nameLocations": [ + "3598:6:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44303, + "src": "3598:6:39" + }, + "referencedDeclaration": 44303, + "src": "3598:6:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet" + } + }, + "visibility": "internal" + } + ], + "id": 38990, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 38987, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3644:3:39", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 38988, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3648:6:39", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3644:10:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 38985, + "name": "LibGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42262, + "src": "3623:10:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeString": "type(library LibGateway)" + } + }, + "id": 38986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3634:9:39", + "memberName": "getSubnet", + "nodeType": "MemberAccess", + "referencedDeclaration": 42224, + "src": "3623:20:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeString": "function (address) view returns (bool,struct Subnet storage pointer)" + } + }, + "id": 38989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3623:32:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeString": "tuple(bool,struct Subnet storage pointer)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3580:75:39" + }, + { + "condition": { + "id": 38992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3669:11:39", + "subExpression": { + "id": 38991, + "name": "registered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38981, + "src": "3670:10:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 38997, + "nodeType": "IfStatement", + "src": "3665:70:39", + "trueBody": { + "id": 38996, + "nodeType": "Block", + "src": "3682:53:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 38993, + "name": "NotRegisteredSubnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38220, + "src": "3703:19:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 38994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3703:21:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38995, + "nodeType": "RevertStatement", + "src": "3696:28:39" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 39006, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38967, + "src": "3785:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 39000, + "name": "subnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38984, + "src": "3753:6:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet storage pointer" + } + }, + "id": 39001, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3760:2:39", + "memberName": "id", + "nodeType": "MemberAccess", + "referencedDeclaration": 44295, + "src": "3753:9:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeString": "struct SubnetID storage ref" + } + }, + "id": 39002, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3763:8:39", + "memberName": "getActor", + "nodeType": "MemberAccess", + "referencedDeclaration": 43808, + "src": "3753:18:39", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeString": "function (struct SubnetID memory) pure returns (address)" + } + }, + "id": 39003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3753:20:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 38999, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3745:8:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 38998, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3745:8:39", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 39004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3745:29:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 39005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3775:9:39", + "memberName": "sendValue", + "nodeType": "MemberAccess", + "referencedDeclaration": 290, + "src": "3745:39:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$", + "typeString": "function (address payable,uint256)" + } + }, + "id": 39007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3745:47:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39008, + "nodeType": "ExpressionStatement", + "src": "3745:47:39" + } + ] + }, + "functionSelector": "f8703bb8", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 38970, + "kind": "modifierInvocation", + "modifierName": { + "id": 38969, + "name": "nonReentrant", + "nameLocations": [ + "3479:12:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 42553, + "src": "3479:12:39" + }, + "nodeType": "ModifierInvocation", + "src": "3479:12:39" + } + ], + "name": "releaseRewards", + "nameLocation": "3439:14:39", + "parameters": { + "id": 38968, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38967, + "mutability": "mutable", + "name": "amount", + "nameLocation": "3462:6:39", + "nodeType": "VariableDeclaration", + "scope": 39010, + "src": "3454:14:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 38966, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3454:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3453:16:39" + }, + "returnParameters": { + "id": 38971, + "nodeType": "ParameterList", + "parameters": [], + "src": "3492:0:39" + }, + "scope": 39252, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 39071, + "nodeType": "FunctionDefinition", + "src": "3873:454:39", + "nodes": [], + "body": { + "id": 39070, + "nodeType": "Block", + "src": "3898:429:39", + "nodes": [], + "statements": [ + { + "assignments": [ + 39015, + 39018 + ], + "declarations": [ + { + "constant": false, + "id": 39015, + "mutability": "mutable", + "name": "registered", + "nameLocation": "3914:10:39", + "nodeType": "VariableDeclaration", + "scope": 39070, + "src": "3909:15:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 39014, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3909:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 39018, + "mutability": "mutable", + "name": "subnet", + "nameLocation": "3941:6:39", + "nodeType": "VariableDeclaration", + "scope": 39070, + "src": "3926:21:39", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet" + }, + "typeName": { + "id": 39017, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39016, + "name": "Subnet", + "nameLocations": [ + "3926:6:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44303, + "src": "3926:6:39" + }, + "referencedDeclaration": 44303, + "src": "3926:6:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet" + } + }, + "visibility": "internal" + } + ], + "id": 39024, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 39021, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3972:3:39", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 39022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3976:6:39", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3972:10:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 39019, + "name": "LibGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42262, + "src": "3951:10:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeString": "type(library LibGateway)" + } + }, + "id": 39020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3962:9:39", + "memberName": "getSubnet", + "nodeType": "MemberAccess", + "referencedDeclaration": 42224, + "src": "3951:20:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeString": "function (address) view returns (bool,struct Subnet storage pointer)" + } + }, + "id": 39023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3951:32:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeString": "tuple(bool,struct Subnet storage pointer)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3908:75:39" + }, + { + "condition": { + "id": 39026, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3998:11:39", + "subExpression": { + "id": 39025, + "name": "registered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39015, + "src": "3999:10:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39031, + "nodeType": "IfStatement", + "src": "3994:70:39", + "trueBody": { + "id": 39030, + "nodeType": "Block", + "src": "4011:53:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 39027, + "name": "NotRegisteredSubnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38220, + "src": "4032:19:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 39028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4032:21:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39029, + "nodeType": "RevertStatement", + "src": "4025:28:39" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 39035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 39032, + "name": "subnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39018, + "src": "4077:6:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet storage pointer" + } + }, + "id": 39033, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4084:10:39", + "memberName": "circSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 44292, + "src": "4077:17:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 39034, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4097:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4077:21:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39040, + "nodeType": "IfStatement", + "src": "4073:85:39", + "trueBody": { + "id": 39039, + "nodeType": "Block", + "src": "4100:58:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 39036, + "name": "NotEmptySubnetCircSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38198, + "src": "4121:24:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 39037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4121:26:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39038, + "nodeType": "RevertStatement", + "src": "4114:33:39" + } + ] + } + }, + { + "assignments": [ + 39042 + ], + "declarations": [ + { + "constant": false, + "id": 39042, + "mutability": "mutable", + "name": "stake", + "nameLocation": "4176:5:39", + "nodeType": "VariableDeclaration", + "scope": 39070, + "src": "4168:13:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 39041, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4168:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 39045, + "initialValue": { + "expression": { + "id": 39043, + "name": "subnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39018, + "src": "4184:6:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet storage pointer" + } + }, + "id": 39044, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4191:5:39", + "memberName": "stake", + "nodeType": "MemberAccess", + "referencedDeclaration": 44288, + "src": "4184:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4168:28:39" + }, + { + "expression": { + "id": 39050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 39046, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "4207:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 39048, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "4209:12:39", + "memberName": "totalSubnets", + "nodeType": "MemberAccess", + "referencedDeclaration": 42310, + "src": "4207:14:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "hexValue": "31", + "id": 39049, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4225:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4207:19:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 39051, + "nodeType": "ExpressionStatement", + "src": "4207:19:39" + }, + { + "expression": { + "id": 39059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "4237:36:39", + "subExpression": { + "baseExpression": { + "expression": { + "id": 39052, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "4244:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 39053, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4246:7:39", + "memberName": "subnets", + "nodeType": "MemberAccess", + "referencedDeclaration": 42319, + "src": "4244:9:39", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Subnet_$44303_storage_$", + "typeString": "mapping(bytes32 => struct Subnet storage ref)" + } + }, + "id": 39058, + "indexExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 39054, + "name": "subnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39018, + "src": "4254:6:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet storage pointer" + } + }, + "id": 39055, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4261:2:39", + "memberName": "id", + "nodeType": "MemberAccess", + "referencedDeclaration": 44295, + "src": "4254:9:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeString": "struct SubnetID storage ref" + } + }, + "id": 39056, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4264:6:39", + "memberName": "toHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 43703, + "src": "4254:16:39", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeString": "function (struct SubnetID memory) pure returns (bytes32)" + } + }, + "id": 39057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4254:18:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4244:29:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage", + "typeString": "struct Subnet storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39060, + "nodeType": "ExpressionStatement", + "src": "4237:36:39" + }, + { + "expression": { + "arguments": [ + { + "id": 39067, + "name": "stake", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39042, + "src": "4314:5:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "expression": { + "id": 39063, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4292:3:39", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 39064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4296:6:39", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4292:10:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 39062, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4284:8:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 39061, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4284:8:39", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 39065, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4284:19:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 39066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4304:9:39", + "memberName": "sendValue", + "nodeType": "MemberAccess", + "referencedDeclaration": 290, + "src": "4284:29:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$", + "typeString": "function (address payable,uint256)" + } + }, + "id": 39068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4284:36:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39069, + "nodeType": "ExpressionStatement", + "src": "4284:36:39" + } + ] + }, + "documentation": { + "id": 39011, + "nodeType": "StructuredDocumentation", + "src": "3805:63:39", + "text": "@notice kill an existing subnet. It's balance must be empty" + }, + "functionSelector": "41c0e1b5", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "kill", + "nameLocation": "3882:4:39", + "parameters": { + "id": 39012, + "nodeType": "ParameterList", + "parameters": [], + "src": "3886:2:39" + }, + "returnParameters": { + "id": 39013, + "nodeType": "ParameterList", + "parameters": [], + "src": "3898:0:39" + }, + "scope": 39252, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 39118, + "nodeType": "FunctionDefinition", + "src": "4592:387:39", + "nodes": [], + "body": { + "id": 39117, + "nodeType": "Block", + "src": "4695:284:39", + "nodes": [], + "statements": [ + { + "assignments": [ + 39087 + ], + "declarations": [ + { + "constant": false, + "id": 39087, + "mutability": "mutable", + "name": "crossMsg", + "nameLocation": "4721:8:39", + "nodeType": "VariableDeclaration", + "scope": 39117, + "src": "4705:24:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeString": "struct CrossMsg" + }, + "typeName": { + "id": 39086, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39085, + "name": "CrossMsg", + "nameLocations": [ + "4705:8:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44176, + "src": "4705:8:39" + }, + "referencedDeclaration": 44176, + "src": "4705:8:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeString": "struct CrossMsg" + } + }, + "visibility": "internal" + } + ], + "id": 39100, + "initialValue": { + "arguments": [ + { + "id": 39090, + "name": "subnetId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39075, + "src": "4761:8:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_calldata_ptr", + "typeString": "struct SubnetID calldata" + } + }, + { + "expression": { + "id": 39091, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4771:3:39", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 39092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4775:6:39", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4771:10:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 39093, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39078, + "src": "4783:2:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_FvmAddress_$44253_calldata_ptr", + "typeString": "struct FvmAddress calldata" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 39098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 39094, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4787:3:39", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 39095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4791:5:39", + "memberName": "value", + "nodeType": "MemberAccess", + "src": "4787:9:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "expression": { + "id": 39096, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "4799:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 39097, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4801:11:39", + "memberName": "crossMsgFee", + "nodeType": "MemberAccess", + "referencedDeclaration": 42346, + "src": "4799:13:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4787:25:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_SubnetID_$44279_calldata_ptr", + "typeString": "struct SubnetID calldata" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_struct$_FvmAddress_$44253_calldata_ptr", + "typeString": "struct FvmAddress calldata" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 39088, + "name": "CrossMsgHelper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41103, + "src": "4732:14:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_CrossMsgHelper_$41103_$", + "typeString": "type(library CrossMsgHelper)" + } + }, + "id": 39089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4747:13:39", + "memberName": "createFundMsg", + "nodeType": "MemberAccess", + "referencedDeclaration": 40890, + "src": "4732:28:39", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$_t_address_$_t_struct$_FvmAddress_$44253_memory_ptr_$_t_uint256_$returns$_t_struct$_CrossMsg_$44176_memory_ptr_$", + "typeString": "function (struct SubnetID memory,address,struct FvmAddress memory,uint256) pure returns (struct CrossMsg memory)" + } + }, + "id": 39099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4732:81:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeString": "struct CrossMsg memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4705:108:39" + }, + { + "expression": { + "arguments": [ + { + "id": 39104, + "name": "crossMsg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39087, + "src": "4888:8:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeString": "struct CrossMsg memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeString": "struct CrossMsg memory" + } + ], + "expression": { + "id": 39101, + "name": "LibGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42262, + "src": "4860:10:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeString": "type(library LibGateway)" + } + }, + "id": 39103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4871:16:39", + "memberName": "commitTopDownMsg", + "nodeType": "MemberAccess", + "referencedDeclaration": 42100, + "src": "4860:27:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_CrossMsg_$44176_memory_ptr_$returns$__$", + "typeString": "function (struct CrossMsg memory)" + } + }, + "id": 39105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4860:37:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39106, + "nodeType": "ExpressionStatement", + "src": "4860:37:39" + }, + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 39110, + "name": "subnetId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39075, + "src": "4937:8:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_calldata_ptr", + "typeString": "struct SubnetID calldata" + } + }, + "id": 39111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4946:8:39", + "memberName": "getActor", + "nodeType": "MemberAccess", + "referencedDeclaration": 43808, + "src": "4937:17:39", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeString": "function (struct SubnetID memory) pure returns (address)" + } + }, + "id": 39112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4937:19:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 39113, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "4958:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 39114, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4960:11:39", + "memberName": "crossMsgFee", + "nodeType": "MemberAccess", + "referencedDeclaration": 42346, + "src": "4958:13:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 39107, + "name": "LibGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42262, + "src": "4908:10:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeString": "type(library LibGateway)" + } + }, + "id": 39109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4919:17:39", + "memberName": "distributeRewards", + "nodeType": "MemberAccess", + "referencedDeclaration": 42181, + "src": "4908:28:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 39115, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4908:64:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39116, + "nodeType": "ExpressionStatement", + "src": "4908:64:39" + } + ] + }, + "documentation": { + "id": 39072, + "nodeType": "StructuredDocumentation", + "src": "4333:254:39", + "text": "@notice fund - commit a top-down message releasing funds in a child subnet. There is an associated fee that gets distributed to validators in the subnet as well\n @param subnetId - subnet to fund\n @param to - the address to send funds to" + }, + "functionSelector": "18f44b70", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 39081, + "kind": "modifierInvocation", + "modifierName": { + "id": 39080, + "name": "signableOnly", + "nameLocations": [ + "4675:12:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 42489, + "src": "4675:12:39" + }, + "nodeType": "ModifierInvocation", + "src": "4675:12:39" + }, + { + "id": 39083, + "kind": "modifierInvocation", + "modifierName": { + "id": 39082, + "name": "hasFee", + "nameLocations": [ + "4688:6:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 42503, + "src": "4688:6:39" + }, + "nodeType": "ModifierInvocation", + "src": "4688:6:39" + } + ], + "name": "fund", + "nameLocation": "4601:4:39", + "parameters": { + "id": 39079, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39075, + "mutability": "mutable", + "name": "subnetId", + "nameLocation": "4624:8:39", + "nodeType": "VariableDeclaration", + "scope": 39118, + "src": "4606:26:39", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_calldata_ptr", + "typeString": "struct SubnetID" + }, + "typeName": { + "id": 39074, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39073, + "name": "SubnetID", + "nameLocations": [ + "4606:8:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44279, + "src": "4606:8:39" + }, + "referencedDeclaration": 44279, + "src": "4606:8:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeString": "struct SubnetID" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 39078, + "mutability": "mutable", + "name": "to", + "nameLocation": "4654:2:39", + "nodeType": "VariableDeclaration", + "scope": 39118, + "src": "4634:22:39", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_FvmAddress_$44253_calldata_ptr", + "typeString": "struct FvmAddress" + }, + "typeName": { + "id": 39077, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39076, + "name": "FvmAddress", + "nameLocations": [ + "4634:10:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44253, + "src": "4634:10:39" + }, + "referencedDeclaration": 44253, + "src": "4634:10:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_FvmAddress_$44253_storage_ptr", + "typeString": "struct FvmAddress" + } + }, + "visibility": "internal" + } + ], + "src": "4605:52:39" + }, + "returnParameters": { + "id": 39084, + "nodeType": "ParameterList", + "parameters": [], + "src": "4695:0:39" + }, + "scope": 39252, + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "id": 39153, + "nodeType": "FunctionDefinition", + "src": "5136:318:39", + "nodes": [], + "body": { + "id": 39152, + "nodeType": "Block", + "src": "5214:240:39", + "nodes": [], + "statements": [ + { + "assignments": [ + 39131 + ], + "declarations": [ + { + "constant": false, + "id": 39131, + "mutability": "mutable", + "name": "crossMsg", + "nameLocation": "5240:8:39", + "nodeType": "VariableDeclaration", + "scope": 39152, + "src": "5224:24:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeString": "struct CrossMsg" + }, + "typeName": { + "id": 39130, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39129, + "name": "CrossMsg", + "nameLocations": [ + "5224:8:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44176, + "src": "5224:8:39" + }, + "referencedDeclaration": 44176, + "src": "5224:8:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeString": "struct CrossMsg" + } + }, + "visibility": "internal" + } + ], + "id": 39145, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 39134, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "5296:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 39135, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5298:11:39", + "memberName": "networkName", + "nodeType": "MemberAccess", + "referencedDeclaration": 42307, + "src": "5296:13:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeString": "struct SubnetID storage ref" + } + }, + { + "expression": { + "id": 39136, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5323:3:39", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 39137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5327:6:39", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5323:10:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 39138, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39122, + "src": "5347:2:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_FvmAddress_$44253_calldata_ptr", + "typeString": "struct FvmAddress calldata" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 39143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 39139, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5363:3:39", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 39140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5367:5:39", + "memberName": "value", + "nodeType": "MemberAccess", + "src": "5363:9:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "expression": { + "id": 39141, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "5375:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 39142, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5377:11:39", + "memberName": "crossMsgFee", + "nodeType": "MemberAccess", + "referencedDeclaration": 42346, + "src": "5375:13:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5363:25:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeString": "struct SubnetID storage ref" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_struct$_FvmAddress_$44253_calldata_ptr", + "typeString": "struct FvmAddress calldata" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 39132, + "name": "CrossMsgHelper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41103, + "src": "5251:14:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_CrossMsgHelper_$41103_$", + "typeString": "type(library CrossMsgHelper)" + } + }, + "id": 39133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5266:16:39", + "memberName": "createReleaseMsg", + "nodeType": "MemberAccess", + "referencedDeclaration": 40850, + "src": "5251:31:39", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$_t_address_$_t_struct$_FvmAddress_$44253_memory_ptr_$_t_uint256_$returns$_t_struct$_CrossMsg_$44176_memory_ptr_$", + "typeString": "function (struct SubnetID memory,address,struct FvmAddress memory,uint256) pure returns (struct CrossMsg memory)" + } + }, + "id": 39144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5251:147:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeString": "struct CrossMsg memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5224:174:39" + }, + { + "expression": { + "arguments": [ + { + "id": 39149, + "name": "crossMsg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39131, + "src": "5438:8:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeString": "struct CrossMsg memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeString": "struct CrossMsg memory" + } + ], + "expression": { + "id": 39146, + "name": "LibGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42262, + "src": "5409:10:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeString": "type(library LibGateway)" + } + }, + "id": 39148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5420:17:39", + "memberName": "commitBottomUpMsg", + "nodeType": "MemberAccess", + "referencedDeclaration": 42151, + "src": "5409:28:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_CrossMsg_$44176_memory_ptr_$returns$__$", + "typeString": "function (struct CrossMsg memory)" + } + }, + "id": 39150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5409:38:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39151, + "nodeType": "ExpressionStatement", + "src": "5409:38:39" + } + ] + }, + "documentation": { + "id": 39119, + "nodeType": "StructuredDocumentation", + "src": "4985:146:39", + "text": "@notice release method locks funds in the current subnet and sends a cross message up the hierarchy to the parent gateway to release the funds" + }, + "functionSelector": "6b2c1eef", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 39125, + "kind": "modifierInvocation", + "modifierName": { + "id": 39124, + "name": "signableOnly", + "nameLocations": [ + "5194:12:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 42489, + "src": "5194:12:39" + }, + "nodeType": "ModifierInvocation", + "src": "5194:12:39" + }, + { + "id": 39127, + "kind": "modifierInvocation", + "modifierName": { + "id": 39126, + "name": "hasFee", + "nameLocations": [ + "5207:6:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 42503, + "src": "5207:6:39" + }, + "nodeType": "ModifierInvocation", + "src": "5207:6:39" + } + ], + "name": "release", + "nameLocation": "5145:7:39", + "parameters": { + "id": 39123, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39122, + "mutability": "mutable", + "name": "to", + "nameLocation": "5173:2:39", + "nodeType": "VariableDeclaration", + "scope": 39153, + "src": "5153:22:39", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_FvmAddress_$44253_calldata_ptr", + "typeString": "struct FvmAddress" + }, + "typeName": { + "id": 39121, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39120, + "name": "FvmAddress", + "nameLocations": [ + "5153:10:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44253, + "src": "5153:10:39" + }, + "referencedDeclaration": 44253, + "src": "5153:10:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_FvmAddress_$44253_storage_ptr", + "typeString": "struct FvmAddress" + } + }, + "visibility": "internal" + } + ], + "src": "5152:24:39" + }, + "returnParameters": { + "id": 39128, + "nodeType": "ParameterList", + "parameters": [], + "src": "5214:0:39" + }, + "scope": 39252, + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "id": 39251, + "nodeType": "FunctionDefinition", + "src": "5644:1972:39", + "nodes": [], + "body": { + "id": 39250, + "nodeType": "Block", + "src": "5747:1869:39", + "nodes": [], + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 39169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 39165, + "name": "validators", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39157, + "src": "5761:10:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 39166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5772:6:39", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5761:17:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 39167, + "name": "weights", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39160, + "src": "5782:7:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 39168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5790:6:39", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5782:14:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5761:35:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39174, + "nodeType": "IfStatement", + "src": "5757:109:39", + "trueBody": { + "id": 39173, + "nodeType": "Block", + "src": "5798:68:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 39170, + "name": "ValidatorsAndWeightsLengthMismatch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38234, + "src": "5819:34:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 39171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5819:36:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39172, + "nodeType": "RevertStatement", + "src": "5812:43:39" + } + ] + } + }, + { + "expression": { + "id": 39177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "5924:18:39", + "subExpression": { + "expression": { + "id": 39175, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "5926:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 39176, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "5928:14:39", + "memberName": "validatorNonce", + "nodeType": "MemberAccess", + "referencedDeclaration": 42359, + "src": "5926:16:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 39178, + "nodeType": "ExpressionStatement", + "src": "5924:18:39" + }, + { + "assignments": [ + 39180 + ], + "declarations": [ + { + "constant": false, + "id": 39180, + "mutability": "mutable", + "name": "totalValidatorsWeight", + "nameLocation": "5961:21:39", + "nodeType": "VariableDeclaration", + "scope": 39250, + "src": "5953:29:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 39179, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5953:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 39182, + "initialValue": { + "hexValue": "30", + "id": 39181, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5985:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5953:33:39" + }, + { + "assignments": [ + 39184 + ], + "declarations": [ + { + "constant": false, + "id": 39184, + "mutability": "mutable", + "name": "validatorsLength", + "nameLocation": "6044:16:39", + "nodeType": "VariableDeclaration", + "scope": 39250, + "src": "6036:24:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 39183, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6036:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 39187, + "initialValue": { + "expression": { + "id": 39185, + "name": "validators", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39157, + "src": "6063:10:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 39186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6074:6:39", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6063:17:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6036:44:39" + }, + { + "body": { + "id": 39242, + "nodeType": "Block", + "src": "6160:1403:39", + "statements": [ + { + "assignments": [ + 39196 + ], + "declarations": [ + { + "constant": false, + "id": 39196, + "mutability": "mutable", + "name": "validatorAddress", + "nameLocation": "6182:16:39", + "nodeType": "VariableDeclaration", + "scope": 39242, + "src": "6174:24:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 39195, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6174:7:39", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 39200, + "initialValue": { + "baseExpression": { + "id": 39197, + "name": "validators", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39157, + "src": "6201:10:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 39199, + "indexExpression": { + "id": 39198, + "name": "validatorIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39189, + "src": "6212:14:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6201:26:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6174:53:39" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 39206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 39201, + "name": "validatorAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39196, + "src": "6245:16:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 39204, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6273:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 39203, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6265:7:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 39202, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6265:7:39", + "typeDescriptions": {} + } + }, + "id": 39205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6265:10:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6245:30:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39237, + "nodeType": "IfStatement", + "src": "6241:379:39", + "trueBody": { + "id": 39236, + "nodeType": "Block", + "src": "6277:343:39", + "statements": [ + { + "assignments": [ + 39208 + ], + "declarations": [ + { + "constant": false, + "id": 39208, + "mutability": "mutable", + "name": "validatorWeight", + "nameLocation": "6303:15:39", + "nodeType": "VariableDeclaration", + "scope": 39236, + "src": "6295:23:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 39207, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6295:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 39212, + "initialValue": { + "baseExpression": { + "id": 39209, + "name": "weights", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39160, + "src": "6321:7:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 39211, + "indexExpression": { + "id": 39210, + "name": "validatorIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39189, + "src": "6329:14:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6321:23:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6295:49:39" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 39215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 39213, + "name": "validatorWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39208, + "src": "6367:15:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 39214, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6386:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6367:20:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39220, + "nodeType": "IfStatement", + "src": "6363:97:39", + "trueBody": { + "id": 39219, + "nodeType": "Block", + "src": "6389:71:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 39216, + "name": "ValidatorWeightIsZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38232, + "src": "6418:21:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 39217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6418:23:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39218, + "nodeType": "RevertStatement", + "src": "6411:30:39" + } + ] + } + }, + { + "expression": { + "id": 39230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "expression": { + "id": 39221, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "6478:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 39226, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6480:12:39", + "memberName": "validatorSet", + "nodeType": "MemberAccess", + "referencedDeclaration": 42356, + "src": "6478:14:39", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 39227, + "indexExpression": { + "expression": { + "id": 39223, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "6493:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 39224, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6495:14:39", + "memberName": "validatorNonce", + "nodeType": "MemberAccess", + "referencedDeclaration": 42359, + "src": "6493:16:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6478:32:39", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 39228, + "indexExpression": { + "id": 39225, + "name": "validatorAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39196, + "src": "6511:16:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6478:50:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 39229, + "name": "validatorWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39208, + "src": "6531:15:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6478:68:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 39231, + "nodeType": "ExpressionStatement", + "src": "6478:68:39" + }, + { + "expression": { + "id": 39234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 39232, + "name": "totalValidatorsWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39180, + "src": "6565:21:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 39233, + "name": "validatorWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39208, + "src": "6590:15:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6565:40:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 39235, + "nodeType": "ExpressionStatement", + "src": "6565:40:39" + } + ] + } + }, + { + "id": 39241, + "nodeType": "UncheckedBlock", + "src": "7494:59:39", + "statements": [ + { + "expression": { + "id": 39239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "7522:16:39", + "subExpression": { + "id": 39238, + "name": "validatorIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39189, + "src": "7524:14:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 39240, + "nodeType": "ExpressionStatement", + "src": "7522:16:39" + } + ] + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 39194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 39192, + "name": "validatorIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39189, + "src": "6123:14:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 39193, + "name": "validatorsLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39184, + "src": "6140:16:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6123:33:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39243, + "initializationExpression": { + "assignments": [ + 39189 + ], + "declarations": [ + { + "constant": false, + "id": 39189, + "mutability": "mutable", + "name": "validatorIndex", + "nameLocation": "6103:14:39", + "nodeType": "VariableDeclaration", + "scope": 39243, + "src": "6095:22:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 39188, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6095:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 39191, + "initialValue": { + "hexValue": "30", + "id": 39190, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6120:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "6095:26:39" + }, + "nodeType": "ForStatement", + "src": "6090:1473:39" + }, + { + "expression": { + "id": 39248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 39244, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "7572:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 39246, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "7574:11:39", + "memberName": "totalWeight", + "nodeType": "MemberAccess", + "referencedDeclaration": 42349, + "src": "7572:13:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 39247, + "name": "totalValidatorsWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39180, + "src": "7588:21:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7572:37:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 39249, + "nodeType": "ExpressionStatement", + "src": "7572:37:39" + } + ] + }, + "documentation": { + "id": 39154, + "nodeType": "StructuredDocumentation", + "src": "5460:179:39", + "text": "@notice set up the top-down validators and their voting power\n @param validators - list of validator addresses\n @param weights - list of validators voting powers" + }, + "functionSelector": "f75bc557", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 39163, + "kind": "modifierInvocation", + "modifierName": { + "id": 39162, + "name": "systemActorOnly", + "nameLocations": [ + "5731:15:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 42496, + "src": "5731:15:39" + }, + "nodeType": "ModifierInvocation", + "src": "5731:15:39" + } + ], + "name": "setMembership", + "nameLocation": "5653:13:39", + "parameters": { + "id": 39161, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39157, + "mutability": "mutable", + "name": "validators", + "nameLocation": "5684:10:39", + "nodeType": "VariableDeclaration", + "scope": 39251, + "src": "5667:27:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 39155, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5667:7:39", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 39156, + "nodeType": "ArrayTypeName", + "src": "5667:9:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 39160, + "mutability": "mutable", + "name": "weights", + "nameLocation": "5713:7:39", + "nodeType": "VariableDeclaration", + "scope": 39251, + "src": "5696:24:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 39158, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5696:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 39159, + "nodeType": "ArrayTypeName", + "src": "5696:9:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "5666:55:39" + }, + "returnParameters": { + "id": 39164, + "nodeType": "ParameterList", + "parameters": [], + "src": "5747:0:39" + }, + "scope": 39252, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 38714, + "name": "GatewayActorModifiers", + "nameLocations": [ + "1023:21:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 42504, + "src": "1023:21:39" + }, + "id": 38715, + "nodeType": "InheritanceSpecifier", + "src": "1023:21:39" + }, + { + "baseName": { + "id": 38716, + "name": "ReentrancyGuard", + "nameLocations": [ + "1046:15:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 42567, + "src": "1046:15:39" + }, + "id": 38717, + "nodeType": "InheritanceSpecifier", + "src": "1046:15:39" + } + ], + "canonicalName": "GatewayManagerFacet", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 39252, + 42567, + 42504 + ], + "name": "GatewayManagerFacet", + "nameLocation": "1000:19:39", + "scope": 39253, + "usedErrors": [ + 4, + 8, + 29492, + 29497, + 29500, + 38148, + 38150, + 38154, + 38172, + 38198, + 38204, + 38206, + 38208, + 38216, + 38218, + 38220, + 38232, + 38234, + 42517 + ] + } + ], + "license": "UNLICENSED" + }, + "id": 39 +} \ No newline at end of file diff --git a/contracts/GatewayRouterFacet.json b/contracts/GatewayRouterFacet.json new file mode 100644 index 00000000..fcab6ad4 --- /dev/null +++ b/contracts/GatewayRouterFacet.json @@ -0,0 +1,14291 @@ +{ + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + } + ], + "name": "AddressEmptyCode", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "AddressInsufficientBalance", + "type": "error" + }, + { + "inputs": [], + "name": "CallFailed", + "type": "error" + }, + { + "inputs": [], + "name": "CannotSendCrossMsgToItself", + "type": "error" + }, + { + "inputs": [], + "name": "EpochAlreadyExecuted", + "type": "error" + }, + { + "inputs": [], + "name": "EpochNotVotable", + "type": "error" + }, + { + "inputs": [], + "name": "FailedInnerCall", + "type": "error" + }, + { + "inputs": [], + "name": "InconsistentPrevCheckpoint", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientFunds", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidActorAddress", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidCheckpointEpoch", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidCheckpointSource", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidCrossMsgDestinationSubnet", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidCrossMsgFromSubnetId", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidCrossMsgNonce", + "type": "error" + }, + { + "inputs": [], + "name": "MessagesNotSorted", + "type": "error" + }, + { + "inputs": [], + "name": "NotEnoughBalance", + "type": "error" + }, + { + "inputs": [], + "name": "NotEnoughFee", + "type": "error" + }, + { + "inputs": [], + "name": "NotEnoughFunds", + "type": "error" + }, + { + "inputs": [], + "name": "NotEnoughSubnetCircSupply", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitialized", + "type": "error" + }, + { + "inputs": [], + "name": "NotRegisteredSubnet", + "type": "error" + }, + { + "inputs": [], + "name": "NotSignableAccount", + "type": "error" + }, + { + "inputs": [], + "name": "NotValidator", + "type": "error" + }, + { + "inputs": [], + "name": "SubnetNotActive", + "type": "error" + }, + { + "inputs": [], + "name": "ValidatorAlreadyVoted", + "type": "error" + }, + { + "inputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple" + }, + { + "internalType": "uint64", + "name": "epoch", + "type": "uint64" + }, + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + }, + { + "components": [ + { + "components": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple" + } + ], + "internalType": "struct IPCAddress", + "name": "from", + "type": "tuple" + }, + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple" + } + ], + "internalType": "struct IPCAddress", + "name": "to", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "bytes4", + "name": "method", + "type": "bytes4" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "internalType": "struct StorableMsg", + "name": "message", + "type": "tuple" + }, + { + "internalType": "bool", + "name": "wrapped", + "type": "bool" + } + ], + "internalType": "struct CrossMsg[]", + "name": "crossMsgs", + "type": "tuple[]" + }, + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple" + }, + { + "internalType": "bytes32[]", + "name": "checks", + "type": "bytes32[]" + } + ], + "internalType": "struct ChildCheck[]", + "name": "children", + "type": "tuple[]" + }, + { + "internalType": "bytes32", + "name": "prevHash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "proof", + "type": "bytes" + } + ], + "internalType": "struct BottomUpCheckpoint", + "name": "commit", + "type": "tuple" + } + ], + "name": "commitChildCheck", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "msgCid", + "type": "bytes32" + } + ], + "name": "propagate", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "components": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple" + } + ], + "internalType": "struct IPCAddress", + "name": "from", + "type": "tuple" + }, + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple" + } + ], + "internalType": "struct IPCAddress", + "name": "to", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "bytes4", + "name": "method", + "type": "bytes4" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "internalType": "struct StorableMsg", + "name": "message", + "type": "tuple" + }, + { + "internalType": "bool", + "name": "wrapped", + "type": "bool" + } + ], + "internalType": "struct CrossMsg", + "name": "crossMsg", + "type": "tuple" + } + ], + "name": "sendCrossMessage", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint64", + "name": "epoch", + "type": "uint64" + }, + { + "components": [ + { + "components": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple" + } + ], + "internalType": "struct IPCAddress", + "name": "from", + "type": "tuple" + }, + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple" + } + ], + "internalType": "struct IPCAddress", + "name": "to", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "bytes4", + "name": "method", + "type": "bytes4" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "internalType": "struct StorableMsg", + "name": "message", + "type": "tuple" + }, + { + "internalType": "bool", + "name": "wrapped", + "type": "bool" + } + ], + "internalType": "struct CrossMsg[]", + "name": "topDownMsgs", + "type": "tuple[]" + } + ], + "internalType": "struct TopDownCheckpoint", + "name": "checkpoint", + "type": "tuple" + } + ], + "name": "submitTopDownCheckpoint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": { + "object": "0x608060405234801561001057600080fd5b5061615780620000216000396000f3fe60806040526004361061003f5760003560e01c806325bf0db6146100445780632f757dd114610059578063986acf381461006c578063d4e149a81461008c575b600080fd5b61005761005236600461401c565b6100ac565b005b61005761006736600461404d565b61065a565b34801561007857600080fd5b5061005761008736600461404d565b610834565b34801561009857600080fd5b506100576100a7366004614081565b6111aa565b6100b4611c1e565b600081815260066020908152604080832081516101808101835281546001600160401b0316610140820190815260018301805485518188028101880187528181529497968796610448968a958795928601948794869461010089019487948694909386936101608d019392909183018282801561015a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161013c575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610194906140c2565b80601f01602080910402602001604051908101604052809291908181526020018280546101c0906140c2565b801561020d5780601f106101e25761010080835404028352916020019161020d565b820191906000526020600020905b8154815290600101906020018083116101f057829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561029e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610280575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906102d8906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054610304906140c2565b80156103515780601f1061032657610100808354040283529160200191610351565b820191906000526020600020905b81548152906001019060200180831161033457829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916103ac906140c2565b80601f01602080910402602001604051908101604052809291908181526020018280546103d8906140c2565b80156104255780601f106103fa57610100808354040283529160200191610425565b820191906000526020600020905b81548152906001019060200180831161040857829003601f168201915b505050919092525050508152600b919091015460ff161515602090910152611c43565b60088501546040805180820182526004880180546001600160401b03168252600589018054845160208281028201810190965281815297995095975093956000959294919380860193919291908301828280156104ce57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116104b0575b50505091909252505060405163089032d560e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263089032d59250610510916000906004016141cc565b600060405180830381865af415801561052d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261055591908101906142ce565b600087815260066020526040812080546001600160401b03191681559192508181818181816105876001830182613f0a565b505060028201805460ff1916815560006105a46003850182613f28565b505050506004820180546001600160401b0319168155600081816105cb6005870182613f0a565b505060028201805460ff1916815560006105e86003850182613f28565b50506000600885018190556009850180546001600160601b03191690556106159250600a85019150613f28565b505050600b01805460ff1916905561062f82828686611fb5565b600a5460009061063f90346143c9565b90508015610651576106513382612056565b50505050505050565b6106626120eb565b61066a611c1e565b3461067582806143dc565b604001351461069757604051631036b5ad60e31b815260040160405180910390fd5b6106a181806143dc565b6106ab90806143fc565b6106b590806143fc565b6106be906144da565b60405163c836244d60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9163c836244d916106f791906000906004016141cc565b602060405180830381865af4158015610714573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073891906144f4565b61075557604051638481de4960e01b815260040160405180910390fd5b60008061076961076484614772565b611c43565b909250905061082f61077b84806143dc565b6040013561078985806143dc565b6107979060208101906143fc565b6107a190806143fc565b6107aa906144da565b60405163089032d560e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9163089032d5916107e391906000906004016141cc565b600060405180830381865af4158015610800573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261082891908101906142ce565b8484611fb5565b505050565b61083c6120eb565b61085161084c602083018361477e565b61217b565b600d546000908152600c6020908152604080832033845290915290205460105460ff16610891576040516321c4e35760e21b815260040160405180910390fd5b806000036108b257604051632ec5b44960e01b815260040160405180910390fd5b73__$33b79814e84bf6cf5e47244090b19ce5f8$__63898414756108d9602085018561479b565b6040518363ffffffff1660e01b81526004016108f6929190614ae7565b602060405180830381865af4158015610913573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093791906144f4565b61095457604051630bd9169f60e01b815260040160405180910390fd5b6000601181610966602086018661477e565b6001600160401b03166001600160401b031681526020019081526020016000209050600061099682853386612187565b905060608115610d6f576109a9836126bf565b805480602002602001604051908101604052809291908181526020016000905b82821015610d685760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015610a6f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a51575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610aa9906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad5906140c2565b8015610b225780601f10610af757610100808354040283529160200191610b22565b820191906000526020600020905b815481529060010190602001808311610b0557829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015610bb357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b95575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610bed906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054610c19906140c2565b8015610c665780601f10610c3b57610100808354040283529160200191610c66565b820191906000526020600020905b815481529060010190602001808311610c4957829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191610cc1906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054610ced906140c2565b8015610d3a5780601f10610d0f57610100808354040283529160200191610d3a565b820191906000526020600020905b815481529060010190602001808311610d1d57829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016109c9565b5050505090505b805160000361117857600080610d836126f1565b915091508015611175576001600160401b0382166000908152601160205260409020610dae816126bf565b805480602002602001604051908101604052809291908181526020016000905b8282101561116d5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015610e7457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e56575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610eae906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054610eda906140c2565b8015610f275780601f10610efc57610100808354040283529160200191610f27565b820191906000526020600020905b815481529060010190602001808311610f0a57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015610fb857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610f9a575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610ff2906140c2565b80601f016020809104026020016040519081016040528092919081815260200182805461101e906140c2565b801561106b5780601f106110405761010080835404028352916020019161106b565b820191906000526020600020905b81548152906001019060200180831161104e57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916110c6906140c2565b80601f01602080910402602001604051908101604052809291908181526020018280546110f2906140c2565b801561113f5780601f106111145761010080835404028352916020019161113f565b820191906000526020600020905b81548152906001019060200180831161112257829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101610dce565b505050509350505b50505b6040805180820182526000808252825181815260208181019094526111a39383019150905282612744565b5050505050565b60105460ff166111cd576040516321c4e35760e21b815260040160405180910390fd5b336112696111db83806143fc565b6111e4906144da565b604051632cff562160e11b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__916359feac429161121a9190600401614afb565b602060405180830381865af4158015611237573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125b9190614b0e565b6001600160a01b031661277c565b6001600160a01b03161461129057604051637f39132760e11b815260040160405180910390fd5b600061129b336127c3565b915060019050815460ff1660058111156112b7576112b7614b2b565b146112d55760405163c18316bf60e01b815260040160405180910390fd5b6112e5604083016020840161477e565b60088201546001600160401b039182169116106113155760405163fae4eadb60e01b815260040160405180910390fd5b60a082013515611a1f5760408051610120810182526006830180546001600160401b031660e083019081526007850180548551602082810282018101909752818152949593948694869361010087019390918301828280156113a057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611382575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156117aa5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d019390918301828280156114b157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611493575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906114eb906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054611517906140c2565b80156115645780601f1061153957610100808354040283529160200191611564565b820191906000526020600020905b81548152906001019060200180831161154757829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156115f557602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116115d7575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061162f906140c2565b80601f016020809104026020016040519081016040528092919081815260200182805461165b906140c2565b80156116a85780601f1061167d576101008083540402835291602001916116a8565b820191906000526020600020905b81548152906001019060200180831161168b57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191611703906140c2565b80601f016020809104026020016040519081016040528092919081815260200182805461172f906140c2565b801561177c5780601f106117515761010080835404028352916020019161177c565b820191906000526020600020905b81548152906001019060200180831161175f57829003601f168201915b505050919092525050508152600b919091015460ff161515602091820152908252600192909201910161140b565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b828210156118e1576000848152602090819020604080516080810182526003860290920180546001600160401b03168383019081526001820180548451818802810188019095528085529495929486949293869360608701939092909183018282801561186d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161184f575b5050505050815250508152602001600282018054806020026020016040519081016040528092919081815260200182805480156118c957602002820191906000526020600020905b8154815260200190600101908083116118b5575b505050505081525050815260200190600101906117d7565b50505050815260200160068201548152602001600782018054611903906140c2565b80601f016020809104026020016040519081016040528092919081815260200182805461192f906140c2565b801561197c5780601f106119515761010080835404028352916020019161197c565b820191906000526020600020905b81548152906001019060200180831161195f57829003601f168201915b5050509190925250506040516339aa47fb60e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__926339aa47fb92506119bb91600401614d61565b602060405180830381865af41580156119d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119fc9190614dfe565b8260a0013514611a1f576040516312232e5d60e11b815260040160405180910390fd5b6000806000611a2c6128fb565b92509250925082611a8a576000805482546001600160401b0319166001600160401b03909116178255600180548391611a69918184019190613f62565b5050506002810180546001600160401b0319166001600160401b0384161790555b60405163445cc97560e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__9063445cc97590611acb9084908990600e90600f908990600401614ec2565b60006040518083038186803b158015611ae357600080fd5b505af4158015611af7573d6000803e3d6000fd5b50505050600080868060600190611b0e919061479b565b9050905060005b81811015611b6e57611b2a606089018961479b565b82818110611b3a57611b3a614fbf565b9050602002810190611b4c91906143fc565b611b5690806143dc565b611b64906040013584614fd5565b9250600101611b15565b506003830154611b82906040890135614fd5565b611b8c9083614fd5565b91508186600301541015611bb357604051631d36ca1560e21b815260040160405180910390fd5b81866003016000828254611bc791906143c9565b9091555087905060068701611bdc8282615972565b50611c109050611bec88806143fc565b611bf5906144da565b611c0260608a018a61479b565b611c0b91615b14565b612744565b610651338860400135612a31565b600a54341015611c41576040516334472ad760e11b815260040160405180910390fd5b565b80516020015151604051630c133d1360e31b8152600091829173__$a0fe38a9a81205afccc10810b09a4d3f45$__90636099e89890611c86908490600401614afb565b602060405180830381865af4158015611ca3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc791906144f4565b15611ce55760405163461e815d60e01b815260040160405180910390fd5b60405163c836244d60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9063c836244d90611d1f9084906000906004016141cc565b602060405180830381865af4158015611d3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d6091906144f4565b15611d7e57604051632f3335ff60e21b815260040160405180910390fd5b835180515160405163f47ad7eb60e01b8152909160009173__$386b5c41ce93e8b832daf8008b3d30ae09$__9163f47ad7eb91611dc091908590600401615b21565b602060405180830381865af4158015611ddd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e019190615b34565b905060006001826001811115611e1957611e19614b2b565b03611f1a57604051631ccc893360e11b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__90633999126690611e579087908790600401615b55565b600060405180830381865af4158015611e74573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e9c91908101906142ce565b60405163c836244d60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9163c836244d91611ed591906000906004016141cc565b602060405180830381865af4158015611ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f1691906144f4565b1590505b8015611f3e57611f2987612a8f565b50509351604001511515946000945092505050565b6000826001811115611f5257611f52614b2b565b03611f9c5760098054600890611f7790600160401b90046001600160401b0316615b7a565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b611fa587612cc1565b5060009660019650945050505050565b8115611fc657611fc6606385612056565b801561205057604051632cff562160e11b81526120509073__$a0fe38a9a81205afccc10810b09a4d3f45$__906359feac4290612007908790600401614afb565b602060405180830381865af4158015612024573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120489190614b0e565b600a54612a31565b50505050565b804710156120775760405163356680b760e01b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146120c4576040519150601f19603f3d011682016040523d82523d6000602084013e6120c9565b606091505b505090508061082f57604051633204506f60e01b815260040160405180910390fd5b604051630972932760e21b815233600482015273__$e800e3908cdbb6b1b5bd452383a17b18f7$__906325ca4c9c90602401602060405180830381865af415801561213a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215e91906144f4565b611c4157604051630a23da2b60e31b815260040160405180910390fd5b61218481612f92565b50565b60008061219385615ba0565b604051630edf122560e41b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__9163edf12250916121c99190600401615c0c565b602060405180830381865af41580156121e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061220a9190614dfe565b90506122288682868661222060208b018b61477e565b600b54613048565b600082815260058801602090815260408083208151808301835281546001600160401b03168152600182018054845181870281018701909552808552969850909591948685019491929184015b828210156126145760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561231b57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116122fd575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190612355906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054612381906140c2565b80156123ce5780601f106123a3576101008083540402835291602001916123ce565b820191906000526020600020905b8154815290600101906020018083116123b157829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561245f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612441575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190612499906140c2565b80601f01602080910402602001604051908101604052809291908181526020018280546124c5906140c2565b80156125125780601f106124e757610100808354040283529160200191612512565b820191906000526020600020905b8154815290600101906020018083116124f557829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161256d906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054612599906140c2565b80156125e65780601f106125bb576101008083540402835291602001916125e6565b820191906000526020600020905b8154815290600101906020018083116125c957829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101612275565b50505091525050604051632d34315760e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__91632d343157916126519190600401615c0c565b602060405180830381865af415801561266e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061269291906144f4565b156126b6576000818152600587016020526040902085906126b38282615c3a565b50505b50949350505050565b60028101546000908152600582016020526040812080546126e8906001600160401b0316613295565b60010192915050565b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27154600160401b90046001600160401b0316600060008051602061610283398151915261273d836133f6565b9150509091565b805160005b81811015612050576127748484838151811061276757612767614fbf565b6020026020010151613443565b600101612749565b600080600061278a84613a22565b915091508161279b57509192915050565b6000806127a783613a5e565b91509150816127ba575093949350505050565b95945050505050565b600080806001600160a01b0384166127ee576040516370e4510960e01b815260040160405180910390fd5b60408051808201825282546001600160401b031681526001830180548351602082810282018101909552818152600094869381860193909183018282801561285f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612841575b50505091909252505060405163aa5106cb60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263aa5106cb92506128a0918990600401615d5f565b600060405180830381865af41580156128bd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526128e591908101906142ce565b90506128f081613ac8565b935093505050915091565b60055460009081908190819061291b9043906001600160401b0316613c5b565b6001600160401b03808216600090815260088401602090815260409182902082518084018452815490941684526001810180548451818502810185019095528085529598509096509293869385830193929091908301828280156129a857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161298a575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e89892506129e791600401614afb565b602060405180830381865af4158015612a04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a2891906144f4565b15935050909192565b80600003612a3d575050565b61082f612a52836001600160a01b031661277c565b6040805160248082018690528251808303909101815260449091019091526020810180516001600160e01b0316632a7edd8f60e21b179052613c86565b600080612a9a6128fb565b600985015486516001600160401b03909116606090910152600a8501546003820180549295509093509150600090612ad3908490614fd5565b90915550506004810180546001808201835560009283526020928390208651805180518051600c90960290930180546001600160401b0319166001600160401b039096169590951785558286015180518a979395879593948694938593612b41938501929190910190613fb2565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190612b779082615d89565b50505050602083810151805180516004860180546001600160401b0319166001600160401b03909216919091178155818401518051939550909391928492612bc6926005890192910190613fb2565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190612bfc9082615d89565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a820190612c599082615d89565b50505060209190910151600b909101805460ff191691151591909117905560098201805460019190600090612c989084906001600160401b0316615e42565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550505050565b8051602001515160405163089032d560e01b8152600091829173__$a0fe38a9a81205afccc10810b09a4d3f45$__9163089032d591612d05919085906004016141cc565b600060405180830381865af4158015612d22573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612d4a91908101906142ce565b9050600080612d5883613ac8565b9150915081612d7a57604051630e991abd60e41b815260040160405180910390fd5b805485516101009091046001600160401b0316606090910181905260019082908290612da7908290615e42565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550846000015160400151816003016000828254612de79190614fd5565b9091555050600e810180546001808201835560009283526020928390208851805180518051600c90960290930180546001600160401b0319166001600160401b039096169590951785558286015180518c979395879593948694938593612e55938501929190910190613fb2565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190612e8b9082615d89565b50505050602083810151805180516004860180546001600160401b0319166001600160401b03909216919091178155818401518051939550909391928492612eda926005890192910190613fb2565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190612f109082615d89565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a820190612f6d9082615d89565b50505060209190910151600b909101805460ff19169115159190911790555050505050565b60008051602061610283398151915280546001600160401b0390811690831611612fcf57604051631f30cc6360e21b815260040160405180910390fd5b80546001600160401b03600160401b909104811690831611156130445780546001600160401b03600160881b820481169161301391600160401b9091041684615e69565b61301d9190615e9f565b6001600160401b0316156130445760405163b4f68f9760e01b815260040160405180910390fd5b5050565b8554600081815260038801602090815260408083206001600160a01b038916845290915281205490916000805160206161028339815191529160ff16156130a2576040516337138f5f60e11b815260040160405180910390fd5b600081815260038a01602090815260408083206001600160a01b038b1684529091528120805460ff191660019081179091558a0180548892906130e6908490614fd5565b9091555050600081815260048a01602090815260408083208b845290915281208054889290613116908490614fd5565b9091555050600081815260048a016020908152604080832060028d01548452909152808220548a8352912054808210156131525760028b018a90555b600061315e8c88613c97565b9050600381600381111561317457613174614b2b565b0361320957613182886133f6565b156131905760019550613286565b60405163199b9ca560e01b81526001860160048201526001600160401b038916602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__9063199b9ca59060440160006040518083038186803b1580156131ec57600080fd5b505af4158015613200573d6000803e3d6000fd5b50505050613286565b600281600381111561321d5761321d614b2b565b0361328657604051635a27a53960e11b8152600481018d905273__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063b44f4a729060240160006040518083038186803b15801561326d57600080fd5b505af4158015613281573d6000803e3d6000fd5b505050505b50505050509695505050505050565b6000805160206161028339815191526132ad826133f6565b6132b5575050565b604051634953836d60e11b81526001820160048201526001600160401b038316602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__906392a706da90604401602060405180830381865af4158015613316573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061333a91906144f4565b156133615760018101546001600160401b03838116600160401b9092041614613361575050565b6040516394ecccfd60e01b81526001820160048201526001600160401b038316602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__906394ecccfd9060440160006040518083038186803b1580156133bd57600080fd5b505af41580156133d1573d6000803e3d6000fd5b505082546001600160401b0319166001600160401b0394909416939093179091555050565b600080516020616102833981519152805460009190613427906001600160401b03600160881b820481169116615e42565b6001600160401b0316836001600160401b031614915050919050565b80516020015151604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__91636099e898916134809190600401614afb565b602060405180830381865af415801561349d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134c191906144f4565b156134df5760405163461e815d60e01b815260040160405180910390fd5b8051608001516001600160e01b031916613519578051604001514710156135195760405163569d45cf60e11b815260040160405180910390fd5b805160405163f47ad7eb60e01b815260009173__$386b5c41ce93e8b832daf8008b3d30ae09$__9163f47ad7eb91613555918590600401615b21565b602060405180830381865af4158015613572573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135969190615b34565b8251602001515160405163c836244d60e01b815291925073__$a0fe38a9a81205afccc10810b09a4d3f45$__9163c836244d916135d8916000906004016141cc565b602060405180830381865af41580156135f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061361991906144f4565b1561388257600181600181111561363257613632614b2b565b0361376757604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__90636099e8989061366e908690600401614afb565b602060405180830381865af415801561368b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136af91906144f4565b613767576000806136bf85613ac8565b91509150816136e157604051630e991abd60e41b815260040160405180910390fd5b8351606001518154600160481b90046001600160401b0390811691161461371b5760405163a57cadff60e01b815260040160405180910390fd5b80546001908290600990613740908490600160481b90046001600160401b0316615e42565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555050505b600081600181111561377b5761377b614b2b565b0361380657815160600151600954600160401b90046001600160401b039081169116146137bb5760405163a57cadff60e01b815260040160405180910390fd5b60098054600191906008906137e1908490600160401b90046001600160401b0316615e42565b92506101000a8154816001600160401b0302191690836001600160401b031602179055505b604051635c46fefb60e11b815273__$33b79814e84bf6cf5e47244090b19ce5f8$__9063b88dfdf69061383d908590600401615ec5565b600060405180830381865af415801561385a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120509190810190615ed8565b600061388d83613dac565b6000818152600660209081526040909120855180518051805184546001600160401b0319166001600160401b03909116178455808501518051969750899694959394869485939284926138e69260018501920190613fb2565b505050602082810151805160028401805460ff191660ff90921691909117815591810151909190600384019061391c9082615d89565b50505050602083810151805180516004860180546001600160401b0319166001600160401b0390921691909117815581840151805193955090939192849261396b926005890192910190613fb2565b505050602082810151805160028401805460ff191660ff9092169190911781559181015190919060038401906139a19082615d89565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a8201906139fe9082615d89565b50505060209190910151600b909101805460ff191691151591909117905550505050565b60008073ffffffffffffffffffffffff0000000000000000831660ff60981b8103613a5857600192506001600160401b03841691505b50915091565b600080826000526016600a602060006002607f60991b015afa9150600051806001600160a01b031691508060a01c61ffff16905061040a8114613aa45760009250600091505b50811580613ab357503d601614155b15613ac357506000928392509050565b915091565b6040516390ba52cf60e01b815260009081908190600490829073__$a0fe38a9a81205afccc10810b09a4d3f45$__906390ba52cf90613b0a9089908601614afb565b602060405180830381865af4158015613b27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b4b9190614dfe565b81526020808201929092526040908101600020815180830183526004820180546001600160401b031682526005830180548551818802810188019096528086529397509194909385820193909291830182828015613bd257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613bb4575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e8989250613c1191600401614afb565b602060405180830381865af4158015613c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c5291906144f4565b15925050915091565b600081613c688185615f45565b613c73906001615e42565b613c7d9190615f6b565b90505b92915050565b6060613c7d83836000613ddc613df5565b6000805160206161028339815191528054600091908290606490613cc590600160801b900460ff1686614ff5565b613ccf9190615f96565b604051637d2ef4e560e11b81526004810187905290915060009073__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063fa5de9ca90602401602060405180830381865af4158015613d25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d499190614dfe565b905081866001015411613d625760009350505050613c80565b81811115613d765760039350505050613c80565b6001860154613d8590866143c9565b613d8f82846143c9565b10613da05760029350505050613c80565b50600195945050505050565b600081604051602001613dbf919061603d565b604051602081830303815290604052805190602001209050919050565b604051630a12f52160e11b815260040160405180910390fd5b606082471015613e1f5760405163cd78605960e01b81523060048201526024015b60405180910390fd5b600080866001600160a01b03168587604051613e3b91906160ef565b60006040518083038185875af1925050503d8060008114613e78576040519150601f19603f3d011682016040523d82523d6000602084013e613e7d565b606091505b5091509150613e8e87838387613e9b565b925050505b949350505050565b60608315613ee9578251600003613ee257846001600160a01b03163b600003613ee257604051639996b31560e01b81526001600160a01b0386166004820152602401613e16565b5081613e93565b613e938383815115613efe5781518083602001fd5b613ddc8163ffffffff16565b50805460008255906000526020600020908101906121849190614007565b508054613f34906140c2565b6000825580601f10613f44575050565b601f0160209004906000526020600020908101906121849190614007565b828054828255906000526020600020908101928215613fa25760005260206000209182015b82811115613fa2578254825591600101919060010190613f87565b50613fae929150614007565b5090565b828054828255906000526020600020908101928215613fa2579160200282015b82811115613fa257825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613fd2565b5b80821115613fae5760008155600101614008565b60006020828403121561402e57600080fd5b5035919050565b60006040828403121561404757600080fd5b50919050565b60006020828403121561405f57600080fd5b81356001600160401b0381111561407557600080fd5b613e9384828501614035565b60006020828403121561409357600080fd5b81356001600160401b038111156140a957600080fd5b820160e081850312156140bb57600080fd5b9392505050565b600181811c908216806140d657607f821691505b60208210810361404757634e487b7160e01b600052602260045260246000fd5b6000604083016001600160401b0383511684526020808401516040828701528281518085526060880191508383019450600092505b808310156141545784516001600160a01b0316825293830193600192909201919083019061412b565b509695505050505050565b6000604083016001600160401b0383541684526001808401602060408188015283825480865260608901915083600052826000209550600093505b808410156141c05785546001600160a01b0316825294840194928401929082019061419a565b50979650505050505050565b6040815260006141df60408301856140f6565b82810360208401526127ba818561415f565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715614229576142296141f1565b60405290565b60405160c081016001600160401b0381118282101715614229576142296141f1565b604051601f8201601f191681016001600160401b0381118282101715614279576142796141f1565b604052919050565b6001600160401b038116811461218457600080fd5b60006001600160401b038211156142af576142af6141f1565b5060051b60200190565b6001600160a01b038116811461218457600080fd5b600060208083850312156142e157600080fd5b82516001600160401b03808211156142f857600080fd5b908401906040828703121561430c57600080fd5b614314614207565b825161431f81614281565b8152828401518281111561433257600080fd5b80840193505086601f84011261434757600080fd5b8251915061435c61435783614296565b614251565b82815260059290921b8301840191848101908884111561437b57600080fd5b938501935b838510156143a2578451614393816142b9565b82529385019390850190614380565b948201949094529695505050505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115613c8057613c806143b3565b6000823560be198336030181126143f257600080fd5b9190910192915050565b60008235603e198336030181126143f257600080fd5b803561441d81614281565b919050565b60006040828403121561443457600080fd5b61443c614207565b9050813561444981614281565b81526020828101356001600160401b0381111561446557600080fd5b8301601f8101851361447657600080fd5b803561448461435782614296565b81815260059190911b820183019083810190878311156144a357600080fd5b928401925b828410156144ca5783356144bb816142b9565b825292840192908401906144a8565b8085870152505050505092915050565b6000613c803683614422565b801515811461218457600080fd5b60006020828403121561450657600080fd5b81516140bb816144e6565b60ff8116811461218457600080fd5b60006001600160401b03821115614539576145396141f1565b50601f01601f191660200190565b600082601f83011261455857600080fd5b813561456661435782614520565b81815284602083860101111561457b57600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156145aa57600080fd5b6145b2614207565b905081356001600160401b03808211156145cb57600080fd5b6145d785838601614422565b835260208401359150808211156145ed57600080fd5b908301906040828603121561460157600080fd5b614609614207565b823561461481614511565b815260208301358281111561462857600080fd5b61463487828601614547565b60208301525080602085015250505092915050565b6001600160e01b03198116811461218457600080fd5b803561441d81614649565b803561441d816144e6565b60006040828403121561468757600080fd5b61468f614207565b905081356001600160401b03808211156146a857600080fd5b9083019060c082860312156146bc57600080fd5b6146c461422f565b8235828111156146d357600080fd5b6146df87828601614598565b8252506020830135828111156146f457600080fd5b61470087828601614598565b6020830152506040830135604082015261471c60608401614412565b606082015261472d6080840161465f565b608082015260a08301358281111561474457600080fd5b61475087828601614547565b60a08301525083525061476790506020830161466a565b602082015292915050565b6000613c803683614675565b60006020828403121561479057600080fd5b81356140bb81614281565b6000808335601e198436030181126147b257600080fd5b8301803591506001600160401b038211156147cc57600080fd5b6020019150600581901b36038213156147e457600080fd5b9250929050565b60008235603e1983360301811261480157600080fd5b90910192915050565b6000808335601e1984360301811261482157600080fd5b83016020810192503590506001600160401b0381111561484057600080fd5b8060051b36038213156147e457600080fd5b600060408301823561486381614281565b6001600160401b03168452602061487c8482018561480a565b6040878401529283905291600090606087015b818310156148bf5784356148a2816142b9565b6001600160a01b031681529383019360019290920191830161488f565b979650505050505050565b6000808335601e198436030181126148e157600080fd5b83016020810192503590506001600160401b0381111561490057600080fd5b8036038213156147e457600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600061494482836147eb565b604084526149556040850182614852565b905061496460208401846147eb565b8482036020860152803561497781614511565b60ff16825261498960208201826148ca565b9150604060208401526149a060408401838361490f565b9695505050505050565b81835260006020808501808196508560051b81019150846000805b88811015614ad9578385038a526149dc83896147eb565b6040813560be198336030181126149f1578485fd5b8188528201614a0081806147eb565b60c080848b0152614a156101008b0183614938565b9150614a238b8401846147eb565b603f196060818d860301818e0152614a3b8584614938565b94506080925086860135838e015280860135965050614a5986614281565b60a06001600160401b038716818e0152828601359650614a7887614649565b6001600160e01b031987168d850152614a93868201876148ca565b9750955050808c85030160e08d0152505050614ab081848461490f565b92505050614abf88830161466a565b1515968801969096525098850198918501916001016149c5565b509298975050505050505050565b602081526000613e936020830184866149aa565b602081526000613c7d60208301846140f6565b600060208284031215614b2057600080fd5b81516140bb816142b9565b634e487b7160e01b600052602160045260246000fd5b60005b83811015614b5c578181015183820152602001614b44565b50506000910152565b60008151808452614b7d816020860160208601614b41565b601f01601f19169290920160200192915050565b6000815160408452614ba660408501826140f6565b90506020830151848203602086015260ff815116825260208101519050604060208301526127ba6040830182614b65565b6000815160c08452614bec60c0850182614b91565b905060208301518482036020860152614c058282614b91565b915050604083015160408501526001600160401b03606084015116606085015263ffffffff60e01b608084015116608085015260a083015184820360a08601526127ba8282614b65565b6000815160408452614c646040850182614bd7565b6020938401511515949093019390935250919050565b600081518084526020808501808196508360051b8101915082860160005b85811015614cc2578284038952614cb0848351614c4f565b98850198935090840190600101614c98565b5091979650505050505050565b600081518084526020808501808196508360051b810191508286016000805b86811015614ad9578385038a52825160408151818852614d10828901826140f6565b92890151888403898b01528051808552908a01938693508a0191505b80831015614d4c5783518252928901926001929092019190890190614d2c565b509b88019b9650505091850191600101614cee565b602081526000825160e06020840152614d7e6101008401826140f6565b90506001600160401b036020850151166040840152604084015160608401526060840151601f1980858403016080860152614db98383614c7a565b925060808601519150808584030160a0860152614dd68383614ccf565b925060a086015160c086015260c08601519150808584030160e0860152506127ba8282614b65565b600060208284031215614e1057600080fd5b5051919050565b81835260006020808501808196506005915085821b8101856000805b89811015614eb3578484038b52614e4a838a6147eb565b6040614e5682836147eb565b818752614e6582880182614852565b915050614e748983018361480a565b8783038b89015280835292506001600160fb1b03831115614e93578485fd5b91881b918281838c0137509b88019b018701935091860191600101614e33565b50919998505050505050505050565b85815260a060208201526000614ed886876147eb565b60e060a0840152614eed610180840182614852565b90506020870135614efd81614281565b6001600160401b031660c0840152604087013560e0840152614f22606088018861480a565b609f198086850301610100870152614f3b8483856149aa565b9350614f4a60808b018b61480a565b935091508086850301610120870152614f64848484614e17565b935060a08a0135610140870152614f7e60c08b018b6148ca565b93509150808685030161016087015250614f9983838361490f565b93505050508460408301528360608301526149a060808301846001600160401b03169052565b634e487b7160e01b600052603260045260246000fd5b80820180821115613c8057613c806143b3565b60008135613c8081614281565b8082028115828204841417613c8057613c806143b3565b5b81811015613044576000815560010161500d565b80546000825580156130445781600052602060002061082f8282018261500c565b600160401b821115615056576150566141f1565b80548282558083101561082f5781600052602060002061205082820185830161500c565b6000815561218460018201615021565b600019600383901b1c191660019190911b1790565b6150a981546140c2565b801561304457601f8111600181146150c357505060009055565b8260005260206000206150e1601f840160051c82016001830161500c565b60008085559055505050565b600081556150fd60018201615021565b600060028201556121846003820161509f565b6000808335601e1984360301811261512757600080fd5b8301803591506001600160401b0382111561514157600080fd5b6020019150368190038213156147e457600080fd5b601f82111561082f57806000526020600020601f840160051c8101602085101561517d5750805b6111a3601f850160051c83018261500c565b6001600160401b038311156151a6576151a66141f1565b6151ba836151b483546140c2565b83615156565b6000601f8411600181146151e857600085156151d65750838201355b6151e0868261508a565b8455506111a3565b600083815260209020601f19861690835b8281101561521957868501358255602094850194600190920191016151f9565b50868210156152365760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b61525282836143fc565b803561525d81614281565b82546001600160401b0319166001600160401b038216178355506001808301602061528a8185018561479b565b94506001600160401b03808611156152a4576152a46141f1565b6152ae8685615042565b600093845282842093805b878110156152db5783356152cc816142b9565b868201559284019286016152b9565b506002880196506152ee848a018a6143fc565b9450843592506152fd83614511565b865460ff191660ff841617909655600387019561531c85850186615110565b9550925081851115615330576153306141f1565b6153448561533e89546140c2565b89615156565b809150601f851160018114615372578186156153605750838301355b61536a878261508a565b8955506153c7565b600088815260209020601f19871690835b828110156153a05786860135825594870194908901908701615383565b50878210156153bd5760001960f88960031b161c19858701351681555b50508686881b0188555b50505050505050505050565b60008135613c8081614649565b60008135613c80816144e6565b813560be1983360301811261540157600080fd5b820161540d81806143fc565b61541781826143fc565b803561542281614281565b84546001600160401b0319166001600160401b038216178555506001808501602061544f8185018561479b565b94506001600160401b0380861115615469576154696141f1565b6154738685615042565b600093845282842093805b878110156154a0578335615491816142b9565b8682015592840192860161547e565b5060028a0196506154b3848901896143fc565b9750873594506154c285614511565b865460ff191660ff86161790965560038901956154e188850189615110565b98509450818811156154f5576154f56141f1565b6155038861533e89546140c2565b809250601f881160018114615533578192508815615522578386013592505b61552c898461508a565b8855615588565b600088815260209020601f198a169350825b848110156155625787860135825594860194908801908601615545565b508984101561557f5760001960f88b60031b161c19858801351681555b508689881b0188555b505050506155a461559b828801886143fc565b60048901615248565b604086013560088801556009870194506155e06155c360608801614fe8565b86546001600160401b0319166001600160401b0391909116178655565b6156196155ef608088016153d3565b86546bffffffff0000000000000000191660a09190911c6bffffffff000000000000000016178655565b61562660a0870187615110565b965094506156388686600a8a0161518f565b61565f615646828a016153e0565b600b890160ff1981541660ff8315151681178255505050565b5050505050505050565b600160401b83111561567d5761567d6141f1565b80548382558084101561571157600c81810281810483146156a0576156a06143b3565b85820282810487146156b4576156b46143b3565b6000858152602081209283019291909101905b8282101561570c576156d8826150ed565b6156e4600483016150ed565b8060088301558060098301556156fc600a830161509f565b80600b83015583820191506156c7565b505050505b5060008181526020812083915b8581101561574f5761573961573384876143fc565b836153ed565b60209290920191600c919091019060010161571e565b505050505050565b80546000808355811561082f57828152602081208281015b808210156111a35782825560018201915061576f565b600160401b821115615799576157996141f1565b80548282558083101561082f576000828152602081208481019083015b8082101561574f578282556001820191506157b6565b6157d682836143fc565b80356157e181614281565b82546001600160401b0319166001600160401b038216178355506001808301602061580e8185018561479b565b94506001600160401b0380861115615828576158286141f1565b6158328685615042565b600093845282842093805b8781101561585f578335615850816142b9565b8682015592840192860161583d565b50600288019650615872848a018a61479b565b9550925081851115615886576158866141f1565b6158908588615785565b95865250818520945b8381101561565f57813586820155908201908401615899565b600160401b8311156158c6576158c66141f1565b80548382558084101561593457600381810281810483146158e9576158e96143b3565b85820282810487146158fd576158fd6143b3565b60008581526020902091820191015b818110156159305761591d8161507a565b61592960028201615757565b820161590c565b5050505b5060008181526020812083915b8581101561574f5761595c61595684876143fc565b836157cc565b6020929092019160039190910190600101615941565b61597c82836143fc565b803561598781614281565b82546001600160401b0319166001600160401b03821617835550600180830160206159b48185018561479b565b94506001600160401b038511156159cd576159cd6141f1565b6159d78584615042565b6000928352818320925b85811015615a035781356159f4816142b9565b848201559082019084016159e1565b5050615a34615a13828801614fe8565b600287016001600160401b0382166001600160401b03198254161781555050565b5050505060408201356003820155615a4f606083018361479b565b615a5d818360048601615669565b5050615a6c608083018361479b565b615a7a8183600586016158b2565b505060a08201356006820155615a9360c0830183615110565b61205081836007860161518f565b6000615aaf61435784614296565b8381529050602080820190600585901b840186811115615ace57600080fd5b845b81811015615b095780356001600160401b03811115615aef5760008081fd5b615afb89828901614675565b855250928201928201615ad0565b505050509392505050565b6000613c7d368484615aa1565b6040815260006141df6040830185614bd7565b600060208284031215615b4657600080fd5b8151600281106140bb57600080fd5b604081526000615b6860408301856140f6565b82810360208401526127ba81856140f6565b60006001600160401b03808316818103615b9657615b966143b3565b6001019392505050565b600060408236031215615bb257600080fd5b615bba614207565b8235615bc581614281565b815260208301356001600160401b03811115615be057600080fd5b830136601f820112615bf157600080fd5b615c0036823560208401615aa1565b60208301525092915050565b602081526001600160401b03825116602082015260006020830151604080840152613e936060840182614c7a565b8135615c4581614281565b81546001600160401b0319166001600160401b0382161782555060018082016020615c728186018661479b565b600160401b811115615c8657615c866141f1565b835481855580821015615d1957600c8181028181048314615ca957615ca96143b3565b8382028281048514615cbd57615cbd6143b3565b60008881528781209283019291909101905b82821015615d1457615ce0826150ed565b615cec600483016150ed565b806008830155806009830155615d04600a830161509f565b80600b8301558382019150615ccf565b505050505b506000938452602084209382905b82811015615d5457615d42615d3c83866143fc565b876153ed565b600c9590950194908401908601615d27565b505050505050505050565b604081526000615d7260408301856140f6565b905060018060a01b03831660208301529392505050565b81516001600160401b03811115615da257615da26141f1565b615db681615db084546140c2565b84615156565b602080601f831160018114615de55760008415615dd35750858301515b615ddd858261508a565b86555061574f565b600085815260208120601f198616915b82811015615e1457888601518255948401946001909101908401615df5565b5085821015615e325787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160401b03818116838216019080821115615e6257615e626143b3565b5092915050565b6001600160401b03828116828216039080821115615e6257615e626143b3565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b0380841680615eb957615eb9615e89565b92169190910692915050565b602081526000613c7d6020830184614c4f565b600060208284031215615eea57600080fd5b81516001600160401b03811115615f0057600080fd5b8201601f81018413615f1157600080fd5b8051615f1f61435782614520565b818152856020838501011115615f3457600080fd5b6127ba826020830160208601614b41565b60006001600160401b0380841680615f5f57615f5f615e89565b92169190910492915050565b6001600160401b03818116838216028082169190828114615f8e57615f8e6143b3565b505092915050565b600082615fa557615fa5615e89565b500490565b8051604080845281516001600160401b031684820152602091820151606085019190915280516080850181905260009291820191839160a08701905b8084101561600f5784516001600160a01b03168252938201936001939093019290820190615fe6565b508186015193508681038288015260ff84511681528184015193506040828201526148bf6040820185614b65565b602081526000825160406020840152805160c06060850152616063610120850182615faa565b90506020820151605f19808684030160808701526160818383615faa565b9250604084015160a08701526001600160401b0360608501511660c087015263ffffffff60e01b60808501511660e087015260a08401519350808684030161010087015250506160d18183614b65565b91505060208401516160e7604085018215159052565b509392505050565b600082516143f2818460208701614b4156fe283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e270a26469706673582212207ed4ef5ae251d58e3538675b2f94b163330eac21fc1fc4991ea468722d0abb7564736f6c63430008130033", + "sourceMap": "1458:13897:40:-:0;;;;;;;;;;;;;;;;;;;", + "linkReferences": { + "src/lib/AccountHelper.sol": { + "AccountHelper": [ + { + "start": 8481, + "length": 20 + } + ] + }, + "src/lib/CheckpointHelper.sol": { + "CheckpointHelper": [ + { + "start": 6581, + "length": 20 + }, + { + "start": 6842, + "length": 20 + }, + { + "start": 8643, + "length": 20 + }, + { + "start": 9803, + "length": 20 + } + ] + }, + "src/lib/CrossMsgHelper.sol": { + "CrossMsgHelper": [ + { + "start": 2261, + "length": 20 + }, + { + "start": 14390, + "length": 20 + } + ] + }, + "src/lib/EpochVoteSubmissionHelper.sol": { + "EpochVoteSubmissionHelper": [ + { + "start": 12889, + "length": 20 + }, + { + "start": 15628, + "length": 20 + } + ] + }, + "src/lib/ExecutableQueueHelper.sol": { + "ExecutableQueueHelper": [ + { + "start": 12760, + "length": 20 + }, + { + "start": 13053, + "length": 20 + }, + { + "start": 13225, + "length": 20 + } + ] + }, + "src/lib/StorableMsgHelper.sol": { + "StorableMsgHelper": [ + { + "start": 7608, + "length": 20 + }, + { + "start": 13646, + "length": 20 + } + ] + }, + "src/lib/SubnetIDHelper.sol": { + "SubnetIDHelper": [ + { + "start": 1287, + "length": 20 + }, + { + "start": 1774, + "length": 20 + }, + { + "start": 2010, + "length": 20 + }, + { + "start": 4628, + "length": 20 + }, + { + "start": 7295, + "length": 20 + }, + { + "start": 7445, + "length": 20 + }, + { + "start": 7758, + "length": 20 + }, + { + "start": 7884, + "length": 20 + }, + { + "start": 8192, + "length": 20 + }, + { + "start": 10392, + "length": 20 + }, + { + "start": 10721, + "length": 20 + }, + { + "start": 11517, + "length": 20 + }, + { + "start": 13434, + "length": 20 + }, + { + "start": 13776, + "length": 20 + }, + { + "start": 13927, + "length": 20 + }, + { + "start": 15108, + "length": 20 + }, + { + "start": 15371, + "length": 20 + } + ] + } + } + }, + "deployedBytecode": { + "object": "0x60806040526004361061003f5760003560e01c806325bf0db6146100445780632f757dd114610059578063986acf381461006c578063d4e149a81461008c575b600080fd5b61005761005236600461401c565b6100ac565b005b61005761006736600461404d565b61065a565b34801561007857600080fd5b5061005761008736600461404d565b610834565b34801561009857600080fd5b506100576100a7366004614081565b6111aa565b6100b4611c1e565b600081815260066020908152604080832081516101808101835281546001600160401b0316610140820190815260018301805485518188028101880187528181529497968796610448968a958795928601948794869461010089019487948694909386936101608d019392909183018282801561015a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161013c575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610194906140c2565b80601f01602080910402602001604051908101604052809291908181526020018280546101c0906140c2565b801561020d5780601f106101e25761010080835404028352916020019161020d565b820191906000526020600020905b8154815290600101906020018083116101f057829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561029e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610280575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906102d8906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054610304906140c2565b80156103515780601f1061032657610100808354040283529160200191610351565b820191906000526020600020905b81548152906001019060200180831161033457829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916103ac906140c2565b80601f01602080910402602001604051908101604052809291908181526020018280546103d8906140c2565b80156104255780601f106103fa57610100808354040283529160200191610425565b820191906000526020600020905b81548152906001019060200180831161040857829003601f168201915b505050919092525050508152600b919091015460ff161515602090910152611c43565b60088501546040805180820182526004880180546001600160401b03168252600589018054845160208281028201810190965281815297995095975093956000959294919380860193919291908301828280156104ce57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116104b0575b50505091909252505060405163089032d560e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263089032d59250610510916000906004016141cc565b600060405180830381865af415801561052d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261055591908101906142ce565b600087815260066020526040812080546001600160401b03191681559192508181818181816105876001830182613f0a565b505060028201805460ff1916815560006105a46003850182613f28565b505050506004820180546001600160401b0319168155600081816105cb6005870182613f0a565b505060028201805460ff1916815560006105e86003850182613f28565b50506000600885018190556009850180546001600160601b03191690556106159250600a85019150613f28565b505050600b01805460ff1916905561062f82828686611fb5565b600a5460009061063f90346143c9565b90508015610651576106513382612056565b50505050505050565b6106626120eb565b61066a611c1e565b3461067582806143dc565b604001351461069757604051631036b5ad60e31b815260040160405180910390fd5b6106a181806143dc565b6106ab90806143fc565b6106b590806143fc565b6106be906144da565b60405163c836244d60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9163c836244d916106f791906000906004016141cc565b602060405180830381865af4158015610714573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073891906144f4565b61075557604051638481de4960e01b815260040160405180910390fd5b60008061076961076484614772565b611c43565b909250905061082f61077b84806143dc565b6040013561078985806143dc565b6107979060208101906143fc565b6107a190806143fc565b6107aa906144da565b60405163089032d560e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9163089032d5916107e391906000906004016141cc565b600060405180830381865af4158015610800573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261082891908101906142ce565b8484611fb5565b505050565b61083c6120eb565b61085161084c602083018361477e565b61217b565b600d546000908152600c6020908152604080832033845290915290205460105460ff16610891576040516321c4e35760e21b815260040160405180910390fd5b806000036108b257604051632ec5b44960e01b815260040160405180910390fd5b73__$33b79814e84bf6cf5e47244090b19ce5f8$__63898414756108d9602085018561479b565b6040518363ffffffff1660e01b81526004016108f6929190614ae7565b602060405180830381865af4158015610913573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093791906144f4565b61095457604051630bd9169f60e01b815260040160405180910390fd5b6000601181610966602086018661477e565b6001600160401b03166001600160401b031681526020019081526020016000209050600061099682853386612187565b905060608115610d6f576109a9836126bf565b805480602002602001604051908101604052809291908181526020016000905b82821015610d685760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015610a6f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a51575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610aa9906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad5906140c2565b8015610b225780601f10610af757610100808354040283529160200191610b22565b820191906000526020600020905b815481529060010190602001808311610b0557829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015610bb357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b95575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610bed906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054610c19906140c2565b8015610c665780601f10610c3b57610100808354040283529160200191610c66565b820191906000526020600020905b815481529060010190602001808311610c4957829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191610cc1906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054610ced906140c2565b8015610d3a5780601f10610d0f57610100808354040283529160200191610d3a565b820191906000526020600020905b815481529060010190602001808311610d1d57829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016109c9565b5050505090505b805160000361117857600080610d836126f1565b915091508015611175576001600160401b0382166000908152601160205260409020610dae816126bf565b805480602002602001604051908101604052809291908181526020016000905b8282101561116d5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015610e7457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e56575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610eae906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054610eda906140c2565b8015610f275780601f10610efc57610100808354040283529160200191610f27565b820191906000526020600020905b815481529060010190602001808311610f0a57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015610fb857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610f9a575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610ff2906140c2565b80601f016020809104026020016040519081016040528092919081815260200182805461101e906140c2565b801561106b5780601f106110405761010080835404028352916020019161106b565b820191906000526020600020905b81548152906001019060200180831161104e57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916110c6906140c2565b80601f01602080910402602001604051908101604052809291908181526020018280546110f2906140c2565b801561113f5780601f106111145761010080835404028352916020019161113f565b820191906000526020600020905b81548152906001019060200180831161112257829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101610dce565b505050509350505b50505b6040805180820182526000808252825181815260208181019094526111a39383019150905282612744565b5050505050565b60105460ff166111cd576040516321c4e35760e21b815260040160405180910390fd5b336112696111db83806143fc565b6111e4906144da565b604051632cff562160e11b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__916359feac429161121a9190600401614afb565b602060405180830381865af4158015611237573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125b9190614b0e565b6001600160a01b031661277c565b6001600160a01b03161461129057604051637f39132760e11b815260040160405180910390fd5b600061129b336127c3565b915060019050815460ff1660058111156112b7576112b7614b2b565b146112d55760405163c18316bf60e01b815260040160405180910390fd5b6112e5604083016020840161477e565b60088201546001600160401b039182169116106113155760405163fae4eadb60e01b815260040160405180910390fd5b60a082013515611a1f5760408051610120810182526006830180546001600160401b031660e083019081526007850180548551602082810282018101909752818152949593948694869361010087019390918301828280156113a057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611382575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156117aa5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d019390918301828280156114b157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611493575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906114eb906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054611517906140c2565b80156115645780601f1061153957610100808354040283529160200191611564565b820191906000526020600020905b81548152906001019060200180831161154757829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156115f557602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116115d7575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061162f906140c2565b80601f016020809104026020016040519081016040528092919081815260200182805461165b906140c2565b80156116a85780601f1061167d576101008083540402835291602001916116a8565b820191906000526020600020905b81548152906001019060200180831161168b57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191611703906140c2565b80601f016020809104026020016040519081016040528092919081815260200182805461172f906140c2565b801561177c5780601f106117515761010080835404028352916020019161177c565b820191906000526020600020905b81548152906001019060200180831161175f57829003601f168201915b505050919092525050508152600b919091015460ff161515602091820152908252600192909201910161140b565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b828210156118e1576000848152602090819020604080516080810182526003860290920180546001600160401b03168383019081526001820180548451818802810188019095528085529495929486949293869360608701939092909183018282801561186d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161184f575b5050505050815250508152602001600282018054806020026020016040519081016040528092919081815260200182805480156118c957602002820191906000526020600020905b8154815260200190600101908083116118b5575b505050505081525050815260200190600101906117d7565b50505050815260200160068201548152602001600782018054611903906140c2565b80601f016020809104026020016040519081016040528092919081815260200182805461192f906140c2565b801561197c5780601f106119515761010080835404028352916020019161197c565b820191906000526020600020905b81548152906001019060200180831161195f57829003601f168201915b5050509190925250506040516339aa47fb60e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__926339aa47fb92506119bb91600401614d61565b602060405180830381865af41580156119d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119fc9190614dfe565b8260a0013514611a1f576040516312232e5d60e11b815260040160405180910390fd5b6000806000611a2c6128fb565b92509250925082611a8a576000805482546001600160401b0319166001600160401b03909116178255600180548391611a69918184019190613f62565b5050506002810180546001600160401b0319166001600160401b0384161790555b60405163445cc97560e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__9063445cc97590611acb9084908990600e90600f908990600401614ec2565b60006040518083038186803b158015611ae357600080fd5b505af4158015611af7573d6000803e3d6000fd5b50505050600080868060600190611b0e919061479b565b9050905060005b81811015611b6e57611b2a606089018961479b565b82818110611b3a57611b3a614fbf565b9050602002810190611b4c91906143fc565b611b5690806143dc565b611b64906040013584614fd5565b9250600101611b15565b506003830154611b82906040890135614fd5565b611b8c9083614fd5565b91508186600301541015611bb357604051631d36ca1560e21b815260040160405180910390fd5b81866003016000828254611bc791906143c9565b9091555087905060068701611bdc8282615972565b50611c109050611bec88806143fc565b611bf5906144da565b611c0260608a018a61479b565b611c0b91615b14565b612744565b610651338860400135612a31565b600a54341015611c41576040516334472ad760e11b815260040160405180910390fd5b565b80516020015151604051630c133d1360e31b8152600091829173__$a0fe38a9a81205afccc10810b09a4d3f45$__90636099e89890611c86908490600401614afb565b602060405180830381865af4158015611ca3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc791906144f4565b15611ce55760405163461e815d60e01b815260040160405180910390fd5b60405163c836244d60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9063c836244d90611d1f9084906000906004016141cc565b602060405180830381865af4158015611d3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d6091906144f4565b15611d7e57604051632f3335ff60e21b815260040160405180910390fd5b835180515160405163f47ad7eb60e01b8152909160009173__$386b5c41ce93e8b832daf8008b3d30ae09$__9163f47ad7eb91611dc091908590600401615b21565b602060405180830381865af4158015611ddd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e019190615b34565b905060006001826001811115611e1957611e19614b2b565b03611f1a57604051631ccc893360e11b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__90633999126690611e579087908790600401615b55565b600060405180830381865af4158015611e74573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e9c91908101906142ce565b60405163c836244d60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9163c836244d91611ed591906000906004016141cc565b602060405180830381865af4158015611ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f1691906144f4565b1590505b8015611f3e57611f2987612a8f565b50509351604001511515946000945092505050565b6000826001811115611f5257611f52614b2b565b03611f9c5760098054600890611f7790600160401b90046001600160401b0316615b7a565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b611fa587612cc1565b5060009660019650945050505050565b8115611fc657611fc6606385612056565b801561205057604051632cff562160e11b81526120509073__$a0fe38a9a81205afccc10810b09a4d3f45$__906359feac4290612007908790600401614afb565b602060405180830381865af4158015612024573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120489190614b0e565b600a54612a31565b50505050565b804710156120775760405163356680b760e01b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146120c4576040519150601f19603f3d011682016040523d82523d6000602084013e6120c9565b606091505b505090508061082f57604051633204506f60e01b815260040160405180910390fd5b604051630972932760e21b815233600482015273__$e800e3908cdbb6b1b5bd452383a17b18f7$__906325ca4c9c90602401602060405180830381865af415801561213a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215e91906144f4565b611c4157604051630a23da2b60e31b815260040160405180910390fd5b61218481612f92565b50565b60008061219385615ba0565b604051630edf122560e41b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__9163edf12250916121c99190600401615c0c565b602060405180830381865af41580156121e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061220a9190614dfe565b90506122288682868661222060208b018b61477e565b600b54613048565b600082815260058801602090815260408083208151808301835281546001600160401b03168152600182018054845181870281018701909552808552969850909591948685019491929184015b828210156126145760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561231b57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116122fd575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190612355906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054612381906140c2565b80156123ce5780601f106123a3576101008083540402835291602001916123ce565b820191906000526020600020905b8154815290600101906020018083116123b157829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561245f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612441575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190612499906140c2565b80601f01602080910402602001604051908101604052809291908181526020018280546124c5906140c2565b80156125125780601f106124e757610100808354040283529160200191612512565b820191906000526020600020905b8154815290600101906020018083116124f557829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161256d906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054612599906140c2565b80156125e65780601f106125bb576101008083540402835291602001916125e6565b820191906000526020600020905b8154815290600101906020018083116125c957829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101612275565b50505091525050604051632d34315760e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__91632d343157916126519190600401615c0c565b602060405180830381865af415801561266e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061269291906144f4565b156126b6576000818152600587016020526040902085906126b38282615c3a565b50505b50949350505050565b60028101546000908152600582016020526040812080546126e8906001600160401b0316613295565b60010192915050565b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27154600160401b90046001600160401b0316600060008051602061610283398151915261273d836133f6565b9150509091565b805160005b81811015612050576127748484838151811061276757612767614fbf565b6020026020010151613443565b600101612749565b600080600061278a84613a22565b915091508161279b57509192915050565b6000806127a783613a5e565b91509150816127ba575093949350505050565b95945050505050565b600080806001600160a01b0384166127ee576040516370e4510960e01b815260040160405180910390fd5b60408051808201825282546001600160401b031681526001830180548351602082810282018101909552818152600094869381860193909183018282801561285f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612841575b50505091909252505060405163aa5106cb60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263aa5106cb92506128a0918990600401615d5f565b600060405180830381865af41580156128bd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526128e591908101906142ce565b90506128f081613ac8565b935093505050915091565b60055460009081908190819061291b9043906001600160401b0316613c5b565b6001600160401b03808216600090815260088401602090815260409182902082518084018452815490941684526001810180548451818502810185019095528085529598509096509293869385830193929091908301828280156129a857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161298a575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e89892506129e791600401614afb565b602060405180830381865af4158015612a04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a2891906144f4565b15935050909192565b80600003612a3d575050565b61082f612a52836001600160a01b031661277c565b6040805160248082018690528251808303909101815260449091019091526020810180516001600160e01b0316632a7edd8f60e21b179052613c86565b600080612a9a6128fb565b600985015486516001600160401b03909116606090910152600a8501546003820180549295509093509150600090612ad3908490614fd5565b90915550506004810180546001808201835560009283526020928390208651805180518051600c90960290930180546001600160401b0319166001600160401b039096169590951785558286015180518a979395879593948694938593612b41938501929190910190613fb2565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190612b779082615d89565b50505050602083810151805180516004860180546001600160401b0319166001600160401b03909216919091178155818401518051939550909391928492612bc6926005890192910190613fb2565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190612bfc9082615d89565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a820190612c599082615d89565b50505060209190910151600b909101805460ff191691151591909117905560098201805460019190600090612c989084906001600160401b0316615e42565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550505050565b8051602001515160405163089032d560e01b8152600091829173__$a0fe38a9a81205afccc10810b09a4d3f45$__9163089032d591612d05919085906004016141cc565b600060405180830381865af4158015612d22573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612d4a91908101906142ce565b9050600080612d5883613ac8565b9150915081612d7a57604051630e991abd60e41b815260040160405180910390fd5b805485516101009091046001600160401b0316606090910181905260019082908290612da7908290615e42565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550846000015160400151816003016000828254612de79190614fd5565b9091555050600e810180546001808201835560009283526020928390208851805180518051600c90960290930180546001600160401b0319166001600160401b039096169590951785558286015180518c979395879593948694938593612e55938501929190910190613fb2565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190612e8b9082615d89565b50505050602083810151805180516004860180546001600160401b0319166001600160401b03909216919091178155818401518051939550909391928492612eda926005890192910190613fb2565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190612f109082615d89565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a820190612f6d9082615d89565b50505060209190910151600b909101805460ff19169115159190911790555050505050565b60008051602061610283398151915280546001600160401b0390811690831611612fcf57604051631f30cc6360e21b815260040160405180910390fd5b80546001600160401b03600160401b909104811690831611156130445780546001600160401b03600160881b820481169161301391600160401b9091041684615e69565b61301d9190615e9f565b6001600160401b0316156130445760405163b4f68f9760e01b815260040160405180910390fd5b5050565b8554600081815260038801602090815260408083206001600160a01b038916845290915281205490916000805160206161028339815191529160ff16156130a2576040516337138f5f60e11b815260040160405180910390fd5b600081815260038a01602090815260408083206001600160a01b038b1684529091528120805460ff191660019081179091558a0180548892906130e6908490614fd5565b9091555050600081815260048a01602090815260408083208b845290915281208054889290613116908490614fd5565b9091555050600081815260048a016020908152604080832060028d01548452909152808220548a8352912054808210156131525760028b018a90555b600061315e8c88613c97565b9050600381600381111561317457613174614b2b565b0361320957613182886133f6565b156131905760019550613286565b60405163199b9ca560e01b81526001860160048201526001600160401b038916602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__9063199b9ca59060440160006040518083038186803b1580156131ec57600080fd5b505af4158015613200573d6000803e3d6000fd5b50505050613286565b600281600381111561321d5761321d614b2b565b0361328657604051635a27a53960e11b8152600481018d905273__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063b44f4a729060240160006040518083038186803b15801561326d57600080fd5b505af4158015613281573d6000803e3d6000fd5b505050505b50505050509695505050505050565b6000805160206161028339815191526132ad826133f6565b6132b5575050565b604051634953836d60e11b81526001820160048201526001600160401b038316602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__906392a706da90604401602060405180830381865af4158015613316573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061333a91906144f4565b156133615760018101546001600160401b03838116600160401b9092041614613361575050565b6040516394ecccfd60e01b81526001820160048201526001600160401b038316602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__906394ecccfd9060440160006040518083038186803b1580156133bd57600080fd5b505af41580156133d1573d6000803e3d6000fd5b505082546001600160401b0319166001600160401b0394909416939093179091555050565b600080516020616102833981519152805460009190613427906001600160401b03600160881b820481169116615e42565b6001600160401b0316836001600160401b031614915050919050565b80516020015151604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__91636099e898916134809190600401614afb565b602060405180830381865af415801561349d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134c191906144f4565b156134df5760405163461e815d60e01b815260040160405180910390fd5b8051608001516001600160e01b031916613519578051604001514710156135195760405163569d45cf60e11b815260040160405180910390fd5b805160405163f47ad7eb60e01b815260009173__$386b5c41ce93e8b832daf8008b3d30ae09$__9163f47ad7eb91613555918590600401615b21565b602060405180830381865af4158015613572573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135969190615b34565b8251602001515160405163c836244d60e01b815291925073__$a0fe38a9a81205afccc10810b09a4d3f45$__9163c836244d916135d8916000906004016141cc565b602060405180830381865af41580156135f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061361991906144f4565b1561388257600181600181111561363257613632614b2b565b0361376757604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__90636099e8989061366e908690600401614afb565b602060405180830381865af415801561368b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136af91906144f4565b613767576000806136bf85613ac8565b91509150816136e157604051630e991abd60e41b815260040160405180910390fd5b8351606001518154600160481b90046001600160401b0390811691161461371b5760405163a57cadff60e01b815260040160405180910390fd5b80546001908290600990613740908490600160481b90046001600160401b0316615e42565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555050505b600081600181111561377b5761377b614b2b565b0361380657815160600151600954600160401b90046001600160401b039081169116146137bb5760405163a57cadff60e01b815260040160405180910390fd5b60098054600191906008906137e1908490600160401b90046001600160401b0316615e42565b92506101000a8154816001600160401b0302191690836001600160401b031602179055505b604051635c46fefb60e11b815273__$33b79814e84bf6cf5e47244090b19ce5f8$__9063b88dfdf69061383d908590600401615ec5565b600060405180830381865af415801561385a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120509190810190615ed8565b600061388d83613dac565b6000818152600660209081526040909120855180518051805184546001600160401b0319166001600160401b03909116178455808501518051969750899694959394869485939284926138e69260018501920190613fb2565b505050602082810151805160028401805460ff191660ff90921691909117815591810151909190600384019061391c9082615d89565b50505050602083810151805180516004860180546001600160401b0319166001600160401b0390921691909117815581840151805193955090939192849261396b926005890192910190613fb2565b505050602082810151805160028401805460ff191660ff9092169190911781559181015190919060038401906139a19082615d89565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a8201906139fe9082615d89565b50505060209190910151600b909101805460ff191691151591909117905550505050565b60008073ffffffffffffffffffffffff0000000000000000831660ff60981b8103613a5857600192506001600160401b03841691505b50915091565b600080826000526016600a602060006002607f60991b015afa9150600051806001600160a01b031691508060a01c61ffff16905061040a8114613aa45760009250600091505b50811580613ab357503d601614155b15613ac357506000928392509050565b915091565b6040516390ba52cf60e01b815260009081908190600490829073__$a0fe38a9a81205afccc10810b09a4d3f45$__906390ba52cf90613b0a9089908601614afb565b602060405180830381865af4158015613b27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b4b9190614dfe565b81526020808201929092526040908101600020815180830183526004820180546001600160401b031682526005830180548551818802810188019096528086529397509194909385820193909291830182828015613bd257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613bb4575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e8989250613c1191600401614afb565b602060405180830381865af4158015613c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c5291906144f4565b15925050915091565b600081613c688185615f45565b613c73906001615e42565b613c7d9190615f6b565b90505b92915050565b6060613c7d83836000613ddc613df5565b6000805160206161028339815191528054600091908290606490613cc590600160801b900460ff1686614ff5565b613ccf9190615f96565b604051637d2ef4e560e11b81526004810187905290915060009073__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063fa5de9ca90602401602060405180830381865af4158015613d25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d499190614dfe565b905081866001015411613d625760009350505050613c80565b81811115613d765760039350505050613c80565b6001860154613d8590866143c9565b613d8f82846143c9565b10613da05760029350505050613c80565b50600195945050505050565b600081604051602001613dbf919061603d565b604051602081830303815290604052805190602001209050919050565b604051630a12f52160e11b815260040160405180910390fd5b606082471015613e1f5760405163cd78605960e01b81523060048201526024015b60405180910390fd5b600080866001600160a01b03168587604051613e3b91906160ef565b60006040518083038185875af1925050503d8060008114613e78576040519150601f19603f3d011682016040523d82523d6000602084013e613e7d565b606091505b5091509150613e8e87838387613e9b565b925050505b949350505050565b60608315613ee9578251600003613ee257846001600160a01b03163b600003613ee257604051639996b31560e01b81526001600160a01b0386166004820152602401613e16565b5081613e93565b613e938383815115613efe5781518083602001fd5b613ddc8163ffffffff16565b50805460008255906000526020600020908101906121849190614007565b508054613f34906140c2565b6000825580601f10613f44575050565b601f0160209004906000526020600020908101906121849190614007565b828054828255906000526020600020908101928215613fa25760005260206000209182015b82811115613fa2578254825591600101919060010190613f87565b50613fae929150614007565b5090565b828054828255906000526020600020908101928215613fa2579160200282015b82811115613fa257825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613fd2565b5b80821115613fae5760008155600101614008565b60006020828403121561402e57600080fd5b5035919050565b60006040828403121561404757600080fd5b50919050565b60006020828403121561405f57600080fd5b81356001600160401b0381111561407557600080fd5b613e9384828501614035565b60006020828403121561409357600080fd5b81356001600160401b038111156140a957600080fd5b820160e081850312156140bb57600080fd5b9392505050565b600181811c908216806140d657607f821691505b60208210810361404757634e487b7160e01b600052602260045260246000fd5b6000604083016001600160401b0383511684526020808401516040828701528281518085526060880191508383019450600092505b808310156141545784516001600160a01b0316825293830193600192909201919083019061412b565b509695505050505050565b6000604083016001600160401b0383541684526001808401602060408188015283825480865260608901915083600052826000209550600093505b808410156141c05785546001600160a01b0316825294840194928401929082019061419a565b50979650505050505050565b6040815260006141df60408301856140f6565b82810360208401526127ba818561415f565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715614229576142296141f1565b60405290565b60405160c081016001600160401b0381118282101715614229576142296141f1565b604051601f8201601f191681016001600160401b0381118282101715614279576142796141f1565b604052919050565b6001600160401b038116811461218457600080fd5b60006001600160401b038211156142af576142af6141f1565b5060051b60200190565b6001600160a01b038116811461218457600080fd5b600060208083850312156142e157600080fd5b82516001600160401b03808211156142f857600080fd5b908401906040828703121561430c57600080fd5b614314614207565b825161431f81614281565b8152828401518281111561433257600080fd5b80840193505086601f84011261434757600080fd5b8251915061435c61435783614296565b614251565b82815260059290921b8301840191848101908884111561437b57600080fd5b938501935b838510156143a2578451614393816142b9565b82529385019390850190614380565b948201949094529695505050505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115613c8057613c806143b3565b6000823560be198336030181126143f257600080fd5b9190910192915050565b60008235603e198336030181126143f257600080fd5b803561441d81614281565b919050565b60006040828403121561443457600080fd5b61443c614207565b9050813561444981614281565b81526020828101356001600160401b0381111561446557600080fd5b8301601f8101851361447657600080fd5b803561448461435782614296565b81815260059190911b820183019083810190878311156144a357600080fd5b928401925b828410156144ca5783356144bb816142b9565b825292840192908401906144a8565b8085870152505050505092915050565b6000613c803683614422565b801515811461218457600080fd5b60006020828403121561450657600080fd5b81516140bb816144e6565b60ff8116811461218457600080fd5b60006001600160401b03821115614539576145396141f1565b50601f01601f191660200190565b600082601f83011261455857600080fd5b813561456661435782614520565b81815284602083860101111561457b57600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156145aa57600080fd5b6145b2614207565b905081356001600160401b03808211156145cb57600080fd5b6145d785838601614422565b835260208401359150808211156145ed57600080fd5b908301906040828603121561460157600080fd5b614609614207565b823561461481614511565b815260208301358281111561462857600080fd5b61463487828601614547565b60208301525080602085015250505092915050565b6001600160e01b03198116811461218457600080fd5b803561441d81614649565b803561441d816144e6565b60006040828403121561468757600080fd5b61468f614207565b905081356001600160401b03808211156146a857600080fd5b9083019060c082860312156146bc57600080fd5b6146c461422f565b8235828111156146d357600080fd5b6146df87828601614598565b8252506020830135828111156146f457600080fd5b61470087828601614598565b6020830152506040830135604082015261471c60608401614412565b606082015261472d6080840161465f565b608082015260a08301358281111561474457600080fd5b61475087828601614547565b60a08301525083525061476790506020830161466a565b602082015292915050565b6000613c803683614675565b60006020828403121561479057600080fd5b81356140bb81614281565b6000808335601e198436030181126147b257600080fd5b8301803591506001600160401b038211156147cc57600080fd5b6020019150600581901b36038213156147e457600080fd5b9250929050565b60008235603e1983360301811261480157600080fd5b90910192915050565b6000808335601e1984360301811261482157600080fd5b83016020810192503590506001600160401b0381111561484057600080fd5b8060051b36038213156147e457600080fd5b600060408301823561486381614281565b6001600160401b03168452602061487c8482018561480a565b6040878401529283905291600090606087015b818310156148bf5784356148a2816142b9565b6001600160a01b031681529383019360019290920191830161488f565b979650505050505050565b6000808335601e198436030181126148e157600080fd5b83016020810192503590506001600160401b0381111561490057600080fd5b8036038213156147e457600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600061494482836147eb565b604084526149556040850182614852565b905061496460208401846147eb565b8482036020860152803561497781614511565b60ff16825261498960208201826148ca565b9150604060208401526149a060408401838361490f565b9695505050505050565b81835260006020808501808196508560051b81019150846000805b88811015614ad9578385038a526149dc83896147eb565b6040813560be198336030181126149f1578485fd5b8188528201614a0081806147eb565b60c080848b0152614a156101008b0183614938565b9150614a238b8401846147eb565b603f196060818d860301818e0152614a3b8584614938565b94506080925086860135838e015280860135965050614a5986614281565b60a06001600160401b038716818e0152828601359650614a7887614649565b6001600160e01b031987168d850152614a93868201876148ca565b9750955050808c85030160e08d0152505050614ab081848461490f565b92505050614abf88830161466a565b1515968801969096525098850198918501916001016149c5565b509298975050505050505050565b602081526000613e936020830184866149aa565b602081526000613c7d60208301846140f6565b600060208284031215614b2057600080fd5b81516140bb816142b9565b634e487b7160e01b600052602160045260246000fd5b60005b83811015614b5c578181015183820152602001614b44565b50506000910152565b60008151808452614b7d816020860160208601614b41565b601f01601f19169290920160200192915050565b6000815160408452614ba660408501826140f6565b90506020830151848203602086015260ff815116825260208101519050604060208301526127ba6040830182614b65565b6000815160c08452614bec60c0850182614b91565b905060208301518482036020860152614c058282614b91565b915050604083015160408501526001600160401b03606084015116606085015263ffffffff60e01b608084015116608085015260a083015184820360a08601526127ba8282614b65565b6000815160408452614c646040850182614bd7565b6020938401511515949093019390935250919050565b600081518084526020808501808196508360051b8101915082860160005b85811015614cc2578284038952614cb0848351614c4f565b98850198935090840190600101614c98565b5091979650505050505050565b600081518084526020808501808196508360051b810191508286016000805b86811015614ad9578385038a52825160408151818852614d10828901826140f6565b92890151888403898b01528051808552908a01938693508a0191505b80831015614d4c5783518252928901926001929092019190890190614d2c565b509b88019b9650505091850191600101614cee565b602081526000825160e06020840152614d7e6101008401826140f6565b90506001600160401b036020850151166040840152604084015160608401526060840151601f1980858403016080860152614db98383614c7a565b925060808601519150808584030160a0860152614dd68383614ccf565b925060a086015160c086015260c08601519150808584030160e0860152506127ba8282614b65565b600060208284031215614e1057600080fd5b5051919050565b81835260006020808501808196506005915085821b8101856000805b89811015614eb3578484038b52614e4a838a6147eb565b6040614e5682836147eb565b818752614e6582880182614852565b915050614e748983018361480a565b8783038b89015280835292506001600160fb1b03831115614e93578485fd5b91881b918281838c0137509b88019b018701935091860191600101614e33565b50919998505050505050505050565b85815260a060208201526000614ed886876147eb565b60e060a0840152614eed610180840182614852565b90506020870135614efd81614281565b6001600160401b031660c0840152604087013560e0840152614f22606088018861480a565b609f198086850301610100870152614f3b8483856149aa565b9350614f4a60808b018b61480a565b935091508086850301610120870152614f64848484614e17565b935060a08a0135610140870152614f7e60c08b018b6148ca565b93509150808685030161016087015250614f9983838361490f565b93505050508460408301528360608301526149a060808301846001600160401b03169052565b634e487b7160e01b600052603260045260246000fd5b80820180821115613c8057613c806143b3565b60008135613c8081614281565b8082028115828204841417613c8057613c806143b3565b5b81811015613044576000815560010161500d565b80546000825580156130445781600052602060002061082f8282018261500c565b600160401b821115615056576150566141f1565b80548282558083101561082f5781600052602060002061205082820185830161500c565b6000815561218460018201615021565b600019600383901b1c191660019190911b1790565b6150a981546140c2565b801561304457601f8111600181146150c357505060009055565b8260005260206000206150e1601f840160051c82016001830161500c565b60008085559055505050565b600081556150fd60018201615021565b600060028201556121846003820161509f565b6000808335601e1984360301811261512757600080fd5b8301803591506001600160401b0382111561514157600080fd5b6020019150368190038213156147e457600080fd5b601f82111561082f57806000526020600020601f840160051c8101602085101561517d5750805b6111a3601f850160051c83018261500c565b6001600160401b038311156151a6576151a66141f1565b6151ba836151b483546140c2565b83615156565b6000601f8411600181146151e857600085156151d65750838201355b6151e0868261508a565b8455506111a3565b600083815260209020601f19861690835b8281101561521957868501358255602094850194600190920191016151f9565b50868210156152365760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b61525282836143fc565b803561525d81614281565b82546001600160401b0319166001600160401b038216178355506001808301602061528a8185018561479b565b94506001600160401b03808611156152a4576152a46141f1565b6152ae8685615042565b600093845282842093805b878110156152db5783356152cc816142b9565b868201559284019286016152b9565b506002880196506152ee848a018a6143fc565b9450843592506152fd83614511565b865460ff191660ff841617909655600387019561531c85850186615110565b9550925081851115615330576153306141f1565b6153448561533e89546140c2565b89615156565b809150601f851160018114615372578186156153605750838301355b61536a878261508a565b8955506153c7565b600088815260209020601f19871690835b828110156153a05786860135825594870194908901908701615383565b50878210156153bd5760001960f88960031b161c19858701351681555b50508686881b0188555b50505050505050505050565b60008135613c8081614649565b60008135613c80816144e6565b813560be1983360301811261540157600080fd5b820161540d81806143fc565b61541781826143fc565b803561542281614281565b84546001600160401b0319166001600160401b038216178555506001808501602061544f8185018561479b565b94506001600160401b0380861115615469576154696141f1565b6154738685615042565b600093845282842093805b878110156154a0578335615491816142b9565b8682015592840192860161547e565b5060028a0196506154b3848901896143fc565b9750873594506154c285614511565b865460ff191660ff86161790965560038901956154e188850189615110565b98509450818811156154f5576154f56141f1565b6155038861533e89546140c2565b809250601f881160018114615533578192508815615522578386013592505b61552c898461508a565b8855615588565b600088815260209020601f198a169350825b848110156155625787860135825594860194908801908601615545565b508984101561557f5760001960f88b60031b161c19858801351681555b508689881b0188555b505050506155a461559b828801886143fc565b60048901615248565b604086013560088801556009870194506155e06155c360608801614fe8565b86546001600160401b0319166001600160401b0391909116178655565b6156196155ef608088016153d3565b86546bffffffff0000000000000000191660a09190911c6bffffffff000000000000000016178655565b61562660a0870187615110565b965094506156388686600a8a0161518f565b61565f615646828a016153e0565b600b890160ff1981541660ff8315151681178255505050565b5050505050505050565b600160401b83111561567d5761567d6141f1565b80548382558084101561571157600c81810281810483146156a0576156a06143b3565b85820282810487146156b4576156b46143b3565b6000858152602081209283019291909101905b8282101561570c576156d8826150ed565b6156e4600483016150ed565b8060088301558060098301556156fc600a830161509f565b80600b83015583820191506156c7565b505050505b5060008181526020812083915b8581101561574f5761573961573384876143fc565b836153ed565b60209290920191600c919091019060010161571e565b505050505050565b80546000808355811561082f57828152602081208281015b808210156111a35782825560018201915061576f565b600160401b821115615799576157996141f1565b80548282558083101561082f576000828152602081208481019083015b8082101561574f578282556001820191506157b6565b6157d682836143fc565b80356157e181614281565b82546001600160401b0319166001600160401b038216178355506001808301602061580e8185018561479b565b94506001600160401b0380861115615828576158286141f1565b6158328685615042565b600093845282842093805b8781101561585f578335615850816142b9565b8682015592840192860161583d565b50600288019650615872848a018a61479b565b9550925081851115615886576158866141f1565b6158908588615785565b95865250818520945b8381101561565f57813586820155908201908401615899565b600160401b8311156158c6576158c66141f1565b80548382558084101561593457600381810281810483146158e9576158e96143b3565b85820282810487146158fd576158fd6143b3565b60008581526020902091820191015b818110156159305761591d8161507a565b61592960028201615757565b820161590c565b5050505b5060008181526020812083915b8581101561574f5761595c61595684876143fc565b836157cc565b6020929092019160039190910190600101615941565b61597c82836143fc565b803561598781614281565b82546001600160401b0319166001600160401b03821617835550600180830160206159b48185018561479b565b94506001600160401b038511156159cd576159cd6141f1565b6159d78584615042565b6000928352818320925b85811015615a035781356159f4816142b9565b848201559082019084016159e1565b5050615a34615a13828801614fe8565b600287016001600160401b0382166001600160401b03198254161781555050565b5050505060408201356003820155615a4f606083018361479b565b615a5d818360048601615669565b5050615a6c608083018361479b565b615a7a8183600586016158b2565b505060a08201356006820155615a9360c0830183615110565b61205081836007860161518f565b6000615aaf61435784614296565b8381529050602080820190600585901b840186811115615ace57600080fd5b845b81811015615b095780356001600160401b03811115615aef5760008081fd5b615afb89828901614675565b855250928201928201615ad0565b505050509392505050565b6000613c7d368484615aa1565b6040815260006141df6040830185614bd7565b600060208284031215615b4657600080fd5b8151600281106140bb57600080fd5b604081526000615b6860408301856140f6565b82810360208401526127ba81856140f6565b60006001600160401b03808316818103615b9657615b966143b3565b6001019392505050565b600060408236031215615bb257600080fd5b615bba614207565b8235615bc581614281565b815260208301356001600160401b03811115615be057600080fd5b830136601f820112615bf157600080fd5b615c0036823560208401615aa1565b60208301525092915050565b602081526001600160401b03825116602082015260006020830151604080840152613e936060840182614c7a565b8135615c4581614281565b81546001600160401b0319166001600160401b0382161782555060018082016020615c728186018661479b565b600160401b811115615c8657615c866141f1565b835481855580821015615d1957600c8181028181048314615ca957615ca96143b3565b8382028281048514615cbd57615cbd6143b3565b60008881528781209283019291909101905b82821015615d1457615ce0826150ed565b615cec600483016150ed565b806008830155806009830155615d04600a830161509f565b80600b8301558382019150615ccf565b505050505b506000938452602084209382905b82811015615d5457615d42615d3c83866143fc565b876153ed565b600c9590950194908401908601615d27565b505050505050505050565b604081526000615d7260408301856140f6565b905060018060a01b03831660208301529392505050565b81516001600160401b03811115615da257615da26141f1565b615db681615db084546140c2565b84615156565b602080601f831160018114615de55760008415615dd35750858301515b615ddd858261508a565b86555061574f565b600085815260208120601f198616915b82811015615e1457888601518255948401946001909101908401615df5565b5085821015615e325787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160401b03818116838216019080821115615e6257615e626143b3565b5092915050565b6001600160401b03828116828216039080821115615e6257615e626143b3565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b0380841680615eb957615eb9615e89565b92169190910692915050565b602081526000613c7d6020830184614c4f565b600060208284031215615eea57600080fd5b81516001600160401b03811115615f0057600080fd5b8201601f81018413615f1157600080fd5b8051615f1f61435782614520565b818152856020838501011115615f3457600080fd5b6127ba826020830160208601614b41565b60006001600160401b0380841680615f5f57615f5f615e89565b92169190910492915050565b6001600160401b03818116838216028082169190828114615f8e57615f8e6143b3565b505092915050565b600082615fa557615fa5615e89565b500490565b8051604080845281516001600160401b031684820152602091820151606085019190915280516080850181905260009291820191839160a08701905b8084101561600f5784516001600160a01b03168252938201936001939093019290820190615fe6565b508186015193508681038288015260ff84511681528184015193506040828201526148bf6040820185614b65565b602081526000825160406020840152805160c06060850152616063610120850182615faa565b90506020820151605f19808684030160808701526160818383615faa565b9250604084015160a08701526001600160401b0360608501511660c087015263ffffffff60e01b60808501511660e087015260a08401519350808684030161010087015250506160d18183614b65565b91505060208401516160e7604085018215159052565b509392505050565b600082516143f2818460208701614b4156fe283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e270a26469706673582212207ed4ef5ae251d58e3538675b2f94b163330eac21fc1fc4991ea468722d0abb7564736f6c63430008130033", + "sourceMap": "1458:13897:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7442:874;;;;;;:::i;:::-;;:::i;:::-;;6038:1264;;;;;;:::i;:::-;;:::i;4141:1750::-;;;;;;;;;;-1:-1:-1;4141:1750:40;;;;;:::i;:::-;;:::i;1945:2052::-;;;;;;;;;;-1:-1:-1;1945:2052:40;;;;;:::i;:::-;;:::i;7442:874::-;4766:9:55;:7;:9::i;:::-;7511:25:40::1;7539:17:::0;;;:9:::1;:17;::::0;;;;;;;7617:29;;;;;;;;;-1:-1:-1;;;;;7617:29:40::1;::::0;;;;;;;;::::1;::::0;;;;;;::::1;::::0;;;;;;;;;7539:17;;7511:25;;;7617:29:::1;::::0;7539:17;;7617:29;;;;::::1;::::0;7539:17;;7617:29;;;;;;7539:17;;7617:29;;;;7539:17;;7617:29;;;;;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;7617:29:40::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;;;7617:29:40;;;;-1:-1:-1;;;7617:29:40;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;;::::0;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;7617:29:40;;;;-1:-1:-1;;;7617:29:40;;-1:-1:-1;7617:29:40;;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;7617:29:40::1;::::0;;::::1;::::0;;;;;;;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;;;::::1;::::0;;;;;;;;;;;;;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;7617:29:40::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;;;7617:29:40;;;;-1:-1:-1;;;7617:29:40;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;;::::0;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;7617:29:40;;;;-1:-1:-1;;;7617:29:40;;-1:-1:-1;7617:29:40;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;7617:29:40;::::1;::::0;;;;-1:-1:-1;;;7617:29:40;::::1;;;-1:-1:-1::0;;;;;;7617:29:40::1;::::0;;;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;7617:29:40;;;;-1:-1:-1;;;7617:29:40;;::::1;::::0;;;::::1;::::0;::::1;;;;;::::0;;::::1;::::0;:19:::1;:29::i;:::-;7924:22;::::0;::::1;::::0;7985:33:::1;::::0;;;;::::1;::::0;;:19:::1;::::0;::::1;:33:::0;;-1:-1:-1;;;;;7985:33:40::1;::::0;;;;;;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;7567:79;;-1:-1:-1;7567:79:40;;-1:-1:-1;7924:22:40;;7912:9:::1;::::0;7985:33;;:19;;:33;;::::1;::::0;;;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;7985:33:40::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;;;7985:33:40;;;;-1:-1:-1;;7985:48:40::1;::::0;-1:-1:-1;;;7985:48:40;;:33:::1;::::0;::::1;::::0;-1:-1:-1;7985:48:40::1;::::0;8019:1:::1;::::0;7985:48:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;7985:48:40::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;8050:1;:17:::0;;;:9:::1;:17;::::0;;;;8043:24;;-1:-1:-1;;;;;;8043:24:40::1;::::0;;7956:77;;-1:-1:-1;8050:17:40;:1;:17;:1;:17;:1;8043:24:::1;::::0;;::::1;8050:1:::0;8043:24:::1;:::i;:::-;-1:-1:-1::0;;8043:24:40::1;::::0;::::1;::::0;;-1:-1:-1;;8043:24:40::1;::::0;;::::1;;::::0;;;;::::1;:::i;:::-;-1:-1:-1::0;;;;8043:24:40::1;::::0;::::1;::::0;;-1:-1:-1;;;;;;8043:24:40::1;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;:::i;:::-;-1:-1:-1::0;;8043:24:40::1;::::0;::::1;::::0;;-1:-1:-1;;8043:24:40::1;::::0;;::::1;;::::0;;;;::::1;:::i;:::-;-1:-1:-1::0;;8043:24:40::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;;8043:24:40;;;::::1;::::0;-1:-1:-1;8043:24:40::1;::::0;::::1;::::0;-1:-1:-1;8043:24:40::1;:::i;:::-;-1:-1:-1::0;;;8043:24:40::1;;::::0;;-1:-1:-1;;8043:24:40::1;::::0;;8078:72:::1;8099:1:::0;8102:10;8114;8126:23;8078:20:::1;:72::i;:::-;8196:13;::::0;8161:20:::1;::::0;8184:25:::1;::::0;:9:::1;:25;:::i;:::-;8161:48:::0;-1:-1:-1;8224:16:40;;8220:90:::1;;8256:43;8264:10;8286:12:::0;8256:29:::1;:43::i;:::-;7501:815;;;;;;7442:874:::0;:::o;6038:1264::-;4620:15:55;:13;:15::i;:::-;4766:9:::1;:7;:9::i;:::-;6603::40::2;6577:16;:8:::0;;:16:::2;:::i;:::-;:22;;;:35;6573:89;;6635:16;;-1:-1:-1::0;;;6635:16:40::2;;;;;;;;;;;6573:89;6843:16;:8:::0;;:16:::2;:::i;:::-;:21;::::0;;::::2;:::i;:::-;:30;::::0;;::::2;:::i;:::-;:37;;;:::i;:::-;:52;::::0;-1:-1:-1;;;6843:52:40;;:37:::2;::::0;::::2;::::0;:52:::2;::::0;:37;6881:1:::2;::::0;6843:52:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6838:120;;6918:29;;-1:-1:-1::0;;;6918:29:40::2;;;;;;;;;;;6838:120;7017:15;::::0;7066:29:::2;;7086:8:::0;7066:29:::2;:::i;:::-;:19;:29::i;:::-;7016:79:::0;;-1:-1:-1;7016:79:40;-1:-1:-1;7106:189:40::2;7140:16;:8:::0;;:16:::2;:::i;:::-;:22;;;7176:16;:8:::0;;:16:::2;:::i;:::-;:19;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;:28;::::0;;::::2;:::i;:::-;:33;;;:::i;:::-;:48;::::0;-1:-1:-1;;;7176:48:40;;:33:::2;::::0;::::2;::::0;:48:::2;::::0;:33;7210:1:::2;::::0;7176:48:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;::::0;;::::2;-1:-1:-1::0;;7176:48:40::2;::::0;::::2;;::::0;::::2;::::0;;;::::2;::::0;::::2;:::i;:::-;7238:10;7262:23;7106:20;:189::i;:::-;6129:1173;;6038:1264:::0;:::o;4141:1750::-;4620:15:55;:13;:15::i;:::-;4304:47:40::1;4334:16;;::::0;::::1;:10:::0;:16:::1;:::i;:::-;4304:29;:47::i;:::-;4403:16;::::0;4362:23:::1;4388:32:::0;;;:14:::1;:32;::::0;;;;;;;4421:10:::1;4388:44:::0;;;;;;;;4448:13:::1;::::0;::::1;;4443:68;;4484:16;;-1:-1:-1::0;;;4484:16:40::1;;;;;;;;;;;4443:68;4524:15;4543:1;4524:20:::0;4520:72:::1;;4567:14;;-1:-1:-1::0;;;4567:14:40::1;;;;;;;;;;;4520:72;4606:14;:23;4630:22;;::::0;::::1;:10:::0;:22:::1;:::i;:::-;4606:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4601:105;;4676:19;;-1:-1:-1::0;;;4676:19:40::1;;;;;;;;;;;4601:105;4716:49;4768:22;4716:49:::0;4791:16:::1;;::::0;::::1;:10:::0;:16:::1;:::i;:::-;-1:-1:-1::0;;;;;4768:40:40::1;-1:-1:-1::0;;;;;4768:40:40::1;;;;;;;;;;;;4716:92;;4846:22;4871:75;4890:14;4906:10;4918;4930:15;4871:18;:75::i;:::-;4846:100;;5014:29;5058:17;5054:110;;;5105:48;5138:14;5105:32;:48::i;:::-;5091:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;;::::1;::::0;;;;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;;;5091:62:40::1;::::0;;;;;;;;::::1;::::0;;;;;;::::1;::::0;;;;;;;;;;;;;;;;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;5091:62:40::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;;;5091:62:40;;;;-1:-1:-1;;;5091:62:40;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;;::::0;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;5091:62:40;;;;-1:-1:-1;;;5091:62:40;;-1:-1:-1;5091:62:40;;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;5091:62:40::1;::::0;;::::1;::::0;;;;;;;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;;;::::1;::::0;;;;;;;;;;;;;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;5091:62:40::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;;;5091:62:40;;;;-1:-1:-1;;;5091:62:40;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;;::::0;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;5091:62:40;;;;-1:-1:-1;;;5091:62:40;;-1:-1:-1;5091:62:40;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;5091:62:40;::::1;::::0;;;;-1:-1:-1;;;5091:62:40;::::1;;;-1:-1:-1::0;;;;;;5091:62:40::1;::::0;;;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;5091:62:40;;;;-1:-1:-1;;;5091:62:40;;::::1;::::0;;;::::1;::::0;::::1;;;;;::::0;;::::1;::::0;;;;;;;;::::1;::::0;::::1;;;;;;;;;;5054:110;5325:11;:18;5347:1;5325:23:::0;5321:397:::1;;5365:26;5393:22:::0;5419:34:::1;:32;:34::i;:::-;5364:89;;;;5472:17;5468:240;;;-1:-1:-1::0;;;;;5565:43:40;::::1;5509:53;5565:43:::0;;;:22:::1;:43;::::0;;;;5641:52:::1;5565:43:::0;5641:32:::1;:52::i;:::-;5627:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;;::::1;::::0;;;;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;;;5627:66:40::1;::::0;;;;;;;;::::1;::::0;;;;;;::::1;::::0;;;;;;;;;;;;;;;;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;5627:66:40::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;;;5627:66:40;;;;-1:-1:-1;;;5627:66:40;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;;::::0;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;5627:66:40;;;;-1:-1:-1;;;5627:66:40;;-1:-1:-1;5627:66:40;;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;5627:66:40::1;::::0;;::::1;::::0;;;;;;;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;;;::::1;::::0;;;;;;;;;;;;;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;5627:66:40::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;;;5627:66:40;;;;-1:-1:-1;;;5627:66:40;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;;::::0;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;5627:66:40;;;;-1:-1:-1;;;5627:66:40;;-1:-1:-1;5627:66:40;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;5627:66:40;::::1;::::0;;;;-1:-1:-1;;;5627:66:40;::::1;;;-1:-1:-1::0;;;;;;5627:66:40::1;::::0;;;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;5627:66:40;;;;-1:-1:-1;;;5627:66:40;;::::1;::::0;;;::::1;::::0;::::1;;;;;::::0;;::::1;::::0;;;;;;;;::::1;::::0;::::1;;;;;;;;;;5491:217;5468:240;5350:368;;5321:397;5841:29;::::0;;;;::::1;::::0;;-1:-1:-1;5841:29:40;;;5853:16;;;;;5841:29:::1;5853:16:::0;;::::1;::::0;;;5826:58:::1;::::0;5841:29;::::1;::::0;-1:-1:-1;5841:29:40;;5872:11;5826:14:::1;:58::i;:::-;4235:1656;;;;4141:1750:::0;:::o;1945:2052::-;2031:13;;;;2026:68;;2067:16;;-1:-1:-1;;;2067:16:40;;;;;;;;;;;2026:68;2147:10;2107:36;:13;:6;;:13;:::i;:::-;:22;;;:::i;:::-;:24;;-1:-1:-1;;;2107:24:40;;:22;;;;:24;;:22;:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2107:34:40;;:36::i;:::-;-1:-1:-1;;;;;2107:50:40;;2103:113;;2180:25;;-1:-1:-1;;;2180:25:40;;;;;;;;;;;2103:113;2280:21;2305:32;2326:10;2305:20;:32::i;:::-;2277:60;-1:-1:-1;2368:13:40;;-1:-1:-1;2351:13:40;;;;:30;;;;;;;;:::i;:::-;;2347:85;;2404:17;;-1:-1:-1;;;2404:17:40;;;;;;;;;;;2347:85;2476:12;;;;;;;;:::i;:::-;2445:27;;;;-1:-1:-1;;;;;2445:43:40;;;:27;;:43;2441:105;;2511:24;;-1:-1:-1;;;2511:24:40;;;;;;;;;;;2441:105;2559:15;;;;:29;2555:182;;2627:28;;;;;;;;:21;;;:28;;-1:-1:-1;;;;;2627:28:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:21;;:28;;:21;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2627:28:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2627:28:40;-1:-1:-1;;;;;2627:28:40;-1:-1:-1;;;;;2627:28:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2627:28:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2627:28:40;;;;;;;;;;;;;;;;-1:-1:-1;;;2627:28:40;;;;-1:-1:-1;;;2627:28:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2627:28:40;;;;-1:-1:-1;;;2627:28:40;;-1:-1:-1;2627:28:40;;;;;;;;;;;;;;;-1:-1:-1;;;;;2627:28:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2627:28:40;;;;;;;;;;;;;;;;-1:-1:-1;;;2627:28:40;;;;-1:-1:-1;;;2627:28:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2627:28:40;;;;-1:-1:-1;;;2627:28:40;;-1:-1:-1;2627:28:40;;;;;;;;;;;;;;-1:-1:-1;;;;;2627:28:40;;;;;;-1:-1:-1;;;2627:28:40;;;;-1:-1:-1;;;;;;2627:28:40;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2627:28:40;;;;-1:-1:-1;;;2627:28:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2627:28:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2627:28:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2627:28:40;;;;-1:-1:-1;;2627:30:40;;-1:-1:-1;;;2627:30:40;;:28;;;;-1:-1:-1;2627:30:40;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2608:6;:15;;;:49;2604:123;;2684:28;;-1:-1:-1;;;2684:28:40;;;;;;;;;;;2604:123;2815:21;2838;2861:37;2902:54;:52;:54::i;:::-;2814:142;;;;;;3033:16;3028:128;;3085:1;3065:33;;;;-1:-1:-1;;;;;;3065:33:40;-1:-1:-1;;;;;3065:33:40;;;;;;;;;:10;;:33;;;;;;;;:::i;:::-;-1:-1:-1;;;3112:16:40;;;:33;;-1:-1:-1;;;;;;3112:33:40;-1:-1:-1;;;;;3112:33:40;;;;;3028:128;3166:70;;-1:-1:-1;;;3166:70:40;;:24;;;;:70;;:10;;3191:6;;3199:10;;3211:8;;3221:14;;3166:70;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3247:18;3279:22;3304:6;:16;;;;;;;;:::i;:::-;:23;;3279:48;;3342:9;3337:173;3361:14;3357:1;:18;3337:173;;;3407:16;;;;:6;:16;:::i;:::-;3424:1;3407:19;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:27;;;;:::i;:::-;3393:47;;3407:33;;;3393:47;;:::i;:::-;;-1:-1:-1;3482:3:40;;3337:173;;;-1:-1:-1;3547:14:40;;;;3534:27;;:10;;;;:27;:::i;:::-;3520:41;;;;:::i;:::-;;;3716:10;3696:6;:17;;;:30;3692:95;;;3749:27;;-1:-1:-1;;;3749:27:40;;;;;;;;;;;3692:95;3818:10;3797:6;:17;;;:31;;;;;;;:::i;:::-;;;;-1:-1:-1;3863:6:40;;-1:-1:-1;3839:21:40;;;:30;3863:6;3839:21;:30;:::i;:::-;-1:-1:-1;3880:47:40;;-1:-1:-1;3895:13:40;:6;;:13;:::i;:::-;3880:47;;;:::i;:::-;3910:16;;;;:6;:16;:::i;:::-;3880:47;;;:::i;:::-;:14;:47::i;:::-;3938:52;3967:10;3979:6;:10;;;3938:28;:52::i;4311:125:55:-;4369:13;;4357:9;:25;4353:77;;;4405:14;;-1:-1:-1;;;4405:14:55;;;;;;;;;;;4353:77;4311:125::o;10384:1306:40:-;10553:20;;:23;;;:32;10599:12;;-1:-1:-1;;;10599:12:40;;10475:15;;;;10599:10;;;;:12;;10553:32;;10599:12;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10595:84;;;10634:34;;-1:-1:-1;;;10634:34:40;;;;;;;;;;;10595:84;10799:24;;-1:-1:-1;;;10799:24:40;;:9;;;;:24;;:2;;10809:1;;10799:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10795:90;;;10846:28;;-1:-1:-1;;;10846:28:40;;;;;;;;;;;10795:90;10918:20;;:25;;:34;10985:45;;-1:-1:-1;;;10985:45:40;;10918:34;;10895:20;;10985:30;;;;:45;;10918:20;10895;;10985:45;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10962:68;-1:-1:-1;11098:25:40;11151:19;11138:9;:32;;;;;;;;:::i;:::-;;11134:130;;11210:21;;-1:-1:-1;;;11210:21:40;;:15;;;;:21;;:2;;11226:4;;11210:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11210:21:40;;;;;;;;;;;;:::i;:::-;:43;;-1:-1:-1;;;11210:43:40;;:28;;;;:43;;:28;11239:1;;11210:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11209:44;11186:67;;11134:130;11278:20;11274:193;;;11314:42;11343:12;11314:28;:42::i;:::-;-1:-1:-1;;11392:20:40;;:26;;;:30;;;11421:1;;-1:-1:-1;10384:1306:40;-1:-1:-1;;;10384:1306:40:o;11274:193::-;11494:18;11481:9;:31;;;;;;;;:::i;:::-;;11477:85;;11530:21;11528:23;;11530:21;;11528:23;;-1:-1:-1;;;11528:23:40;;-1:-1:-1;;;;;11528:23:40;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;11528:23:40;;;;;-1:-1:-1;;;;;11528:23:40;;;;;;11477:85;11572:41;11600:12;11572:27;:41::i;:::-;-1:-1:-1;11645:5:40;;11678:4;;-1:-1:-1;10384:1306:40;-1:-1:-1;;;;;10384:1306:40:o;12149:389::-;12326:10;12322:80;;;12352:39;109:2:31;12389:1:40;12352:36;:39::i;:::-;12416:23;12412:120;;;12484:21;;-1:-1:-1;;;12484:21:40;;12455:66;;12484:19;;;;:21;;:10;;:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12507:13;;12455:28;:66::i;:::-;12149:389;;;;:::o;13246:258:0:-;13354:7;13330:21;:31;13326:63;;;13370:19;;-1:-1:-1;;;13370:19:0;;;;;;;;;;;13326:63;13401:12;13419:10;-1:-1:-1;;;;;13419:15:0;13442:7;13419:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13400:54;;;13469:7;13464:33;;13485:12;;-1:-1:-1;;;13485:12:0;;;;;;;;;;;4170:135:55;4223:22;;-1:-1:-1;;;4223:22:55;;:10;:22;;;54094:51:83;4223:20:55;;;;54067:18:83;;4223:22:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4218:81;;4268:20;;-1:-1:-1;;;4268:20:55;;;;;;;;;;;1779:96:58;1846:22;1862:5;1846:15;:22::i;:::-;1779:96;:::o;9287:748:40:-;9512:22;;9571:17;:10;:17;:::i;:::-;:19;;-1:-1:-1;;;9571:19:40;;:17;;;;:19;;:17;:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9546:44;-1:-1:-1;9621:207:40;9655:14;9546:44;9716:16;9746:15;9775:16;;;;:10;:16;:::i;:::-;9805:13;;9621:20;:207::i;:::-;9895:42;;;;:26;;;:42;;;;;;;;:50;;;;;;;;;-1:-1:-1;;;;;9895:50:40;;;;;;;;;;;;;;;;;;;;;;;9601:227;;-1:-1:-1;9895:50:40;;:42;;:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9895:50:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9895:50:40;;;;;;;;;;;;;;;;-1:-1:-1;;;9895:50:40;;;;-1:-1:-1;;;9895:50:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9895:50:40;;;;-1:-1:-1;;;9895:50:40;;-1:-1:-1;9895:50:40;;;;;;;;;;;;;;;-1:-1:-1;;;;;9895:50:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9895:50:40;;;;;;;;;;;;;;;;-1:-1:-1;;;9895:50:40;;;;-1:-1:-1;;;9895:50:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9895:50:40;;;;-1:-1:-1;;;9895:50:40;;-1:-1:-1;9895:50:40;;;;;;;;;;;;;;-1:-1:-1;;;;;9895:50:40;;;;;;-1:-1:-1;;;9895:50:40;;;;-1:-1:-1;;;;;;9895:50:40;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9895:50:40;;;;-1:-1:-1;;;9895:50:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9895:50:40;;-1:-1:-1;;9895:52:40;;-1:-1:-1;;;9895:52:40;;:50;;;;:52;;:50;:52;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9891:138;;;9963:42;;;;:26;;;:42;;;;;10008:10;;9963:55;10008:10;9963:42;:55;:::i;:::-;-1:-1:-1;;9891:138:40;9536:499;9287:748;;;;;;:::o;8531:418::-;8774:39;;;;8656:18;8734:89;;;:26;;;:89;;;;;8867:25;;8834:59;;-1:-1:-1;;;;;8867:25:40;8834:32;:59::i;:::-;8911:31;;;8531:418;-1:-1:-1;;8531:418:40:o;7090:254:58:-;7257:17;:23;-1:-1:-1;;;7257:23:58;;-1:-1:-1;;;;;7257:23:58;7147:16;-1:-1:-1;;;;;;;;;;;7305:32:58;7257:23;7305:21;:32::i;:::-;7290:47;;7184:160;7090:254;;:::o;15035:318:40:-;15160:16;;15134:23;15186:161;15210:15;15206:1;:19;15186:161;;;15243:34;15253:9;15264;15274:1;15264:12;;;;;;;;:::i;:::-;;;;;;;15243:9;:34::i;:::-;15319:3;;15186:161;;2356:528:0;2410:7;2506:9;2517;2530:15;2542:2;2530:11;:15::i;:::-;2505:40;;;;2560:4;2555:45;;-1:-1:-1;2587:2:0;;2356:528;-1:-1:-1;;2356:528:0:o;2555:45::-;2733:12;2747:11;2762:17;2776:2;2762:13;:17::i;:::-;2732:47;;;;2794:7;2789:89;;-1:-1:-1;2824:2:0;;2356:528;-1:-1:-1;;;;2356:528:0:o;2789:89::-;2864:3;2356:528;-1:-1:-1;;;;;2356:528:0:o;5250:372:54:-;5307:10;;;-1:-1:-1;;;;;5433:19:54;;5429:78;;5475:21;;-1:-1:-1;;;5475:21:54;;;;;;;;;;;5429:78;5543:28;;;;;;;;;;-1:-1:-1;;;;;5543:28:54;;;;;;;;;;;;;;;;;;;;;;;;5516:24;;5543:1;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5543:28:54;;;;;;;;;;;;;;;;-1:-1:-1;;;5543:28:54;;;;-1:-1:-1;;5543:35:54;;-1:-1:-1;;;5543:35:54;;:28;;;;-1:-1:-1;5543:35:54;;5572:5;;5543:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5543:35:54;;;;;;;;;;;;:::i;:::-;5516:62;;5596:19;5606:8;5596:9;:19::i;:::-;5589:26;;;;;;5250:372;;;:::o;2733:416::-;3022:21;;2820:11;;;;;;;;2985:59;;3008:12;;-1:-1:-1;;;;;3022:21:54;2985:22;:59::i;:::-;-1:-1:-1;;;;;3067:28:54;;;;;;;:21;;;:28;;;;;;;;;3115:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2977:67;;-1:-1:-1;3067:28:54;;-1:-1:-1;3115:25:54;;3067:28;;3115:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3115:25:54;;;;;;;;;;;;;;;;-1:-1:-1;;;3115:25:54;;;;-1:-1:-1;;3115:27:54;;-1:-1:-1;;;3115:27:54;;:25;;;;-1:-1:-1;3115:27:54;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3114:28;3105:37;;2890:259;2733:416;;;:::o;4748:287::-;4826:6;4836:1;4826:11;4822:48;;4748:287;;:::o;4822:48::-;4930:98;4951:14;:2;-1:-1:-1;;;;;4951:12:54;;:14::i;:::-;4967:60;;;;;;;58025:25:83;;;4967:60:54;;;;;;;;;;57998:18:83;;;;4967:60:54;;;;;;;;-1:-1:-1;;;;;4967:60:54;-1:-1:-1;;;4967:60:54;;;4930:20;:98::i;4143:412::-;4219:29;4301:37;4342:30;:28;:30::i;:::-;4412:15;;;;4383:20;;-1:-1:-1;;;;;4412:15:54;;;4383:26;;;;:44;4456:13;;;;4438:14;;;:31;;4296:76;;-1:-1:-1;4456:13:54;;-1:-1:-1;4438:14:54;-1:-1:-1;4412:15:54;;4438:31;;4456:13;;4438:31;:::i;:::-;;;;-1:-1:-1;;4479:20:54;;;:39;;;;;;;;-1:-1:-1;4479:39:54;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4479:39:54;-1:-1:-1;;;;;4479:39:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;4479:39:54;;;;;;;;;;;;-1:-1:-1;;4479:39:54;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;4479:39:54;;;;;;;;;;;;;;-1:-1:-1;;;;;;4479:39:54;-1:-1:-1;;;;;4479:39:54;;;;;;;;;;;;;;;;;-1:-1:-1;4479:39:54;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;4479:39:54;;;;;;;;;;;;-1:-1:-1;;4479:39:54;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;4479:39:54;;;;;;;;-1:-1:-1;4479:39:54;;;;;;;;;;;;;;;-1:-1:-1;;;4479:39:54;-1:-1:-1;;;;;;4479:39:54;;;-1:-1:-1;;;;;4479:39:54;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;4479:39:54;;;;;;;;;;;;-1:-1:-1;;4479:39:54;;;;;;;;;;4528:15;;;:20;;-1:-1:-1;;4528:15:54;-1:-1:-1;;4528:20:54;;-1:-1:-1;;;;;;;4528:20:54;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;4528:20:54;;;;;-1:-1:-1;;;;;4528:20:54;;;;;;4209:346;;4143:412;:::o;3353:588::-;3532:20;;:23;;;:32;:52;;-1:-1:-1;;;3532:52:54;;3428:29;;;;3532:37;;;;:52;;:32;3428:29;;3532:52;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3532:52:54;;;;;;;;;;;;:::i;:::-;3505:79;;3596:15;3613:21;3638:19;3648:8;3638:9;:19::i;:::-;3595:62;;;;3673:10;3668:70;;3706:21;;-1:-1:-1;;;3706:21:54;;;;;;;;;;;3668:70;3777:19;;3748:20;;3777:19;;;;-1:-1:-1;;;;;3777:19:54;3748:26;;;;:48;;;3777:19;;;;;;3806:24;;3777:19;;3806:24;:::i;:::-;;;;;;;;-1:-1:-1;;;;;3806:24:54;;;;;-1:-1:-1;;;;;3806:24:54;;;;;;3861:12;:20;;;:26;;;3840:6;:17;;;:47;;;;;;;:::i;:::-;;;;-1:-1:-1;;3897:18:54;;;:37;;;;;;;;-1:-1:-1;3897:37:54;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3897:37:54;-1:-1:-1;;;;;3897:37:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;3897:37:54;;;;;;;;;;;;-1:-1:-1;;3897:37:54;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;3897:37:54;;;;;;;;;;;;;;-1:-1:-1;;;;;;3897:37:54;-1:-1:-1;;;;;3897:37:54;;;;;;;;;;;;;;;;;-1:-1:-1;3897:37:54;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;3897:37:54;;;;;;;;;;;;-1:-1:-1;;3897:37:54;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;3897:37:54;;;;;;;;-1:-1:-1;3897:37:54;;;;;;;;;;;;;;;-1:-1:-1;;;3897:37:54;-1:-1:-1;;;;;;3897:37:54;;;-1:-1:-1;;;;;3897:37:54;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;3897:37:54;;;;;;;;;;;;-1:-1:-1;;3897:37:54;;;;;;;;;;-1:-1:-1;;;;;3353:588:54:o;1881:387:58:-;-1:-1:-1;;;;;;;;;;;2007:25:58;;-1:-1:-1;;;;;2007:25:58;;;1998:34;;;;1994:94;;2055:22;;-1:-1:-1;;;2055:22:58;;;;;;;;;;;1994:94;2109:14;;-1:-1:-1;;;;;;;;2109:14:58;;;;;2101:22;;;;2097:165;;;2170:18;;-1:-1:-1;;;;;;;;2170:18:58;;;;;2144:22;;-1:-1:-1;;;2152:14:58;;;;2144:5;:22;:::i;:::-;2143:45;;;;:::i;:::-;-1:-1:-1;;;;;2143:50:58;;2139:113;;2220:17;;-1:-1:-1;;;2220:17:58;;;;;;;;;;;2139:113;1933:335;1881:387;:::o;7834:1528::-;8171:10;;8070:22;8195;;;:15;;;:22;;;;;;;;-1:-1:-1;;;;;8195:40:58;;;;;;;;;;8070:22;;-1:-1:-1;;;;;;;;;;;1438:42:58;8195:40;;8191:101;;;8258:23;;-1:-1:-1;;;8258:23:58;;;;;;;;;;;8191:101;8302:22;;;;:15;;;:22;;;;;;;;-1:-1:-1;;;;;8302:40:58;;;;;;;;;:47;;-1:-1:-1;;8302:47:58;8345:4;8302:47;;;;;;8359:26;;:45;;8389:15;;8302:22;8359:45;;8389:15;;8359:45;:::i;:::-;;;;-1:-1:-1;;8414:29:58;;;;:22;;;:29;;;;;;;;:45;;;;;;;;:64;;8463:15;;8414:29;:64;;8463:15;;8414:64;:::i;:::-;;;;-1:-1:-1;;8489:23:58;8515:29;;;:22;;;:29;;;;;;;;8545:24;;;;8515:55;;;;;;;;;8606:45;;;;;;8666:33;;;8662:105;;;8715:24;;;:41;;;8662:105;8777:26;8806:40;8828:4;8834:11;8806:21;:40::i;:::-;8777:69;-1:-1:-1;8871:36:58;8861:6;:46;;;;;;;;:::i;:::-;;8857:499;;8927:28;8949:5;8927:21;:28::i;:::-;8923:264;;;8995:4;8975:24;;8857:499;;8923:264;9143:29;;-1:-1:-1;;;9143:29:58;;:17;;;:29;;;60342:25:83;-1:-1:-1;;;;;60403:31:83;;60383:18;;;60376:59;9143:22:58;;;;60315:18:83;;9143:29:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8857:499;;;9217:30;9207:6;:40;;;;;;;;:::i;:::-;;9203:153;;9333:12;;-1:-1:-1;;;9333:12:58;;;;;58025:25:83;;;9333:10:58;;;;57998:18:83;;9333:12:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9203:153;8094:1268;;;;;7834:1528;;;;;;;;:::o;5877:619::-;-1:-1:-1;;;;;;;;;;;6045:28:58;6067:5;6045:21;:28::i;:::-;6040:66;;6089:7;5877:619;:::o;6040:66::-;6180:33;;-1:-1:-1;;;6180:33:58;;:17;;;:33;;;60342:25:83;-1:-1:-1;;;;;60403:31:83;;60383:18;;;60376:59;6180:26:58;;;;60315:18:83;;6180:33:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6176:140;;;6233:17;;;:23;-1:-1:-1;;;;;6233:32:58;;;-1:-1:-1;;;6233:23:58;;;;:32;6229:77;;6285:7;5877:619;:::o;6229:77::-;6372:31;;-1:-1:-1;;;6372:31:58;;:17;;;:31;;;60342:25:83;-1:-1:-1;;;;;60403:31:83;;60383:18;;;60376:59;6372:24:58;;;;60315:18:83;;6372:31:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6456:33:58;;-1:-1:-1;;;;;;6456:33:58;-1:-1:-1;;;;;6456:33:58;;;;;;;;;;;-1:-1:-1;;5877:619:58:o;6696:204::-;-1:-1:-1;;;;;;;;;;;6875:18:58;;6764:4;;1438:42;6847:46;;-1:-1:-1;;;;;;;;6875:18:58;;;;;6847:25;:46;:::i;:::-;-1:-1:-1;;;;;6838:55:58;:5;-1:-1:-1;;;;;6838:55:58;;6831:62;;;6696:204;;;:::o;12814:1880:40:-;12909:16;;:19;;;:28;:38;;-1:-1:-1;;;12909:38:40;;:36;;;;:38;;:28;:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12905:110;;;12970:34;;-1:-1:-1;;;12970:34:40;;;;;;;;;;;12905:110;13028:16;;:23;;;-1:-1:-1;;;;;;13028:38:40;13024:178;;13086:16;;:22;;;13111:21;-1:-1:-1;13082:110:40;;;13159:18;;-1:-1:-1;;;13159:18:40;;;;;;;;;;;13082:110;13235:16;;:41;;-1:-1:-1;;;13235:41:40;;13212:20;;13235:26;;;;:41;;13212:20;;13235:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13359:16;;:19;;;:28;:50;;-1:-1:-1;;;13359:50:40;;13212:64;;-1:-1:-1;13359:35:40;;;;:50;;:16;;:50;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13355:1147;;;13612:19;13599:9;:32;;;;;;;;:::i;:::-;;13595:539;;13656:19;;-1:-1:-1;;;13656:19:40;;:17;;;;:19;;:9;;:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13651:469;;13700:15;13717:21;13742:31;13763:9;13742:20;:31::i;:::-;13699:74;;;;13800:10;13795:94;;13845:21;;-1:-1:-1;;;13845:21:40;;;;;;;;;;;13795:94;13945:16;;:22;;;13914:27;;-1:-1:-1;;;13914:27:40;;-1:-1:-1;;;;;13914:27:40;;;:53;;;13910:137;;14002:22;;-1:-1:-1;;;14002:22:40;;;;;;;;;;;13910:137;14069:32;;14100:1;;14069:32;;:27;;:32;;14100:1;;-1:-1:-1;;;14069:32:40;;-1:-1:-1;;;;;14069:32:40;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;14069:32:40;;;;;-1:-1:-1;;;;;14069:32:40;;;;;;13677:443;;13651:469;14165:18;14152:9;:31;;;;;;;;:::i;:::-;;14148:236;;14232:16;;:22;;;14207:21;;-1:-1:-1;;;14207:21:40;;-1:-1:-1;;;;;14207:21:40;;;:47;;;14203:123;;14285:22;;-1:-1:-1;;;14285:22:40;;;;;;;;;;;14203:123;14343:21;:26;;14368:1;;14343:21;;;:26;;14368:1;;-1:-1:-1;;;14343:26:40;;-1:-1:-1;;;;;14343:26:40;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;14343:26:40;;;;;-1:-1:-1;;;;;14343:26:40;;;;;;14148:236;14453:18;;-1:-1:-1;;;14453:18:40;;:16;;;;:18;;:8;;:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14453:18:40;;;;;;;;;;;;:::i;13355:1147::-;14620:11;14634:17;:8;:15;:17::i;:::-;14662:1;:14;;;:9;:14;;;;;;;;:25;;;;;;;;;;-1:-1:-1;;;;;;14662:25:40;-1:-1:-1;;;;;14662:25:40;;;;;;;;;;;;:14;;-1:-1:-1;14662:25:40;;:14;;:25;;:14;;;;:25;:14;;:25;;-1:-1:-1;14662:25:40;;;;;;:::i;:::-;-1:-1:-1;;;14662:25:40;;;;;;;;;;;;-1:-1:-1;;14662:25:40;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;14662:25:40;;;;;;;;;;;;;;-1:-1:-1;;;;;;14662:25:40;-1:-1:-1;;;;;14662:25:40;;;;;;;;;;;;;;;;;-1:-1:-1;14662:25:40;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;14662:25:40;;;;;;;;;;;;-1:-1:-1;;14662:25:40;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;14662:25:40;;;;;;;;-1:-1:-1;14662:25:40;;;;;;;;;;;;;;;-1:-1:-1;;;14662:25:40;-1:-1:-1;;;;;;14662:25:40;;;-1:-1:-1;;;;;14662:25:40;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;14662:25:40;;;;;;;;;;;;-1:-1:-1;;14662:25:40;;;;;;;;;;-1:-1:-1;;;;12814:1880:40:o;4411:476:0:-;4467:9;4478;4636:8;4632:2;4628:17;-1:-1:-1;;;4763:6:0;4760:27;4757:114;;4814:4;4806:12;;-1:-1:-1;;;;;4845:2:0;4841:16;4835:22;;4757:114;;4411:476;;;:::o;7171:2211::-;7229:12;7243:11;8058:3;8055:1;8048:14;8141:2;8137;8133;8130:1;-1:-1:-1;;;;;8097:5:0;8086:58;8075:69;;8405:1;8399:8;8445:6;-1:-1:-1;;;;;8427:25:0;8420:32;;8828:6;8823:3;8819:16;8811:6;8807:29;8793:43;;8870:6;8862;8859:18;8849:103;;8908:5;8897:16;;8937:1;8930:8;;8849:103;;9290:7;9289:8;:34;;;-1:-1:-1;13641:16:0;9321:2;9301:22;;9289:34;9285:91;;;-1:-1:-1;9347:5:0;;;;-1:-1:-1;7171:2211:0;-1:-1:-1;7171:2211:0:o;9285:91::-;7171:2211;;;:::o;5818:272:54:-;6027:17;;-1:-1:-1;;;6027:17:54;;5886:10;;;;;;6017:9;;5886:10;;6027:15;;;;:17;;:8;;:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6017:28;;;;;;;;;;;;;;-1:-1:-1;6017:28:54;6064:17;;;;;;;:9;;;:17;;-1:-1:-1;;;;;6064:17:54;;;;;;;;;;;;;;;;;;;;;;;6017:28;;-1:-1:-1;6064:17:54;;:9;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6064:17:54;;;;;;;;;;;;;;;;-1:-1:-1;;;6064:17:54;;;;-1:-1:-1;;6064:19:54;;-1:-1:-1;;;6064:19:54;;:17;;;;-1:-1:-1;6064:19:54;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6063:20;6055:28;;5921:169;5818:272;;;:::o;3077:173:58:-;3163:6;3232:11;3190:33;3232:11;3197;3190:33;:::i;:::-;3189:39;;3227:1;3189:39;:::i;:::-;3188:55;;;;:::i;:::-;3181:62;;3077:173;;;;;:::o;2565:166:19:-;2640:12;2671:53;2693:6;2701:4;2707:1;2710:13;2671:21;:53::i;3873:1880:58:-;-1:-1:-1;;;;;;;;;;;4121:20:58;;4004:19;;1438:42;4004:19;;4145:3;;4107:34;;-1:-1:-1;;;4121:20:58;;;;4107:11;:34;:::i;:::-;4106:42;;;;:::i;:::-;4184:25;;-1:-1:-1;;;4184:25:58;;;;;58025::83;;;4086:62:58;;-1:-1:-1;4158:23:58;;4184;;;;57998:18:83;;4184:25:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4158:51;;4347:9;4317:4;:26;;;:39;4313:116;;4379:39;4372:46;;;;;;;4313:116;4490:9;4472:15;:27;4468:101;;;4522:36;4515:43;;;;;;;4468:101;5549:26;;;;5535:40;;:11;:40;:::i;:::-;5504:27;5516:15;5504:9;:27;:::i;:::-;:71;5500:139;;5598:30;5591:37;;;;;;;5500:139;-1:-1:-1;5709:37:58;;3873:1880;-1:-1:-1;;;;;3873:1880:58:o;2159:129:49:-;2224:7;2271:8;2260:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;2250:31;;;;;;2243:38;;2159:129;;;:::o;8154:80:19:-;8210:17;;-1:-1:-1;;;8210:17:19;;;;;;;;;;;4063:483;4239:12;4291:5;4267:21;:29;4263:108;;;4319:41;;-1:-1:-1;;;4319:41:19;;4354:4;4319:41;;;54094:51:83;54067:18;;4319:41:19;;;;;;;;4263:108;4381:12;4395:23;4422:6;-1:-1:-1;;;;;4422:11:19;4441:5;4448:4;4422:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4380:73;;;;4470:69;4497:6;4505:7;4514:10;4526:12;4470:26;:69::i;:::-;4463:76;;;;4063:483;;;;;;;:::o;6395:692::-;6586:12;6614:7;6610:471;;;6641:10;:17;6662:1;6641:22;6637:339;;6865:6;-1:-1:-1;;;;;6865:18:19;;6887:1;6865:23;6861:101;;6919:24;;-1:-1:-1;;;6919:24:19;;-1:-1:-1;;;;;54112:32:83;;6919:24:19;;;54094:51:83;54067:18;;6919:24:19;53940:211:83;6861:101:19;-1:-1:-1;6996:10:19;6989:17;;6610:471;7037:33;7045:10;7057:12;8410:17;;:21;8406:411;;8638:10;8632:17;8694:15;8681:10;8677:2;8673:19;8666:44;8406:411;8754:14;:12;:14;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:180:83;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:83;;14:180;-1:-1:-1;14:180:83:o;199:156::-;260:5;305:2;296:6;291:3;287:16;283:25;280:45;;;321:1;318;311:12;280:45;-1:-1:-1;343:6:83;199:156;-1:-1:-1;199:156:83:o;360:359::-;448:6;501:2;489:9;480:7;476:23;472:32;469:52;;;517:1;514;507:12;469:52;557:9;544:23;-1:-1:-1;;;;;582:6:83;579:30;576:50;;;622:1;619;612:12;576:50;645:68;705:7;696:6;685:9;681:22;645:68;:::i;1097:399::-;1195:6;1248:2;1236:9;1227:7;1223:23;1219:32;1216:52;;;1264:1;1261;1254:12;1216:52;1304:9;1291:23;-1:-1:-1;;;;;1329:6:83;1326:30;1323:50;;;1369:1;1366;1359:12;1323:50;1392:22;;1448:3;1430:16;;;1426:26;1423:46;;;1465:1;1462;1455:12;1423:46;1488:2;1097:399;-1:-1:-1;;;1097:399:83:o;1501:380::-;1580:1;1576:12;;;;1623;;;1644:61;;1698:4;1690:6;1686:17;1676:27;;1644:61;1751:2;1743:6;1740:14;1720:18;1717:38;1714:161;;1797:10;1792:3;1788:20;1785:1;1778:31;1832:4;1829:1;1822:15;1860:4;1857:1;1850:15;1993:689;2044:3;2083:4;2078:3;2074:14;-1:-1:-1;;;;;2119:5:83;2113:12;2109:37;2104:3;2097:50;2166:4;2216:2;2209:5;2205:14;2199:21;2250:4;2245:2;2240:3;2236:12;2229:26;2277:4;2310:12;2304:19;2345:6;2339:4;2332:20;2379:2;2374:3;2370:12;2361:21;;2423:2;2409:12;2405:21;2391:35;;2444:1;2435:10;;2454:201;2468:6;2465:1;2462:13;2454:201;;;2535:13;;-1:-1:-1;;;;;2531:39:83;2517:54;;2630:15;;;;2567:1;2483:9;;;;;2593:14;;;;2454:201;;;-1:-1:-1;2671:5:83;1993:689;-1:-1:-1;;;;;;1993:689:83:o;2824:741::-;2883:3;2922:4;2917:3;2913:14;-1:-1:-1;;;;;2958:5:83;2952:12;2948:37;2943:3;2936:50;3005:4;3049:2;3042:5;3038:14;3071:4;3105;3100:2;3095:3;3091:12;3084:26;3132:4;3165:12;3159:19;3200:6;3194:4;3187:20;3234:2;3229:3;3225:12;3216:21;;3256:12;3253:1;3246:23;3305:2;3302:1;3292:16;3278:30;;3326:1;3317:10;;3336:202;3350:6;3347:1;3344:13;3336:202;;;3418:13;;-1:-1:-1;;;;;3414:39:83;3400:54;;3513:15;;;;3365:10;;;;3476:14;;;;3336:202;;;-1:-1:-1;3554:5:83;2824:741;-1:-1:-1;;;;;;;2824:741:83:o;3570:482::-;3840:2;3829:9;3822:21;3803:4;3866:54;3916:2;3905:9;3901:18;3893:6;3866:54;:::i;:::-;3968:9;3960:6;3956:22;3951:2;3940:9;3936:18;3929:50;3996;4039:6;4031;3996:50;:::i;4057:127::-;4118:10;4113:3;4109:20;4106:1;4099:31;4149:4;4146:1;4139:15;4173:4;4170:1;4163:15;4189:258;4262:4;4256:11;;;4294:17;;-1:-1:-1;;;;;4326:34:83;;4362:22;;;4323:62;4320:88;;;4388:18;;:::i;:::-;4424:4;4417:24;4189:258;:::o;4452:254::-;4525:2;4519:9;4567:4;4555:17;;-1:-1:-1;;;;;4587:34:83;;4623:22;;;4584:62;4581:88;;;4649:18;;:::i;4711:275::-;4782:2;4776:9;4847:2;4828:13;;-1:-1:-1;;4824:27:83;4812:40;;-1:-1:-1;;;;;4867:34:83;;4903:22;;;4864:62;4861:88;;;4929:18;;:::i;:::-;4965:2;4958:22;4711:275;;-1:-1:-1;4711:275:83:o;4991:129::-;-1:-1:-1;;;;;5069:5:83;5065:30;5058:5;5055:41;5045:69;;5110:1;5107;5100:12;5125:183;5185:4;-1:-1:-1;;;;;5210:6:83;5207:30;5204:56;;;5240:18;;:::i;:::-;-1:-1:-1;5285:1:83;5281:14;5297:4;5277:25;;5125:183::o;5313:131::-;-1:-1:-1;;;;;5388:31:83;;5378:42;;5368:70;;5434:1;5431;5424:12;5449:1353;5546:6;5577:2;5620;5608:9;5599:7;5595:23;5591:32;5588:52;;;5636:1;5633;5626:12;5588:52;5669:9;5663:16;-1:-1:-1;;;;;5739:2:83;5731:6;5728:14;5725:34;;;5755:1;5752;5745:12;5725:34;5778:22;;;;5834:4;5816:16;;;5812:27;5809:47;;;5852:1;5849;5842:12;5809:47;5878:23;;:::i;:::-;5931:2;5925:9;5943:32;5967:7;5943:32;:::i;:::-;5984:22;;6037:11;;;6031:18;6061:16;;;6058:36;;;6090:1;6087;6080:12;6058:36;6121:8;6117:2;6113:17;6103:27;;;6168:7;6161:4;6157:2;6153:13;6149:27;6139:55;;6190:1;6187;6180:12;6139:55;6219:2;6213:9;6203:19;;6242:60;6258:43;6298:2;6258:43;:::i;:::-;6242:60;:::i;:::-;6336:15;;;6418:1;6414:10;;;;6406:19;;6402:28;;;6367:12;;;;6442:19;;;6439:39;;;6474:1;6471;6464:12;6439:39;6498:11;;;;6518:216;6534:6;6529:3;6526:15;6518:216;;;6609:3;6603:10;6626:33;6651:7;6626:33;:::i;:::-;6672:20;;6551:12;;;;6712;;;;6518:216;;;6750:14;;;6743:29;;;;6754:5;5449:1353;-1:-1:-1;;;;;;5449:1353:83:o;6807:127::-;6868:10;6863:3;6859:20;6856:1;6849:31;6899:4;6896:1;6889:15;6923:4;6920:1;6913:15;6939:128;7006:9;;;7027:11;;;7024:37;;;7041:18;;:::i;7072:330::-;7170:4;7228:11;7215:25;7322:3;7318:8;7307;7291:14;7287:29;7283:44;7263:18;7259:69;7249:97;;7342:1;7339;7332:12;7249:97;7363:33;;;;;7072:330;-1:-1:-1;;7072:330:83:o;7407:328::-;7504:4;7562:11;7549:25;7656:2;7652:7;7641:8;7625:14;7621:29;7617:43;7597:18;7593:68;7583:96;;7675:1;7672;7665:12;8071:132;8138:20;;8167:30;8138:20;8167:30;:::i;:::-;8071:132;;;:::o;8208:1115::-;8263:5;8311:4;8299:9;8294:3;8290:19;8286:30;8283:50;;;8329:1;8326;8319:12;8283:50;8351:23;;:::i;:::-;8342:32;;8411:9;8398:23;8430:32;8454:7;8430:32;:::i;:::-;8471:22;;8512:2;8550:18;;;8537:32;-1:-1:-1;;;;;8581:30:83;;8578:50;;;8624:1;8621;8614:12;8578:50;8647:22;;8700:4;8692:13;;8688:23;-1:-1:-1;8678:51:83;;8725:1;8722;8715:12;8678:51;8761:2;8748:16;8784:60;8800:43;8840:2;8800:43;:::i;8784:60::-;8878:15;;;8960:1;8956:10;;;;8948:19;;8944:28;;;8909:12;;;;8984:15;;;8981:35;;;9012:1;9009;9002:12;8981:35;9036:11;;;;9056:223;9072:6;9067:3;9064:15;9056:223;;;9154:3;9141:17;9171:33;9196:7;9171:33;:::i;:::-;9217:20;;9089:12;;;;9257;;;;9056:223;;;9311:5;9306:2;9299:5;9295:14;9288:29;;;;;;8208:1115;;;;:::o;9328:198::-;9434:9;9471:49;9505:14;9498:5;9471:49;:::i;9531:118::-;9617:5;9610:13;9603:21;9596:5;9593:32;9583:60;;9639:1;9636;9629:12;9654:245;9721:6;9774:2;9762:9;9753:7;9749:23;9745:32;9742:52;;;9790:1;9787;9780:12;9742:52;9822:9;9816:16;9841:28;9863:5;9841:28;:::i;9904:114::-;9988:4;9981:5;9977:16;9970:5;9967:27;9957:55;;10008:1;10005;9998:12;10023:186;10071:4;-1:-1:-1;;;;;10096:6:83;10093:30;10090:56;;;10126:18;;:::i;:::-;-1:-1:-1;10192:2:83;10171:15;-1:-1:-1;;10167:29:83;10198:4;10163:40;;10023:186::o;10214:462::-;10256:5;10309:3;10302:4;10294:6;10290:17;10286:27;10276:55;;10327:1;10324;10317:12;10276:55;10363:6;10350:20;10394:48;10410:31;10438:2;10410:31;:::i;10394:48::-;10467:2;10458:7;10451:19;10513:3;10506:4;10501:2;10493:6;10489:15;10485:26;10482:35;10479:55;;;10530:1;10527;10520:12;10479:55;10595:2;10588:4;10580:6;10576:17;10569:4;10560:7;10556:18;10543:55;10643:1;10618:16;;;10636:4;10614:27;10607:38;;;;10622:7;10214:462;-1:-1:-1;;;10214:462:83:o;10681:946::-;10738:5;10786:4;10774:9;10769:3;10765:19;10761:30;10758:50;;;10804:1;10801;10794:12;10758:50;10826:23;;:::i;:::-;10817:32;;10885:9;10872:23;-1:-1:-1;;;;;10955:2:83;10947:6;10944:14;10941:34;;;10971:1;10968;10961:12;10941:34;10998:55;11049:3;11040:6;11029:9;11025:22;10998:55;:::i;:::-;10991:5;10984:70;11107:2;11096:9;11092:18;11079:32;11063:48;;11136:2;11126:8;11123:16;11120:36;;;11152:1;11149;11142:12;11120:36;11175:24;;;;11229:4;11215:12;;;11211:23;11208:43;;;11247:1;11244;11237:12;11208:43;11275:23;;:::i;:::-;11335:2;11322:16;11347:31;11370:7;11347:31;:::i;:::-;11387:24;;11457:2;11449:11;;11436:25;11473:16;;;11470:36;;;11502:1;11499;11492:12;11470:36;11540:40;11576:3;11565:8;11561:2;11557:17;11540:40;:::i;:::-;11535:2;11526:7;11522:16;11515:66;;11613:7;11608:2;11601:5;11597:14;11590:31;;;;10681:946;;;;:::o;11632:131::-;-1:-1:-1;;;;;;11706:32:83;;11696:43;;11686:71;;11753:1;11750;11743:12;11768:132;11835:20;;11864:30;11835:20;11864:30;:::i;11905:128::-;11970:20;;11999:28;11970:20;11999:28;:::i;12038:1251::-;12093:5;12141:4;12129:9;12124:3;12120:19;12116:30;12113:50;;;12159:1;12156;12149:12;12113:50;12181:23;;:::i;:::-;12172:32;;12240:9;12227:23;-1:-1:-1;;;;;12310:2:83;12302:6;12299:14;12296:34;;;12326:1;12323;12316:12;12296:34;12349:22;;;;12401:4;12387:12;;;12383:23;12380:43;;;12419:1;12416;12409:12;12380:43;12447:23;;:::i;:::-;12508:2;12495:16;12536:2;12526:8;12523:16;12520:36;;;12552:1;12549;12542:12;12520:36;12581:52;12629:3;12618:8;12614:2;12610:17;12581:52;:::i;:::-;12572:7;12565:69;;12680:2;12676;12672:11;12659:25;12709:2;12699:8;12696:16;12693:36;;;12725:1;12722;12715:12;12693:36;12763:52;12811:3;12800:8;12796:2;12792:17;12763:52;:::i;:::-;12758:2;12749:7;12745:16;12738:78;;12873:4;12869:2;12865:13;12852:27;12845:4;12836:7;12832:18;12825:55;12914:30;12940:2;12936;12932:11;12914:30;:::i;:::-;12909:2;12900:7;12896:16;12889:56;12980:31;13006:3;13002:2;12998:12;12980:31;:::i;:::-;12974:3;12965:7;12961:17;12954:58;13058:3;13054:2;13050:12;13037:26;13088:2;13078:8;13075:16;13072:36;;;13104:1;13101;13094:12;13072:36;13143:40;13179:3;13168:8;13164:2;13160:17;13143:40;:::i;:::-;13137:3;13124:17;;13117:67;-1:-1:-1;13193:22:83;;-1:-1:-1;13247:35:83;;-1:-1:-1;13278:2:83;13263:18;;13247:35;:::i;:::-;13242:2;13235:5;13231:14;13224:59;12038:1251;;;;:::o;13294:198::-;13400:9;13437:49;13471:14;13464:5;13437:49;:::i;13497:245::-;13555:6;13608:2;13596:9;13587:7;13583:23;13579:32;13576:52;;;13624:1;13621;13614:12;13576:52;13663:9;13650:23;13682:30;13706:5;13682:30;:::i;13747:574::-;13869:4;13875:6;13935:11;13922:25;14029:2;14025:7;14014:8;13998:14;13994:29;13990:43;13970:18;13966:68;13956:96;;14048:1;14045;14038:12;13956:96;14075:33;;14127:20;;;-1:-1:-1;;;;;;14159:30:83;;14156:50;;;14202:1;14199;14192:12;14156:50;14235:4;14223:17;;-1:-1:-1;14286:1:83;14282:14;;;14266;14262:35;14252:46;;14249:66;;;14311:1;14308;14301:12;14249:66;13747:574;;;;;:::o;14326:295::-;14396:5;14455:3;14442:17;14541:2;14537:7;14526:8;14510:14;14506:29;14502:43;14482:18;14478:68;14468:96;;14560:1;14557;14550:12;14468:96;14582:33;;;;14326:295;-1:-1:-1;;14326:295:83:o;14626:520::-;14696:5;14703:6;14763:3;14750:17;14849:2;14845:7;14834:8;14818:14;14814:29;14810:43;14790:18;14786:68;14776:96;;14868:1;14865;14858:12;14776:96;14896:33;;15000:4;14987:18;;;-1:-1:-1;14948:21:83;;-1:-1:-1;;;;;;15017:30:83;;15014:50;;;15060:1;15057;15050:12;15014:50;15114:6;15111:1;15107:14;15091;15087:35;15080:5;15076:47;15073:67;;;15136:1;15133;15126:12;15151:884;15211:3;15250:4;15245:3;15241:14;15292:5;15279:19;15307:32;15331:7;15307:32;:::i;:::-;-1:-1:-1;;;;;15360:32:83;15348:45;;15412:4;15459:65;15509:14;;;15513:5;15459:65;:::i;:::-;15554:4;15540:12;;;15533:26;15594;;;;15673:12;15703:1;;15647:2;15638:12;;15713:295;15727:12;15724:1;15721:19;15713:295;;;15810:6;15797:20;15830:33;15855:7;15830:33;:::i;:::-;-1:-1:-1;;;;;15890:33:83;15876:48;;15983:15;;;;15920:1;15748:9;;;;;15946:14;;15713:295;;;16024:5;15151:884;-1:-1:-1;;;;;;;15151:884:83:o;16040:500::-;16098:5;16105:6;16165:3;16152:17;16251:2;16247:7;16236:8;16220:14;16216:29;16212:43;16192:18;16188:68;16178:96;;16270:1;16267;16260:12;16178:96;16298:33;;16402:4;16389:18;;;-1:-1:-1;16350:21:83;;-1:-1:-1;;;;;;16419:30:83;;16416:50;;;16462:1;16459;16452:12;16416:50;16509:6;16493:14;16489:27;16482:5;16478:39;16475:59;;;16530:1;16527;16520:12;16545:266;16633:6;16628:3;16621:19;16685:6;16678:5;16671:4;16666:3;16662:14;16649:43;-1:-1:-1;16737:1:83;16712:16;;;16730:4;16708:27;;;16701:38;;;;16793:2;16772:15;;;-1:-1:-1;;16768:29:83;16759:39;;;16755:50;;16545:266::o;16816:796::-;16878:3;16916:56;16966:5;16959;16916:56;:::i;:::-;16993:4;16988:3;16981:17;17019:65;17078:4;17073:3;17069:14;17055:12;17019:65;:::i;:::-;17007:77;;17115:67;17176:4;17169:5;17165:16;17158:5;17115:67;:::i;:::-;17224:3;17218:4;17214:14;17207:4;17202:3;17198:14;17191:38;17266:14;17253:28;17290:31;17313:7;17290:31;:::i;:::-;17356:4;17343:18;17330:32;;17407:73;17474:4;17454:25;;17458:14;17407:73;:::i;:::-;17371:109;;17513:4;17506;17500;17496:15;17489:29;17534:72;17600:4;17594;17590:15;17576:12;17560:14;17534:72;:::i;:::-;17527:79;16816:796;-1:-1:-1;;;;;;16816:796:83:o;17713:2354::-;17830:6;17825:3;17818:19;17800:3;17856:4;17897:2;17892:3;17888:12;17922:11;17949;17942:18;;17999:6;17996:1;17992:14;17985:5;17981:26;17969:38;;18030:5;18053:1;18074;18084:1957;18100:6;18095:3;18092:15;18084:1957;;;18175:5;18169:4;18165:16;18160:3;18153:29;18205:57;18255:6;18248:5;18205:57;:::i;:::-;18285:4;18341:2;18328:16;18424:3;18420:8;18415:2;18399:14;18395:23;18391:38;18371:18;18367:63;18357:91;;18444:1;18441;18434:12;18357:91;18516:16;;;18476:27;;18565:60;18476:27;;18565:60;:::i;:::-;18648:4;18687:2;18682;18676:4;18672:13;18665:25;18717:67;18779:3;18773:4;18769:14;18755:12;18717:67;:::i;:::-;18703:81;;18819:69;18884:2;18875:7;18871:16;18862:7;18819:69;:::i;:::-;18915:2;18911:7;18941:2;19001;18994:4;18986:6;18982:17;18978:26;18973:2;18967:4;18963:13;18956:49;19032:61;19086:6;19070:14;19032:61;:::i;:::-;19018:75;;19116:3;19106:13;;19180:2;19171:7;19167:16;19154:30;19149:2;19143:4;19139:13;19132:53;19239:2;19230:7;19226:16;19213:30;19198:45;;;19256:32;19280:7;19256:32;:::i;:::-;19311:3;-1:-1:-1;;;;;19353:7:83;19349:32;19344:2;19338:4;19334:13;19327:55;19436:2;19427:7;19423:16;19410:30;19395:45;;19453:32;19477:7;19453:32;:::i;:::-;-1:-1:-1;;;;;;19520:34:83;;19505:13;;;19498:57;19604;19644:16;;;19648:7;19604:57;:::i;:::-;19568:93;;;;;19720:2;19713:4;19705:6;19701:17;19697:26;19691:3;19685:4;19681:14;19674:50;;;;19750:63;19806:6;19792:12;19776:14;19750:63;:::i;:::-;19737:76;;;;19848:28;19872:2;19868;19864:11;19848:28;:::i;:::-;17687:13;17680:21;19921:13;;;17668:34;;;;-1:-1:-1;20019:12:83;;;;19984:15;;;;18126:1;18117:11;18084:1957;;;-1:-1:-1;20057:4:83;;17713:2354;-1:-1:-1;;;;;;;;17713:2354:83:o;20072:369::-;20325:2;20314:9;20307:21;20288:4;20345:90;20431:2;20420:9;20416:18;20408:6;20400;20345:90;:::i;20446:271::-;20637:2;20626:9;20619:21;20600:4;20657:54;20707:2;20696:9;20692:18;20684:6;20657:54;:::i;20722:251::-;20792:6;20845:2;20833:9;20824:7;20820:23;20816:32;20813:52;;;20861:1;20858;20851:12;20813:52;20893:9;20887:16;20912:31;20937:5;20912:31;:::i;20978:127::-;21039:10;21034:3;21030:20;21027:1;21020:31;21070:4;21067:1;21060:15;21094:4;21091:1;21084:15;21110:250;21195:1;21205:113;21219:6;21216:1;21213:13;21205:113;;;21295:11;;;21289:18;21276:11;;;21269:39;21241:2;21234:10;21205:113;;;-1:-1:-1;;21352:1:83;21334:16;;21327:27;21110:250::o;21365:270::-;21406:3;21444:5;21438:12;21471:6;21466:3;21459:19;21487:76;21556:6;21549:4;21544:3;21540:14;21533:4;21526:5;21522:16;21487:76;:::i;:::-;21617:2;21596:15;-1:-1:-1;;21592:29:83;21583:39;;;;21624:4;21579:50;;21365:270;-1:-1:-1;;21365:270:83:o;21640:534::-;21693:3;21737:5;21731:12;21764:4;21759:3;21752:17;21790:56;21840:4;21835:3;21831:14;21817:12;21790:56;:::i;:::-;21778:68;;21894:4;21887:5;21883:16;21877:23;21942:3;21936:4;21932:14;21925:4;21920:3;21916:14;21909:38;21996:4;21979:14;21973:21;21969:32;21963:4;21956:46;22059:4;22043:14;22039:25;22033:32;22011:54;;22098:4;22091;22085;22081:15;22074:29;22119:49;22162:4;22156;22152:15;22136:14;22119:49;:::i;22179:768::-;22233:3;22277:5;22271:12;22304:4;22299:3;22292:17;22330:58;22382:4;22377:3;22373:14;22359:12;22330:58;:::i;:::-;22318:70;;22436:4;22429:5;22425:16;22419:23;22484:3;22478:4;22474:14;22467:4;22462:3;22458:14;22451:38;22512:50;22557:4;22541:14;22512:50;:::i;:::-;22498:64;;;22611:4;22604:5;22600:16;22594:23;22587:4;22582:3;22578:14;22571:47;-1:-1:-1;;;;;22671:4:83;22664:5;22660:16;22654:23;22650:48;22643:4;22638:3;22634:14;22627:72;22769:10;22764:3;22760:20;22752:4;22745:5;22741:16;22735:23;22731:50;22724:4;22719:3;22715:14;22708:74;22830:4;22823:5;22819:16;22813:23;22880:3;22872:6;22868:16;22861:4;22856:3;22852:14;22845:40;22901;22934:6;22918:14;22901:40;:::i;22952:305::-;23003:3;23047:5;23041:12;23074:4;23069:3;23062:17;23100:59;23153:4;23148:3;23144:14;23130:12;23100:59;:::i;:::-;23222:4;23211:16;;;23205:23;23198:31;23191:39;23175:14;;;;23168:63;;;;-1:-1:-1;23088:71:83;22952:305;-1:-1:-1;22952:305:83:o;23262:634::-;23323:3;23361:5;23355:12;23388:6;23383:3;23376:19;23414:4;23455:2;23450:3;23446:12;23480:11;23507;23500:18;;23557:6;23554:1;23550:14;23543:5;23539:26;23527:38;;23599:2;23592:5;23588:14;23620:1;23630:240;23644:6;23641:1;23638:13;23630:240;;;23715:5;23709:4;23705:16;23700:3;23693:29;23743:47;23785:4;23776:6;23770:13;23743:47;:::i;:::-;23848:12;;;;23735:55;-1:-1:-1;23813:15:83;;;;23666:1;23659:9;23630:240;;;-1:-1:-1;23886:4:83;;23262:634;-1:-1:-1;;;;;;;23262:634:83:o;23901:1398::-;23964:3;24002:5;23996:12;24029:6;24024:3;24017:19;24055:4;24096:2;24091:3;24087:12;24121:11;24148;24141:18;;24198:6;24195:1;24191:14;24184:5;24180:26;24168:38;;24240:2;24233:5;24229:14;24261:1;24282;24292:981;24308:6;24303:3;24300:15;24292:981;;;24383:5;24377:4;24373:16;24368:3;24361:29;24419:6;24413:13;24449:4;24492:2;24486:9;24521:2;24515:4;24508:16;24551:55;24602:2;24596:4;24592:13;24578:12;24551:55;:::i;:::-;24647:11;;;24641:18;24694:17;;;24679:13;;;24672:40;24773:21;;24807:24;;;24897:23;;;;24944:1;;-1:-1:-1;24853:15:83;;;-1:-1:-1;24958:209:83;24974:8;24969:3;24966:17;24958:209;;;25051:15;;25037:30;;25136:17;;;;25002:1;24993:11;;;;;25093:14;;;;24958:209;;;-1:-1:-1;25251:12:83;;;;25188:5;-1:-1:-1;;;25216:15:83;;;;24334:1;24325:11;24292:981;;25304:1211;25515:2;25504:9;25497:21;25478:4;25553:6;25547:13;25596:4;25591:2;25580:9;25576:18;25569:32;25624:61;25680:3;25669:9;25665:19;25651:12;25624:61;:::i;:::-;25610:75;;-1:-1:-1;;;;;25743:2:83;25735:6;25731:15;25725:22;25721:47;25716:2;25705:9;25701:18;25694:75;25823:2;25815:6;25811:15;25805:22;25800:2;25789:9;25785:18;25778:50;25877:2;25869:6;25865:15;25859:22;25904:2;25900:7;25972:2;25960:9;25952:6;25948:22;25944:31;25938:3;25927:9;25923:19;25916:60;25999;26052:6;26036:14;25999:60;:::i;:::-;25985:74;;26108:3;26100:6;26096:16;26090:23;26068:45;;26178:2;26166:9;26158:6;26154:22;26150:31;26144:3;26133:9;26129:19;26122:60;26205:62;26260:6;26244:14;26205:62;:::i;:::-;26191:76;;26322:3;26314:6;26310:16;26304:23;26298:3;26287:9;26283:19;26276:52;26377:3;26369:6;26365:16;26359:23;26337:45;;26448:2;26436:9;26428:6;26424:22;26420:31;26413:4;26402:9;26398:20;26391:61;;26469:40;26502:6;26486:14;26469:40;:::i;26520:184::-;26590:6;26643:2;26631:9;26622:7;26618:23;26614:32;26611:52;;;26659:1;26656;26649:12;26611:52;-1:-1:-1;26682:16:83;;26520:184;-1:-1:-1;26520:184:83:o;26709:1349::-;26828:6;26823:3;26816:19;26798:3;26854:4;26895:2;26890:3;26886:12;26920:11;26947;26940:18;;26977:1;26967:11;;27018:6;27014:2;27010:15;27003:5;26999:27;27049:5;27072:1;27093;27103:929;27119:6;27114:3;27111:15;27103:929;;;27194:5;27188:4;27184:16;27179:3;27172:29;27224:57;27274:6;27267:5;27224:57;:::i;:::-;27304:4;27341:50;27388:2;27384;27341:50;:::i;:::-;27417:2;27411:4;27404:16;27447:64;27507:2;27501:4;27497:13;27483:12;27447:64;:::i;:::-;27433:78;;;27560:59;27615:2;27611;27607:11;27603:2;27560:59;:::i;:::-;27654:17;;;27639:13;;;27632:40;27685:28;;;27524:95;-1:-1:-1;;;;;;27729:37:83;;27726:57;;;27779:1;27776;27769:12;27726:57;27812:21;;;;;27876:14;27859:15;;;27846:55;-1:-1:-1;28010:12:83;;;;27926:21;27922:30;;;-1:-1:-1;27975:15:83;;;;27145:1;27136:11;27103:929;;;-1:-1:-1;28048:4:83;;26709:1349;-1:-1:-1;;;;;;;;;26709:1349:83:o;28063:2101::-;28564:6;28553:9;28546:25;28607:3;28602:2;28591:9;28587:18;28580:31;28527:4;28640:58;28691:6;28683;28640:58;:::i;:::-;28735:4;28729:3;28718:9;28714:19;28707:33;28763:70;28828:3;28817:9;28813:19;28799:12;28763:70;:::i;:::-;28749:84;;28880:2;28872:6;28868:15;28855:29;28893:30;28917:5;28893:30;:::i;:::-;-1:-1:-1;;;;;28960:30:83;28954:3;28939:19;;28932:59;29054:4;29042:17;;29029:31;29022:4;29007:20;;29000:61;29106:69;29169:4;29157:17;;29046:6;29106:69;:::i;:::-;29198:3;29194:8;29267:2;29255:9;29247:6;29243:22;29239:31;29233:3;29222:9;29218:19;29211:60;29294:92;29379:6;29365:12;29349:14;29294:92;:::i;:::-;29280:106;;29433:69;29496:4;29488:6;29484:17;29476:6;29433:69;:::i;:::-;29395:107;;;;29567:2;29555:9;29547:6;29543:22;29539:31;29533:3;29522:9;29518:19;29511:60;29594:96;29683:6;29667:14;29651;29594:96;:::i;:::-;29580:110;;29752:3;29744:6;29740:16;29727:30;29721:3;29710:9;29706:19;29699:59;29805:56;29856:3;29848:6;29844:16;29836:6;29805:56;:::i;:::-;29767:94;;;;29926:2;29914:9;29906:6;29902:22;29898:31;29892:3;29881:9;29877:19;29870:60;;29947:65;30005:6;29989:14;29973;29947:65;:::i;:::-;29939:73;;;;;30050:6;30043:4;30032:9;30028:20;30021:36;30095:6;30088:4;30077:9;30073:20;30066:36;30111:47;30152:4;30141:9;30137:20;30129:6;-1:-1:-1;;;;;1951:30:83;1939:43;;1886:102;30169:127;30230:10;30225:3;30221:20;30218:1;30211:31;30261:4;30258:1;30251:15;30285:4;30282:1;30275:15;30632:125;30697:9;;;30718:10;;;30715:36;;;30731:18;;:::i;30762:174::-;30806:11;30858:3;30845:17;30871:30;30895:5;30871:30;:::i;31125:168::-;31198:9;;;31229;;31246:15;;;31240:22;;31226:37;31216:71;;31267:18;;:::i;31298:147::-;31361:78;31379:3;31372:5;31369:14;31361:78;;;31435:1;31421:16;;31406:1;31395:13;31361:78;;31450:323;31545:5;31539:12;31574:1;31567:5;31560:16;31602:6;31595:14;31585:182;;31643:5;31640:1;31633:16;31687:4;31684:1;31674:18;31705:52;31749:6;31743:4;31739:17;31733:4;31705:52;:::i;31778:406::-;-1:-1:-1;;;31861:6:83;31858:32;31855:58;;;31893:18;;:::i;:::-;31942:5;31936:12;31971:6;31964:5;31957:21;32001:6;31993;31990:18;31987:191;;;32041:5;32038:1;32031:16;32085:4;32082:1;32072:18;32103:65;32160:6;32154:4;32150:17;32141:6;32135:4;32131:17;32103:65;:::i;32189:153::-;32267:1;32261:4;32254:15;32278:58;32333:1;32327:4;32323:12;32278:58;:::i;32347:166::-;-1:-1:-1;;32475:1:83;32471:11;;;32467:24;32463:29;32453:40;32499:1;32495:11;;;;32450:57;;32347:166::o;32518:513::-;32587:38;32619:4;32613:11;32587:38;:::i;:::-;32651:6;32644:14;32634:391;;32700:2;32692:6;32689:14;32721:1;32716:259;;;;-1:-1:-1;;33011:1:83;32998:15;;6038:1264:40:o;32716:259:83:-;32751:4;32748:1;32741:15;32798:4;32795:1;32785:18;32820:77;32891:2;32883:6;32879:15;32876:1;32872:23;32866:4;32862:34;32858:1;32852:4;32848:12;32820:77;:::i;:::-;32927:1;32914:15;;;32946;;32682:333;32634:391;32518:513;:::o;33036:235::-;33116:1;33110:4;33103:15;33127:58;33182:1;33176:4;33172:12;33127:58;:::i;:::-;33215:1;33211;33205:4;33201:12;33194:23;33226:39;33262:1;33256:4;33252:12;33226:39;:::i;33276:515::-;33347:4;33353:6;33413:11;33400:25;33507:2;33503:7;33492:8;33476:14;33472:29;33468:43;33448:18;33444:68;33434:96;;33526:1;33523;33516:12;33434:96;33553:33;;33605:20;;;-1:-1:-1;;;;;;33637:30:83;;33634:50;;;33680:1;33677;33670:12;33634:50;33713:4;33701:17;;-1:-1:-1;33744:14:83;33740:27;;;33730:38;;33727:58;;;33781:1;33778;33771:12;33796:418;33897:2;33892:3;33889:11;33886:322;;;33933:5;33930:1;33923:16;33977:4;33974:1;33964:18;34047:2;34035:10;34031:19;34028:1;34024:27;34018:4;34014:38;34083:4;34071:10;34068:20;34065:47;;;-1:-1:-1;34106:4:83;34065:47;34125:73;34192:2;34187:3;34183:12;34180:1;34176:20;34170:4;34166:31;34153:11;34125:73;:::i;34219:1198::-;-1:-1:-1;;;;;34320:3:83;34317:27;34314:53;;;34347:18;;:::i;:::-;34376:93;34465:3;34425:38;34457:4;34451:11;34425:38;:::i;:::-;34419:4;34376:93;:::i;:::-;34495:1;34520:2;34515:3;34512:11;34537:1;34532:627;;;;35203:1;35220:3;35217:93;;;-1:-1:-1;35276:19:83;;;35263:33;35217:93;35336:64;35396:3;35389:5;35336:64;:::i;:::-;35330:4;35323:78;;34505:906;;34532:627;2771:1;2764:14;;;2808:4;2795:18;;-1:-1:-1;;34568:17:83;;;34680:9;34702:229;34716:7;34713:1;34710:14;34702:229;;;34805:19;;;34792:33;34777:49;;34912:4;34897:20;;;;34865:1;34853:14;;;;34732:12;34702:229;;;34706:3;34959;34950:7;34947:16;34944:159;;;35083:1;35079:6;35073:3;35067;35064:1;35060:11;35056:21;35052:34;35048:39;35035:9;35030:3;35026:19;35013:33;35009:79;35001:6;34994:95;34944:159;;;35146:1;35140:3;35137:1;35133:11;35129:19;35123:4;35116:33;34505:906;;34219:1198;;;:::o;35422:2889::-;35544:75;35613:5;35606;35544:75;:::i;:::-;35656:2;35643:16;35668:32;35692:7;35668:32;:::i;:::-;31043:11;;-1:-1:-1;;;;;;31039:41:83;-1:-1:-1;;;;;31082:30:83;;31036:77;31023:91;;35709:60;35788:1;35826:2;35820:4;35816:13;35848:2;35893:103;35992:2;35988;35984:11;35980:2;35893:103;:::i;:::-;35859:137;;-1:-1:-1;;;;;36063:2:83;36048:13;36045:21;36042:47;;;36069:18;;:::i;:::-;36098:65;36149:13;36137:10;36098:65;:::i;:::-;36216:1;36226:22;;;36269:17;;;;36216:1;36315:281;36329:13;36326:1;36323:20;36315:281;;;36414:6;36401:20;36434:33;36459:7;36434:33;:::i;:::-;36562:12;;;36555:31;36527:15;;;;36351:10;;36315:281;;;36319:3;36635:1;36629:4;36625:12;36605:32;;36656:84;36736:2;36729:5;36725:14;36718:5;36656:84;:::i;:::-;36646:94;;36777:2;36764:16;36749:31;;36789;36812:7;36789:31;:::i;:::-;36857:19;;-1:-1:-1;;36853:34:83;36902:4;36889:18;;36850:58;36829:80;;;36948:1;36938:12;;;36995:52;37035:11;;;37039:2;36995:52;:::i;:::-;36959:88;;;;37077:2;37062:13;37059:21;37056:47;;;37083:18;;:::i;:::-;37112:119;37217:13;37169:46;37201:12;37195:19;37169:46;:::i;:::-;37155:12;37112:119;:::i;:::-;37257:2;37240:19;;37293:2;37278:13;37275:21;37310:1;37305:703;;;;38054:2;38072:13;38069:115;;;-1:-1:-1;38140:29:83;;;38127:43;38069:115;38218:76;38280:13;38271:7;38218:76;:::i;:::-;38204:12;38197:98;;37268:1037;;37305:703;2771:1;2764:14;;;2808:4;2795:18;;-1:-1:-1;;37341:27:83;;;37473:2;37488:242;37504:7;37499:3;37496:16;37488:242;;;37595:29;;;37582:43;37567:59;;37698:18;;;;37653:15;;;;37522:12;;37488:242;;;37492:3;37758:13;37749:7;37746:26;37743:189;;;37912:1;37908:6;37902:3;37886:13;37883:1;37879:21;37875:31;37871:44;37867:49;37854:9;37839:13;37835:29;37822:43;37818:99;37810:6;37803:115;37743:189;;;37994:2;37978:13;37974:2;37970:22;37966:31;37952:12;37945:53;37268:1037;;;;;;;;;35422:2889;;:::o;38316:174::-;38360:11;38412:3;38399:17;38425:30;38449:5;38425:30;:::i;38726:170::-;38768:11;38820:3;38807:17;38833:28;38855:5;38833:28;:::i;39098:3956::-;39245:5;39232:19;39330:3;39326:8;39318:5;39302:14;39298:26;39294:41;39274:18;39270:66;39260:94;;39350:1;39347;39340:12;39260:94;39375:30;;39424:73;39375:30;;39424:73;:::i;:::-;39516:69;39582:2;39578;39516:69;:::i;:::-;39622:2;39609:16;39634:32;39658:7;39634:32;:::i;:::-;31043:11;;-1:-1:-1;;;;;;31039:41:83;-1:-1:-1;;;;;31082:30:83;;31036:77;31023:91;;39675:60;39754:1;39792:2;39786:4;39782:13;39814:2;39859:103;39958:2;39954;39950:11;39946:2;39859:103;:::i;:::-;39825:137;;-1:-1:-1;;;;;40029:2:83;40014:13;40011:21;40008:47;;;40035:18;;:::i;:::-;40064:65;40115:13;40103:10;40064:65;:::i;:::-;40182:1;40192:22;;;40235:17;;;;40182:1;40281:242;40295:13;40292:1;40289:20;40281:242;;;40380:6;40367:20;40400:33;40425:7;40400:33;:::i;:::-;40491:12;;;40484:29;40456:15;;;;40317:10;;40281:242;;;40285:3;40562:1;40556:4;40552:12;40532:32;;40583:78;40657:2;40653;40649:11;40645:2;40583:78;:::i;:::-;40573:88;;40698:2;40685:16;40670:31;;40710;40733:7;40710:31;:::i;:::-;40778:19;;-1:-1:-1;;40774:34:83;40823:4;40810:18;;40771:58;40750:80;;;40869:1;40859:12;;;40916:52;40956:11;;;40960:2;40916:52;:::i;:::-;40880:88;;;;40998:2;40983:13;40980:21;40977:47;;;41004:18;;:::i;:::-;41033:119;41138:13;41090:46;41122:12;41116:19;41090:46;:::i;41033:119::-;41178:2;41161:19;;41214:2;41199:13;41196:21;41231:1;41226:703;;;;41975:2;41960:17;;41993:13;41990:115;;;42080:9;42065:13;42061:29;42048:43;42037:54;;41990:115;42139:76;42201:13;42192:7;42139:76;:::i;:::-;42125:12;42118:98;41189:1037;;41226:703;2771:1;2764:14;;;2808:4;2795:18;;-1:-1:-1;;41262:27:83;;;-1:-1:-1;41394:2:83;41409:242;41425:7;41420:3;41417:16;41409:242;;;41516:29;;;41503:43;41488:59;;41619:18;;;;41574:15;;;;41443:12;;41409:242;;;41413:3;41679:13;41670:7;41667:26;41664:189;;;41833:1;41829:6;41823:3;41807:13;41804:1;41800:21;41796:31;41792:44;41788:49;41775:9;41760:13;41756:29;41743:43;41739:99;41731:6;41724:115;41664:189;;41915:2;41899:13;41895:2;41891:22;41887:31;41873:12;41866:53;41189:1037;;;;;42235:173;42325:82;42403:2;42397:4;42393:13;42387:4;42325:82;:::i;:::-;42321:1;42315:4;42311:12;42235:173;:::i;:::-;42461:2;42455:4;42451:13;42438:27;42434:1;42428:4;42424:12;42417:49;42505:1;42499:4;42495:12;42475:32;;42516:102;42576:41;42613:2;42607:4;42603:13;42576:41;:::i;:::-;31043:11;;-1:-1:-1;;;;;;31039:41:83;-1:-1:-1;;;;;31082:30:83;;;;31036:77;31023:91;;30941:179;42516:102;42627:103;42687:42;42724:3;42718:4;42714:14;42687:42;:::i;:::-;38587:11;;-1:-1:-1;;38623:40:83;38673:3;38669:15;;;;38686:26;38665:48;38620:94;38607:108;;38495:226;42627:103;42775:57;42827:3;42821:4;42817:14;42811:4;42775:57;:::i;:::-;42739:93;;;;42841:100;42927:13;42912;42907:2;42901:4;42897:13;42841:100;:::i;:::-;42950:98;43007:40;43043:2;43036:5;43032:14;43007:40;:::i;:::-;43002:2;42996:4;42992:13;39015:3;39011:8;39004:4;38998:11;38994:26;39081:3;39072:5;39065:13;39058:21;39054:31;39045:7;39042:44;39036:4;39029:58;;38901:192;;;42950:98;;;;;;;39098:3956;;:::o;43059:1606::-;-1:-1:-1;;;43207:3:83;43204:29;43201:55;;;43236:18;;:::i;:::-;43285:4;43279:11;43312:3;43306:4;43299:17;43336:6;43331:3;43328:15;43325:886;;;43376:2;43414:6;43410:2;43406:15;43468:2;43459:7;43455:16;43447:6;43444:28;43434:62;;43476:18;;:::i;:::-;43534:3;43530:2;43526:12;43584:2;43573:9;43569:18;43564:3;43561:27;43551:61;;43592:18;;:::i;:::-;43635:1;43649:16;;;43704:4;43690:19;;43732:18;;;;43776:20;;;;;43809:392;43827:2;43820:5;43817:13;43809:392;;;43889:44;43927:5;43889:44;:::i;:::-;43950:52;43999:1;43992:5;43988:13;43950:52;:::i;:::-;44041:2;44037:1;44030:5;44026:13;44019:25;44083:2;44079:1;44072:5;44068:13;44061:25;44103:41;44140:2;44133:5;44129:14;44103:41;:::i;:::-;44184:2;44179;44172:5;44168:14;44161:26;43853:2;43846:5;43842:14;43833:23;;43809:392;;;43813:3;;;;43325:886;-1:-1:-1;2771:1:83;2764:14;;;2808:4;2795:18;;44234:5;;44341:318;44355:3;44352:1;44349:10;44341:318;;;44401:162;44486:76;44555:6;44548:5;44486:76;:::i;:::-;44473:11;44401:162;:::i;:::-;44598:2;44586:15;;;;;44646:2;44629:20;;;;;44374:1;44367:9;44341:318;;;44345:3;;;43059:1606;;;:::o;44670:446::-;44765:5;44759:12;44790:1;44814:2;44807:5;44800:17;44843:6;44836:14;44826:284;;44885:5;44881:2;44874:17;44930:4;44926:2;44916:19;44968:6;44962:4;44958:17;45018:82;45036:2;45029:5;45026:13;45018:82;;;45095:2;45088:5;45081:17;45062:1;45055:5;45051:13;45042:22;;45018:82;;45121:532;-1:-1:-1;;;45204:6:83;45201:32;45198:58;;;45236:18;;:::i;:::-;45285:5;45279:12;45314:6;45307:5;45300:21;45344:6;45336;45333:18;45330:317;;;45384:1;45398:17;;;45454:4;45440:19;;45525:17;;;;45482;;45555:82;45573:2;45566:5;45563:13;45555:82;;;45632:2;45625:5;45618:17;45599:1;45592:5;45588:13;45579:22;;45555:82;;45658:1869;45780:75;45849:5;45842;45780:75;:::i;:::-;45892:2;45879:16;45904:32;45928:7;45904:32;:::i;:::-;31043:11;;-1:-1:-1;;;;;;31039:41:83;-1:-1:-1;;;;;31082:30:83;;31036:77;31023:91;;45945:60;46024:1;46062:2;46056:4;46052:13;46084:2;46129:103;46228:2;46224;46220:11;46216:2;46129:103;:::i;:::-;46095:137;;-1:-1:-1;;;;;46299:2:83;46284:13;46281:21;46278:47;;;46305:18;;:::i;:::-;46334:65;46385:13;46373:10;46334:65;:::i;:::-;46452:1;46462:22;;;46505:17;;;;46452:1;46551:281;46565:13;46562:1;46559:20;46551:281;;;46650:6;46637:20;46670:33;46695:7;46670:33;:::i;:::-;46798:12;;;46791:31;46763:15;;;;46587:10;;46551:281;;;46555:3;46871:1;46865:4;46861:12;46841:32;;46918:109;47023:2;47016:5;47012:14;47005:5;46918:109;:::i;:::-;46882:145;;;;47057:2;47042:13;47039:21;47036:47;;;47063:18;;:::i;:::-;47092:67;47145:13;47131:12;47092:67;:::i;:::-;47206:24;;;-1:-1:-1;47253:17:83;;;;47301:220;47317:13;47312:3;47309:22;47301:220;;;47397:22;;47481:16;;;47474:37;47444:17;;;;47341:12;;47301:220;;47532:1406;-1:-1:-1;;;47684:3:83;47681:29;47678:55;;;47713:18;;:::i;:::-;47762:4;47756:11;47789:3;47783:4;47776:17;47813:6;47808:3;47805:15;47802:679;;;47853:1;47890:6;47886:2;47882:15;47944:2;47935:7;47931:16;47923:6;47920:28;47910:62;;47952:18;;:::i;:::-;48010:3;48006:2;48002:12;48060:2;48049:9;48045:18;48040:3;48037:27;48027:61;;48068:18;;:::i;:::-;48108:1;48101:15;;;48154:4;48141:18;;48182;;;;48226:20;48259:212;48277:2;48270:5;48267:13;48259:212;;;48339:42;48375:5;48339:42;:::i;:::-;48398:59;48454:1;48447:5;48443:13;48398:59;:::i;:::-;48292:14;;48259:212;;;48263:3;;;47802:679;-1:-1:-1;2771:1:83;2764:14;;;2808:4;2795:18;;48504:5;;48611:321;48625:3;48622:1;48619:10;48611:321;;;48671:166;48760:76;48829:6;48822:5;48760:76;:::i;:::-;48747:11;48671:166;:::i;:::-;48872:2;48860:15;;;;;48920:1;48903:19;;;;;48644:1;48637:9;48611:321;;48943:2208;49114:75;49183:5;49176;49114:75;:::i;:::-;49226:2;49213:16;49238:32;49262:7;49238:32;:::i;:::-;31043:11;;-1:-1:-1;;;;;;31039:41:83;-1:-1:-1;;;;;31082:30:83;;31036:77;31023:91;;49279:60;49358:1;49396:2;49390:4;49386:13;49418:2;49463:103;49562:2;49558;49554:11;49550:2;49463:103;:::i;:::-;49429:137;;-1:-1:-1;;;;;49581:13:83;49578:37;49575:63;;;49618:18;;:::i;:::-;49647:65;49698:13;49686:10;49647:65;:::i;:::-;49762:1;49755:21;;;49797:16;;;;49841:242;49855:13;49852:1;49849:20;49841:242;;;49940:6;49927:20;49960:33;49985:7;49960:33;:::i;:::-;50051:12;;;50044:29;50016:15;;;;49877:10;;49841:242;;;49845:3;;50092:103;50152:42;50190:2;50183:5;50179:14;50152:42;:::i;:::-;50148:1;50142:4;50138:12;-1:-1:-1;;;;;31086:5:83;31082:30;-1:-1:-1;;;;;31056:23:83;31049:4;31043:11;31039:41;31036:77;31030:4;31023:91;;;30941:179;50092:103;;;;;50249:2;50242:5;50238:14;50225:28;50221:1;50215:4;50211:12;50204:50;50299:109;50404:2;50397:5;50393:14;50386:5;50299:109;:::i;:::-;50417:144;50547:13;50532;50528:1;50522:4;50518:12;50417:144;:::i;:::-;;;50606:110;50711:3;50704:5;50700:15;50693:5;50606:110;:::i;:::-;50725:148;50859:13;50844;50840:1;50834:4;50830:12;50725:148;:::i;:::-;;;50927:3;50920:5;50916:15;50903:29;50899:1;50893:4;50889:12;50882:51;50978:59;51032:3;51025:5;51021:15;51014:5;50978:59;:::i;:::-;51046:99;51131:13;51116;51112:1;51106:4;51102:12;51046:99;:::i;51156:792::-;51243:5;51272:64;51288:47;51328:6;51288:47;:::i;51272:64::-;51370:21;;;51263:73;-1:-1:-1;51410:4:83;51430:14;;;;51483:1;51479:14;;;51467:27;;51506:15;;;51503:35;;;51534:1;51531;51524:12;51503:35;51558:6;51573:369;51589:6;51584:3;51581:15;51573:369;;;51675:3;51662:17;-1:-1:-1;;;;;51698:11:83;51695:35;51692:125;;;51771:1;51800:2;51796;51789:14;51692:125;51842:57;51895:3;51881:11;51873:6;51869:24;51842:57;:::i;:::-;51830:70;;-1:-1:-1;51920:12:83;;;;51606;;51573:369;;;51577:3;;;;51156:792;;;;;:::o;51953:299::-;52125:9;52162:84;52231:14;52223:6;52216:5;52162:84;:::i;52257:491::-;52533:2;52522:9;52515:21;52496:4;52559:57;52612:2;52601:9;52597:18;52589:6;52559:57;:::i;52753:276::-;52839:6;52892:2;52880:9;52871:7;52867:23;52863:32;52860:52;;;52908:1;52905;52898:12;52860:52;52940:9;52934:16;52979:1;52972:5;52969:12;52959:40;;52995:1;52992;52985:12;53034:477;53307:2;53296:9;53289:21;53270:4;53333:54;53383:2;53372:9;53368:18;53360:6;53333:54;:::i;:::-;53435:9;53427:6;53423:22;53418:2;53407:9;53403:18;53396:50;53463:42;53498:6;53490;53463:42;:::i;53516:209::-;53554:3;-1:-1:-1;;;;;53635:2:83;53628:5;53624:14;53662:2;53653:7;53650:15;53647:41;;53668:18;;:::i;:::-;53717:1;53704:15;;53516:209;-1:-1:-1;;;53516:209:83:o;54156:757::-;54280:9;54339:4;54331:5;54315:14;54311:26;54307:37;54304:57;;;54357:1;54354;54347:12;54304:57;54385:23;;:::i;:::-;54445:5;54432:19;54460:32;54484:7;54460:32;:::i;:::-;54501:24;;54572:2;54561:14;;54548:28;-1:-1:-1;;;;;54588:30:83;;54585:50;;;54631:1;54628;54621:12;54585:50;54654:18;;54710:14;54703:4;54695:13;;54691:34;54681:62;;54739:1;54736;54729:12;54681:62;54777:100;54862:14;54857:2;54844:16;54839:2;54835;54831:11;54777:100;:::i;:::-;54772:2;54759:16;;54752:126;-1:-1:-1;54763:7:83;54156:757;-1:-1:-1;;54156:757:83:o;54918:474::-;55127:2;55116:9;55109:21;-1:-1:-1;;;;;55176:6:83;55170:13;55166:38;55161:2;55150:9;55146:18;55139:66;55090:4;55252:2;55244:6;55240:15;55234:22;55294:4;55287;55276:9;55272:20;55265:34;55316:70;55382:2;55371:9;55367:18;55353:12;55316:70;:::i;55397:2104::-;55584:5;55571:19;55599:32;55623:7;55599:32;:::i;:::-;31043:11;;-1:-1:-1;;;;;;31039:41:83;-1:-1:-1;;;;;31082:30:83;;31036:77;31023:91;;55640:60;55719:1;55757:2;55751:4;55747:13;55779:2;55824:109;55929:2;55922:5;55918:14;55911:5;55824:109;:::i;:::-;-1:-1:-1;;;55948:13:83;55945:39;55942:65;;;55987:18;;:::i;:::-;56036:10;56030:17;56075:13;56063:10;56056:33;56119:6;56104:13;56101:25;56098:920;;;56159:2;56197:6;56193:2;56189:15;56251:2;56242:7;56238:16;56230:6;56227:28;56217:62;;56259:18;;:::i;:::-;56317:13;56313:2;56309:22;56387:2;56376:9;56372:18;56357:13;56354:37;56344:71;;56395:18;;:::i;:::-;56438:1;56452:22;;;56499:17;;;56539:18;;;;56583:20;;;;;56616:392;56634:2;56627:5;56624:13;56616:392;;;56696:44;56734:5;56696:44;:::i;:::-;56757:52;56806:1;56799:5;56795:13;56757:52;:::i;:::-;56848:2;56844:1;56837:5;56833:13;56826:25;56890:2;56886:1;56879:5;56875:13;56868:25;56910:41;56947:2;56940:5;56936:14;56910:41;:::i;:::-;56991:2;56986;56979:5;56975:14;56968:26;56660:2;56653:5;56649:14;56640:23;;56616:392;;;56620:3;;;;56098:920;-1:-1:-1;2771:1:83;2764:14;;;2808:4;2795:18;;;57041:11;;57160:335;57174:13;57171:1;57168:20;57160:335;;;57231:168;57316:82;57391:6;57378:11;57316:82;:::i;:::-;57303:11;57231:168;:::i;:::-;57482:2;57465:20;;;;;57422:15;;;;57196:10;;57160:335;;;57164:3;;;;;;;55397:2104;;:::o;57506:368::-;57725:2;57714:9;57707:21;57688:4;57745:54;57795:2;57784:9;57780:18;57772:6;57745:54;:::i;:::-;57737:62;;57864:1;57860;57855:3;57851:11;57847:19;57839:6;57835:32;57830:2;57819:9;57815:18;57808:60;57506:368;;;;;:::o;58061:1360::-;58185:3;58179:10;-1:-1:-1;;;;;58204:6:83;58201:30;58198:56;;;58234:18;;:::i;:::-;58263:96;58352:6;58312:38;58344:4;58338:11;58312:38;:::i;:::-;58306:4;58263:96;:::i;:::-;58414:4;;58478:2;58467:14;;58495:1;58490:674;;;;59208:1;59225:6;59222:89;;;-1:-1:-1;59277:19:83;;;59271:26;59222:89;59337:67;59397:6;59390:5;59337:67;:::i;:::-;59331:4;59324:81;;58460:955;;58490:674;2771:1;2764:14;;;2808:4;2795:18;;-1:-1:-1;;58526:20:83;;;58655:236;58669:7;58666:1;58663:14;58655:236;;;58758:19;;;58752:26;58737:42;;58850:27;;;;58818:1;58806:14;;;;58685:19;;58655:236;;;58659:3;58919:6;58910:7;58907:19;58904:201;;;58980:19;;;58974:26;-1:-1:-1;;59063:1:83;59059:14;;;59075:3;59055:24;59051:37;59047:42;59032:58;59017:74;;58904:201;-1:-1:-1;;;;;59151:1:83;59135:14;;;59131:22;59118:36;;-1:-1:-1;58061:1360:83:o;59426:180::-;-1:-1:-1;;;;;59531:10:83;;;59543;;;59527:27;;59566:11;;;59563:37;;;59580:18;;:::i;:::-;59563:37;59426:180;;;;:::o;59611:183::-;-1:-1:-1;;;;;59730:10:83;;;59718;;;59714:27;;59753:12;;;59750:38;;;59768:18;;:::i;59799:127::-;59860:10;59855:3;59851:20;59848:1;59841:31;59891:4;59888:1;59881:15;59915:4;59912:1;59905:15;59931:191;59962:1;-1:-1:-1;;;;;60033:2:83;60030:1;60026:10;60055:3;60045:37;;60062:18;;:::i;:::-;60100:10;;60096:20;;;;;59931:191;-1:-1:-1;;59931:191:83:o;60675:271::-;60866:2;60855:9;60848:21;60829:4;60886:54;60936:2;60925:9;60921:18;60913:6;60886:54;:::i;60951:647::-;61030:6;61083:2;61071:9;61062:7;61058:23;61054:32;61051:52;;;61099:1;61096;61089:12;61051:52;61132:9;61126:16;-1:-1:-1;;;;;61157:6:83;61154:30;61151:50;;;61197:1;61194;61187:12;61151:50;61220:22;;61273:4;61265:13;;61261:27;-1:-1:-1;61251:55:83;;61302:1;61299;61292:12;61251:55;61331:2;61325:9;61356:48;61372:31;61400:2;61372:31;:::i;61356:48::-;61427:2;61420:5;61413:17;61467:7;61462:2;61457;61453;61449:11;61445:20;61442:33;61439:53;;;61488:1;61485;61478:12;61439:53;61501:67;61565:2;61560;61553:5;61549:14;61544:2;61540;61536:11;61501:67;:::i;61603:199::-;61642:1;-1:-1:-1;;;;;61713:2:83;61710:1;61706:10;61735:3;61725:37;;61742:18;;:::i;:::-;61780:10;;61776:20;;;;;61603:199;-1:-1:-1;;61603:199:83:o;61807:257::-;-1:-1:-1;;;;;61928:10:83;;;61940;;;61924:27;61971:20;;;;61878:18;62010:24;;;62000:58;;62038:18;;:::i;:::-;62000:58;;61807:257;;;;:::o;62069:120::-;62109:1;62135;62125:35;;62140:18;;:::i;:::-;-1:-1:-1;62174:9:83;;62069:120::o;62383:1097::-;62485:12;;62518:4;62506:17;;;62593:19;;-1:-1:-1;;;;;62589:44:83;62573:14;;;62566:68;62653:4;62694:21;;;62688:28;62741:2;62732:12;;62725:26;;;;62800:21;;62553:3;62544:13;;62830:20;;;62447:3;;62904:23;;;;62447:3;;62877;62868:13;;;62955:201;62969:6;62966:1;62963:13;62955:201;;;63036:13;;-1:-1:-1;;;;;63032:39:83;63018:54;;63131:15;;;;63068:1;62984:9;;;;;63094:14;;;;62955:201;;;62959:3;63204:2;63197:5;63193:14;63187:21;63165:43;;63249:3;63242:5;63238:15;63233:2;63228:3;63224:12;63217:37;63304:4;63287:14;63281:21;63277:32;63270:5;63263:47;63367:2;63351:14;63347:23;63341:30;63319:52;;63403:4;63398:2;63391:5;63387:14;63380:28;63424:50;63468:4;63461:5;63457:16;63441:14;63424:50;:::i;63485:1283::-;63668:2;63657:9;63650:21;63631:4;63706:6;63700:13;63749:4;63744:2;63733:9;63729:18;63722:32;63791:12;63785:19;63840:4;63835:2;63824:9;63820:18;63813:32;63868:76;63939:3;63928:9;63924:19;63908:14;63868:76;:::i;:::-;63854:90;;63999:2;63985:12;63981:21;63975:28;64026:2;64022:7;64094:2;64082:9;64074:6;64070:22;64066:31;64060:3;64049:9;64045:19;64038:60;64121:63;64177:6;64161:14;64121:63;:::i;:::-;64107:77;;64245:4;64231:12;64227:23;64221:30;64215:3;64204:9;64200:19;64193:59;-1:-1:-1;;;;;64318:2:83;64304:12;64300:21;64294:28;64290:53;64283:4;64272:9;64268:20;64261:83;64425:10;64420:3;64416:20;64409:3;64395:12;64391:22;64385:29;64381:56;64375:3;64364:9;64360:19;64353:85;64493:3;64479:12;64475:22;64469:29;64447:51;;64563:2;64551:9;64543:6;64539:22;64535:31;64529:3;64518:9;64514:19;64507:60;;;64587:40;64620:6;64604:14;64587:40;:::i;:::-;64576:51;;;64676:2;64668:6;64664:15;64658:22;64689:53;64736:4;64725:9;64721:20;64705:14;17687:13;17680:21;17668:34;;17617:91;64689:53;-1:-1:-1;64759:3:83;63485:1283;-1:-1:-1;;;63485:1283:83:o;64981:287::-;65110:3;65148:6;65142:13;65164:66;65223:6;65218:3;65211:4;65203:6;65199:17;65164:66;:::i", + "linkReferences": { + "src/lib/AccountHelper.sol": { + "AccountHelper": [ + { + "start": 8448, + "length": 20 + } + ] + }, + "src/lib/CheckpointHelper.sol": { + "CheckpointHelper": [ + { + "start": 6548, + "length": 20 + }, + { + "start": 6809, + "length": 20 + }, + { + "start": 8610, + "length": 20 + }, + { + "start": 9770, + "length": 20 + } + ] + }, + "src/lib/CrossMsgHelper.sol": { + "CrossMsgHelper": [ + { + "start": 2228, + "length": 20 + }, + { + "start": 14357, + "length": 20 + } + ] + }, + "src/lib/EpochVoteSubmissionHelper.sol": { + "EpochVoteSubmissionHelper": [ + { + "start": 12856, + "length": 20 + }, + { + "start": 15595, + "length": 20 + } + ] + }, + "src/lib/ExecutableQueueHelper.sol": { + "ExecutableQueueHelper": [ + { + "start": 12727, + "length": 20 + }, + { + "start": 13020, + "length": 20 + }, + { + "start": 13192, + "length": 20 + } + ] + }, + "src/lib/StorableMsgHelper.sol": { + "StorableMsgHelper": [ + { + "start": 7575, + "length": 20 + }, + { + "start": 13613, + "length": 20 + } + ] + }, + "src/lib/SubnetIDHelper.sol": { + "SubnetIDHelper": [ + { + "start": 1254, + "length": 20 + }, + { + "start": 1741, + "length": 20 + }, + { + "start": 1977, + "length": 20 + }, + { + "start": 4595, + "length": 20 + }, + { + "start": 7262, + "length": 20 + }, + { + "start": 7412, + "length": 20 + }, + { + "start": 7725, + "length": 20 + }, + { + "start": 7851, + "length": 20 + }, + { + "start": 8159, + "length": 20 + }, + { + "start": 10359, + "length": 20 + }, + { + "start": 10688, + "length": 20 + }, + { + "start": 11484, + "length": 20 + }, + { + "start": 13401, + "length": 20 + }, + { + "start": 13743, + "length": 20 + }, + { + "start": 13894, + "length": 20 + }, + { + "start": 15075, + "length": 20 + }, + { + "start": 15338, + "length": 20 + } + ] + } + } + }, + "methodIdentifiers": { + "commitChildCheck(((uint64,address[]),uint64,uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[],((uint64,address[]),bytes32[])[],bytes32,bytes))": "d4e149a8", + "propagate(bytes32)": "25bf0db6", + "sendCrossMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool))": "2f757dd1", + "submitTopDownCheckpoint((uint64,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[]))": "986acf38" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotSendCrossMsgToItself\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EpochAlreadyExecuted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EpochNotVotable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InconsistentPrevCheckpoint\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidActorAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCheckpointEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCheckpointSource\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgDestinationSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgFromSubnetId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MessagesNotSorted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFee\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughSubnetCircSupply\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSignableAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetNotActive\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorAlreadyVoted\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"checks\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ChildCheck[]\",\"name\":\"children\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"commit\",\"type\":\"tuple\"}],\"name\":\"commitChildCheck\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"msgCid\",\"type\":\"bytes32\"}],\"name\":\"propagate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg\",\"name\":\"crossMsg\",\"type\":\"tuple\"}],\"name\":\"sendCrossMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"topDownMsgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct TopDownCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"}],\"name\":\"submitTopDownCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"kind\":\"dev\",\"methods\":{\"propagate(bytes32)\":{\"params\":{\"msgCid\":\"- the cid of the cross-net message\"}},\"sendCrossMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool))\":{\"params\":{\"crossMsg\":\"- message to send\"}},\"submitTopDownCheckpoint((uint64,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[]))\":{\"params\":{\"checkpoint\":\"- top-down checkpoint\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"commitChildCheck(((uint64,address[]),uint64,uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[],((uint64,address[]),bytes32[])[],bytes32,bytes))\":{\"notice\":\"submit a checkpoint in the gateway. Called from a subnet once the checkpoint is voted for and reaches majority\"},\"propagate(bytes32)\":{\"notice\":\"propagates the populated cross net message for the given cid\"},\"sendCrossMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool))\":{\"notice\":\"sends an arbitrary cross message from the current subnet to the destination subnet\"},\"submitTopDownCheckpoint((uint64,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[]))\":{\"notice\":\"allows a validator to submit a batch of messages in a top-down commitment\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/GatewayRouterFacet.sol\":\"GatewayRouterFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xb8d40721965efd93b5369d55083181226d3c7e1be4a968c04de35d44ba44f29a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5c4b0089788aa7112cce88602212c3895999f464e00d1c40d7f27ac9288798b\",\"dweb:/ipfs/Qmd69EuGeoCYPfPkGA4hayH4s2upmAe3XaoDf4ggYNEoZ4\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x31f34a3baec77c087d2bdbc5c277f169e505b905aeb43cfcea1734175140f621\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5a3bc8093b31b685ef879e8ffaaab614594cb6f98ddac4f18c411f7bbf99d0d\",\"dweb:/ipfs/QmSFfA9pH3xo8hnWKCFKTwGi8kz68YXuAwyLXsYe6KjC3Z\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xdb6d7e26320438bdd421598eb64e6fe2b03867a4dd07c9c820994b7bec26f7b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2adf1566393ddf260fb2064dd0c67be00123b8978be8b62cc45ac97aff859949\",\"dweb:/ipfs/QmaDLzQpnitEJDAJo4squpKumr5x4D2QYetPdT3jZd8hYm\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x8a925dea568a61a38de9615aae7bb462d9eb6f8eb2c6ca409f1e740519077ab8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b7e2f836581694867c09bb9c80ff2ab6ae039ece2ff3bbf4d1bc2026449fa551\",\"dweb:/ipfs/QmVMvaQSCRBHZudSV8AzimYre76tJVm4UrHYnrT89zcjho\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x2bf6521d3fc6d484d27e8cbae0b577ff4f310979fdf95ed4366d73c4701f9acc\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e01f6417e82d8791aa19694939d0e425adc8670bad777383ddd238c1ffc6d122\",\"dweb:/ipfs/QmeUmaBpkvaYtaTaxEwLaaXPQizZNz6nsMxKvscTf1X49f\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0xf29c18f694b5acc919b7cada2875ca3bd2c52ddd7ef86ee747aab0faeb50ac8b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d8fb92f533cc119c578da73b06efe76b0efaa612af7c77178eb903952fcf53df\",\"dweb:/ipfs/QmdosRgUmvwXRnxq5TmoJoFMs7TULduTFpMUNyYXQNGfQD\"]},\"src/enums/VoteExecutionStatus.sol\":{\"keccak256\":\"0x56d1db8abf83feb0f1d69f1919fbd5bd79c6f3c5bf3c149950d307b9d62b6455\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb2ec0f87a9091eab463ac6a776d5737189e0239f412b36b975bb0be1fcb4ad8\",\"dweb:/ipfs/QmWiXwab54Ag2f1kyGjqT3brh5JrV5Lc7cqod9VPaS5ey6\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xab09aee88feca01f5c23baa475aa02bb8c1b189e60a7b81848a07e00b9ab708c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1f5d874688d7316a0eb382b6fb1e7ea6648b15aaaab95acc51f18bfcab851d61\",\"dweb:/ipfs/QmdZRRmWrkrn5MmEX3n5yWEREtoCvXNxzoVkPWSH64ENpd\"]},\"src/gateway/GatewayRouterFacet.sol\":{\"keccak256\":\"0x4f72594dbf7fbf522e90cbf299ab1cc854b46f744e0de07647531e7af95c8293\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6f3c66b19e829f75f283cb0581a1110cb690414bc5de95478357d667545906c3\",\"dweb:/ipfs/QmXGPjz4EHuM28Y4PP3AjxGsmdNTpb7i1wx3AfVXdQobZL\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x57865785239b076bc429cd989bc5cb2a2e68050c7293a5a537d8cdeded170294\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://28285703560a0bbfa247c894c9f14f2a14e02e430e7dedb0a05b58c53aed3763\",\"dweb:/ipfs/QmcrNx18jZYJ7dRduWu1do3th74cHy7zn9Zx8x13WsCLj5\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0xe3f7371c7c7af8dfa71daa6c4171f6853c9ab1fdd619c09eb12c11ff18d17d91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6a09ea45ed335eada22e7cf3643c17d1c59750ed2156cc29c0960a8e8b53e394\",\"dweb:/ipfs/QmSYTNGqP9wEJnPDXmvghfL8zL8BrHGnixhbsimA9oydLG\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x86bf44c7e35907c1b0ed2fd55a6a8a277b46e6ee52b6933610504bc1d2de3b12\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb47357cd7342f951e5d08b1960e9ab7d458463e71ce08ff61b900bbb04118f0\",\"dweb:/ipfs/QmTKHhnYs1xKZUwCmSRPmSi5utfGrosYV57fSoGF7bGnJs\"]},\"src/lib/CheckpointHelper.sol\":{\"keccak256\":\"0x25d67ccc67b6b537df920c92dc3c704dc097e000c444149d3732e1d20848a269\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5823e88c38b5c4e90ee5700cee5a5fd8d982015dab7ea1cbe2f26d62a359ae76\",\"dweb:/ipfs/QmT9Ves86HoEqQciunzEwvDsyv2dgQwF8uPUjNuGsycHuF\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0xe7aacc0bc5eb10763685d6766524f6db05b151b37de4ccbd2b04649e54b9af36\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d6fae33fe9dc258efc3e0c484c6e69ff8314af266c78fd9b3d20c5bf8f251865\",\"dweb:/ipfs/QmYYpC6GnJNRvAg3MCSHKHk47cas888N3HzmMrmiRT4bnJ\"]},\"src/lib/EpochVoteSubmissionHelper.sol\":{\"keccak256\":\"0x1eaf867ddfc3e83d5a2ca50a81809e1529ea2436a8d2697d868bc8653b8c6c9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://65eb6a69fdb0fd8bfc1cd3d5044791225ff9fa8887dda49fd530e7c46e6e5366\",\"dweb:/ipfs/QmepF17eiqGqiNJRfeCohdeVw2aJxgkFS1AyFSM78v16nC\"]},\"src/lib/ExecutableQueueHelper.sol\":{\"keccak256\":\"0x66b7ba58bb9ba987789f22dcc5e44f1720876a79a52a9630d886490d48f80ece\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8b388b9f63b4f86ac03f24089a1f110e482ae89b1eb628fc78aeead1d6f50869\",\"dweb:/ipfs/QmVGVh9r2GBgXRn7Z13sMKmnn3xjfHm9tM3mnLUH1UwjQX\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x80d7d30532305664e31ad114d702904287e6f93954b420315f660ddf30791ac6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0b108070a13f76614f36e46f0af85d12aa53209ff9bb9c32ee1945be3e0a1fe1\",\"dweb:/ipfs/QmcyMuCZB4Z3qFUUjvcoVeSePJXU5F9hN4Zhy94U2qqcPq\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0x3cf0150c6f1e19b48ca307604973f583aba8d2192a6d39572e2e780991a9c916\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://64d570ab21b83384e044296b02c63e195a5eb53a68ea527aaa62862e47edd627\",\"dweb:/ipfs/QmUwdSq1J5LzUxAHjKk395BWsobnYSh9fsJBQeiUbz2NJe\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3404decb343fa34603a0dce10d00ce0c97da50951792ef500d080e5167136fcb\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2bc38db8ab67aa48356a397f866cc54deac21f861d1349f80cd21103d893718f\",\"dweb:/ipfs/QmajCZg8ZpT9Kh35gXnxPkjCLCzRYFtYsNXTVGTvSugUZf\"]},\"src/lib/LibVoting.sol\":{\"keccak256\":\"0x3e5c9359758e7a7200c3a1e7c3a8edfbe6912e8c0a2edde1d2a9e4907b89cb91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://589fa228fdc537a56839520408ec06fc34658ef7a3ca7481b089f9d966f8ed39\",\"dweb:/ipfs/QmNQ4kPeGN5JAhFQyfEnYmmvp83dPQ6QhQKQfZhqgWKjDK\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0x6d8042388daad40be71d0ceaddeab0dee54ccc70d921ca177fe57ce9b575959f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9a5f2660c29fb44ca2278e5e5ce75adcf01fcb3521f62d2bd624c3fe53c60875\",\"dweb:/ipfs/QmeNEQZM8QdvALJmt8V8nfqYE6xVMs8m2YAF2yT589mm6L\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0xf82021571aa9a7b021b2d24b2c0eb80c5796b9f28ebb6a1c239146c0c0168817\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b546fc429093a558b9382e28886d1f09e7f308e55f6398989583bc420a630326\",\"dweb:/ipfs/QmSmQPQbMBX8N8r8nGboBWdzJjUaK7ACaFUf8XosZVZPT8\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0xcddaa4630a6f68c59a819bafee579a8979cc9fd7b00d5b49f99eeefb9ce0c02c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9713f988a5709dea3ee0fb204a2d0b64b0dc115912ed9eb128f479156d97a949\",\"dweb:/ipfs/QmUjTAvd2eAYQFqgfZUf5R67daeC7eUKrL6WrFb8oEWB9j\"]},\"src/structs/EpochVoteSubmission.sol\":{\"keccak256\":\"0x4cc52a36cac1a063bf1f996b91ea81ce118b7ce8923e62cec6e5bf08b689e96a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb33236d8c7a40e17c416a21e9f0df268d6a7f4d6ba1df86ab0c2dbf444702e9\",\"dweb:/ipfs/QmXEbdkweqL1f4Q71YPiuxwhQooh1oim9oBybAbr9Jd3A2\"]},\"src/structs/ExecutableQueue.sol\":{\"keccak256\":\"0xfacfd91786edac0462f4bba34d3a3766c8785925ae96301b68b76fba78c5cab4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb421106bc9158e8a12dd7054d265113dd890337937e73acb03f03e33a13eb18\",\"dweb:/ipfs/Qmdxs4akDWuzwf5nYsCaNuYNZ5sTrMCzdgVMuSpKCjFyaP\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xbaae3da91048d76b5bab0404eebf7dc41ed273a8cd1f4143ea1b3403d89f77c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5a69d76f5022d2e19f69ef0d70d4c5e3a3e7ae8e02fcfdb2682c901ac2f3a707\",\"dweb:/ipfs/QmYEWyPz9UqVssUpU42VTv6DhzRNAfaHKt9ZsNCAvtLjTr\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0xb37b12df0c9ff47c2e88f9612b624bb44e6de5dfb8030dfd83582997dcd6aa83\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a321a05abf7b3b461e3d6c4ac27b18d3e14dffad9e2bf9a0ceb68538a02ab1e4\",\"dweb:/ipfs/QmPo878trP8pv9yXXpwUHSnP7Xt6uz9eWuB25pz2JGiCot\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.19+commit.7dd6d404" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + } + ], + "type": "error", + "name": "AddressEmptyCode" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "type": "error", + "name": "AddressInsufficientBalance" + }, + { + "inputs": [], + "type": "error", + "name": "CallFailed" + }, + { + "inputs": [], + "type": "error", + "name": "CannotSendCrossMsgToItself" + }, + { + "inputs": [], + "type": "error", + "name": "EpochAlreadyExecuted" + }, + { + "inputs": [], + "type": "error", + "name": "EpochNotVotable" + }, + { + "inputs": [], + "type": "error", + "name": "FailedInnerCall" + }, + { + "inputs": [], + "type": "error", + "name": "InconsistentPrevCheckpoint" + }, + { + "inputs": [], + "type": "error", + "name": "InsufficientFunds" + }, + { + "inputs": [], + "type": "error", + "name": "InvalidActorAddress" + }, + { + "inputs": [], + "type": "error", + "name": "InvalidCheckpointEpoch" + }, + { + "inputs": [], + "type": "error", + "name": "InvalidCheckpointSource" + }, + { + "inputs": [], + "type": "error", + "name": "InvalidCrossMsgDestinationSubnet" + }, + { + "inputs": [], + "type": "error", + "name": "InvalidCrossMsgFromSubnetId" + }, + { + "inputs": [], + "type": "error", + "name": "InvalidCrossMsgNonce" + }, + { + "inputs": [], + "type": "error", + "name": "MessagesNotSorted" + }, + { + "inputs": [], + "type": "error", + "name": "NotEnoughBalance" + }, + { + "inputs": [], + "type": "error", + "name": "NotEnoughFee" + }, + { + "inputs": [], + "type": "error", + "name": "NotEnoughFunds" + }, + { + "inputs": [], + "type": "error", + "name": "NotEnoughSubnetCircSupply" + }, + { + "inputs": [], + "type": "error", + "name": "NotInitialized" + }, + { + "inputs": [], + "type": "error", + "name": "NotRegisteredSubnet" + }, + { + "inputs": [], + "type": "error", + "name": "NotSignableAccount" + }, + { + "inputs": [], + "type": "error", + "name": "NotValidator" + }, + { + "inputs": [], + "type": "error", + "name": "SubnetNotActive" + }, + { + "inputs": [], + "type": "error", + "name": "ValidatorAlreadyVoted" + }, + { + "inputs": [ + { + "internalType": "struct BottomUpCheckpoint", + "name": "commit", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "uint64", + "name": "epoch", + "type": "uint64" + }, + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + }, + { + "internalType": "struct CrossMsg[]", + "name": "crossMsgs", + "type": "tuple[]", + "components": [ + { + "internalType": "struct StorableMsg", + "name": "message", + "type": "tuple", + "components": [ + { + "internalType": "struct IPCAddress", + "name": "from", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ] + }, + { + "internalType": "struct IPCAddress", + "name": "to", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ] + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "bytes4", + "name": "method", + "type": "bytes4" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ] + }, + { + "internalType": "bool", + "name": "wrapped", + "type": "bool" + } + ] + }, + { + "internalType": "struct ChildCheck[]", + "name": "children", + "type": "tuple[]", + "components": [ + { + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "bytes32[]", + "name": "checks", + "type": "bytes32[]" + } + ] + }, + { + "internalType": "bytes32", + "name": "prevHash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "proof", + "type": "bytes" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "commitChildCheck" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "msgCid", + "type": "bytes32" + } + ], + "stateMutability": "payable", + "type": "function", + "name": "propagate" + }, + { + "inputs": [ + { + "internalType": "struct CrossMsg", + "name": "crossMsg", + "type": "tuple", + "components": [ + { + "internalType": "struct StorableMsg", + "name": "message", + "type": "tuple", + "components": [ + { + "internalType": "struct IPCAddress", + "name": "from", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ] + }, + { + "internalType": "struct IPCAddress", + "name": "to", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ] + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "bytes4", + "name": "method", + "type": "bytes4" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ] + }, + { + "internalType": "bool", + "name": "wrapped", + "type": "bool" + } + ] + } + ], + "stateMutability": "payable", + "type": "function", + "name": "sendCrossMessage" + }, + { + "inputs": [ + { + "internalType": "struct TopDownCheckpoint", + "name": "checkpoint", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "epoch", + "type": "uint64" + }, + { + "internalType": "struct CrossMsg[]", + "name": "topDownMsgs", + "type": "tuple[]", + "components": [ + { + "internalType": "struct StorableMsg", + "name": "message", + "type": "tuple", + "components": [ + { + "internalType": "struct IPCAddress", + "name": "from", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ] + }, + { + "internalType": "struct IPCAddress", + "name": "to", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ] + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "bytes4", + "name": "method", + "type": "bytes4" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ] + }, + { + "internalType": "bool", + "name": "wrapped", + "type": "bool" + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "submitTopDownCheckpoint" + } + ], + "devdoc": { + "kind": "dev", + "methods": { + "propagate(bytes32)": { + "params": { + "msgCid": "- the cid of the cross-net message" + } + }, + "sendCrossMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool))": { + "params": { + "crossMsg": "- message to send" + } + }, + "submitTopDownCheckpoint((uint64,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[]))": { + "params": { + "checkpoint": "- top-down checkpoint" + } + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": { + "commitChildCheck(((uint64,address[]),uint64,uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[],((uint64,address[]),bytes32[])[],bytes32,bytes))": { + "notice": "submit a checkpoint in the gateway. Called from a subnet once the checkpoint is voted for and reaches majority" + }, + "propagate(bytes32)": { + "notice": "propagates the populated cross net message for the given cid" + }, + "sendCrossMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool))": { + "notice": "sends an arbitrary cross message from the current subnet to the destination subnet" + }, + "submitTopDownCheckpoint((uint64,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[]))": { + "notice": "allows a validator to submit a batch of messages in a top-down commitment" + } + }, + "version": 1 + } + }, + "settings": { + "remappings": [ + ":@openzeppelin/=node_modules/@openzeppelin/", + ":ds-test/=lib/forge-std/lib/ds-test/src/", + ":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", + ":fevmate/=lib/fevmate/contracts/", + ":forge-std/=lib/forge-std/src/", + ":hardhat-deploy/=node_modules/hardhat-deploy/", + ":hardhat/=node_modules/hardhat/", + ":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/", + ":openzeppelin/=lib/openzeppelin-contracts/contracts/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "src/gateway/GatewayRouterFacet.sol": "GatewayRouterFacet" + }, + "libraries": {} + }, + "sources": { + "lib/fevmate/contracts/utils/FilAddress.sol": { + "keccak256": "0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31", + "urls": [ + "bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7", + "dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/Address.sol": { + "keccak256": "0xb8d40721965efd93b5369d55083181226d3c7e1be4a968c04de35d44ba44f29a", + "urls": [ + "bzz-raw://e5c4b0089788aa7112cce88602212c3895999f464e00d1c40d7f27ac9288798b", + "dweb:/ipfs/Qmd69EuGeoCYPfPkGA4hayH4s2upmAe3XaoDf4ggYNEoZ4" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/Strings.sol": { + "keccak256": "0x31f34a3baec77c087d2bdbc5c277f169e505b905aeb43cfcea1734175140f621", + "urls": [ + "bzz-raw://b5a3bc8093b31b685ef879e8ffaaab614594cb6f98ddac4f18c411f7bbf99d0d", + "dweb:/ipfs/QmSFfA9pH3xo8hnWKCFKTwGi8kz68YXuAwyLXsYe6KjC3Z" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol": { + "keccak256": "0xdb6d7e26320438bdd421598eb64e6fe2b03867a4dd07c9c820994b7bec26f7b0", + "urls": [ + "bzz-raw://2adf1566393ddf260fb2064dd0c67be00123b8978be8b62cc45ac97aff859949", + "dweb:/ipfs/QmaDLzQpnitEJDAJo4squpKumr5x4D2QYetPdT3jZd8hYm" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol": { + "keccak256": "0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb", + "urls": [ + "bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b", + "dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z" + ], + "license": "MIT" + }, + "src/constants/Constants.sol": { + "keccak256": "0x8a925dea568a61a38de9615aae7bb462d9eb6f8eb2c6ca409f1e740519077ab8", + "urls": [ + "bzz-raw://b7e2f836581694867c09bb9c80ff2ab6ae039ece2ff3bbf4d1bc2026449fa551", + "dweb:/ipfs/QmVMvaQSCRBHZudSV8AzimYre76tJVm4UrHYnrT89zcjho" + ], + "license": "UNLICENSED" + }, + "src/enums/IPCMsgType.sol": { + "keccak256": "0x2bf6521d3fc6d484d27e8cbae0b577ff4f310979fdf95ed4366d73c4701f9acc", + "urls": [ + "bzz-raw://e01f6417e82d8791aa19694939d0e425adc8670bad777383ddd238c1ffc6d122", + "dweb:/ipfs/QmeUmaBpkvaYtaTaxEwLaaXPQizZNz6nsMxKvscTf1X49f" + ], + "license": "UNLICENSED" + }, + "src/enums/Status.sol": { + "keccak256": "0xf29c18f694b5acc919b7cada2875ca3bd2c52ddd7ef86ee747aab0faeb50ac8b", + "urls": [ + "bzz-raw://d8fb92f533cc119c578da73b06efe76b0efaa612af7c77178eb903952fcf53df", + "dweb:/ipfs/QmdosRgUmvwXRnxq5TmoJoFMs7TULduTFpMUNyYXQNGfQD" + ], + "license": "UNLICENSED" + }, + "src/enums/VoteExecutionStatus.sol": { + "keccak256": "0x56d1db8abf83feb0f1d69f1919fbd5bd79c6f3c5bf3c149950d307b9d62b6455", + "urls": [ + "bzz-raw://bb2ec0f87a9091eab463ac6a776d5737189e0239f412b36b975bb0be1fcb4ad8", + "dweb:/ipfs/QmWiXwab54Ag2f1kyGjqT3brh5JrV5Lc7cqod9VPaS5ey6" + ], + "license": "UNLICENSED" + }, + "src/errors/IPCErrors.sol": { + "keccak256": "0xab09aee88feca01f5c23baa475aa02bb8c1b189e60a7b81848a07e00b9ab708c", + "urls": [ + "bzz-raw://1f5d874688d7316a0eb382b6fb1e7ea6648b15aaaab95acc51f18bfcab851d61", + "dweb:/ipfs/QmdZRRmWrkrn5MmEX3n5yWEREtoCvXNxzoVkPWSH64ENpd" + ], + "license": "UNLICENSED" + }, + "src/gateway/GatewayRouterFacet.sol": { + "keccak256": "0x4f72594dbf7fbf522e90cbf299ab1cc854b46f744e0de07647531e7af95c8293", + "urls": [ + "bzz-raw://6f3c66b19e829f75f283cb0581a1110cb690414bc5de95478357d667545906c3", + "dweb:/ipfs/QmXGPjz4EHuM28Y4PP3AjxGsmdNTpb7i1wx3AfVXdQobZL" + ], + "license": "UNLICENSED" + }, + "src/interfaces/IGateway.sol": { + "keccak256": "0x57865785239b076bc429cd989bc5cb2a2e68050c7293a5a537d8cdeded170294", + "urls": [ + "bzz-raw://28285703560a0bbfa247c894c9f14f2a14e02e430e7dedb0a05b58c53aed3763", + "dweb:/ipfs/QmcrNx18jZYJ7dRduWu1do3th74cHy7zn9Zx8x13WsCLj5" + ], + "license": "UNLICENSED" + }, + "src/interfaces/ISubnetActor.sol": { + "keccak256": "0xe3f7371c7c7af8dfa71daa6c4171f6853c9ab1fdd619c09eb12c11ff18d17d91", + "urls": [ + "bzz-raw://6a09ea45ed335eada22e7cf3643c17d1c59750ed2156cc29c0960a8e8b53e394", + "dweb:/ipfs/QmSYTNGqP9wEJnPDXmvghfL8zL8BrHGnixhbsimA9oydLG" + ], + "license": "UNLICENSED" + }, + "src/lib/AccountHelper.sol": { + "keccak256": "0x86bf44c7e35907c1b0ed2fd55a6a8a277b46e6ee52b6933610504bc1d2de3b12", + "urls": [ + "bzz-raw://bb47357cd7342f951e5d08b1960e9ab7d458463e71ce08ff61b900bbb04118f0", + "dweb:/ipfs/QmTKHhnYs1xKZUwCmSRPmSi5utfGrosYV57fSoGF7bGnJs" + ], + "license": "UNLICENSED" + }, + "src/lib/CheckpointHelper.sol": { + "keccak256": "0x25d67ccc67b6b537df920c92dc3c704dc097e000c444149d3732e1d20848a269", + "urls": [ + "bzz-raw://5823e88c38b5c4e90ee5700cee5a5fd8d982015dab7ea1cbe2f26d62a359ae76", + "dweb:/ipfs/QmT9Ves86HoEqQciunzEwvDsyv2dgQwF8uPUjNuGsycHuF" + ], + "license": "UNLICENSED" + }, + "src/lib/CrossMsgHelper.sol": { + "keccak256": "0xe7aacc0bc5eb10763685d6766524f6db05b151b37de4ccbd2b04649e54b9af36", + "urls": [ + "bzz-raw://d6fae33fe9dc258efc3e0c484c6e69ff8314af266c78fd9b3d20c5bf8f251865", + "dweb:/ipfs/QmYYpC6GnJNRvAg3MCSHKHk47cas888N3HzmMrmiRT4bnJ" + ], + "license": "UNLICENSED" + }, + "src/lib/EpochVoteSubmissionHelper.sol": { + "keccak256": "0x1eaf867ddfc3e83d5a2ca50a81809e1529ea2436a8d2697d868bc8653b8c6c9e", + "urls": [ + "bzz-raw://65eb6a69fdb0fd8bfc1cd3d5044791225ff9fa8887dda49fd530e7c46e6e5366", + "dweb:/ipfs/QmepF17eiqGqiNJRfeCohdeVw2aJxgkFS1AyFSM78v16nC" + ], + "license": "UNLICENSED" + }, + "src/lib/ExecutableQueueHelper.sol": { + "keccak256": "0x66b7ba58bb9ba987789f22dcc5e44f1720876a79a52a9630d886490d48f80ece", + "urls": [ + "bzz-raw://8b388b9f63b4f86ac03f24089a1f110e482ae89b1eb628fc78aeead1d6f50869", + "dweb:/ipfs/QmVGVh9r2GBgXRn7Z13sMKmnn3xjfHm9tM3mnLUH1UwjQX" + ], + "license": "UNLICENSED" + }, + "src/lib/FvmAddressHelper.sol": { + "keccak256": "0x80d7d30532305664e31ad114d702904287e6f93954b420315f660ddf30791ac6", + "urls": [ + "bzz-raw://0b108070a13f76614f36e46f0af85d12aa53209ff9bb9c32ee1945be3e0a1fe1", + "dweb:/ipfs/QmcyMuCZB4Z3qFUUjvcoVeSePJXU5F9hN4Zhy94U2qqcPq" + ], + "license": "UNLICENSED" + }, + "src/lib/LibGateway.sol": { + "keccak256": "0x3cf0150c6f1e19b48ca307604973f583aba8d2192a6d39572e2e780991a9c916", + "urls": [ + "bzz-raw://64d570ab21b83384e044296b02c63e195a5eb53a68ea527aaa62862e47edd627", + "dweb:/ipfs/QmUwdSq1J5LzUxAHjKk395BWsobnYSh9fsJBQeiUbz2NJe" + ], + "license": "UNLICENSED" + }, + "src/lib/LibGatewayActorStorage.sol": { + "keccak256": "0x3404decb343fa34603a0dce10d00ce0c97da50951792ef500d080e5167136fcb", + "urls": [ + "bzz-raw://2bc38db8ab67aa48356a397f866cc54deac21f861d1349f80cd21103d893718f", + "dweb:/ipfs/QmajCZg8ZpT9Kh35gXnxPkjCLCzRYFtYsNXTVGTvSugUZf" + ], + "license": "UNLICENSED" + }, + "src/lib/LibVoting.sol": { + "keccak256": "0x3e5c9359758e7a7200c3a1e7c3a8edfbe6912e8c0a2edde1d2a9e4907b89cb91", + "urls": [ + "bzz-raw://589fa228fdc537a56839520408ec06fc34658ef7a3ca7481b089f9d966f8ed39", + "dweb:/ipfs/QmNQ4kPeGN5JAhFQyfEnYmmvp83dPQ6QhQKQfZhqgWKjDK" + ], + "license": "UNLICENSED" + }, + "src/lib/StorableMsgHelper.sol": { + "keccak256": "0x6d8042388daad40be71d0ceaddeab0dee54ccc70d921ca177fe57ce9b575959f", + "urls": [ + "bzz-raw://9a5f2660c29fb44ca2278e5e5ce75adcf01fcb3521f62d2bd624c3fe53c60875", + "dweb:/ipfs/QmeNEQZM8QdvALJmt8V8nfqYE6xVMs8m2YAF2yT589mm6L" + ], + "license": "UNLICENSED" + }, + "src/lib/SubnetIDHelper.sol": { + "keccak256": "0xf82021571aa9a7b021b2d24b2c0eb80c5796b9f28ebb6a1c239146c0c0168817", + "urls": [ + "bzz-raw://b546fc429093a558b9382e28886d1f09e7f308e55f6398989583bc420a630326", + "dweb:/ipfs/QmSmQPQbMBX8N8r8nGboBWdzJjUaK7ACaFUf8XosZVZPT8" + ], + "license": "UNLICENSED" + }, + "src/structs/Checkpoint.sol": { + "keccak256": "0xcddaa4630a6f68c59a819bafee579a8979cc9fd7b00d5b49f99eeefb9ce0c02c", + "urls": [ + "bzz-raw://9713f988a5709dea3ee0fb204a2d0b64b0dc115912ed9eb128f479156d97a949", + "dweb:/ipfs/QmUjTAvd2eAYQFqgfZUf5R67daeC7eUKrL6WrFb8oEWB9j" + ], + "license": "UNLICENSED" + }, + "src/structs/EpochVoteSubmission.sol": { + "keccak256": "0x4cc52a36cac1a063bf1f996b91ea81ce118b7ce8923e62cec6e5bf08b689e96a", + "urls": [ + "bzz-raw://fb33236d8c7a40e17c416a21e9f0df268d6a7f4d6ba1df86ab0c2dbf444702e9", + "dweb:/ipfs/QmXEbdkweqL1f4Q71YPiuxwhQooh1oim9oBybAbr9Jd3A2" + ], + "license": "UNLICENSED" + }, + "src/structs/ExecutableQueue.sol": { + "keccak256": "0xfacfd91786edac0462f4bba34d3a3766c8785925ae96301b68b76fba78c5cab4", + "urls": [ + "bzz-raw://bb421106bc9158e8a12dd7054d265113dd890337937e73acb03f03e33a13eb18", + "dweb:/ipfs/Qmdxs4akDWuzwf5nYsCaNuYNZ5sTrMCzdgVMuSpKCjFyaP" + ], + "license": "UNLICENSED" + }, + "src/structs/FvmAddress.sol": { + "keccak256": "0xbaae3da91048d76b5bab0404eebf7dc41ed273a8cd1f4143ea1b3403d89f77c9", + "urls": [ + "bzz-raw://5a69d76f5022d2e19f69ef0d70d4c5e3a3e7ae8e02fcfdb2682c901ac2f3a707", + "dweb:/ipfs/QmYEWyPz9UqVssUpU42VTv6DhzRNAfaHKt9ZsNCAvtLjTr" + ], + "license": "UNLICENSED" + }, + "src/structs/Subnet.sol": { + "keccak256": "0xb37b12df0c9ff47c2e88f9612b624bb44e6de5dfb8030dfd83582997dcd6aa83", + "urls": [ + "bzz-raw://a321a05abf7b3b461e3d6c4ac27b18d3e14dffad9e2bf9a0ceb68538a02ab1e4", + "dweb:/ipfs/QmPo878trP8pv9yXXpwUHSnP7Xt6uz9eWuB25pz2JGiCot" + ], + "license": "UNLICENSED" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "src/gateway/GatewayRouterFacet.sol", + "id": 40238, + "exportedSymbols": { + "Address": [ + 29869 + ], + "BURNT_FUNDS_ACTOR": [ + 37660 + ], + "BottomUpCheckpoint": [ + 44156 + ], + "CannotSendCrossMsgToItself": [ + 38156 + ], + "CheckpointHelper": [ + 40776 + ], + "CrossMsg": [ + 44176 + ], + "CrossMsgHelper": [ + 41103 + ], + "EMPTY_HASH": [ + 37666 + ], + "EpochVoteTopDownSubmission": [ + 44224 + ], + "FilAddress": [ + 298 + ], + "GatewayActorModifiers": [ + 42504 + ], + "GatewayRouterFacet": [ + 40237 + ], + "IPCMsgType": [ + 38128 + ], + "InconsistentPrevCheckpoint": [ + 38170 + ], + "InvalidCheckpointEpoch": [ + 38174 + ], + "InvalidCheckpointSource": [ + 38176 + ], + "InvalidCrossMsgDestinationSubnet": [ + 38178 + ], + "InvalidCrossMsgFromSubnetId": [ + 38180 + ], + "InvalidCrossMsgNonce": [ + 38182 + ], + "LibGateway": [ + 42262 + ], + "LibVoting": [ + 43438 + ], + "METHOD_SEND": [ + 37681 + ], + "MessagesNotSorted": [ + 38188 + ], + "NotEnoughBalance": [ + 38200 + ], + "NotEnoughFunds": [ + 38206 + ], + "NotEnoughSubnetCircSupply": [ + 38210 + ], + "NotInitialized": [ + 38214 + ], + "NotRegisteredSubnet": [ + 38220 + ], + "NotValidator": [ + 38222 + ], + "PostboxNotExist": [ + 38224 + ], + "Status": [ + 38137 + ], + "StorableMsg": [ + 44191 + ], + "StorableMsgHelper": [ + 43537 + ], + "Subnet": [ + 44303 + ], + "SubnetID": [ + 44279 + ], + "SubnetIDHelper": [ + 44131 + ], + "SubnetNotActive": [ + 38228 + ], + "TopDownCheckpoint": [ + 44163 + ] + }, + "nodeType": "SourceUnit", + "src": "39:15317:40", + "nodes": [ + { + "id": 39254, + "nodeType": "PragmaDirective", + "src": "39:23:40", + "nodes": [], + "literals": [ + "solidity", + "0.8", + ".19" + ] + }, + { + "id": 39256, + "nodeType": "ImportDirective", + "src": "64:72:40", + "nodes": [], + "absolutePath": "src/lib/LibGatewayActorStorage.sol", + "file": "../lib/LibGatewayActorStorage.sol", + "nameLocation": "-1:-1:-1", + "scope": 40238, + "sourceUnit": 42505, + "symbolAliases": [ + { + "foreign": { + "id": 39255, + "name": "GatewayActorModifiers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42504, + "src": "72:21:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 39260, + "nodeType": "ImportDirective", + "src": "137:86:40", + "nodes": [], + "absolutePath": "src/constants/Constants.sol", + "file": "../constants/Constants.sol", + "nameLocation": "-1:-1:-1", + "scope": 40238, + "sourceUnit": 37682, + "symbolAliases": [ + { + "foreign": { + "id": 39257, + "name": "EMPTY_HASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37666, + "src": "145:10:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 39258, + "name": "BURNT_FUNDS_ACTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37660, + "src": "157:17:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 39259, + "name": "METHOD_SEND", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37681, + "src": "176:11:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 39265, + "nodeType": "ImportDirective", + "src": "224:103:40", + "nodes": [], + "absolutePath": "src/structs/Checkpoint.sol", + "file": "../structs/Checkpoint.sol", + "nameLocation": "-1:-1:-1", + "scope": 40238, + "sourceUnit": 44192, + "symbolAliases": [ + { + "foreign": { + "id": 39261, + "name": "CrossMsg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44176, + "src": "232:8:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 39262, + "name": "BottomUpCheckpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44156, + "src": "242:18:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 39263, + "name": "TopDownCheckpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44163, + "src": "262:17:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 39264, + "name": "StorableMsg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44191, + "src": "281:11:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 39267, + "nodeType": "ImportDirective", + "src": "328:78:40", + "nodes": [], + "absolutePath": "src/structs/EpochVoteSubmission.sol", + "file": "../structs/EpochVoteSubmission.sol", + "nameLocation": "-1:-1:-1", + "scope": 40238, + "sourceUnit": 44234, + "symbolAliases": [ + { + "foreign": { + "id": 39266, + "name": "EpochVoteTopDownSubmission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44224, + "src": "336:26:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 39269, + "nodeType": "ImportDirective", + "src": "407:43:40", + "nodes": [], + "absolutePath": "src/enums/Status.sol", + "file": "../enums/Status.sol", + "nameLocation": "-1:-1:-1", + "scope": 40238, + "sourceUnit": 38138, + "symbolAliases": [ + { + "foreign": { + "id": 39268, + "name": "Status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38137, + "src": "415:6:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 39271, + "nodeType": "ImportDirective", + "src": "451:51:40", + "nodes": [], + "absolutePath": "src/enums/IPCMsgType.sol", + "file": "../enums/IPCMsgType.sol", + "nameLocation": "-1:-1:-1", + "scope": 40238, + "sourceUnit": 38129, + "symbolAliases": [ + { + "foreign": { + "id": 39270, + "name": "IPCMsgType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38128, + "src": "459:10:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 39274, + "nodeType": "ImportDirective", + "src": "503:55:40", + "nodes": [], + "absolutePath": "src/structs/Subnet.sol", + "file": "../structs/Subnet.sol", + "nameLocation": "-1:-1:-1", + "scope": 40238, + "sourceUnit": 44311, + "symbolAliases": [ + { + "foreign": { + "id": 39272, + "name": "SubnetID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44279, + "src": "511:8:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 39273, + "name": "Subnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44303, + "src": "521:6:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 39282, + "nodeType": "ImportDirective", + "src": "559:227:40", + "nodes": [], + "absolutePath": "src/errors/IPCErrors.sol", + "file": "../errors/IPCErrors.sol", + "nameLocation": "-1:-1:-1", + "scope": 40238, + "sourceUnit": 38239, + "symbolAliases": [ + { + "foreign": { + "id": 39275, + "name": "InconsistentPrevCheckpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38170, + "src": "567:26:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 39276, + "name": "CannotSendCrossMsgToItself", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38156, + "src": "595:26:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 39277, + "name": "NotEnoughSubnetCircSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38210, + "src": "623:25:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 39278, + "name": "InvalidCheckpointEpoch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38174, + "src": "650:22:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 39279, + "name": "InvalidCheckpointSource", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38176, + "src": "674:23:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 39280, + "name": "InvalidCrossMsgNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38182, + "src": "699:20:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 39281, + "name": "InvalidCrossMsgDestinationSubnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38178, + "src": "721:32:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 39292, + "nodeType": "ImportDirective", + "src": "787:206:40", + "nodes": [], + "absolutePath": "src/errors/IPCErrors.sol", + "file": "../errors/IPCErrors.sol", + "nameLocation": "-1:-1:-1", + "scope": 40238, + "sourceUnit": 38239, + "symbolAliases": [ + { + "foreign": { + "id": 39283, + "name": "InvalidCrossMsgFromSubnetId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38180, + "src": "795:27:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 39284, + "name": "MessagesNotSorted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38188, + "src": "824:17:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 39285, + "name": "NotInitialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38214, + "src": "843:14:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 39286, + "name": "NotEnoughBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38200, + "src": "859:16:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 39287, + "name": "NotEnoughFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38206, + "src": "877:14:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 39288, + "name": "NotRegisteredSubnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38220, + "src": "893:19:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 39289, + "name": "NotValidator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38222, + "src": "914:12:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 39290, + "name": "PostboxNotExist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38224, + "src": "928:15:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 39291, + "name": "SubnetNotActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38228, + "src": "945:15:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 39294, + "nodeType": "ImportDirective", + "src": "994:57:40", + "nodes": [], + "absolutePath": "src/lib/SubnetIDHelper.sol", + "file": "../lib/SubnetIDHelper.sol", + "nameLocation": "-1:-1:-1", + "scope": 40238, + "sourceUnit": 44132, + "symbolAliases": [ + { + "foreign": { + "id": 39293, + "name": "SubnetIDHelper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44131, + "src": "1002:14:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 39296, + "nodeType": "ImportDirective", + "src": "1052:61:40", + "nodes": [], + "absolutePath": "src/lib/CheckpointHelper.sol", + "file": "../lib/CheckpointHelper.sol", + "nameLocation": "-1:-1:-1", + "scope": 40238, + "sourceUnit": 40777, + "symbolAliases": [ + { + "foreign": { + "id": 39295, + "name": "CheckpointHelper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40776, + "src": "1060:16:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 39298, + "nodeType": "ImportDirective", + "src": "1114:47:40", + "nodes": [], + "absolutePath": "src/lib/LibVoting.sol", + "file": "../lib/LibVoting.sol", + "nameLocation": "-1:-1:-1", + "scope": 40238, + "sourceUnit": 43439, + "symbolAliases": [ + { + "foreign": { + "id": 39297, + "name": "LibVoting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43438, + "src": "1122:9:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 39300, + "nodeType": "ImportDirective", + "src": "1162:57:40", + "nodes": [], + "absolutePath": "src/lib/CrossMsgHelper.sol", + "file": "../lib/CrossMsgHelper.sol", + "nameLocation": "-1:-1:-1", + "scope": 40238, + "sourceUnit": 41104, + "symbolAliases": [ + { + "foreign": { + "id": 39299, + "name": "CrossMsgHelper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41103, + "src": "1170:14:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 39302, + "nodeType": "ImportDirective", + "src": "1220:49:40", + "nodes": [], + "absolutePath": "src/lib/LibGateway.sol", + "file": "../lib/LibGateway.sol", + "nameLocation": "-1:-1:-1", + "scope": 40238, + "sourceUnit": 42263, + "symbolAliases": [ + { + "foreign": { + "id": 39301, + "name": "LibGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42262, + "src": "1228:10:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 39304, + "nodeType": "ImportDirective", + "src": "1270:63:40", + "nodes": [], + "absolutePath": "src/lib/StorableMsgHelper.sol", + "file": "../lib/StorableMsgHelper.sol", + "nameLocation": "-1:-1:-1", + "scope": 40238, + "sourceUnit": 43538, + "symbolAliases": [ + { + "foreign": { + "id": 39303, + "name": "StorableMsgHelper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43537, + "src": "1278:17:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 39306, + "nodeType": "ImportDirective", + "src": "1334:56:40", + "nodes": [], + "absolutePath": "lib/fevmate/contracts/utils/FilAddress.sol", + "file": "fevmate/utils/FilAddress.sol", + "nameLocation": "-1:-1:-1", + "scope": 40238, + "sourceUnit": 299, + "symbolAliases": [ + { + "foreign": { + "id": 39305, + "name": "FilAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 298, + "src": "1342:10:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 39308, + "nodeType": "ImportDirective", + "src": "1391:65:40", + "nodes": [], + "absolutePath": "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "file": "openzeppelin-contracts/utils/Address.sol", + "nameLocation": "-1:-1:-1", + "scope": 40238, + "sourceUnit": 29870, + "symbolAliases": [ + { + "foreign": { + "id": 39307, + "name": "Address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29869, + "src": "1399:7:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 40237, + "nodeType": "ContractDefinition", + "src": "1458:13897:40", + "nodes": [ + { + "id": 39313, + "nodeType": "UsingForDirective", + "src": "1517:29:40", + "nodes": [], + "global": false, + "libraryName": { + "id": 39311, + "name": "FilAddress", + "nameLocations": [ + "1523:10:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 298, + "src": "1523:10:40" + }, + "typeName": { + "id": 39312, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1538:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "id": 39316, + "nodeType": "UsingForDirective", + "src": "1551:37:40", + "nodes": [], + "global": false, + "libraryName": { + "id": 39314, + "name": "FilAddress", + "nameLocations": [ + "1557:10:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 298, + "src": "1557:10:40" + }, + "typeName": { + "id": 39315, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1572:15:40", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + }, + { + "id": 39320, + "nodeType": "UsingForDirective", + "src": "1593:34:40", + "nodes": [], + "global": false, + "libraryName": { + "id": 39317, + "name": "SubnetIDHelper", + "nameLocations": [ + "1599:14:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44131, + "src": "1599:14:40" + }, + "typeName": { + "id": 39319, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39318, + "name": "SubnetID", + "nameLocations": [ + "1618:8:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44279, + "src": "1618:8:40" + }, + "referencedDeclaration": 44279, + "src": "1618:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeString": "struct SubnetID" + } + } + }, + { + "id": 39324, + "nodeType": "UsingForDirective", + "src": "1632:34:40", + "nodes": [], + "global": false, + "libraryName": { + "id": 39321, + "name": "CrossMsgHelper", + "nameLocations": [ + "1638:14:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 41103, + "src": "1638:14:40" + }, + "typeName": { + "id": 39323, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39322, + "name": "CrossMsg", + "nameLocations": [ + "1657:8:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44176, + "src": "1657:8:40" + }, + "referencedDeclaration": 44176, + "src": "1657:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeString": "struct CrossMsg" + } + } + }, + { + "id": 39328, + "nodeType": "UsingForDirective", + "src": "1671:46:40", + "nodes": [], + "global": false, + "libraryName": { + "id": 39325, + "name": "CheckpointHelper", + "nameLocations": [ + "1677:16:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 40776, + "src": "1677:16:40" + }, + "typeName": { + "id": 39327, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39326, + "name": "BottomUpCheckpoint", + "nameLocations": [ + "1698:18:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44156, + "src": "1698:18:40" + }, + "referencedDeclaration": 44156, + "src": "1698:18:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeString": "struct BottomUpCheckpoint" + } + } + }, + { + "id": 39332, + "nodeType": "UsingForDirective", + "src": "1722:45:40", + "nodes": [], + "global": false, + "libraryName": { + "id": 39329, + "name": "CheckpointHelper", + "nameLocations": [ + "1728:16:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 40776, + "src": "1728:16:40" + }, + "typeName": { + "id": 39331, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39330, + "name": "TopDownCheckpoint", + "nameLocations": [ + "1749:17:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44163, + "src": "1749:17:40" + }, + "referencedDeclaration": 44163, + "src": "1749:17:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_storage_ptr", + "typeString": "struct TopDownCheckpoint" + } + } + }, + { + "id": 39336, + "nodeType": "UsingForDirective", + "src": "1772:40:40", + "nodes": [], + "global": false, + "libraryName": { + "id": 39333, + "name": "StorableMsgHelper", + "nameLocations": [ + "1778:17:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 43537, + "src": "1778:17:40" + }, + "typeName": { + "id": 39335, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39334, + "name": "StorableMsg", + "nameLocations": [ + "1800:11:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44191, + "src": "1800:11:40" + }, + "referencedDeclaration": 44191, + "src": "1800:11:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StorableMsg_$44191_storage_ptr", + "typeString": "struct StorableMsg" + } + } + }, + { + "id": 39530, + "nodeType": "FunctionDefinition", + "src": "1945:2052:40", + "nodes": [], + "body": { + "id": 39529, + "nodeType": "Block", + "src": "2016:1981:40", + "nodes": [], + "statements": [ + { + "condition": { + "id": 39345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2030:14:40", + "subExpression": { + "expression": { + "id": 39343, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "2031:1:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 39344, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2033:11:40", + "memberName": "initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 42380, + "src": "2031:13:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39350, + "nodeType": "IfStatement", + "src": "2026:68:40", + "trueBody": { + "id": 39349, + "nodeType": "Block", + "src": "2046:48:40", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 39346, + "name": "NotInitialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38214, + "src": "2067:14:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 39347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2067:16:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39348, + "nodeType": "RevertStatement", + "src": "2060:23:40" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 39359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 39351, + "name": "commit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39340, + "src": "2107:6:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeString": "struct BottomUpCheckpoint calldata" + } + }, + "id": 39352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2114:6:40", + "memberName": "source", + "nodeType": "MemberAccess", + "referencedDeclaration": 44139, + "src": "2107:13:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_calldata_ptr", + "typeString": "struct SubnetID calldata" + } + }, + "id": 39353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2121:8:40", + "memberName": "getActor", + "nodeType": "MemberAccess", + "referencedDeclaration": 43808, + "src": "2107:22:40", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeString": "function (struct SubnetID memory) pure returns (address)" + } + }, + "id": 39354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2107:24:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 39355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2132:9:40", + "memberName": "normalize", + "nodeType": "MemberAccess", + "referencedDeclaration": 90, + "src": "2107:34:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_address_$attached_to$_t_address_$", + "typeString": "function (address) view returns (address)" + } + }, + "id": 39356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2107:36:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 39357, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2147:3:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 39358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2151:6:40", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2147:10:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2107:50:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39364, + "nodeType": "IfStatement", + "src": "2103:113:40", + "trueBody": { + "id": 39363, + "nodeType": "Block", + "src": "2159:57:40", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 39360, + "name": "InvalidCheckpointSource", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38176, + "src": "2180:23:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 39361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2180:25:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39362, + "nodeType": "RevertStatement", + "src": "2173:32:40" + } + ] + } + }, + { + "assignments": [ + null, + 39367 + ], + "declarations": [ + null, + { + "constant": false, + "id": 39367, + "mutability": "mutable", + "name": "subnet", + "nameLocation": "2295:6:40", + "nodeType": "VariableDeclaration", + "scope": 39529, + "src": "2280:21:40", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet" + }, + "typeName": { + "id": 39366, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39365, + "name": "Subnet", + "nameLocations": [ + "2280:6:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44303, + "src": "2280:6:40" + }, + "referencedDeclaration": 44303, + "src": "2280:6:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet" + } + }, + "visibility": "internal" + } + ], + "id": 39373, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 39370, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2326:3:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 39371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2330:6:40", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2326:10:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 39368, + "name": "LibGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42262, + "src": "2305:10:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeString": "type(library LibGateway)" + } + }, + "id": 39369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2316:9:40", + "memberName": "getSubnet", + "nodeType": "MemberAccess", + "referencedDeclaration": 42224, + "src": "2305:20:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeString": "function (address) view returns (bool,struct Subnet storage pointer)" + } + }, + "id": 39372, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2305:32:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeString": "tuple(bool,struct Subnet storage pointer)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2277:60:40" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + }, + "id": 39378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 39374, + "name": "subnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39367, + "src": "2351:6:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet storage pointer" + } + }, + "id": 39375, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2358:6:40", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 44282, + "src": "2351:13:40", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 39376, + "name": "Status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38137, + "src": "2368:6:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Status_$38137_$", + "typeString": "type(enum Status)" + } + }, + "id": 39377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2375:6:40", + "memberName": "Active", + "nodeType": "MemberAccess", + "referencedDeclaration": 38132, + "src": "2368:13:40", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Status_$38137", + "typeString": "enum Status" + } + }, + "src": "2351:30:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39383, + "nodeType": "IfStatement", + "src": "2347:85:40", + "trueBody": { + "id": 39382, + "nodeType": "Block", + "src": "2383:49:40", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 39379, + "name": "SubnetNotActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38228, + "src": "2404:15:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 39380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2404:17:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39381, + "nodeType": "RevertStatement", + "src": "2397:24:40" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 39389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 39384, + "name": "subnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39367, + "src": "2445:6:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet storage pointer" + } + }, + "id": 39385, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2452:14:40", + "memberName": "prevCheckpoint", + "nodeType": "MemberAccess", + "referencedDeclaration": 44298, + "src": "2445:21:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeString": "struct BottomUpCheckpoint storage ref" + } + }, + "id": 39386, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2467:5:40", + "memberName": "epoch", + "nodeType": "MemberAccess", + "referencedDeclaration": 44141, + "src": "2445:27:40", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "expression": { + "id": 39387, + "name": "commit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39340, + "src": "2476:6:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeString": "struct BottomUpCheckpoint calldata" + } + }, + "id": 39388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2483:5:40", + "memberName": "epoch", + "nodeType": "MemberAccess", + "referencedDeclaration": 44141, + "src": "2476:12:40", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "2445:43:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39394, + "nodeType": "IfStatement", + "src": "2441:105:40", + "trueBody": { + "id": 39393, + "nodeType": "Block", + "src": "2490:56:40", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 39390, + "name": "InvalidCheckpointEpoch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38174, + "src": "2511:22:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 39391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2511:24:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39392, + "nodeType": "RevertStatement", + "src": "2504:31:40" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 39398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 39395, + "name": "commit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39340, + "src": "2559:6:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeString": "struct BottomUpCheckpoint calldata" + } + }, + "id": 39396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2566:8:40", + "memberName": "prevHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 44153, + "src": "2559:15:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 39397, + "name": "EMPTY_HASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37666, + "src": "2578:10:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "2559:29:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39412, + "nodeType": "IfStatement", + "src": "2555:182:40", + "trueBody": { + "id": 39411, + "nodeType": "Block", + "src": "2590:147:40", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 39405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 39399, + "name": "commit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39340, + "src": "2608:6:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeString": "struct BottomUpCheckpoint calldata" + } + }, + "id": 39400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2615:8:40", + "memberName": "prevHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 44153, + "src": "2608:15:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 39401, + "name": "subnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39367, + "src": "2627:6:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet storage pointer" + } + }, + "id": 39402, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2634:14:40", + "memberName": "prevCheckpoint", + "nodeType": "MemberAccess", + "referencedDeclaration": 44298, + "src": "2627:21:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeString": "struct BottomUpCheckpoint storage ref" + } + }, + "id": 39403, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2649:6:40", + "memberName": "toHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 40594, + "src": "2627:28:40", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_BottomUpCheckpoint_$44156_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_BottomUpCheckpoint_$44156_memory_ptr_$", + "typeString": "function (struct BottomUpCheckpoint memory) pure returns (bytes32)" + } + }, + "id": 39404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2627:30:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "2608:49:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39410, + "nodeType": "IfStatement", + "src": "2604:123:40", + "trueBody": { + "id": 39409, + "nodeType": "Block", + "src": "2659:68:40", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 39406, + "name": "InconsistentPrevCheckpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38170, + "src": "2684:26:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 39407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2684:28:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39408, + "nodeType": "RevertStatement", + "src": "2677:35:40" + } + ] + } + } + ] + } + }, + { + "assignments": [ + 39414, + 39416, + 39419 + ], + "declarations": [ + { + "constant": false, + "id": 39414, + "mutability": "mutable", + "name": "checkpointExists", + "nameLocation": "2820:16:40", + "nodeType": "VariableDeclaration", + "scope": 39529, + "src": "2815:21:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 39413, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2815:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 39416, + "mutability": "mutable", + "name": "nextCheckEpoch", + "nameLocation": "2845:14:40", + "nodeType": "VariableDeclaration", + "scope": 39529, + "src": "2838:21:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 39415, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2838:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 39419, + "mutability": "mutable", + "name": "checkpoint", + "nameLocation": "2888:10:40", + "nodeType": "VariableDeclaration", + "scope": 39529, + "src": "2861:37:40", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeString": "struct BottomUpCheckpoint" + }, + "typeName": { + "id": 39418, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39417, + "name": "BottomUpCheckpoint", + "nameLocations": [ + "2861:18:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44156, + "src": "2861:18:40" + }, + "referencedDeclaration": 44156, + "src": "2861:18:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeString": "struct BottomUpCheckpoint" + } + }, + "visibility": "internal" + } + ], + "id": 39423, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 39420, + "name": "LibGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42262, + "src": "2902:10:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeString": "type(library LibGateway)" + } + }, + "id": 39421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2926:28:40", + "memberName": "getCurrentBottomUpCheckpoint", + "nodeType": "MemberAccess", + "referencedDeclaration": 42026, + "src": "2902:52:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$_t_uint64_$_t_struct$_BottomUpCheckpoint_$44156_storage_ptr_$", + "typeString": "function () view returns (bool,uint64,struct BottomUpCheckpoint storage pointer)" + } + }, + "id": 39422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2902:54:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint64_$_t_struct$_BottomUpCheckpoint_$44156_storage_ptr_$", + "typeString": "tuple(bool,uint64,struct BottomUpCheckpoint storage pointer)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2814:142:40" + }, + { + "condition": { + "id": 39425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3032:17:40", + "subExpression": { + "id": 39424, + "name": "checkpointExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39414, + "src": "3033:16:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39440, + "nodeType": "IfStatement", + "src": "3028:128:40", + "trueBody": { + "id": 39439, + "nodeType": "Block", + "src": "3051:105:40", + "statements": [ + { + "expression": { + "id": 39431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 39426, + "name": "checkpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39419, + "src": "3065:10:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeString": "struct BottomUpCheckpoint storage pointer" + } + }, + "id": 39428, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3076:6:40", + "memberName": "source", + "nodeType": "MemberAccess", + "referencedDeclaration": 44139, + "src": "3065:17:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeString": "struct SubnetID storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 39429, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "3085:1:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 39430, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3087:11:40", + "memberName": "networkName", + "nodeType": "MemberAccess", + "referencedDeclaration": 42307, + "src": "3085:13:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeString": "struct SubnetID storage ref" + } + }, + "src": "3065:33:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeString": "struct SubnetID storage ref" + } + }, + "id": 39432, + "nodeType": "ExpressionStatement", + "src": "3065:33:40" + }, + { + "expression": { + "id": 39437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 39433, + "name": "checkpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39419, + "src": "3112:10:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeString": "struct BottomUpCheckpoint storage pointer" + } + }, + "id": 39435, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3123:5:40", + "memberName": "epoch", + "nodeType": "MemberAccess", + "referencedDeclaration": 44141, + "src": "3112:16:40", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 39436, + "name": "nextCheckEpoch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39416, + "src": "3131:14:40", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "3112:33:40", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 39438, + "nodeType": "ExpressionStatement", + "src": "3112:33:40" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 39444, + "name": "commit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39340, + "src": "3191:6:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeString": "struct BottomUpCheckpoint calldata" + } + }, + { + "expression": { + "id": 39445, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "3199:1:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 39446, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3201:8:40", + "memberName": "children", + "nodeType": "MemberAccess", + "referencedDeclaration": 42368, + "src": "3199:10:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_bytes32_$_t_array$_t_uint256_$2_storage_$_$", + "typeString": "mapping(uint64 => mapping(bytes32 => uint256[2] storage ref))" + } + }, + { + "expression": { + "id": 39447, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "3211:1:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 39448, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3213:6:40", + "memberName": "checks", + "nodeType": "MemberAccess", + "referencedDeclaration": 42377, + "src": "3211:8:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_bool_$_$_$", + "typeString": "mapping(uint64 => mapping(bytes32 => mapping(bytes32 => bool)))" + } + }, + { + "id": 39449, + "name": "nextCheckEpoch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39416, + "src": "3221:14:40", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeString": "struct BottomUpCheckpoint calldata" + }, + { + "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_bytes32_$_t_array$_t_uint256_$2_storage_$_$", + "typeString": "mapping(uint64 => mapping(bytes32 => uint256[2] storage ref))" + }, + { + "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_bool_$_$_$", + "typeString": "mapping(uint64 => mapping(bytes32 => mapping(bytes32 => bool)))" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "id": 39441, + "name": "checkpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39419, + "src": "3166:10:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeString": "struct BottomUpCheckpoint storage pointer" + } + }, + "id": 39443, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3177:13:40", + "memberName": "setChildCheck", + "nodeType": "MemberAccess", + "referencedDeclaration": 40775, + "src": "3166:24:40", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_BottomUpCheckpoint_$44156_storage_ptr_$_t_struct$_BottomUpCheckpoint_$44156_memory_ptr_$_t_mapping$_t_uint64_$_t_mapping$_t_bytes32_$_t_array$_t_uint256_$2_storage_$_$_$_t_mapping$_t_uint64_$_t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_bool_$_$_$_$_t_uint64_$returns$__$attached_to$_t_struct$_BottomUpCheckpoint_$44156_storage_ptr_$", + "typeString": "function (struct BottomUpCheckpoint storage pointer,struct BottomUpCheckpoint memory,mapping(uint64 => mapping(bytes32 => uint256[2] storage ref)),mapping(uint64 => mapping(bytes32 => mapping(bytes32 => bool))),uint64)" + } + }, + "id": 39450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3166:70:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39451, + "nodeType": "ExpressionStatement", + "src": "3166:70:40" + }, + { + "assignments": [ + 39453 + ], + "declarations": [ + { + "constant": false, + "id": 39453, + "mutability": "mutable", + "name": "totalValue", + "nameLocation": "3255:10:40", + "nodeType": "VariableDeclaration", + "scope": 39529, + "src": "3247:18:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 39452, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3247:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 39455, + "initialValue": { + "hexValue": "30", + "id": 39454, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3268:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3247:22:40" + }, + { + "assignments": [ + 39457 + ], + "declarations": [ + { + "constant": false, + "id": 39457, + "mutability": "mutable", + "name": "crossMsgLength", + "nameLocation": "3287:14:40", + "nodeType": "VariableDeclaration", + "scope": 39529, + "src": "3279:22:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 39456, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3279:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 39461, + "initialValue": { + "expression": { + "expression": { + "id": 39458, + "name": "commit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39340, + "src": "3304:6:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeString": "struct BottomUpCheckpoint calldata" + } + }, + "id": 39459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3311:9:40", + "memberName": "crossMsgs", + "nodeType": "MemberAccess", + "referencedDeclaration": 44147, + "src": "3304:16:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct CrossMsg calldata[] calldata" + } + }, + "id": 39460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3321:6:40", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3304:23:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3279:48:40" + }, + { + "body": { + "id": 39482, + "nodeType": "Block", + "src": "3379:131:40", + "statements": [ + { + "expression": { + "id": 39476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 39469, + "name": "totalValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39453, + "src": "3393:10:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "expression": { + "expression": { + "baseExpression": { + "expression": { + "id": 39470, + "name": "commit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39340, + "src": "3407:6:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeString": "struct BottomUpCheckpoint calldata" + } + }, + "id": 39471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3414:9:40", + "memberName": "crossMsgs", + "nodeType": "MemberAccess", + "referencedDeclaration": 44147, + "src": "3407:16:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct CrossMsg calldata[] calldata" + } + }, + "id": 39473, + "indexExpression": { + "id": 39472, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39463, + "src": "3424:1:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3407:19:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_calldata_ptr", + "typeString": "struct CrossMsg calldata" + } + }, + "id": 39474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3427:7:40", + "memberName": "message", + "nodeType": "MemberAccess", + "referencedDeclaration": 44173, + "src": "3407:27:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StorableMsg_$44191_calldata_ptr", + "typeString": "struct StorableMsg calldata" + } + }, + "id": 39475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3435:5:40", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 44184, + "src": "3407:33:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3393:47:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 39477, + "nodeType": "ExpressionStatement", + "src": "3393:47:40" + }, + { + "id": 39481, + "nodeType": "UncheckedBlock", + "src": "3454:46:40", + "statements": [ + { + "expression": { + "id": 39479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "3482:3:40", + "subExpression": { + "id": 39478, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39463, + "src": "3484:1:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 39480, + "nodeType": "ExpressionStatement", + "src": "3482:3:40" + } + ] + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 39468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 39466, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39463, + "src": "3357:1:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 39467, + "name": "crossMsgLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39457, + "src": "3361:14:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3357:18:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39483, + "initializationExpression": { + "assignments": [ + 39463 + ], + "declarations": [ + { + "constant": false, + "id": 39463, + "mutability": "mutable", + "name": "i", + "nameLocation": "3350:1:40", + "nodeType": "VariableDeclaration", + "scope": 39483, + "src": "3342:9:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 39462, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3342:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 39465, + "initialValue": { + "hexValue": "30", + "id": 39464, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3354:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3342:13:40" + }, + "nodeType": "ForStatement", + "src": "3337:173:40" + }, + { + "expression": { + "id": 39490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 39484, + "name": "totalValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39453, + "src": "3520:10:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 39489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 39485, + "name": "commit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39340, + "src": "3534:6:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeString": "struct BottomUpCheckpoint calldata" + } + }, + "id": 39486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3541:3:40", + "memberName": "fee", + "nodeType": "MemberAccess", + "referencedDeclaration": 44143, + "src": "3534:10:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "expression": { + "id": 39487, + "name": "checkpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39419, + "src": "3547:10:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeString": "struct BottomUpCheckpoint storage pointer" + } + }, + "id": 39488, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3558:3:40", + "memberName": "fee", + "nodeType": "MemberAccess", + "referencedDeclaration": 44143, + "src": "3547:14:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3534:27:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3520:41:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 39491, + "nodeType": "ExpressionStatement", + "src": "3520:41:40" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 39495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 39492, + "name": "subnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39367, + "src": "3696:6:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet storage pointer" + } + }, + "id": 39493, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3703:10:40", + "memberName": "circSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 44292, + "src": "3696:17:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 39494, + "name": "totalValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39453, + "src": "3716:10:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3696:30:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39500, + "nodeType": "IfStatement", + "src": "3692:95:40", + "trueBody": { + "id": 39499, + "nodeType": "Block", + "src": "3728:59:40", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 39496, + "name": "NotEnoughSubnetCircSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38210, + "src": "3749:25:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 39497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3749:27:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39498, + "nodeType": "RevertStatement", + "src": "3742:34:40" + } + ] + } + }, + { + "expression": { + "id": 39505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 39501, + "name": "subnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39367, + "src": "3797:6:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet storage pointer" + } + }, + "id": 39503, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3804:10:40", + "memberName": "circSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 44292, + "src": "3797:17:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 39504, + "name": "totalValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39453, + "src": "3818:10:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3797:31:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 39506, + "nodeType": "ExpressionStatement", + "src": "3797:31:40" + }, + { + "expression": { + "id": 39511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 39507, + "name": "subnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39367, + "src": "3839:6:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet storage pointer" + } + }, + "id": 39509, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3846:14:40", + "memberName": "prevCheckpoint", + "nodeType": "MemberAccess", + "referencedDeclaration": 44298, + "src": "3839:21:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeString": "struct BottomUpCheckpoint storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 39510, + "name": "commit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39340, + "src": "3863:6:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeString": "struct BottomUpCheckpoint calldata" + } + }, + "src": "3839:30:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeString": "struct BottomUpCheckpoint storage ref" + } + }, + "id": 39512, + "nodeType": "ExpressionStatement", + "src": "3839:30:40" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 39514, + "name": "commit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39340, + "src": "3895:6:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeString": "struct BottomUpCheckpoint calldata" + } + }, + "id": 39515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3902:6:40", + "memberName": "source", + "nodeType": "MemberAccess", + "referencedDeclaration": 44139, + "src": "3895:13:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_calldata_ptr", + "typeString": "struct SubnetID calldata" + } + }, + { + "expression": { + "id": 39516, + "name": "commit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39340, + "src": "3910:6:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeString": "struct BottomUpCheckpoint calldata" + } + }, + "id": 39517, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3917:9:40", + "memberName": "crossMsgs", + "nodeType": "MemberAccess", + "referencedDeclaration": 44147, + "src": "3910:16:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct CrossMsg calldata[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_SubnetID_$44279_calldata_ptr", + "typeString": "struct SubnetID calldata" + }, + { + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct CrossMsg calldata[] calldata" + } + ], + "id": 39513, + "name": "_applyMessages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40236, + "src": "3880:14:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_SubnetID_$44279_memory_ptr_$_t_array$_t_struct$_CrossMsg_$44176_memory_ptr_$dyn_memory_ptr_$returns$__$", + "typeString": "function (struct SubnetID memory,struct CrossMsg memory[] memory)" + } + }, + "id": 39518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3880:47:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39519, + "nodeType": "ExpressionStatement", + "src": "3880:47:40" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 39523, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3967:3:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 39524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3971:6:40", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3967:10:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 39525, + "name": "commit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39340, + "src": "3979:6:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeString": "struct BottomUpCheckpoint calldata" + } + }, + "id": 39526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3986:3:40", + "memberName": "fee", + "nodeType": "MemberAccess", + "referencedDeclaration": 44143, + "src": "3979:10:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 39520, + "name": "LibGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42262, + "src": "3938:10:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeString": "type(library LibGateway)" + } + }, + "id": 39522, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3949:17:40", + "memberName": "distributeRewards", + "nodeType": "MemberAccess", + "referencedDeclaration": 42181, + "src": "3938:28:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 39527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3938:52:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39528, + "nodeType": "ExpressionStatement", + "src": "3938:52:40" + } + ] + }, + "documentation": { + "id": 39337, + "nodeType": "StructuredDocumentation", + "src": "1818:122:40", + "text": "@notice submit a checkpoint in the gateway. Called from a subnet once the checkpoint is voted for and reaches majority" + }, + "functionSelector": "d4e149a8", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "commitChildCheck", + "nameLocation": "1954:16:40", + "parameters": { + "id": 39341, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39340, + "mutability": "mutable", + "name": "commit", + "nameLocation": "1999:6:40", + "nodeType": "VariableDeclaration", + "scope": 39530, + "src": "1971:34:40", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeString": "struct BottomUpCheckpoint" + }, + "typeName": { + "id": 39339, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39338, + "name": "BottomUpCheckpoint", + "nameLocations": [ + "1971:18:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44156, + "src": "1971:18:40" + }, + "referencedDeclaration": 44156, + "src": "1971:18:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeString": "struct BottomUpCheckpoint" + } + }, + "visibility": "internal" + } + ], + "src": "1970:36:40" + }, + "returnParameters": { + "id": 39342, + "nodeType": "ParameterList", + "parameters": [], + "src": "2016:0:40" + }, + "scope": 40237, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 39662, + "nodeType": "FunctionDefinition", + "src": "4141:1750:40", + "nodes": [], + "body": { + "id": 39661, + "nodeType": "Block", + "src": "4235:1656:40", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 39542, + "name": "checkpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39534, + "src": "4334:10:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_calldata_ptr", + "typeString": "struct TopDownCheckpoint calldata" + } + }, + "id": 39543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4345:5:40", + "memberName": "epoch", + "nodeType": "MemberAccess", + "referencedDeclaration": 44158, + "src": "4334:16:40", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "id": 39539, + "name": "LibVoting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43438, + "src": "4304:9:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibVoting_$43438_$", + "typeString": "type(library LibVoting)" + } + }, + "id": 39541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4314:19:40", + "memberName": "applyValidEpochOnly", + "nodeType": "MemberAccess", + "referencedDeclaration": 42889, + "src": "4304:29:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint64_$returns$__$", + "typeString": "function (uint64) view" + } + }, + "id": 39544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4304:47:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39545, + "nodeType": "ExpressionStatement", + "src": "4304:47:40" + }, + { + "assignments": [ + 39547 + ], + "declarations": [ + { + "constant": false, + "id": 39547, + "mutability": "mutable", + "name": "validatorWeight", + "nameLocation": "4370:15:40", + "nodeType": "VariableDeclaration", + "scope": 39661, + "src": "4362:23:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 39546, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4362:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 39556, + "initialValue": { + "baseExpression": { + "baseExpression": { + "expression": { + "id": 39548, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "4388:1:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 39549, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4390:12:40", + "memberName": "validatorSet", + "nodeType": "MemberAccess", + "referencedDeclaration": 42356, + "src": "4388:14:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 39552, + "indexExpression": { + "expression": { + "id": 39550, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "4403:1:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 39551, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4405:14:40", + "memberName": "validatorNonce", + "nodeType": "MemberAccess", + "referencedDeclaration": 42359, + "src": "4403:16:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4388:32:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 39555, + "indexExpression": { + "expression": { + "id": 39553, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4421:3:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 39554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4425:6:40", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4421:10:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4388:44:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4362:70:40" + }, + { + "condition": { + "id": 39559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4447:14:40", + "subExpression": { + "expression": { + "id": 39557, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "4448:1:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 39558, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4450:11:40", + "memberName": "initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 42380, + "src": "4448:13:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39564, + "nodeType": "IfStatement", + "src": "4443:68:40", + "trueBody": { + "id": 39563, + "nodeType": "Block", + "src": "4463:48:40", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 39560, + "name": "NotInitialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38214, + "src": "4484:14:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 39561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4484:16:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39562, + "nodeType": "RevertStatement", + "src": "4477:23:40" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 39567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 39565, + "name": "validatorWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39547, + "src": "4524:15:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 39566, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4543:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4524:20:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39572, + "nodeType": "IfStatement", + "src": "4520:72:40", + "trueBody": { + "id": 39571, + "nodeType": "Block", + "src": "4546:46:40", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 39568, + "name": "NotValidator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38222, + "src": "4567:12:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 39569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4567:14:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39570, + "nodeType": "RevertStatement", + "src": "4560:21:40" + } + ] + } + }, + { + "condition": { + "id": 39578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4605:48:40", + "subExpression": { + "arguments": [ + { + "expression": { + "id": 39575, + "name": "checkpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39534, + "src": "4630:10:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_calldata_ptr", + "typeString": "struct TopDownCheckpoint calldata" + } + }, + "id": 39576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4641:11:40", + "memberName": "topDownMsgs", + "nodeType": "MemberAccess", + "referencedDeclaration": 44162, + "src": "4630:22:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct CrossMsg calldata[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct CrossMsg calldata[] calldata" + } + ], + "expression": { + "id": 39573, + "name": "CrossMsgHelper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 41103, + "src": "4606:14:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_CrossMsgHelper_$41103_$", + "typeString": "type(library CrossMsgHelper)" + } + }, + "id": 39574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4621:8:40", + "memberName": "isSorted", + "nodeType": "MemberAccess", + "referencedDeclaration": 41102, + "src": "4606:23:40", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_struct$_CrossMsg_$44176_memory_ptr_$dyn_memory_ptr_$returns$_t_bool_$", + "typeString": "function (struct CrossMsg memory[] memory) pure returns (bool)" + } + }, + "id": 39577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4606:47:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39583, + "nodeType": "IfStatement", + "src": "4601:105:40", + "trueBody": { + "id": 39582, + "nodeType": "Block", + "src": "4655:51:40", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 39579, + "name": "MessagesNotSorted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38188, + "src": "4676:17:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 39580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4676:19:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39581, + "nodeType": "RevertStatement", + "src": "4669:26:40" + } + ] + } + }, + { + "assignments": [ + 39586 + ], + "declarations": [ + { + "constant": false, + "id": 39586, + "mutability": "mutable", + "name": "voteSubmission", + "nameLocation": "4751:14:40", + "nodeType": "VariableDeclaration", + "scope": 39661, + "src": "4716:49:40", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeString": "struct EpochVoteTopDownSubmission" + }, + "typeName": { + "id": 39585, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39584, + "name": "EpochVoteTopDownSubmission", + "nameLocations": [ + "4716:26:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44224, + "src": "4716:26:40" + }, + "referencedDeclaration": 44224, + "src": "4716:26:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeString": "struct EpochVoteTopDownSubmission" + } + }, + "visibility": "internal" + } + ], + "id": 39592, + "initialValue": { + "baseExpression": { + "expression": { + "id": 39587, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "4768:1:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 39588, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4770:20:40", + "memberName": "epochVoteSubmissions", + "nodeType": "MemberAccess", + "referencedDeclaration": 42386, + "src": "4768:22:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_EpochVoteTopDownSubmission_$44224_storage_$", + "typeString": "mapping(uint64 => struct EpochVoteTopDownSubmission storage ref)" + } + }, + "id": 39591, + "indexExpression": { + "expression": { + "id": 39589, + "name": "checkpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39534, + "src": "4791:10:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_calldata_ptr", + "typeString": "struct TopDownCheckpoint calldata" + } + }, + "id": 39590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4802:5:40", + "memberName": "epoch", + "nodeType": "MemberAccess", + "referencedDeclaration": 44158, + "src": "4791:16:40", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4768:40:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage", + "typeString": "struct EpochVoteTopDownSubmission storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4716:92:40" + }, + { + "assignments": [ + 39594 + ], + "declarations": [ + { + "constant": false, + "id": 39594, + "mutability": "mutable", + "name": "shouldExecuteVote", + "nameLocation": "4851:17:40", + "nodeType": "VariableDeclaration", + "scope": 39661, + "src": "4846:22:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 39593, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4846:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 39602, + "initialValue": { + "arguments": [ + { + "id": 39596, + "name": "voteSubmission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39586, + "src": "4890:14:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeString": "struct EpochVoteTopDownSubmission storage pointer" + } + }, + { + "id": 39597, + "name": "checkpoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39534, + "src": "4906:10:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_calldata_ptr", + "typeString": "struct TopDownCheckpoint calldata" + } + }, + { + "expression": { + "id": 39598, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4918:3:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 39599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4922:6:40", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4918:10:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 39600, + "name": "validatorWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39547, + "src": "4930:15:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeString": "struct EpochVoteTopDownSubmission storage pointer" + }, + { + "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_calldata_ptr", + "typeString": "struct TopDownCheckpoint calldata" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 39595, + "name": "_submitTopDownVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39887, + "src": "4871:18:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr_$_t_struct$_TopDownCheckpoint_$44163_calldata_ptr_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (struct EpochVoteTopDownSubmission storage pointer,struct TopDownCheckpoint calldata,address,uint256) returns (bool)" + } + }, + "id": 39601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4871:75:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4846:100:40" + }, + { + "assignments": [ + 39607 + ], + "declarations": [ + { + "constant": false, + "id": 39607, + "mutability": "mutable", + "name": "topDownMsgs", + "nameLocation": "5032:11:40", + "nodeType": "VariableDeclaration", + "scope": 39661, + "src": "5014:29:40", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CrossMsg[]" + }, + "typeName": { + "baseType": { + "id": 39605, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39604, + "name": "CrossMsg", + "nameLocations": [ + "5014:8:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44176, + "src": "5014:8:40" + }, + "referencedDeclaration": 44176, + "src": "5014:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeString": "struct CrossMsg" + } + }, + "id": 39606, + "nodeType": "ArrayTypeName", + "src": "5014:10:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_storage_$dyn_storage_ptr", + "typeString": "struct CrossMsg[]" + } + }, + "visibility": "internal" + } + ], + "id": 39608, + "nodeType": "VariableDeclarationStatement", + "src": "5014:29:40" + }, + { + "condition": { + "id": 39609, + "name": "shouldExecuteVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39594, + "src": "5058:17:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39617, + "nodeType": "IfStatement", + "src": "5054:110:40", + "trueBody": { + "id": 39616, + "nodeType": "Block", + "src": "5077:87:40", + "statements": [ + { + "expression": { + "id": 39614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 39610, + "name": "topDownMsgs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39607, + "src": "5091:11:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CrossMsg memory[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 39612, + "name": "voteSubmission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39586, + "src": "5138:14:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeString": "struct EpochVoteTopDownSubmission storage pointer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeString": "struct EpochVoteTopDownSubmission storage pointer" + } + ], + "id": 39611, + "name": "_markMostVotedSubmissionExecuted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39833, + "src": "5105:32:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr_$returns$_t_array$_t_struct$_CrossMsg_$44176_storage_$dyn_storage_ptr_$", + "typeString": "function (struct EpochVoteTopDownSubmission storage pointer) returns (struct CrossMsg storage ref[] storage pointer)" + } + }, + "id": 39613, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5105:48:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_storage_$dyn_storage_ptr", + "typeString": "struct CrossMsg storage ref[] storage pointer" + } + }, + "src": "5091:62:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CrossMsg memory[] memory" + } + }, + "id": 39615, + "nodeType": "ExpressionStatement", + "src": "5091:62:40" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 39621, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 39618, + "name": "topDownMsgs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39607, + "src": "5325:11:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CrossMsg memory[] memory" + } + }, + "id": 39619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5337:6:40", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5325:18:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 39620, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5347:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5325:23:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39648, + "nodeType": "IfStatement", + "src": "5321:397:40", + "trueBody": { + "id": 39647, + "nodeType": "Block", + "src": "5350:368:40", + "statements": [ + { + "assignments": [ + 39623, + 39625 + ], + "declarations": [ + { + "constant": false, + "id": 39623, + "mutability": "mutable", + "name": "nextExecutableEpoch", + "nameLocation": "5372:19:40", + "nodeType": "VariableDeclaration", + "scope": 39647, + "src": "5365:26:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 39622, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "5365:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 39625, + "mutability": "mutable", + "name": "isExecutableEpoch", + "nameLocation": "5398:17:40", + "nodeType": "VariableDeclaration", + "scope": 39647, + "src": "5393:22:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 39624, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5393:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 39629, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 39626, + "name": "LibVoting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43438, + "src": "5419:9:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibVoting_$43438_$", + "typeString": "type(library LibVoting)" + } + }, + "id": 39627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5429:22:40", + "memberName": "getNextExecutableEpoch", + "nodeType": "MemberAccess", + "referencedDeclaration": 43219, + "src": "5419:32:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint64_$_t_bool_$", + "typeString": "function () view returns (uint64,bool)" + } + }, + "id": 39628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5419:34:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint64_$_t_bool_$", + "typeString": "tuple(uint64,bool)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5364:89:40" + }, + { + "condition": { + "id": 39630, + "name": "isExecutableEpoch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39625, + "src": "5472:17:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39646, + "nodeType": "IfStatement", + "src": "5468:240:40", + "trueBody": { + "id": 39645, + "nodeType": "Block", + "src": "5491:217:40", + "statements": [ + { + "assignments": [ + 39633 + ], + "declarations": [ + { + "constant": false, + "id": 39633, + "mutability": "mutable", + "name": "nextVoteSubmission", + "nameLocation": "5544:18:40", + "nodeType": "VariableDeclaration", + "scope": 39645, + "src": "5509:53:40", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeString": "struct EpochVoteTopDownSubmission" + }, + "typeName": { + "id": 39632, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39631, + "name": "EpochVoteTopDownSubmission", + "nameLocations": [ + "5509:26:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44224, + "src": "5509:26:40" + }, + "referencedDeclaration": 44224, + "src": "5509:26:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeString": "struct EpochVoteTopDownSubmission" + } + }, + "visibility": "internal" + } + ], + "id": 39638, + "initialValue": { + "baseExpression": { + "expression": { + "id": 39634, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "5565:1:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 39635, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5567:20:40", + "memberName": "epochVoteSubmissions", + "nodeType": "MemberAccess", + "referencedDeclaration": 42386, + "src": "5565:22:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_EpochVoteTopDownSubmission_$44224_storage_$", + "typeString": "mapping(uint64 => struct EpochVoteTopDownSubmission storage ref)" + } + }, + "id": 39637, + "indexExpression": { + "id": 39636, + "name": "nextExecutableEpoch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39623, + "src": "5588:19:40", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5565:43:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage", + "typeString": "struct EpochVoteTopDownSubmission storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5509:99:40" + }, + { + "expression": { + "id": 39643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 39639, + "name": "topDownMsgs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39607, + "src": "5627:11:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CrossMsg memory[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 39641, + "name": "nextVoteSubmission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39633, + "src": "5674:18:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeString": "struct EpochVoteTopDownSubmission storage pointer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeString": "struct EpochVoteTopDownSubmission storage pointer" + } + ], + "id": 39640, + "name": "_markMostVotedSubmissionExecuted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39833, + "src": "5641:32:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr_$returns$_t_array$_t_struct$_CrossMsg_$44176_storage_$dyn_storage_ptr_$", + "typeString": "function (struct EpochVoteTopDownSubmission storage pointer) returns (struct CrossMsg storage ref[] storage pointer)" + } + }, + "id": 39642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5641:52:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_storage_$dyn_storage_ptr", + "typeString": "struct CrossMsg storage ref[] storage pointer" + } + }, + "src": "5627:66:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CrossMsg memory[] memory" + } + }, + "id": 39644, + "nodeType": "ExpressionStatement", + "src": "5627:66:40" + } + ] + } + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 39651, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5850:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 39655, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5867:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 39654, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "5853:13:40", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 39652, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5857:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 39653, + "nodeType": "ArrayTypeName", + "src": "5857:9:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "id": 39656, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5853:16:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + ], + "id": 39650, + "name": "SubnetID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 44279, + "src": "5841:8:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_SubnetID_$44279_storage_ptr_$", + "typeString": "type(struct SubnetID storage pointer)" + } + }, + "id": 39657, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5841:29:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + } + }, + { + "id": 39658, + "name": "topDownMsgs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39607, + "src": "5872:11:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CrossMsg memory[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + }, + { + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CrossMsg memory[] memory" + } + ], + "id": 39649, + "name": "_applyMessages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40236, + "src": "5826:14:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_SubnetID_$44279_memory_ptr_$_t_array$_t_struct$_CrossMsg_$44176_memory_ptr_$dyn_memory_ptr_$returns$__$", + "typeString": "function (struct SubnetID memory,struct CrossMsg memory[] memory)" + } + }, + "id": 39659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5826:58:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39660, + "nodeType": "ExpressionStatement", + "src": "5826:58:40" + } + ] + }, + "documentation": { + "id": 39531, + "nodeType": "StructuredDocumentation", + "src": "4003:133:40", + "text": "@notice allows a validator to submit a batch of messages in a top-down commitment\n @param checkpoint - top-down checkpoint" + }, + "functionSelector": "986acf38", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 39537, + "kind": "modifierInvocation", + "modifierName": { + "id": 39536, + "name": "signableOnly", + "nameLocations": [ + "4222:12:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 42489, + "src": "4222:12:40" + }, + "nodeType": "ModifierInvocation", + "src": "4222:12:40" + } + ], + "name": "submitTopDownCheckpoint", + "nameLocation": "4150:23:40", + "parameters": { + "id": 39535, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39534, + "mutability": "mutable", + "name": "checkpoint", + "nameLocation": "4201:10:40", + "nodeType": "VariableDeclaration", + "scope": 39662, + "src": "4174:37:40", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_calldata_ptr", + "typeString": "struct TopDownCheckpoint" + }, + "typeName": { + "id": 39533, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39532, + "name": "TopDownCheckpoint", + "nameLocations": [ + "4174:17:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44163, + "src": "4174:17:40" + }, + "referencedDeclaration": 44163, + "src": "4174:17:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_storage_ptr", + "typeString": "struct TopDownCheckpoint" + } + }, + "visibility": "internal" + } + ], + "src": "4173:39:40" + }, + "returnParameters": { + "id": 39538, + "nodeType": "ParameterList", + "parameters": [], + "src": "4235:0:40" + }, + "scope": 40237, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 39723, + "nodeType": "FunctionDefinition", + "src": "6038:1264:40", + "nodes": [], + "body": { + "id": 39722, + "nodeType": "Block", + "src": "6129:1173:40", + "nodes": [], + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 39678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 39673, + "name": "crossMsg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39666, + "src": "6577:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_calldata_ptr", + "typeString": "struct CrossMsg calldata" + } + }, + "id": 39674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6586:7:40", + "memberName": "message", + "nodeType": "MemberAccess", + "referencedDeclaration": 44173, + "src": "6577:16:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StorableMsg_$44191_calldata_ptr", + "typeString": "struct StorableMsg calldata" + } + }, + "id": 39675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6594:5:40", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 44184, + "src": "6577:22:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 39676, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6603:3:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 39677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6607:5:40", + "memberName": "value", + "nodeType": "MemberAccess", + "src": "6603:9:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6577:35:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39683, + "nodeType": "IfStatement", + "src": "6573:89:40", + "trueBody": { + "id": 39682, + "nodeType": "Block", + "src": "6614:48:40", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 39679, + "name": "NotEnoughFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38206, + "src": "6635:14:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 39680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6635:16:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39681, + "nodeType": "RevertStatement", + "src": "6628:23:40" + } + ] + } + }, + { + "condition": { + "id": 39692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "6842:53:40", + "subExpression": { + "arguments": [ + { + "expression": { + "id": 39689, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "6881:1:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 39690, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6883:11:40", + "memberName": "networkName", + "nodeType": "MemberAccess", + "referencedDeclaration": 42307, + "src": "6881:13:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeString": "struct SubnetID storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeString": "struct SubnetID storage ref" + } + ], + "expression": { + "expression": { + "expression": { + "expression": { + "id": 39684, + "name": "crossMsg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39666, + "src": "6843:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_calldata_ptr", + "typeString": "struct CrossMsg calldata" + } + }, + "id": 39685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6852:7:40", + "memberName": "message", + "nodeType": "MemberAccess", + "referencedDeclaration": 44173, + "src": "6843:16:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StorableMsg_$44191_calldata_ptr", + "typeString": "struct StorableMsg calldata" + } + }, + "id": 39686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6860:4:40", + "memberName": "from", + "nodeType": "MemberAccess", + "referencedDeclaration": 44179, + "src": "6843:21:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IPCAddress_$44310_calldata_ptr", + "typeString": "struct IPCAddress calldata" + } + }, + "id": 39687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6865:8:40", + "memberName": "subnetId", + "nodeType": "MemberAccess", + "referencedDeclaration": 44306, + "src": "6843:30:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_calldata_ptr", + "typeString": "struct SubnetID calldata" + } + }, + "id": 39688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6874:6:40", + "memberName": "equals", + "nodeType": "MemberAccess", + "referencedDeclaration": 43868, + "src": "6843:37:40", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeString": "function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)" + } + }, + "id": 39691, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6843:52:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39697, + "nodeType": "IfStatement", + "src": "6838:120:40", + "trueBody": { + "id": 39696, + "nodeType": "Block", + "src": "6897:61:40", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 39693, + "name": "InvalidCrossMsgFromSubnetId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38180, + "src": "6918:27:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 39694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6918:29:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39695, + "nodeType": "RevertStatement", + "src": "6911:36:40" + } + ] + } + }, + { + "assignments": [ + 39699, + 39701 + ], + "declarations": [ + { + "constant": false, + "id": 39699, + "mutability": "mutable", + "name": "shouldBurn", + "nameLocation": "7022:10:40", + "nodeType": "VariableDeclaration", + "scope": 39722, + "src": "7017:15:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 39698, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7017:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 39701, + "mutability": "mutable", + "name": "shouldDistributeRewards", + "nameLocation": "7039:23:40", + "nodeType": "VariableDeclaration", + "scope": 39722, + "src": "7034:28:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 39700, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7034:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 39705, + "initialValue": { + "arguments": [ + { + "id": 39703, + "name": "crossMsg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39666, + "src": "7086:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_calldata_ptr", + "typeString": "struct CrossMsg calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_CrossMsg_$44176_calldata_ptr", + "typeString": "struct CrossMsg calldata" + } + ], + "id": 39702, + "name": "_commitCrossMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40009, + "src": "7066:19:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_CrossMsg_$44176_memory_ptr_$returns$_t_bool_$_t_bool_$", + "typeString": "function (struct CrossMsg memory) returns (bool,bool)" + } + }, + "id": 39704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7066:29:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$", + "typeString": "tuple(bool,bool)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7016:79:40" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "expression": { + "id": 39707, + "name": "crossMsg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39666, + "src": "7140:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_calldata_ptr", + "typeString": "struct CrossMsg calldata" + } + }, + "id": 39708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7149:7:40", + "memberName": "message", + "nodeType": "MemberAccess", + "referencedDeclaration": 44173, + "src": "7140:16:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StorableMsg_$44191_calldata_ptr", + "typeString": "struct StorableMsg calldata" + } + }, + "id": 39709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7157:5:40", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 44184, + "src": "7140:22:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "expression": { + "id": 39715, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "7210:1:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 39716, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7212:11:40", + "memberName": "networkName", + "nodeType": "MemberAccess", + "referencedDeclaration": 42307, + "src": "7210:13:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeString": "struct SubnetID storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeString": "struct SubnetID storage ref" + } + ], + "expression": { + "expression": { + "expression": { + "expression": { + "id": 39710, + "name": "crossMsg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39666, + "src": "7176:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_calldata_ptr", + "typeString": "struct CrossMsg calldata" + } + }, + "id": 39711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7185:7:40", + "memberName": "message", + "nodeType": "MemberAccess", + "referencedDeclaration": 44173, + "src": "7176:16:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StorableMsg_$44191_calldata_ptr", + "typeString": "struct StorableMsg calldata" + } + }, + "id": 39712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7193:2:40", + "memberName": "to", + "nodeType": "MemberAccess", + "referencedDeclaration": 44182, + "src": "7176:19:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IPCAddress_$44310_calldata_ptr", + "typeString": "struct IPCAddress calldata" + } + }, + "id": 39713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7196:8:40", + "memberName": "subnetId", + "nodeType": "MemberAccess", + "referencedDeclaration": 44306, + "src": "7176:28:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_calldata_ptr", + "typeString": "struct SubnetID calldata" + } + }, + "id": 39714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7205:4:40", + "memberName": "down", + "nodeType": "MemberAccess", + "referencedDeclaration": 44110, + "src": "7176:33:40", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_struct$_SubnetID_$44279_memory_ptr_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeString": "function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)" + } + }, + "id": 39717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7176:48:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + } + }, + { + "id": 39718, + "name": "shouldBurn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39699, + "src": "7238:10:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 39719, + "name": "shouldDistributeRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39701, + "src": "7262:23:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 39706, + "name": "_crossMsgSideEffects", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40047, + "src": "7106:20:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_struct$_SubnetID_$44279_memory_ptr_$_t_bool_$_t_bool_$returns$__$", + "typeString": "function (uint256,struct SubnetID memory,bool,bool)" + } + }, + "id": 39720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7106:189:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39721, + "nodeType": "ExpressionStatement", + "src": "7106:189:40" + } + ] + }, + "documentation": { + "id": 39663, + "nodeType": "StructuredDocumentation", + "src": "5897:136:40", + "text": "@notice sends an arbitrary cross message from the current subnet to the destination subnet\n @param crossMsg - message to send" + }, + "functionSelector": "2f757dd1", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 39669, + "kind": "modifierInvocation", + "modifierName": { + "id": 39668, + "name": "signableOnly", + "nameLocations": [ + "6109:12:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 42489, + "src": "6109:12:40" + }, + "nodeType": "ModifierInvocation", + "src": "6109:12:40" + }, + { + "id": 39671, + "kind": "modifierInvocation", + "modifierName": { + "id": 39670, + "name": "hasFee", + "nameLocations": [ + "6122:6:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 42503, + "src": "6122:6:40" + }, + "nodeType": "ModifierInvocation", + "src": "6122:6:40" + } + ], + "name": "sendCrossMessage", + "nameLocation": "6047:16:40", + "parameters": { + "id": 39667, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39666, + "mutability": "mutable", + "name": "crossMsg", + "nameLocation": "6082:8:40", + "nodeType": "VariableDeclaration", + "scope": 39723, + "src": "6064:26:40", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_calldata_ptr", + "typeString": "struct CrossMsg" + }, + "typeName": { + "id": 39665, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39664, + "name": "CrossMsg", + "nameLocations": [ + "6064:8:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44176, + "src": "6064:8:40" + }, + "referencedDeclaration": 44176, + "src": "6064:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeString": "struct CrossMsg" + } + }, + "visibility": "internal" + } + ], + "src": "6063:28:40" + }, + "returnParameters": { + "id": 39672, + "nodeType": "ParameterList", + "parameters": [], + "src": "6129:0:40" + }, + "scope": 40237, + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "id": 39801, + "nodeType": "FunctionDefinition", + "src": "7442:874:40", + "nodes": [], + "body": { + "id": 39800, + "nodeType": "Block", + "src": "7501:815:40", + "nodes": [], + "statements": [ + { + "assignments": [ + 39733 + ], + "declarations": [ + { + "constant": false, + "id": 39733, + "mutability": "mutable", + "name": "crossMsg", + "nameLocation": "7528:8:40", + "nodeType": "VariableDeclaration", + "scope": 39800, + "src": "7511:25:40", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeString": "struct CrossMsg" + }, + "typeName": { + "id": 39732, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39731, + "name": "CrossMsg", + "nameLocations": [ + "7511:8:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44176, + "src": "7511:8:40" + }, + "referencedDeclaration": 44176, + "src": "7511:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeString": "struct CrossMsg" + } + }, + "visibility": "internal" + } + ], + "id": 39738, + "initialValue": { + "baseExpression": { + "expression": { + "id": 39734, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "7539:1:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 39735, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7541:7:40", + "memberName": "postbox", + "nodeType": "MemberAccess", + "referencedDeclaration": 42328, + "src": "7539:9:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$44176_storage_$", + "typeString": "mapping(bytes32 => struct CrossMsg storage ref)" + } + }, + "id": 39737, + "indexExpression": { + "id": 39736, + "name": "msgCid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39726, + "src": "7549:6:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7539:17:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_storage", + "typeString": "struct CrossMsg storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7511:45:40" + }, + { + "assignments": [ + 39740, + 39742 + ], + "declarations": [ + { + "constant": false, + "id": 39740, + "mutability": "mutable", + "name": "shouldBurn", + "nameLocation": "7573:10:40", + "nodeType": "VariableDeclaration", + "scope": 39800, + "src": "7568:15:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 39739, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7568:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 39742, + "mutability": "mutable", + "name": "shouldDistributeRewards", + "nameLocation": "7590:23:40", + "nodeType": "VariableDeclaration", + "scope": 39800, + "src": "7585:28:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 39741, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7585:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 39746, + "initialValue": { + "arguments": [ + { + "id": 39744, + "name": "crossMsg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39733, + "src": "7637:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeString": "struct CrossMsg storage pointer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeString": "struct CrossMsg storage pointer" + } + ], + "id": 39743, + "name": "_commitCrossMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40009, + "src": "7617:19:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_CrossMsg_$44176_memory_ptr_$returns$_t_bool_$_t_bool_$", + "typeString": "function (struct CrossMsg memory) returns (bool,bool)" + } + }, + "id": 39745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7617:29:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$", + "typeString": "tuple(bool,bool)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7567:79:40" + }, + { + "assignments": [ + 39748 + ], + "declarations": [ + { + "constant": false, + "id": 39748, + "mutability": "mutable", + "name": "v", + "nameLocation": "7920:1:40", + "nodeType": "VariableDeclaration", + "scope": 39800, + "src": "7912:9:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 39747, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7912:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 39752, + "initialValue": { + "expression": { + "expression": { + "id": 39749, + "name": "crossMsg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39733, + "src": "7924:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeString": "struct CrossMsg storage pointer" + } + }, + "id": 39750, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7933:7:40", + "memberName": "message", + "nodeType": "MemberAccess", + "referencedDeclaration": 44173, + "src": "7924:16:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StorableMsg_$44191_storage", + "typeString": "struct StorableMsg storage ref" + } + }, + "id": 39751, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7941:5:40", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 44184, + "src": "7924:22:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7912:34:40" + }, + { + "assignments": [ + 39755 + ], + "declarations": [ + { + "constant": false, + "id": 39755, + "mutability": "mutable", + "name": "toSubnetId", + "nameLocation": "7972:10:40", + "nodeType": "VariableDeclaration", + "scope": 39800, + "src": "7956:26:40", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID" + }, + "typeName": { + "id": 39754, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39753, + "name": "SubnetID", + "nameLocations": [ + "7956:8:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44279, + "src": "7956:8:40" + }, + "referencedDeclaration": 44279, + "src": "7956:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeString": "struct SubnetID" + } + }, + "visibility": "internal" + } + ], + "id": 39764, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 39761, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "8019:1:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 39762, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8021:11:40", + "memberName": "networkName", + "nodeType": "MemberAccess", + "referencedDeclaration": 42307, + "src": "8019:13:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeString": "struct SubnetID storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeString": "struct SubnetID storage ref" + } + ], + "expression": { + "expression": { + "expression": { + "expression": { + "id": 39756, + "name": "crossMsg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39733, + "src": "7985:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeString": "struct CrossMsg storage pointer" + } + }, + "id": 39757, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7994:7:40", + "memberName": "message", + "nodeType": "MemberAccess", + "referencedDeclaration": 44173, + "src": "7985:16:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StorableMsg_$44191_storage", + "typeString": "struct StorableMsg storage ref" + } + }, + "id": 39758, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8002:2:40", + "memberName": "to", + "nodeType": "MemberAccess", + "referencedDeclaration": 44182, + "src": "7985:19:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IPCAddress_$44310_storage", + "typeString": "struct IPCAddress storage ref" + } + }, + "id": 39759, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8005:8:40", + "memberName": "subnetId", + "nodeType": "MemberAccess", + "referencedDeclaration": 44306, + "src": "7985:28:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeString": "struct SubnetID storage ref" + } + }, + "id": 39760, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8014:4:40", + "memberName": "down", + "nodeType": "MemberAccess", + "referencedDeclaration": 44110, + "src": "7985:33:40", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_struct$_SubnetID_$44279_memory_ptr_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeString": "function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)" + } + }, + "id": 39763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7985:48:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7956:77:40" + }, + { + "expression": { + "id": 39769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "8043:24:40", + "subExpression": { + "baseExpression": { + "expression": { + "id": 39765, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "8050:1:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 39766, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8052:7:40", + "memberName": "postbox", + "nodeType": "MemberAccess", + "referencedDeclaration": 42328, + "src": "8050:9:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$44176_storage_$", + "typeString": "mapping(bytes32 => struct CrossMsg storage ref)" + } + }, + "id": 39768, + "indexExpression": { + "id": 39767, + "name": "msgCid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39726, + "src": "8060:6:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8050:17:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_storage", + "typeString": "struct CrossMsg storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39770, + "nodeType": "ExpressionStatement", + "src": "8043:24:40" + }, + { + "expression": { + "arguments": [ + { + "id": 39772, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39748, + "src": "8099:1:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 39773, + "name": "toSubnetId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39755, + "src": "8102:10:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + } + }, + { + "id": 39774, + "name": "shouldBurn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39740, + "src": "8114:10:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 39775, + "name": "shouldDistributeRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39742, + "src": "8126:23:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 39771, + "name": "_crossMsgSideEffects", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40047, + "src": "8078:20:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_struct$_SubnetID_$44279_memory_ptr_$_t_bool_$_t_bool_$returns$__$", + "typeString": "function (uint256,struct SubnetID memory,bool,bool)" + } + }, + "id": 39776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8078:72:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39777, + "nodeType": "ExpressionStatement", + "src": "8078:72:40" + }, + { + "assignments": [ + 39779 + ], + "declarations": [ + { + "constant": false, + "id": 39779, + "mutability": "mutable", + "name": "feeRemainder", + "nameLocation": "8169:12:40", + "nodeType": "VariableDeclaration", + "scope": 39800, + "src": "8161:20:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 39778, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8161:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 39785, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 39784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 39780, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8184:3:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 39781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8188:5:40", + "memberName": "value", + "nodeType": "MemberAccess", + "src": "8184:9:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "expression": { + "id": 39782, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "8196:1:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 39783, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8198:11:40", + "memberName": "crossMsgFee", + "nodeType": "MemberAccess", + "referencedDeclaration": 42346, + "src": "8196:13:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8184:25:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8161:48:40" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 39788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 39786, + "name": "feeRemainder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39779, + "src": "8224:12:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 39787, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8239:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8224:16:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39799, + "nodeType": "IfStatement", + "src": "8220:90:40", + "trueBody": { + "id": 39798, + "nodeType": "Block", + "src": "8242:68:40", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 39795, + "name": "feeRemainder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39779, + "src": "8286:12:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "expression": { + "id": 39791, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8264:3:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 39792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8268:6:40", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "8264:10:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 39790, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8256:8:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 39789, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8256:8:40", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 39793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8256:19:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 39794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8276:9:40", + "memberName": "sendValue", + "nodeType": "MemberAccess", + "referencedDeclaration": 290, + "src": "8256:29:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$", + "typeString": "function (address payable,uint256)" + } + }, + "id": 39796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8256:43:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39797, + "nodeType": "ExpressionStatement", + "src": "8256:43:40" + } + ] + } + } + ] + }, + "documentation": { + "id": 39724, + "nodeType": "StructuredDocumentation", + "src": "7308:129:40", + "text": "@notice propagates the populated cross net message for the given cid\n @param msgCid - the cid of the cross-net message" + }, + "functionSelector": "25bf0db6", + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 39729, + "kind": "modifierInvocation", + "modifierName": { + "id": 39728, + "name": "hasFee", + "nameLocations": [ + "7494:6:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 42503, + "src": "7494:6:40" + }, + "nodeType": "ModifierInvocation", + "src": "7494:6:40" + } + ], + "name": "propagate", + "nameLocation": "7451:9:40", + "parameters": { + "id": 39727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39726, + "mutability": "mutable", + "name": "msgCid", + "nameLocation": "7469:6:40", + "nodeType": "VariableDeclaration", + "scope": 39801, + "src": "7461:14:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 39725, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7461:7:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "7460:16:40" + }, + "returnParameters": { + "id": 39730, + "nodeType": "ParameterList", + "parameters": [], + "src": "7501:0:40" + }, + "scope": 40237, + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "id": 39833, + "nodeType": "FunctionDefinition", + "src": "8531:418:40", + "nodes": [], + "body": { + "id": 39832, + "nodeType": "Block", + "src": "8676:273:40", + "nodes": [], + "statements": [ + { + "assignments": [ + 39814 + ], + "declarations": [ + { + "constant": false, + "id": 39814, + "mutability": "mutable", + "name": "mostVotedSubmission", + "nameLocation": "8712:19:40", + "nodeType": "VariableDeclaration", + "scope": 39832, + "src": "8686:45:40", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_storage_ptr", + "typeString": "struct TopDownCheckpoint" + }, + "typeName": { + "id": 39813, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39812, + "name": "TopDownCheckpoint", + "nameLocations": [ + "8686:17:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44163, + "src": "8686:17:40" + }, + "referencedDeclaration": 44163, + "src": "8686:17:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_storage_ptr", + "typeString": "struct TopDownCheckpoint" + } + }, + "visibility": "internal" + } + ], + "id": 39821, + "initialValue": { + "baseExpression": { + "expression": { + "id": 39815, + "name": "voteSubmission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39805, + "src": "8734:14:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeString": "struct EpochVoteTopDownSubmission storage pointer" + } + }, + "id": 39816, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8749:11:40", + "memberName": "submissions", + "nodeType": "MemberAccess", + "referencedDeclaration": 44223, + "src": "8734:26:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_TopDownCheckpoint_$44163_storage_$", + "typeString": "mapping(bytes32 => struct TopDownCheckpoint storage ref)" + } + }, + "id": 39820, + "indexExpression": { + "expression": { + "expression": { + "id": 39817, + "name": "voteSubmission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39805, + "src": "8774:14:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeString": "struct EpochVoteTopDownSubmission storage pointer" + } + }, + "id": 39818, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8789:4:40", + "memberName": "vote", + "nodeType": "MemberAccess", + "referencedDeclaration": 44218, + "src": "8774:19:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteSubmission_$44215_storage", + "typeString": "struct EpochVoteSubmission storage ref" + } + }, + "id": 39819, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8794:19:40", + "memberName": "mostVotedSubmission", + "nodeType": "MemberAccess", + "referencedDeclaration": 44202, + "src": "8774:39:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8734:89:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_storage", + "typeString": "struct TopDownCheckpoint storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8686:137:40" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 39825, + "name": "mostVotedSubmission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39814, + "src": "8867:19:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_storage_ptr", + "typeString": "struct TopDownCheckpoint storage pointer" + } + }, + "id": 39826, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8887:5:40", + "memberName": "epoch", + "nodeType": "MemberAccess", + "referencedDeclaration": 44158, + "src": "8867:25:40", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "id": 39822, + "name": "LibVoting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43438, + "src": "8834:9:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibVoting_$43438_$", + "typeString": "type(library LibVoting)" + } + }, + "id": 39824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8844:22:40", + "memberName": "markSubmissionExecuted", + "nodeType": "MemberAccess", + "referencedDeclaration": 43169, + "src": "8834:32:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 39827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8834:59:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39828, + "nodeType": "ExpressionStatement", + "src": "8834:59:40" + }, + { + "expression": { + "expression": { + "id": 39829, + "name": "mostVotedSubmission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39814, + "src": "8911:19:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_storage_ptr", + "typeString": "struct TopDownCheckpoint storage pointer" + } + }, + "id": 39830, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8931:11:40", + "memberName": "topDownMsgs", + "nodeType": "MemberAccess", + "referencedDeclaration": 44162, + "src": "8911:31:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_storage_$dyn_storage", + "typeString": "struct CrossMsg storage ref[] storage ref" + } + }, + "functionReturnParameters": 39811, + "id": 39831, + "nodeType": "Return", + "src": "8904:38:40" + } + ] + }, + "documentation": { + "id": 39802, + "nodeType": "StructuredDocumentation", + "src": "8322:204:40", + "text": "@notice marks a checkpoint as executed based on the last vote that reached majority\n @notice voteSubmission - the vote submission data\n @return the cross messages that should be executed" + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_markMostVotedSubmissionExecuted", + "nameLocation": "8540:32:40", + "parameters": { + "id": 39806, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39805, + "mutability": "mutable", + "name": "voteSubmission", + "nameLocation": "8617:14:40", + "nodeType": "VariableDeclaration", + "scope": 39833, + "src": "8582:49:40", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeString": "struct EpochVoteTopDownSubmission" + }, + "typeName": { + "id": 39804, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39803, + "name": "EpochVoteTopDownSubmission", + "nameLocations": [ + "8582:26:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44224, + "src": "8582:26:40" + }, + "referencedDeclaration": 44224, + "src": "8582:26:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeString": "struct EpochVoteTopDownSubmission" + } + }, + "visibility": "internal" + } + ], + "src": "8572:65:40" + }, + "returnParameters": { + "id": 39811, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39810, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 39833, + "src": "8656:18:40", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_storage_$dyn_storage_ptr", + "typeString": "struct CrossMsg[]" + }, + "typeName": { + "baseType": { + "id": 39808, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39807, + "name": "CrossMsg", + "nameLocations": [ + "8656:8:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44176, + "src": "8656:8:40" + }, + "referencedDeclaration": 44176, + "src": "8656:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeString": "struct CrossMsg" + } + }, + "id": 39809, + "nodeType": "ArrayTypeName", + "src": "8656:10:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_storage_$dyn_storage_ptr", + "typeString": "struct CrossMsg[]" + } + }, + "visibility": "internal" + } + ], + "src": "8655:20:40" + }, + "scope": 40237, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "id": 39887, + "nodeType": "FunctionDefinition", + "src": "9287:748:40", + "nodes": [], + "body": { + "id": 39886, + "nodeType": "Block", + "src": "9536:499:40", + "nodes": [], + "statements": [ + { + "assignments": [ + 39850 + ], + "declarations": [ + { + "constant": false, + "id": 39850, + "mutability": "mutable", + "name": "submissionHash", + "nameLocation": "9554:14:40", + "nodeType": "VariableDeclaration", + "scope": 39886, + "src": "9546:22:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 39849, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "9546:7:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 39854, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 39851, + "name": "submission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39840, + "src": "9571:10:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_calldata_ptr", + "typeString": "struct TopDownCheckpoint calldata" + } + }, + "id": 39852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9582:6:40", + "memberName": "toHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 40610, + "src": "9571:17:40", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_TopDownCheckpoint_$44163_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_TopDownCheckpoint_$44163_memory_ptr_$", + "typeString": "function (struct TopDownCheckpoint memory) pure returns (bytes32)" + } + }, + "id": 39853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9571:19:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9546:44:40" + }, + { + "expression": { + "id": 39868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 39855, + "name": "shouldExecuteVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39847, + "src": "9601:17:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 39858, + "name": "voteSubmission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39837, + "src": "9655:14:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeString": "struct EpochVoteTopDownSubmission storage pointer" + } + }, + "id": 39859, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9670:4:40", + "memberName": "vote", + "nodeType": "MemberAccess", + "referencedDeclaration": 44218, + "src": "9655:19:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteSubmission_$44215_storage", + "typeString": "struct EpochVoteSubmission storage ref" + } + }, + { + "id": 39860, + "name": "submissionHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39850, + "src": "9688:14:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 39861, + "name": "submitterAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39842, + "src": "9716:16:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 39862, + "name": "submitterWeight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39844, + "src": "9746:15:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 39863, + "name": "submission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39840, + "src": "9775:10:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_calldata_ptr", + "typeString": "struct TopDownCheckpoint calldata" + } + }, + "id": 39864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9786:5:40", + "memberName": "epoch", + "nodeType": "MemberAccess", + "referencedDeclaration": 44158, + "src": "9775:16:40", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "expression": { + "id": 39865, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "9805:1:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 39866, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9807:11:40", + "memberName": "totalWeight", + "nodeType": "MemberAccess", + "referencedDeclaration": 42349, + "src": "9805:13:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_EpochVoteSubmission_$44215_storage", + "typeString": "struct EpochVoteSubmission storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 39856, + "name": "LibVoting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43438, + "src": "9621:9:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibVoting_$43438_$", + "typeString": "type(library LibVoting)" + } + }, + "id": 39857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9631:10:40", + "memberName": "submitVote", + "nodeType": "MemberAccess", + "referencedDeclaration": 43360, + "src": "9621:20:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_EpochVoteSubmission_$44215_storage_ptr_$_t_bytes32_$_t_address_$_t_uint256_$_t_uint64_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (struct EpochVoteSubmission storage pointer,bytes32,address,uint256,uint64,uint256) returns (bool)" + } + }, + "id": 39867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9621:207:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "9601:227:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39869, + "nodeType": "ExpressionStatement", + "src": "9601:227:40" + }, + { + "condition": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "baseExpression": { + "expression": { + "id": 39870, + "name": "voteSubmission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39837, + "src": "9895:14:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeString": "struct EpochVoteTopDownSubmission storage pointer" + } + }, + "id": 39871, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9910:11:40", + "memberName": "submissions", + "nodeType": "MemberAccess", + "referencedDeclaration": 44223, + "src": "9895:26:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_TopDownCheckpoint_$44163_storage_$", + "typeString": "mapping(bytes32 => struct TopDownCheckpoint storage ref)" + } + }, + "id": 39873, + "indexExpression": { + "id": 39872, + "name": "submissionHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39850, + "src": "9922:14:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9895:42:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_storage", + "typeString": "struct TopDownCheckpoint storage ref" + } + }, + "id": 39874, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9938:7:40", + "memberName": "isEmpty", + "nodeType": "MemberAccess", + "referencedDeclaration": 40625, + "src": "9895:50:40", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_TopDownCheckpoint_$44163_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_TopDownCheckpoint_$44163_memory_ptr_$", + "typeString": "function (struct TopDownCheckpoint memory) pure returns (bool)" + } + }, + "id": 39875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9895:52:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39885, + "nodeType": "IfStatement", + "src": "9891:138:40", + "trueBody": { + "id": 39884, + "nodeType": "Block", + "src": "9949:80:40", + "statements": [ + { + "expression": { + "id": 39882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 39876, + "name": "voteSubmission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39837, + "src": "9963:14:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeString": "struct EpochVoteTopDownSubmission storage pointer" + } + }, + "id": 39879, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9978:11:40", + "memberName": "submissions", + "nodeType": "MemberAccess", + "referencedDeclaration": 44223, + "src": "9963:26:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_TopDownCheckpoint_$44163_storage_$", + "typeString": "mapping(bytes32 => struct TopDownCheckpoint storage ref)" + } + }, + "id": 39880, + "indexExpression": { + "id": 39878, + "name": "submissionHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39850, + "src": "9990:14:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9963:42:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_storage", + "typeString": "struct TopDownCheckpoint storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 39881, + "name": "submission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39840, + "src": "10008:10:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_calldata_ptr", + "typeString": "struct TopDownCheckpoint calldata" + } + }, + "src": "9963:55:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_storage", + "typeString": "struct TopDownCheckpoint storage ref" + } + }, + "id": 39883, + "nodeType": "ExpressionStatement", + "src": "9963:55:40" + } + ] + } + } + ] + }, + "documentation": { + "id": 39834, + "nodeType": "StructuredDocumentation", + "src": "8955:327:40", + "text": "@notice submits a vote for a checkpoint\n @param voteSubmission - the vote submission data\n @param submitterAddress - the validator that submits the vote\n @param submitterWeight - the weight of the validator\n @return shouldExecuteVote - flag if the checkpoint should be executed based on the vote" + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_submitTopDownVote", + "nameLocation": "9296:18:40", + "parameters": { + "id": 39845, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39837, + "mutability": "mutable", + "name": "voteSubmission", + "nameLocation": "9359:14:40", + "nodeType": "VariableDeclaration", + "scope": 39887, + "src": "9324:49:40", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeString": "struct EpochVoteTopDownSubmission" + }, + "typeName": { + "id": 39836, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39835, + "name": "EpochVoteTopDownSubmission", + "nameLocations": [ + "9324:26:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44224, + "src": "9324:26:40" + }, + "referencedDeclaration": 44224, + "src": "9324:26:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeString": "struct EpochVoteTopDownSubmission" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 39840, + "mutability": "mutable", + "name": "submission", + "nameLocation": "9410:10:40", + "nodeType": "VariableDeclaration", + "scope": 39887, + "src": "9383:37:40", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_calldata_ptr", + "typeString": "struct TopDownCheckpoint" + }, + "typeName": { + "id": 39839, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39838, + "name": "TopDownCheckpoint", + "nameLocations": [ + "9383:17:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44163, + "src": "9383:17:40" + }, + "referencedDeclaration": 44163, + "src": "9383:17:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_storage_ptr", + "typeString": "struct TopDownCheckpoint" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 39842, + "mutability": "mutable", + "name": "submitterAddress", + "nameLocation": "9438:16:40", + "nodeType": "VariableDeclaration", + "scope": 39887, + "src": "9430:24:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 39841, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9430:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 39844, + "mutability": "mutable", + "name": "submitterWeight", + "nameLocation": "9472:15:40", + "nodeType": "VariableDeclaration", + "scope": 39887, + "src": "9464:23:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 39843, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9464:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9314:179:40" + }, + "returnParameters": { + "id": 39848, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39847, + "mutability": "mutable", + "name": "shouldExecuteVote", + "nameLocation": "9517:17:40", + "nodeType": "VariableDeclaration", + "scope": 39887, + "src": "9512:22:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 39846, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9512:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "9511:24:40" + }, + "scope": 40237, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "id": 40009, + "nodeType": "FunctionDefinition", + "src": "10384:1306:40", + "nodes": [], + "body": { + "id": 40008, + "nodeType": "Block", + "src": "10522:1168:40", + "nodes": [], + "statements": [ + { + "assignments": [ + 39900 + ], + "declarations": [ + { + "constant": false, + "id": 39900, + "mutability": "mutable", + "name": "to", + "nameLocation": "10548:2:40", + "nodeType": "VariableDeclaration", + "scope": 40008, + "src": "10532:18:40", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID" + }, + "typeName": { + "id": 39899, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39898, + "name": "SubnetID", + "nameLocations": [ + "10532:8:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44279, + "src": "10532:8:40" + }, + "referencedDeclaration": 44279, + "src": "10532:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeString": "struct SubnetID" + } + }, + "visibility": "internal" + } + ], + "id": 39905, + "initialValue": { + "expression": { + "expression": { + "expression": { + "id": 39901, + "name": "crossMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39891, + "src": "10553:12:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeString": "struct CrossMsg memory" + } + }, + "id": 39902, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10566:7:40", + "memberName": "message", + "nodeType": "MemberAccess", + "referencedDeclaration": 44173, + "src": "10553:20:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StorableMsg_$44191_memory_ptr", + "typeString": "struct StorableMsg memory" + } + }, + "id": 39903, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10574:2:40", + "memberName": "to", + "nodeType": "MemberAccess", + "referencedDeclaration": 44182, + "src": "10553:23:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IPCAddress_$44310_memory_ptr", + "typeString": "struct IPCAddress memory" + } + }, + "id": 39904, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10577:8:40", + "memberName": "subnetId", + "nodeType": "MemberAccess", + "referencedDeclaration": 44306, + "src": "10553:32:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10532:53:40" + }, + { + "condition": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 39906, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39900, + "src": "10599:2:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + } + }, + "id": 39907, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10602:7:40", + "memberName": "isEmpty", + "nodeType": "MemberAccess", + "referencedDeclaration": 44130, + "src": "10599:10:40", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeString": "function (struct SubnetID memory) pure returns (bool)" + } + }, + "id": 39908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10599:12:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39913, + "nodeType": "IfStatement", + "src": "10595:84:40", + "trueBody": { + "id": 39912, + "nodeType": "Block", + "src": "10613:66:40", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 39909, + "name": "InvalidCrossMsgDestinationSubnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38178, + "src": "10634:32:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 39910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10634:34:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39911, + "nodeType": "RevertStatement", + "src": "10627:41:40" + } + ] + } + }, + { + "condition": { + "arguments": [ + { + "expression": { + "id": 39916, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "10809:1:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 39917, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10811:11:40", + "memberName": "networkName", + "nodeType": "MemberAccess", + "referencedDeclaration": 42307, + "src": "10809:13:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeString": "struct SubnetID storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeString": "struct SubnetID storage ref" + } + ], + "expression": { + "id": 39914, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39900, + "src": "10799:2:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + } + }, + "id": 39915, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10802:6:40", + "memberName": "equals", + "nodeType": "MemberAccess", + "referencedDeclaration": 43868, + "src": "10799:9:40", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeString": "function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)" + } + }, + "id": 39918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10799:24:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39923, + "nodeType": "IfStatement", + "src": "10795:90:40", + "trueBody": { + "id": 39922, + "nodeType": "Block", + "src": "10825:60:40", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 39919, + "name": "CannotSendCrossMsgToItself", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38156, + "src": "10846:26:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 39920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10846:28:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39921, + "nodeType": "RevertStatement", + "src": "10839:35:40" + } + ] + } + }, + { + "assignments": [ + 39926 + ], + "declarations": [ + { + "constant": false, + "id": 39926, + "mutability": "mutable", + "name": "from", + "nameLocation": "10911:4:40", + "nodeType": "VariableDeclaration", + "scope": 40008, + "src": "10895:20:40", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID" + }, + "typeName": { + "id": 39925, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39924, + "name": "SubnetID", + "nameLocations": [ + "10895:8:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44279, + "src": "10895:8:40" + }, + "referencedDeclaration": 44279, + "src": "10895:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeString": "struct SubnetID" + } + }, + "visibility": "internal" + } + ], + "id": 39931, + "initialValue": { + "expression": { + "expression": { + "expression": { + "id": 39927, + "name": "crossMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39891, + "src": "10918:12:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeString": "struct CrossMsg memory" + } + }, + "id": 39928, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10931:7:40", + "memberName": "message", + "nodeType": "MemberAccess", + "referencedDeclaration": 44173, + "src": "10918:20:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StorableMsg_$44191_memory_ptr", + "typeString": "struct StorableMsg memory" + } + }, + "id": 39929, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10939:4:40", + "memberName": "from", + "nodeType": "MemberAccess", + "referencedDeclaration": 44179, + "src": "10918:25:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IPCAddress_$44310_memory_ptr", + "typeString": "struct IPCAddress memory" + } + }, + "id": 39930, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10944:8:40", + "memberName": "subnetId", + "nodeType": "MemberAccess", + "referencedDeclaration": 44306, + "src": "10918:34:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10895:57:40" + }, + { + "assignments": [ + 39934 + ], + "declarations": [ + { + "constant": false, + "id": 39934, + "mutability": "mutable", + "name": "applyType", + "nameLocation": "10973:9:40", + "nodeType": "VariableDeclaration", + "scope": 40008, + "src": "10962:20:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeString": "enum IPCMsgType" + }, + "typeName": { + "id": 39933, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39932, + "name": "IPCMsgType", + "nameLocations": [ + "10962:10:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 38128, + "src": "10962:10:40" + }, + "referencedDeclaration": 38128, + "src": "10962:10:40", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeString": "enum IPCMsgType" + } + }, + "visibility": "internal" + } + ], + "id": 39941, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 39938, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "11016:1:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 39939, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11018:11:40", + "memberName": "networkName", + "nodeType": "MemberAccess", + "referencedDeclaration": 42307, + "src": "11016:13:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeString": "struct SubnetID storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeString": "struct SubnetID storage ref" + } + ], + "expression": { + "expression": { + "id": 39935, + "name": "crossMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39891, + "src": "10985:12:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeString": "struct CrossMsg memory" + } + }, + "id": 39936, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10998:7:40", + "memberName": "message", + "nodeType": "MemberAccess", + "referencedDeclaration": 44173, + "src": "10985:20:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StorableMsg_$44191_memory_ptr", + "typeString": "struct StorableMsg memory" + } + }, + "id": 39937, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11006:9:40", + "memberName": "applyType", + "nodeType": "MemberAccess", + "referencedDeclaration": 43520, + "src": "10985:30:40", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_StorableMsg_$44191_memory_ptr_$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_enum$_IPCMsgType_$38128_$attached_to$_t_struct$_StorableMsg_$44191_memory_ptr_$", + "typeString": "function (struct StorableMsg memory,struct SubnetID memory) pure returns (enum IPCMsgType)" + } + }, + "id": 39940, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10985:45:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeString": "enum IPCMsgType" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10962:68:40" + }, + { + "assignments": [ + 39943 + ], + "declarations": [ + { + "constant": false, + "id": 39943, + "mutability": "mutable", + "name": "shouldCommitBottomUp", + "nameLocation": "11103:20:40", + "nodeType": "VariableDeclaration", + "scope": 40008, + "src": "11098:25:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 39942, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11098:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 39944, + "nodeType": "VariableDeclarationStatement", + "src": "11098:25:40" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeString": "enum IPCMsgType" + }, + "id": 39948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 39945, + "name": "applyType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39934, + "src": "11138:9:40", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeString": "enum IPCMsgType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 39946, + "name": "IPCMsgType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38128, + "src": "11151:10:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_IPCMsgType_$38128_$", + "typeString": "type(enum IPCMsgType)" + } + }, + "id": 39947, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "11162:8:40", + "memberName": "BottomUp", + "nodeType": "MemberAccess", + "referencedDeclaration": 38127, + "src": "11151:19:40", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeString": "enum IPCMsgType" + } + }, + "src": "11138:32:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39962, + "nodeType": "IfStatement", + "src": "11134:130:40", + "trueBody": { + "id": 39961, + "nodeType": "Block", + "src": "11172:92:40", + "statements": [ + { + "expression": { + "id": 39959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 39949, + "name": "shouldCommitBottomUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39943, + "src": "11186:20:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 39958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "11209:44:40", + "subExpression": { + "arguments": [ + { + "expression": { + "id": 39955, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "11239:1:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 39956, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11241:11:40", + "memberName": "networkName", + "nodeType": "MemberAccess", + "referencedDeclaration": 42307, + "src": "11239:13:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeString": "struct SubnetID storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeString": "struct SubnetID storage ref" + } + ], + "expression": { + "arguments": [ + { + "id": 39952, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39926, + "src": "11226:4:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + } + ], + "expression": { + "id": 39950, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39900, + "src": "11210:2:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + } + }, + "id": 39951, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11213:12:40", + "memberName": "commonParent", + "nodeType": "MemberAccess", + "referencedDeclaration": 43991, + "src": "11210:15:40", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_struct$_SubnetID_$44279_memory_ptr_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeString": "function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)" + } + }, + "id": 39953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11210:21:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + } + }, + "id": 39954, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11232:6:40", + "memberName": "equals", + "nodeType": "MemberAccess", + "referencedDeclaration": 43868, + "src": "11210:28:40", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeString": "function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)" + } + }, + "id": 39957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11210:43:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11186:67:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39960, + "nodeType": "ExpressionStatement", + "src": "11186:67:40" + } + ] + } + }, + { + "condition": { + "id": 39963, + "name": "shouldCommitBottomUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39943, + "src": "11278:20:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39983, + "nodeType": "IfStatement", + "src": "11274:193:40", + "trueBody": { + "id": 39982, + "nodeType": "Block", + "src": "11300:167:40", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 39967, + "name": "crossMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39891, + "src": "11343:12:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeString": "struct CrossMsg memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeString": "struct CrossMsg memory" + } + ], + "expression": { + "id": 39964, + "name": "LibGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42262, + "src": "11314:10:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeString": "type(library LibGateway)" + } + }, + "id": 39966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11325:17:40", + "memberName": "commitBottomUpMsg", + "nodeType": "MemberAccess", + "referencedDeclaration": 42151, + "src": "11314:28:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_CrossMsg_$44176_memory_ptr_$returns$__$", + "typeString": "function (struct CrossMsg memory)" + } + }, + "id": 39968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11314:42:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39969, + "nodeType": "ExpressionStatement", + "src": "11314:42:40" + }, + { + "expression": { + "components": [ + { + "id": 39976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 39970, + "name": "shouldBurn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39894, + "src": "11379:10:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 39975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 39971, + "name": "crossMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39891, + "src": "11392:12:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeString": "struct CrossMsg memory" + } + }, + "id": 39972, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11405:7:40", + "memberName": "message", + "nodeType": "MemberAccess", + "referencedDeclaration": 44173, + "src": "11392:20:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StorableMsg_$44191_memory_ptr", + "typeString": "struct StorableMsg memory" + } + }, + "id": 39973, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11413:5:40", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 44184, + "src": "11392:26:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 39974, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11421:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11392:30:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11379:43:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 39979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 39977, + "name": "shouldDistributeRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39896, + "src": "11424:23:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 39978, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11450:5:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "11424:31:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 39980, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11378:78:40", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$", + "typeString": "tuple(bool,bool)" + } + }, + "functionReturnParameters": 39897, + "id": 39981, + "nodeType": "Return", + "src": "11371:85:40" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeString": "enum IPCMsgType" + }, + "id": 39987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 39984, + "name": "applyType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39934, + "src": "11481:9:40", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeString": "enum IPCMsgType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 39985, + "name": "IPCMsgType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38128, + "src": "11494:10:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_IPCMsgType_$38128_$", + "typeString": "type(enum IPCMsgType)" + } + }, + "id": 39986, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "11505:7:40", + "memberName": "TopDown", + "nodeType": "MemberAccess", + "referencedDeclaration": 38126, + "src": "11494:18:40", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeString": "enum IPCMsgType" + } + }, + "src": "11481:31:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39993, + "nodeType": "IfStatement", + "src": "11477:85:40", + "trueBody": { + "id": 39992, + "nodeType": "Block", + "src": "11514:48:40", + "statements": [ + { + "expression": { + "id": 39990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "11528:23:40", + "subExpression": { + "expression": { + "id": 39988, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "11530:1:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 39989, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "11532:19:40", + "memberName": "appliedTopDownNonce", + "nodeType": "MemberAccess", + "referencedDeclaration": 42343, + "src": "11530:21:40", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 39991, + "nodeType": "ExpressionStatement", + "src": "11528:23:40" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 39997, + "name": "crossMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39891, + "src": "11600:12:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeString": "struct CrossMsg memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeString": "struct CrossMsg memory" + } + ], + "expression": { + "id": 39994, + "name": "LibGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42262, + "src": "11572:10:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeString": "type(library LibGateway)" + } + }, + "id": 39996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11583:16:40", + "memberName": "commitTopDownMsg", + "nodeType": "MemberAccess", + "referencedDeclaration": 42100, + "src": "11572:27:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_CrossMsg_$44176_memory_ptr_$returns$__$", + "typeString": "function (struct CrossMsg memory)" + } + }, + "id": 39998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11572:41:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 39999, + "nodeType": "ExpressionStatement", + "src": "11572:41:40" + }, + { + "expression": { + "components": [ + { + "id": 40002, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 40000, + "name": "shouldBurn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39894, + "src": "11632:10:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 40001, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11645:5:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "11632:18:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 40005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 40003, + "name": "shouldDistributeRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39896, + "src": "11652:23:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 40004, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11678:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "11652:30:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 40006, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11631:52:40", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$", + "typeString": "tuple(bool,bool)" + } + }, + "functionReturnParameters": 39897, + "id": 40007, + "nodeType": "Return", + "src": "11624:59:40" + } + ] + }, + "documentation": { + "id": 39888, + "nodeType": "StructuredDocumentation", + "src": "10041:338:40", + "text": "@notice Commit the cross message to storage. It outputs a flag signaling\n if the committed messages was bottom-up and some funds need to be\n burnt or if a top-down message fee needs to be distributed.\n It also validates that destination subnet ID is not empty\n and not equal to the current network." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_commitCrossMessage", + "nameLocation": "10393:19:40", + "parameters": { + "id": 39892, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39891, + "mutability": "mutable", + "name": "crossMessage", + "nameLocation": "10438:12:40", + "nodeType": "VariableDeclaration", + "scope": 40009, + "src": "10422:28:40", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeString": "struct CrossMsg" + }, + "typeName": { + "id": 39890, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39889, + "name": "CrossMsg", + "nameLocations": [ + "10422:8:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44176, + "src": "10422:8:40" + }, + "referencedDeclaration": 44176, + "src": "10422:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeString": "struct CrossMsg" + } + }, + "visibility": "internal" + } + ], + "src": "10412:44:40" + }, + "returnParameters": { + "id": 39897, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39894, + "mutability": "mutable", + "name": "shouldBurn", + "nameLocation": "10480:10:40", + "nodeType": "VariableDeclaration", + "scope": 40009, + "src": "10475:15:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 39893, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10475:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 39896, + "mutability": "mutable", + "name": "shouldDistributeRewards", + "nameLocation": "10497:23:40", + "nodeType": "VariableDeclaration", + "scope": 40009, + "src": "10492:28:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 39895, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10492:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "10474:47:40" + }, + "scope": 40237, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "id": 40047, + "nodeType": "FunctionDefinition", + "src": "12149:389:40", + "nodes": [], + "body": { + "id": 40046, + "nodeType": "Block", + "src": "12312:226:40", + "nodes": [], + "statements": [ + { + "condition": { + "id": 40022, + "name": "shouldBurn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40017, + "src": "12326:10:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 40032, + "nodeType": "IfStatement", + "src": "12322:80:40", + "trueBody": { + "id": 40031, + "nodeType": "Block", + "src": "12338:64:40", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 40028, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40012, + "src": "12389:1:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 40025, + "name": "BURNT_FUNDS_ACTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37660, + "src": "12360:17:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 40024, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12352:8:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 40023, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12352:8:40", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 40026, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12352:26:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 40027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12379:9:40", + "memberName": "sendValue", + "nodeType": "MemberAccess", + "referencedDeclaration": 290, + "src": "12352:36:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$", + "typeString": "function (address payable,uint256)" + } + }, + "id": 40029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12352:39:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 40030, + "nodeType": "ExpressionStatement", + "src": "12352:39:40" + } + ] + } + }, + { + "condition": { + "id": 40033, + "name": "shouldDistributeRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40019, + "src": "12416:23:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 40045, + "nodeType": "IfStatement", + "src": "12412:120:40", + "trueBody": { + "id": 40044, + "nodeType": "Block", + "src": "12441:91:40", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 40037, + "name": "toSubnetId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40015, + "src": "12484:10:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + } + }, + "id": 40038, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12495:8:40", + "memberName": "getActor", + "nodeType": "MemberAccess", + "referencedDeclaration": 43808, + "src": "12484:19:40", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeString": "function (struct SubnetID memory) pure returns (address)" + } + }, + "id": 40039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12484:21:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 40040, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "12507:1:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 40041, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12509:11:40", + "memberName": "crossMsgFee", + "nodeType": "MemberAccess", + "referencedDeclaration": 42346, + "src": "12507:13:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 40034, + "name": "LibGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42262, + "src": "12455:10:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeString": "type(library LibGateway)" + } + }, + "id": 40036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12466:17:40", + "memberName": "distributeRewards", + "nodeType": "MemberAccess", + "referencedDeclaration": 42181, + "src": "12455:28:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 40042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12455:66:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 40043, + "nodeType": "ExpressionStatement", + "src": "12455:66:40" + } + ] + } + } + ] + }, + "documentation": { + "id": 40010, + "nodeType": "StructuredDocumentation", + "src": "11696:448:40", + "text": "@notice transaction side-effects from the commitment of a cross-net message. It burns funds\n and propagates the corresponding rewards.\n @param v - the value of the committed cross-net message\n @param toSubnetId - the destination subnet of the committed cross-net message\n @param shouldBurn - flag if the message should burn funds\n @param shouldDistributeRewards - flag if the message should distribute rewards" + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_crossMsgSideEffects", + "nameLocation": "12158:20:40", + "parameters": { + "id": 40020, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 40012, + "mutability": "mutable", + "name": "v", + "nameLocation": "12196:1:40", + "nodeType": "VariableDeclaration", + "scope": 40047, + "src": "12188:9:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 40011, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12188:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 40015, + "mutability": "mutable", + "name": "toSubnetId", + "nameLocation": "12223:10:40", + "nodeType": "VariableDeclaration", + "scope": 40047, + "src": "12207:26:40", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID" + }, + "typeName": { + "id": 40014, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 40013, + "name": "SubnetID", + "nameLocations": [ + "12207:8:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44279, + "src": "12207:8:40" + }, + "referencedDeclaration": 44279, + "src": "12207:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeString": "struct SubnetID" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 40017, + "mutability": "mutable", + "name": "shouldBurn", + "nameLocation": "12248:10:40", + "nodeType": "VariableDeclaration", + "scope": 40047, + "src": "12243:15:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 40016, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12243:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 40019, + "mutability": "mutable", + "name": "shouldDistributeRewards", + "nameLocation": "12273:23:40", + "nodeType": "VariableDeclaration", + "scope": 40047, + "src": "12268:28:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 40018, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12268:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "12178:124:40" + }, + "returnParameters": { + "id": 40021, + "nodeType": "ParameterList", + "parameters": [], + "src": "12312:0:40" + }, + "scope": 40237, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "id": 40199, + "nodeType": "FunctionDefinition", + "src": "12814:1880:40", + "nodes": [], + "body": { + "id": 40198, + "nodeType": "Block", + "src": "12895:1799:40", + "nodes": [], + "statements": [ + { + "condition": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "expression": { + "expression": { + "id": 40057, + "name": "crossMsg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40054, + "src": "12909:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeString": "struct CrossMsg memory" + } + }, + "id": 40058, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12918:7:40", + "memberName": "message", + "nodeType": "MemberAccess", + "referencedDeclaration": 44173, + "src": "12909:16:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StorableMsg_$44191_memory_ptr", + "typeString": "struct StorableMsg memory" + } + }, + "id": 40059, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12926:2:40", + "memberName": "to", + "nodeType": "MemberAccess", + "referencedDeclaration": 44182, + "src": "12909:19:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IPCAddress_$44310_memory_ptr", + "typeString": "struct IPCAddress memory" + } + }, + "id": 40060, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12929:8:40", + "memberName": "subnetId", + "nodeType": "MemberAccess", + "referencedDeclaration": 44306, + "src": "12909:28:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + } + }, + "id": 40061, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12938:7:40", + "memberName": "isEmpty", + "nodeType": "MemberAccess", + "referencedDeclaration": 44130, + "src": "12909:36:40", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeString": "function (struct SubnetID memory) pure returns (bool)" + } + }, + "id": 40062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12909:38:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 40067, + "nodeType": "IfStatement", + "src": "12905:110:40", + "trueBody": { + "id": 40066, + "nodeType": "Block", + "src": "12949:66:40", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 40063, + "name": "InvalidCrossMsgDestinationSubnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38178, + "src": "12970:32:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 40064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12970:34:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 40065, + "nodeType": "RevertStatement", + "src": "12963:41:40" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 40072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 40068, + "name": "crossMsg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40054, + "src": "13028:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeString": "struct CrossMsg memory" + } + }, + "id": 40069, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13037:7:40", + "memberName": "message", + "nodeType": "MemberAccess", + "referencedDeclaration": 44173, + "src": "13028:16:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StorableMsg_$44191_memory_ptr", + "typeString": "struct StorableMsg memory" + } + }, + "id": 40070, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13045:6:40", + "memberName": "method", + "nodeType": "MemberAccess", + "referencedDeclaration": 44188, + "src": "13028:23:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 40071, + "name": "METHOD_SEND", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37681, + "src": "13055:11:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "13028:38:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 40088, + "nodeType": "IfStatement", + "src": "13024:178:40", + "trueBody": { + "id": 40087, + "nodeType": "Block", + "src": "13068:134:40", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 40081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 40073, + "name": "crossMsg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40054, + "src": "13086:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeString": "struct CrossMsg memory" + } + }, + "id": 40074, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13095:7:40", + "memberName": "message", + "nodeType": "MemberAccess", + "referencedDeclaration": 44173, + "src": "13086:16:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StorableMsg_$44191_memory_ptr", + "typeString": "struct StorableMsg memory" + } + }, + "id": 40075, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13103:5:40", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 44184, + "src": "13086:22:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 40078, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "13119:4:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GatewayRouterFacet_$40237", + "typeString": "contract GatewayRouterFacet" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_GatewayRouterFacet_$40237", + "typeString": "contract GatewayRouterFacet" + } + ], + "id": 40077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13111:7:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 40076, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13111:7:40", + "typeDescriptions": {} + } + }, + "id": 40079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13111:13:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 40080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13125:7:40", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "13111:21:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13086:46:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 40086, + "nodeType": "IfStatement", + "src": "13082:110:40", + "trueBody": { + "id": 40085, + "nodeType": "Block", + "src": "13134:58:40", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 40082, + "name": "NotEnoughBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38200, + "src": "13159:16:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 40083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13159:18:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 40084, + "nodeType": "RevertStatement", + "src": "13152:25:40" + } + ] + } + } + ] + } + }, + { + "assignments": [ + 40091 + ], + "declarations": [ + { + "constant": false, + "id": 40091, + "mutability": "mutable", + "name": "applyType", + "nameLocation": "13223:9:40", + "nodeType": "VariableDeclaration", + "scope": 40198, + "src": "13212:20:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeString": "enum IPCMsgType" + }, + "typeName": { + "id": 40090, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 40089, + "name": "IPCMsgType", + "nameLocations": [ + "13212:10:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 38128, + "src": "13212:10:40" + }, + "referencedDeclaration": 38128, + "src": "13212:10:40", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeString": "enum IPCMsgType" + } + }, + "visibility": "internal" + } + ], + "id": 40098, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 40095, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "13262:1:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 40096, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13264:11:40", + "memberName": "networkName", + "nodeType": "MemberAccess", + "referencedDeclaration": 42307, + "src": "13262:13:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeString": "struct SubnetID storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeString": "struct SubnetID storage ref" + } + ], + "expression": { + "expression": { + "id": 40092, + "name": "crossMsg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40054, + "src": "13235:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeString": "struct CrossMsg memory" + } + }, + "id": 40093, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13244:7:40", + "memberName": "message", + "nodeType": "MemberAccess", + "referencedDeclaration": 44173, + "src": "13235:16:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StorableMsg_$44191_memory_ptr", + "typeString": "struct StorableMsg memory" + } + }, + "id": 40094, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13252:9:40", + "memberName": "applyType", + "nodeType": "MemberAccess", + "referencedDeclaration": 43520, + "src": "13235:26:40", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_StorableMsg_$44191_memory_ptr_$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_enum$_IPCMsgType_$38128_$attached_to$_t_struct$_StorableMsg_$44191_memory_ptr_$", + "typeString": "function (struct StorableMsg memory,struct SubnetID memory) pure returns (enum IPCMsgType)" + } + }, + "id": 40097, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13235:41:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeString": "enum IPCMsgType" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13212:64:40" + }, + { + "condition": { + "arguments": [ + { + "expression": { + "id": 40104, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "13395:1:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 40105, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13397:11:40", + "memberName": "networkName", + "nodeType": "MemberAccess", + "referencedDeclaration": 42307, + "src": "13395:13:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeString": "struct SubnetID storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeString": "struct SubnetID storage ref" + } + ], + "expression": { + "expression": { + "expression": { + "expression": { + "id": 40099, + "name": "crossMsg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40054, + "src": "13359:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeString": "struct CrossMsg memory" + } + }, + "id": 40100, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13368:7:40", + "memberName": "message", + "nodeType": "MemberAccess", + "referencedDeclaration": 44173, + "src": "13359:16:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StorableMsg_$44191_memory_ptr", + "typeString": "struct StorableMsg memory" + } + }, + "id": 40101, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13376:2:40", + "memberName": "to", + "nodeType": "MemberAccess", + "referencedDeclaration": 44182, + "src": "13359:19:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IPCAddress_$44310_memory_ptr", + "typeString": "struct IPCAddress memory" + } + }, + "id": 40102, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13379:8:40", + "memberName": "subnetId", + "nodeType": "MemberAccess", + "referencedDeclaration": 44306, + "src": "13359:28:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + } + }, + "id": 40103, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13388:6:40", + "memberName": "equals", + "nodeType": "MemberAccess", + "referencedDeclaration": 43868, + "src": "13359:35:40", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeString": "function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)" + } + }, + "id": 40106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13359:50:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 40183, + "nodeType": "IfStatement", + "src": "13355:1147:40", + "trueBody": { + "id": 40182, + "nodeType": "Block", + "src": "13411:1091:40", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeString": "enum IPCMsgType" + }, + "id": 40110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 40107, + "name": "applyType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40091, + "src": "13599:9:40", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeString": "enum IPCMsgType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 40108, + "name": "IPCMsgType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38128, + "src": "13612:10:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_IPCMsgType_$38128_$", + "typeString": "type(enum IPCMsgType)" + } + }, + "id": 40109, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "13623:8:40", + "memberName": "BottomUp", + "nodeType": "MemberAccess", + "referencedDeclaration": 38127, + "src": "13612:19:40", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeString": "enum IPCMsgType" + } + }, + "src": "13599:32:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 40152, + "nodeType": "IfStatement", + "src": "13595:539:40", + "trueBody": { + "id": 40151, + "nodeType": "Block", + "src": "13633:501:40", + "statements": [ + { + "condition": { + "id": 40114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "13655:20:40", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 40111, + "name": "forwarder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40051, + "src": "13656:9:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + } + }, + "id": 40112, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13666:7:40", + "memberName": "isEmpty", + "nodeType": "MemberAccess", + "referencedDeclaration": 44130, + "src": "13656:17:40", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeString": "function (struct SubnetID memory) pure returns (bool)" + } + }, + "id": 40113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13656:19:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 40150, + "nodeType": "IfStatement", + "src": "13651:469:40", + "trueBody": { + "id": 40149, + "nodeType": "Block", + "src": "13677:443:40", + "statements": [ + { + "assignments": [ + 40116, + 40119 + ], + "declarations": [ + { + "constant": false, + "id": 40116, + "mutability": "mutable", + "name": "registered", + "nameLocation": "13705:10:40", + "nodeType": "VariableDeclaration", + "scope": 40149, + "src": "13700:15:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 40115, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "13700:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 40119, + "mutability": "mutable", + "name": "subnet", + "nameLocation": "13732:6:40", + "nodeType": "VariableDeclaration", + "scope": 40149, + "src": "13717:21:40", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet" + }, + "typeName": { + "id": 40118, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 40117, + "name": "Subnet", + "nameLocations": [ + "13717:6:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44303, + "src": "13717:6:40" + }, + "referencedDeclaration": 44303, + "src": "13717:6:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet" + } + }, + "visibility": "internal" + } + ], + "id": 40124, + "initialValue": { + "arguments": [ + { + "id": 40122, + "name": "forwarder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40051, + "src": "13763:9:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + } + ], + "expression": { + "id": 40120, + "name": "LibGateway", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42262, + "src": "13742:10:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeString": "type(library LibGateway)" + } + }, + "id": 40121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13753:9:40", + "memberName": "getSubnet", + "nodeType": "MemberAccess", + "referencedDeclaration": 42261, + "src": "13742:20:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeString": "function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)" + } + }, + "id": 40123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13742:31:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeString": "tuple(bool,struct Subnet storage pointer)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13699:74:40" + }, + { + "condition": { + "id": 40126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "13799:11:40", + "subExpression": { + "id": 40125, + "name": "registered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40116, + "src": "13800:10:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 40131, + "nodeType": "IfStatement", + "src": "13795:94:40", + "trueBody": { + "id": 40130, + "nodeType": "Block", + "src": "13812:77:40", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 40127, + "name": "NotRegisteredSubnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38220, + "src": "13845:19:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 40128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13845:21:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 40129, + "nodeType": "RevertStatement", + "src": "13838:28:40" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 40137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 40132, + "name": "subnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40119, + "src": "13914:6:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet storage pointer" + } + }, + "id": 40133, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13921:20:40", + "memberName": "appliedBottomUpNonce", + "nodeType": "MemberAccess", + "referencedDeclaration": 44286, + "src": "13914:27:40", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "expression": { + "id": 40134, + "name": "crossMsg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40054, + "src": "13945:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeString": "struct CrossMsg memory" + } + }, + "id": 40135, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13954:7:40", + "memberName": "message", + "nodeType": "MemberAccess", + "referencedDeclaration": 44173, + "src": "13945:16:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StorableMsg_$44191_memory_ptr", + "typeString": "struct StorableMsg memory" + } + }, + "id": 40136, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13962:5:40", + "memberName": "nonce", + "nodeType": "MemberAccess", + "referencedDeclaration": 44186, + "src": "13945:22:40", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "13914:53:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 40142, + "nodeType": "IfStatement", + "src": "13910:137:40", + "trueBody": { + "id": 40141, + "nodeType": "Block", + "src": "13969:78:40", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 40138, + "name": "InvalidCrossMsgNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38182, + "src": "14002:20:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 40139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14002:22:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 40140, + "nodeType": "RevertStatement", + "src": "13995:29:40" + } + ] + } + }, + { + "expression": { + "id": 40147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 40143, + "name": "subnet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40119, + "src": "14069:6:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeString": "struct Subnet storage pointer" + } + }, + "id": 40145, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "14076:20:40", + "memberName": "appliedBottomUpNonce", + "nodeType": "MemberAccess", + "referencedDeclaration": 44286, + "src": "14069:27:40", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 40146, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14100:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "14069:32:40", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 40148, + "nodeType": "ExpressionStatement", + "src": "14069:32:40" + } + ] + } + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeString": "enum IPCMsgType" + }, + "id": 40156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 40153, + "name": "applyType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40091, + "src": "14152:9:40", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeString": "enum IPCMsgType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 40154, + "name": "IPCMsgType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38128, + "src": "14165:10:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_IPCMsgType_$38128_$", + "typeString": "type(enum IPCMsgType)" + } + }, + "id": 40155, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "14176:7:40", + "memberName": "TopDown", + "nodeType": "MemberAccess", + "referencedDeclaration": 38126, + "src": "14165:18:40", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeString": "enum IPCMsgType" + } + }, + "src": "14152:31:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 40175, + "nodeType": "IfStatement", + "src": "14148:236:40", + "trueBody": { + "id": 40174, + "nodeType": "Block", + "src": "14185:199:40", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 40162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 40157, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "14207:1:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 40158, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14209:19:40", + "memberName": "appliedTopDownNonce", + "nodeType": "MemberAccess", + "referencedDeclaration": 42343, + "src": "14207:21:40", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "expression": { + "id": 40159, + "name": "crossMsg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40054, + "src": "14232:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeString": "struct CrossMsg memory" + } + }, + "id": 40160, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14241:7:40", + "memberName": "message", + "nodeType": "MemberAccess", + "referencedDeclaration": 44173, + "src": "14232:16:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StorableMsg_$44191_memory_ptr", + "typeString": "struct StorableMsg memory" + } + }, + "id": 40161, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14249:5:40", + "memberName": "nonce", + "nodeType": "MemberAccess", + "referencedDeclaration": 44186, + "src": "14232:22:40", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "14207:47:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 40167, + "nodeType": "IfStatement", + "src": "14203:123:40", + "trueBody": { + "id": 40166, + "nodeType": "Block", + "src": "14256:70:40", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 40163, + "name": "InvalidCrossMsgNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38182, + "src": "14285:20:40", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 40164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14285:22:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 40165, + "nodeType": "RevertStatement", + "src": "14278:29:40" + } + ] + } + }, + { + "expression": { + "id": 40172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 40168, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "14343:1:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 40170, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "14345:19:40", + "memberName": "appliedTopDownNonce", + "nodeType": "MemberAccess", + "referencedDeclaration": 42343, + "src": "14343:21:40", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 40171, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14368:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "14343:26:40", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 40173, + "nodeType": "ExpressionStatement", + "src": "14343:26:40" + } + ] + } + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 40176, + "name": "crossMsg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40054, + "src": "14453:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeString": "struct CrossMsg memory" + } + }, + "id": 40178, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14462:7:40", + "memberName": "execute", + "nodeType": "MemberAccess", + "referencedDeclaration": 41044, + "src": "14453:16:40", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_CrossMsg_$44176_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_struct$_CrossMsg_$44176_memory_ptr_$", + "typeString": "function (struct CrossMsg memory) returns (bytes memory)" + } + }, + "id": 40179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14453:18:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 40180, + "nodeType": "ExpressionStatement", + "src": "14453:18:40" + }, + { + "functionReturnParameters": 40056, + "id": 40181, + "nodeType": "Return", + "src": "14485:7:40" + } + ] + } + }, + { + "assignments": [ + 40185 + ], + "declarations": [ + { + "constant": false, + "id": 40185, + "mutability": "mutable", + "name": "cid", + "nameLocation": "14628:3:40", + "nodeType": "VariableDeclaration", + "scope": 40198, + "src": "14620:11:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 40184, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "14620:7:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 40189, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 40186, + "name": "crossMsg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40054, + "src": "14634:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeString": "struct CrossMsg memory" + } + }, + "id": 40187, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14643:6:40", + "memberName": "toHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 40906, + "src": "14634:15:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_CrossMsg_$44176_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_CrossMsg_$44176_memory_ptr_$", + "typeString": "function (struct CrossMsg memory) pure returns (bytes32)" + } + }, + "id": 40188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14634:17:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14620:31:40" + }, + { + "expression": { + "id": 40196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 40190, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42399, + "src": "14662:1:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 40193, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14664:7:40", + "memberName": "postbox", + "nodeType": "MemberAccess", + "referencedDeclaration": 42328, + "src": "14662:9:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$44176_storage_$", + "typeString": "mapping(bytes32 => struct CrossMsg storage ref)" + } + }, + "id": 40194, + "indexExpression": { + "id": 40192, + "name": "cid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40185, + "src": "14672:3:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "14662:14:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_storage", + "typeString": "struct CrossMsg storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 40195, + "name": "crossMsg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40054, + "src": "14679:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeString": "struct CrossMsg memory" + } + }, + "src": "14662:25:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_storage", + "typeString": "struct CrossMsg storage ref" + } + }, + "id": 40197, + "nodeType": "ExpressionStatement", + "src": "14662:25:40" + } + ] + }, + "documentation": { + "id": 40048, + "nodeType": "StructuredDocumentation", + "src": "12544:265:40", + "text": "@notice executes a cross message if its destination is the current network, otherwise adds it to the postbox to be propagated further\n @param forwarder - the subnet that handles the cross message\n @param crossMsg - the cross message to be executed" + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_applyMsg", + "nameLocation": "12823:9:40", + "parameters": { + "id": 40055, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 40051, + "mutability": "mutable", + "name": "forwarder", + "nameLocation": "12849:9:40", + "nodeType": "VariableDeclaration", + "scope": 40199, + "src": "12833:25:40", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID" + }, + "typeName": { + "id": 40050, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 40049, + "name": "SubnetID", + "nameLocations": [ + "12833:8:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44279, + "src": "12833:8:40" + }, + "referencedDeclaration": 44279, + "src": "12833:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeString": "struct SubnetID" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 40054, + "mutability": "mutable", + "name": "crossMsg", + "nameLocation": "12876:8:40", + "nodeType": "VariableDeclaration", + "scope": 40199, + "src": "12860:24:40", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeString": "struct CrossMsg" + }, + "typeName": { + "id": 40053, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 40052, + "name": "CrossMsg", + "nameLocations": [ + "12860:8:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44176, + "src": "12860:8:40" + }, + "referencedDeclaration": 44176, + "src": "12860:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeString": "struct CrossMsg" + } + }, + "visibility": "internal" + } + ], + "src": "12832:53:40" + }, + "returnParameters": { + "id": 40056, + "nodeType": "ParameterList", + "parameters": [], + "src": "12895:0:40" + }, + "scope": 40237, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "id": 40236, + "nodeType": "FunctionDefinition", + "src": "15035:318:40", + "nodes": [], + "body": { + "id": 40235, + "nodeType": "Block", + "src": "15124:229:40", + "nodes": [], + "statements": [ + { + "assignments": [ + 40211 + ], + "declarations": [ + { + "constant": false, + "id": 40211, + "mutability": "mutable", + "name": "crossMsgsLength", + "nameLocation": "15142:15:40", + "nodeType": "VariableDeclaration", + "scope": 40235, + "src": "15134:23:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 40210, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15134:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 40214, + "initialValue": { + "expression": { + "id": 40212, + "name": "crossMsgs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40207, + "src": "15160:9:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CrossMsg memory[] memory" + } + }, + "id": 40213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15170:6:40", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "15160:16:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15134:42:40" + }, + { + "body": { + "id": 40233, + "nodeType": "Block", + "src": "15229:118:40", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 40223, + "name": "forwarder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40203, + "src": "15253:9:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + } + }, + { + "baseExpression": { + "id": 40224, + "name": "crossMsgs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40207, + "src": "15264:9:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CrossMsg memory[] memory" + } + }, + "id": 40226, + "indexExpression": { + "id": 40225, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40216, + "src": "15274:1:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15264:12:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeString": "struct CrossMsg memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID memory" + }, + { + "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeString": "struct CrossMsg memory" + } + ], + "id": 40222, + "name": "_applyMsg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40199, + "src": "15243:9:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_SubnetID_$44279_memory_ptr_$_t_struct$_CrossMsg_$44176_memory_ptr_$returns$__$", + "typeString": "function (struct SubnetID memory,struct CrossMsg memory)" + } + }, + "id": 40227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15243:34:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 40228, + "nodeType": "ExpressionStatement", + "src": "15243:34:40" + }, + { + "id": 40232, + "nodeType": "UncheckedBlock", + "src": "15291:46:40", + "statements": [ + { + "expression": { + "id": 40230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "15319:3:40", + "subExpression": { + "id": 40229, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40216, + "src": "15321:1:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 40231, + "nodeType": "ExpressionStatement", + "src": "15319:3:40" + } + ] + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 40221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 40219, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40216, + "src": "15206:1:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 40220, + "name": "crossMsgsLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40211, + "src": "15210:15:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15206:19:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 40234, + "initializationExpression": { + "assignments": [ + 40216 + ], + "declarations": [ + { + "constant": false, + "id": 40216, + "mutability": "mutable", + "name": "i", + "nameLocation": "15199:1:40", + "nodeType": "VariableDeclaration", + "scope": 40234, + "src": "15191:9:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 40215, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15191:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 40218, + "initialValue": { + "hexValue": "30", + "id": 40217, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15203:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "15191:13:40" + }, + "nodeType": "ForStatement", + "src": "15186:161:40" + } + ] + }, + "documentation": { + "id": 40200, + "nodeType": "StructuredDocumentation", + "src": "14700:330:40", + "text": "@notice applies a cross-net messages coming from some other subnet.\n The forwarder argument determines the previous subnet that submitted the checkpoint triggering the cross-net message execution.\n @param forwarder - the subnet that handles the messages\n @param crossMsgs - the cross-net messages to apply" + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_applyMessages", + "nameLocation": "15044:14:40", + "parameters": { + "id": 40208, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 40203, + "mutability": "mutable", + "name": "forwarder", + "nameLocation": "15075:9:40", + "nodeType": "VariableDeclaration", + "scope": 40236, + "src": "15059:25:40", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeString": "struct SubnetID" + }, + "typeName": { + "id": 40202, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 40201, + "name": "SubnetID", + "nameLocations": [ + "15059:8:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44279, + "src": "15059:8:40" + }, + "referencedDeclaration": 44279, + "src": "15059:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeString": "struct SubnetID" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 40207, + "mutability": "mutable", + "name": "crossMsgs", + "nameLocation": "15104:9:40", + "nodeType": "VariableDeclaration", + "scope": 40236, + "src": "15086:27:40", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CrossMsg[]" + }, + "typeName": { + "baseType": { + "id": 40205, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 40204, + "name": "CrossMsg", + "nameLocations": [ + "15086:8:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 44176, + "src": "15086:8:40" + }, + "referencedDeclaration": 44176, + "src": "15086:8:40", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeString": "struct CrossMsg" + } + }, + "id": 40206, + "nodeType": "ArrayTypeName", + "src": "15086:10:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_storage_$dyn_storage_ptr", + "typeString": "struct CrossMsg[]" + } + }, + "visibility": "internal" + } + ], + "src": "15058:56:40" + }, + "returnParameters": { + "id": 40209, + "nodeType": "ParameterList", + "parameters": [], + "src": "15124:0:40" + }, + "scope": 40237, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + } + ], + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 39309, + "name": "GatewayActorModifiers", + "nameLocations": [ + "1489:21:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 42504, + "src": "1489:21:40" + }, + "id": 39310, + "nodeType": "InheritanceSpecifier", + "src": "1489:21:40" + } + ], + "canonicalName": "GatewayRouterFacet", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 40237, + 42504 + ], + "name": "GatewayRouterFacet", + "nameLocation": "1467:18:40", + "scope": 40238, + "usedErrors": [ + 4, + 8, + 29492, + 29497, + 29500, + 38156, + 38164, + 38166, + 38170, + 38172, + 38174, + 38176, + 38178, + 38180, + 38182, + 38188, + 38200, + 38204, + 38206, + 38210, + 38214, + 38216, + 38220, + 38222, + 38228, + 38230 + ] + } + ], + "license": "UNLICENSED" + }, + "id": 40 +} \ No newline at end of file diff --git a/src/manager/evm/convert.rs b/src/manager/evm/convert.rs index e60c937d..273bc2f4 100644 --- a/src/manager/evm/convert.rs +++ b/src/manager/evm/convert.rs @@ -1,16 +1,20 @@ //! Type conversion for IPC Agent struct with solidity contract struct +use crate::manager::evm::manager::agent_subnet_to_evm_addresses; use crate::manager::evm::manager::{ - subnet_actor_getter_facet, subnet_actor_manager_facet, + gateway_getter_facet, gateway_manager_facet, subnet_actor_getter_facet, + subnet_actor_manager_facet, }; -use ethers::abi::Token; +use anyhow::anyhow; +use ethers::abi::{ParamType, Token}; use ethers::types::U256; use fvm_shared::address::{Address, Payload}; +use ipc_sdk::subnet_id::SubnetID; /// The type conversion for IPC structs to evm solidity contracts. We need this convenient macro because /// the abigen is creating the same struct but under different modules. This save a lot of /// code. -macro_rules! type_conversion { +macro_rules! common_type_conversion { ($module:ident) => { impl From
for $module::FvmAddress { fn from(value: Address) -> Self { @@ -20,11 +24,34 @@ macro_rules! type_conversion { } } } + + impl TryFrom<$module::FvmAddress> for Address { + type Error = anyhow::Error; + + fn try_from(value: $module::FvmAddress) -> Result { + let protocol = value.addr_type; + let addr = bytes_to_fvm_addr(protocol, &value.payload)?; + Ok(addr) + } + } + + impl TryFrom<&SubnetID> for $module::SubnetID { + type Error = anyhow::Error; + + fn try_from(subnet: &SubnetID) -> Result { + Ok($module::SubnetID { + root: subnet.root_id(), + route: agent_subnet_to_evm_addresses(subnet)?, + }) + } + } }; } -type_conversion!(subnet_actor_getter_facet); -type_conversion!(subnet_actor_manager_facet); +common_type_conversion!(subnet_actor_getter_facet); +common_type_conversion!(subnet_actor_manager_facet); +common_type_conversion!(gateway_manager_facet); +common_type_conversion!(gateway_getter_facet); /// Converts a Rust type FVM address into its underlying payload /// so it can be represented internally in a Solidity contract. @@ -43,3 +70,52 @@ fn addr_payload_to_bytes(payload: Payload) -> ethers::types::Bytes { _ => unimplemented!(), } } + +/// It takes the bytes from an FVMAddress represented in Solidity and +/// converts it into the corresponding FVM address Rust type. +fn bytes_to_fvm_addr(protocol: u8, bytes: &[u8]) -> anyhow::Result
{ + let addr = match protocol { + 1 => Address::from_bytes(&[[1u8].as_slice(), bytes].concat())?, + 4 => { + let mut data = ethers::abi::decode( + &[ParamType::Tuple(vec![ + ParamType::Uint(32), + ParamType::Uint(32), + ParamType::Bytes, + ])], + bytes, + )?; + + let mut data = data + .pop() + .ok_or_else(|| anyhow!("invalid tuple data length"))? + .into_tuple() + .ok_or_else(|| anyhow!("not tuple"))?; + + let raw_bytes = data + .pop() + .ok_or_else(|| anyhow!("invalid length, should be 3"))? + .into_bytes() + .ok_or_else(|| anyhow!("invalid bytes"))?; + let len = data + .pop() + .ok_or_else(|| anyhow!("invalid length, should be 3"))? + .into_uint() + .ok_or_else(|| anyhow!("invalid uint"))? + .as_u128(); + let namespace = data + .pop() + .ok_or_else(|| anyhow!("invalid length, should be 3"))? + .into_uint() + .ok_or_else(|| anyhow!("invalid uint"))? + .as_u64(); + + if len as usize != raw_bytes.len() { + return Err(anyhow!("bytes len not match")); + } + Address::new_delegated(namespace, &raw_bytes)? + } + _ => return Err(anyhow!("address not support now")), + }; + Ok(addr) +} diff --git a/src/manager/evm/manager.rs b/src/manager/evm/manager.rs index 6e0767d0..255df09a 100644 --- a/src/manager/evm/manager.rs +++ b/src/manager/evm/manager.rs @@ -46,6 +46,9 @@ abigen!( SubnetActorManagerFacet, "contracts/SubnetActorManagerFacet.json" ); +abigen!(GatewayManagerFacet, "contracts/GatewayManagerFacet.json"); +abigen!(GatewayGetterFacet, "contracts/GatewayGetterFacet.json"); +abigen!(GatewayRouterFacet, "contracts/GatewayRouterFacet.json"); abigen!(SubnetRegistry, "contracts/SubnetRegistry.json"); pub struct EthSubnetManager { @@ -235,12 +238,16 @@ impl SubnetManager for EthSubnetManager { log::info!("fund with evm gateway contract: {gateway_addr:} with value: {value:}, original: {amount:?}"); - let evm_subnet_id = gateway::SubnetID::try_from(&subnet)?; + let evm_subnet_id = gateway_manager_facet::SubnetID::try_from(&subnet)?; log::debug!("evm subnet id to fund: {evm_subnet_id:?}"); let signer = self.get_signer(&payload_to_evm_address(from.payload())?)?; - let gateway_contract = Gateway::new(self.ipc_contract_info.gateway_addr, Arc::new(signer)); - let mut txn = gateway_contract.fund(evm_subnet_id, gateway::FvmAddress::try_from(to)?); + let gateway_contract = + GatewayManagerFacet::new(self.ipc_contract_info.gateway_addr, Arc::new(signer)); + let mut txn = gateway_contract.fund( + evm_subnet_id, + gateway_manager_facet::FvmAddress::try_from(to)?, + ); txn.tx.set_value(value); let pending_tx = txn.send().await?; @@ -266,8 +273,8 @@ impl SubnetManager for EthSubnetManager { log::info!("release with evm gateway contract: {gateway_addr:} with value: {value:}"); let signer = self.get_signer(&payload_to_evm_address(from.payload())?)?; - let gateway_contract = Gateway::new(self.ipc_contract_info.gateway_addr, Arc::new(signer)); - let mut txn = gateway_contract.release(gateway::FvmAddress::try_from(to)?); + let gateway_contract = GatewayManagerFacet::new(self.ipc_contract_info.gateway_addr, Arc::new(signer)); + let mut txn = gateway_contract.release(gateway_manager_facet::FvmAddress::try_from(to)?); txn.tx.set_value(value); let pending_tx = txn.send().await?; @@ -343,10 +350,10 @@ impl SubnetManager for EthSubnetManager { self.ensure_same_gateway(&gateway)?; // get genesis epoch from gateway - let evm_subnet_id = gateway::SubnetID::try_from(subnet_id)?; + let evm_subnet_id = gateway_getter_facet::SubnetID::try_from(subnet_id)?; log::debug!("evm subnet id: {evm_subnet_id:?}"); - let gateway_contract = Gateway::new( + let gateway_contract = GatewayGetterFacet::new( self.ipc_contract_info.gateway_addr, Arc::new(self.ipc_contract_info.provider.clone()), ); @@ -396,7 +403,7 @@ impl SubnetManager for EthSubnetManager { #[async_trait] impl EthManager for EthSubnetManager { async fn gateway_last_voting_executed_epoch(&self) -> Result { - let gateway_contract = Gateway::new( + let gateway_contract = GatewayGetterFacet::new( self.ipc_contract_info.gateway_addr, Arc::new(self.ipc_contract_info.provider.clone()), ); @@ -407,7 +414,7 @@ impl EthManager for EthSubnetManager { async fn subnet_last_voting_executed_epoch(&self, subnet_id: &SubnetID) -> Result { let address = contract_address_from_subnet(subnet_id)?; let contract = - SubnetContract::new(address, Arc::new(self.ipc_contract_info.provider.clone())); + SubnetActorGetterFacet::new(address, Arc::new(self.ipc_contract_info.provider.clone())); let u = contract.last_voting_executed_epoch().call().await?; Ok(u as ChainEpoch) } @@ -425,12 +432,12 @@ impl EthManager for EthSubnetManager { async fn submit_top_down_checkpoint( &self, from: &Address, - checkpoint: TopDownCheckpoint, + checkpoint: gateway_router_facet::TopDownCheckpoint, ) -> Result { log::debug!("submit top down checkpoint: {:?}", checkpoint); let signer = self.get_signer(&payload_to_evm_address(from.payload())?)?; - let gateway_contract = Gateway::new(self.ipc_contract_info.gateway_addr, Arc::new(signer)); + let gateway_contract = GatewayRouterFacet::new(self.ipc_contract_info.gateway_addr, Arc::new(signer)); let txn = gateway_contract.submit_top_down_checkpoint(checkpoint); let pending_tx = txn.send().await?; diff --git a/src/manager/evm/mod.rs b/src/manager/evm/mod.rs index d04efeda..ae3a9852 100644 --- a/src/manager/evm/mod.rs +++ b/src/manager/evm/mod.rs @@ -12,7 +12,7 @@ use fvm_shared::clock::ChainEpoch; use ipc_sdk::subnet_id::SubnetID; use super::subnet::SubnetManager; -pub use manager::{gateway, subnet_contract, EthSubnetManager}; +pub use manager::{gateway, subnet_contract, gateway_router_facet, EthSubnetManager}; #[async_trait] pub trait EthManager: SubnetManager { @@ -32,7 +32,7 @@ pub trait EthManager: SubnetManager { async fn submit_top_down_checkpoint( &self, from: &Address, - checkpoint: gateway::TopDownCheckpoint, + checkpoint: gateway_router_facet::TopDownCheckpoint, ) -> anyhow::Result; /// Submit bottom up checkpoint to the subnet actor. From be0867c914b1732254aa393690d791ca84646d58 Mon Sep 17 00:00:00 2001 From: cryptoAtwill Date: Wed, 26 Jul 2023 12:15:25 +0800 Subject: [PATCH 05/17] migrate to diamond --- contracts/Gateway.json | 34943 ---------------- contracts/SubnetActor.json | 17869 -------- .../convert/{bottom_up.rs => checkpoint.rs} | 37 +- src/manager/evm/convert/mod.rs | 26 +- src/manager/evm/manager.rs | 21 +- src/manager/evm/mod.rs | 8 +- src/manager/fevm.rs | 5 +- src/manager/mod.rs | 2 +- 8 files changed, 54 insertions(+), 52857 deletions(-) delete mode 100644 contracts/Gateway.json delete mode 100644 contracts/SubnetActor.json rename src/manager/evm/convert/{bottom_up.rs => checkpoint.rs} (82%) diff --git a/contracts/Gateway.json b/contracts/Gateway.json deleted file mode 100644 index 52b9e179..00000000 --- a/contracts/Gateway.json +++ /dev/null @@ -1,34943 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "networkName", - "type": "tuple" - }, - { - "internalType": "uint64", - "name": "bottomUpCheckPeriod", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "topDownCheckPeriod", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "msgFee", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "majorityPercentage", - "type": "uint8" - } - ], - "internalType": "struct Gateway.ConstructorParams", - "name": "params", - "type": "tuple" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "AlreadyInitialized", - "type": "error" - }, - { - "inputs": [], - "name": "AlreadyRegisteredSubnet", - "type": "error" - }, - { - "inputs": [], - "name": "CallFailed", - "type": "error" - }, - { - "inputs": [], - "name": "CannotReleaseZero", - "type": "error" - }, - { - "inputs": [], - "name": "CannotSendCrossMsgToItself", - "type": "error" - }, - { - "inputs": [], - "name": "EmptySubnet", - "type": "error" - }, - { - "inputs": [], - "name": "EpochAlreadyExecuted", - "type": "error" - }, - { - "inputs": [], - "name": "EpochNotVotable", - "type": "error" - }, - { - "inputs": [], - "name": "InconsistentPrevCheckpoint", - "type": "error" - }, - { - "inputs": [], - "name": "InsufficientFunds", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidActorAddress", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidCheckpointEpoch", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidCheckpointSource", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidCrossMsgDestinationSubnet", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidCrossMsgFromSubnetId", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidCrossMsgNonce", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidCrossMsgsSortOrder", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidMajorityPercentage", - "type": "error" - }, - { - "inputs": [], - "name": "MessagesNotSorted", - "type": "error" - }, - { - "inputs": [], - "name": "MethodNotSupportedYet", - "type": "error" - }, - { - "inputs": [], - "name": "NotEmptySubnetCircSupply", - "type": "error" - }, - { - "inputs": [], - "name": "NotEnoughBalance", - "type": "error" - }, - { - "inputs": [], - "name": "NotEnoughFee", - "type": "error" - }, - { - "inputs": [], - "name": "NotEnoughFunds", - "type": "error" - }, - { - "inputs": [], - "name": "NotEnoughFundsForMembership", - "type": "error" - }, - { - "inputs": [], - "name": "NotEnoughFundsToRelease", - "type": "error" - }, - { - "inputs": [], - "name": "NotEnoughSubnetCircSupply", - "type": "error" - }, - { - "inputs": [], - "name": "NotInitialized", - "type": "error" - }, - { - "inputs": [], - "name": "NotRegisteredSubnet", - "type": "error" - }, - { - "inputs": [], - "name": "NotSignableAccount", - "type": "error" - }, - { - "inputs": [], - "name": "NotSystemActor", - "type": "error" - }, - { - "inputs": [], - "name": "NotValidator", - "type": "error" - }, - { - "inputs": [], - "name": "PostboxNotExist", - "type": "error" - }, - { - "inputs": [], - "name": "SubnetNotActive", - "type": "error" - }, - { - "inputs": [], - "name": "ValidatorAlreadyVoted", - "type": "error" - }, - { - "inputs": [], - "name": "ValidatorWeightIsZero", - "type": "error" - }, - { - "inputs": [], - "name": "ValidatorsAndWeightsLengthMismatch", - "type": "error" - }, - { - "inputs": [], - "name": "MIN_CHECKPOINT_PERIOD", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MIN_COLLATERAL_AMOUNT", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "addStake", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "appliedTopDownNonce", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "bottomUpCheckPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "epoch", - "type": "uint64" - } - ], - "name": "bottomUpCheckpointAtEpoch", - "outputs": [ - { - "internalType": "bool", - "name": "exists", - "type": "bool" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "source", - "type": "tuple" - }, - { - "internalType": "uint64", - "name": "epoch", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "components": [ - { - "components": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple" - } - ], - "internalType": "struct IPCAddress", - "name": "from", - "type": "tuple" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple" - } - ], - "internalType": "struct IPCAddress", - "name": "to", - "type": "tuple" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "internalType": "bytes4", - "name": "method", - "type": "bytes4" - }, - { - "internalType": "bytes", - "name": "params", - "type": "bytes" - } - ], - "internalType": "struct StorableMsg", - "name": "message", - "type": "tuple" - }, - { - "internalType": "bool", - "name": "wrapped", - "type": "bool" - } - ], - "internalType": "struct CrossMsg[]", - "name": "crossMsgs", - "type": "tuple[]" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "source", - "type": "tuple" - }, - { - "internalType": "bytes32[]", - "name": "checks", - "type": "bytes32[]" - } - ], - "internalType": "struct ChildCheck[]", - "name": "children", - "type": "tuple[]" - }, - { - "internalType": "bytes32", - "name": "prevHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "proof", - "type": "bytes" - } - ], - "internalType": "struct BottomUpCheckpoint", - "name": "checkpoint", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "epoch", - "type": "uint64" - } - ], - "name": "bottomUpCheckpointHashAtEpoch", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "name": "bottomUpCheckpoints", - "outputs": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "source", - "type": "tuple" - }, - { - "internalType": "uint64", - "name": "epoch", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "prevHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "proof", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "bottomUpNonce", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "source", - "type": "tuple" - }, - { - "internalType": "uint64", - "name": "epoch", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "components": [ - { - "components": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple" - } - ], - "internalType": "struct IPCAddress", - "name": "from", - "type": "tuple" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple" - } - ], - "internalType": "struct IPCAddress", - "name": "to", - "type": "tuple" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "internalType": "bytes4", - "name": "method", - "type": "bytes4" - }, - { - "internalType": "bytes", - "name": "params", - "type": "bytes" - } - ], - "internalType": "struct StorableMsg", - "name": "message", - "type": "tuple" - }, - { - "internalType": "bool", - "name": "wrapped", - "type": "bool" - } - ], - "internalType": "struct CrossMsg[]", - "name": "crossMsgs", - "type": "tuple[]" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "source", - "type": "tuple" - }, - { - "internalType": "bytes32[]", - "name": "checks", - "type": "bytes32[]" - } - ], - "internalType": "struct ChildCheck[]", - "name": "children", - "type": "tuple[]" - }, - { - "internalType": "bytes32", - "name": "prevHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "proof", - "type": "bytes" - } - ], - "internalType": "struct BottomUpCheckpoint", - "name": "commit", - "type": "tuple" - } - ], - "name": "commitChildCheck", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "crossMsgFee", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "executableQueue", - "outputs": [ - { - "internalType": "uint64", - "name": "period", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "first", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "last", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "internalType": "struct FvmAddress", - "name": "to", - "type": "tuple" - } - ], - "name": "fund", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - } - ], - "name": "getAppliedTopDownNonce", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - }, - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getGenesisEpoch", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getNetworkName", - "outputs": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - } - ], - "name": "getSubnet", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - }, - { - "components": [ - { - "internalType": "enum Status", - "name": "status", - "type": "uint8" - }, - { - "internalType": "uint64", - "name": "topDownNonce", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "appliedBottomUpNonce", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "stake", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "genesisEpoch", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "circSupply", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "id", - "type": "tuple" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "source", - "type": "tuple" - }, - { - "internalType": "uint64", - "name": "epoch", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "components": [ - { - "components": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple" - } - ], - "internalType": "struct IPCAddress", - "name": "from", - "type": "tuple" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple" - } - ], - "internalType": "struct IPCAddress", - "name": "to", - "type": "tuple" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "internalType": "bytes4", - "name": "method", - "type": "bytes4" - }, - { - "internalType": "bytes", - "name": "params", - "type": "bytes" - } - ], - "internalType": "struct StorableMsg", - "name": "message", - "type": "tuple" - }, - { - "internalType": "bool", - "name": "wrapped", - "type": "bool" - } - ], - "internalType": "struct CrossMsg[]", - "name": "crossMsgs", - "type": "tuple[]" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "source", - "type": "tuple" - }, - { - "internalType": "bytes32[]", - "name": "checks", - "type": "bytes32[]" - } - ], - "internalType": "struct ChildCheck[]", - "name": "children", - "type": "tuple[]" - }, - { - "internalType": "bytes32", - "name": "prevHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "proof", - "type": "bytes" - } - ], - "internalType": "struct BottomUpCheckpoint", - "name": "prevCheckpoint", - "type": "tuple" - }, - { - "components": [ - { - "components": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple" - } - ], - "internalType": "struct IPCAddress", - "name": "from", - "type": "tuple" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple" - } - ], - "internalType": "struct IPCAddress", - "name": "to", - "type": "tuple" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "internalType": "bytes4", - "name": "method", - "type": "bytes4" - }, - { - "internalType": "bytes", - "name": "params", - "type": "bytes" - } - ], - "internalType": "struct StorableMsg", - "name": "message", - "type": "tuple" - }, - { - "internalType": "bool", - "name": "wrapped", - "type": "bool" - } - ], - "internalType": "struct CrossMsg[]", - "name": "topDownMsgs", - "type": "tuple[]" - } - ], - "internalType": "struct Subnet", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - }, - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "name": "getSubnetTopDownMsg", - "outputs": [ - { - "components": [ - { - "components": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple" - } - ], - "internalType": "struct IPCAddress", - "name": "from", - "type": "tuple" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple" - } - ], - "internalType": "struct IPCAddress", - "name": "to", - "type": "tuple" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "internalType": "bytes4", - "name": "method", - "type": "bytes4" - }, - { - "internalType": "bytes", - "name": "params", - "type": "bytes" - } - ], - "internalType": "struct StorableMsg", - "name": "message", - "type": "tuple" - }, - { - "internalType": "bool", - "name": "wrapped", - "type": "bool" - } - ], - "internalType": "struct CrossMsg", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - } - ], - "name": "getSubnetTopDownMsgsLength", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - }, - { - "internalType": "uint64", - "name": "fromNonce", - "type": "uint64" - } - ], - "name": "getTopDownMsgs", - "outputs": [ - { - "components": [ - { - "components": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple" - } - ], - "internalType": "struct IPCAddress", - "name": "from", - "type": "tuple" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple" - } - ], - "internalType": "struct IPCAddress", - "name": "to", - "type": "tuple" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "internalType": "bytes4", - "name": "method", - "type": "bytes4" - }, - { - "internalType": "bytes", - "name": "params", - "type": "bytes" - } - ], - "internalType": "struct StorableMsg", - "name": "message", - "type": "tuple" - }, - { - "internalType": "bool", - "name": "wrapped", - "type": "bool" - } - ], - "internalType": "struct CrossMsg[]", - "name": "", - "type": "tuple[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "epoch", - "type": "uint64" - }, - { - "internalType": "address", - "name": "submitter", - "type": "address" - } - ], - "name": "hasValidatorVotedForSubmission", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "genesisEpoch", - "type": "uint64" - } - ], - "name": "initGenesisEpoch", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "initialized", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "kill", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "lastVotingExecutedEpoch", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "listSubnets", - "outputs": [ - { - "components": [ - { - "internalType": "enum Status", - "name": "status", - "type": "uint8" - }, - { - "internalType": "uint64", - "name": "topDownNonce", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "appliedBottomUpNonce", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "stake", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "genesisEpoch", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "circSupply", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "id", - "type": "tuple" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "source", - "type": "tuple" - }, - { - "internalType": "uint64", - "name": "epoch", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "components": [ - { - "components": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple" - } - ], - "internalType": "struct IPCAddress", - "name": "from", - "type": "tuple" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple" - } - ], - "internalType": "struct IPCAddress", - "name": "to", - "type": "tuple" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "internalType": "bytes4", - "name": "method", - "type": "bytes4" - }, - { - "internalType": "bytes", - "name": "params", - "type": "bytes" - } - ], - "internalType": "struct StorableMsg", - "name": "message", - "type": "tuple" - }, - { - "internalType": "bool", - "name": "wrapped", - "type": "bool" - } - ], - "internalType": "struct CrossMsg[]", - "name": "crossMsgs", - "type": "tuple[]" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "source", - "type": "tuple" - }, - { - "internalType": "bytes32[]", - "name": "checks", - "type": "bytes32[]" - } - ], - "internalType": "struct ChildCheck[]", - "name": "children", - "type": "tuple[]" - }, - { - "internalType": "bytes32", - "name": "prevHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "proof", - "type": "bytes" - } - ], - "internalType": "struct BottomUpCheckpoint", - "name": "prevCheckpoint", - "type": "tuple" - }, - { - "components": [ - { - "components": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple" - } - ], - "internalType": "struct IPCAddress", - "name": "from", - "type": "tuple" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple" - } - ], - "internalType": "struct IPCAddress", - "name": "to", - "type": "tuple" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "internalType": "bytes4", - "name": "method", - "type": "bytes4" - }, - { - "internalType": "bytes", - "name": "params", - "type": "bytes" - } - ], - "internalType": "struct StorableMsg", - "name": "message", - "type": "tuple" - }, - { - "internalType": "bool", - "name": "wrapped", - "type": "bool" - } - ], - "internalType": "struct CrossMsg[]", - "name": "topDownMsgs", - "type": "tuple[]" - } - ], - "internalType": "struct Subnet[]", - "name": "", - "type": "tuple[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "majorityPercentage", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minStake", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "postbox", - "outputs": [ - { - "components": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple" - } - ], - "internalType": "struct IPCAddress", - "name": "from", - "type": "tuple" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple" - } - ], - "internalType": "struct IPCAddress", - "name": "to", - "type": "tuple" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "internalType": "bytes4", - "name": "method", - "type": "bytes4" - }, - { - "internalType": "bytes", - "name": "params", - "type": "bytes" - } - ], - "internalType": "struct StorableMsg", - "name": "message", - "type": "tuple" - }, - { - "internalType": "bool", - "name": "wrapped", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "msgCid", - "type": "bytes32" - } - ], - "name": "propagate", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "register", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "internalType": "struct FvmAddress", - "name": "to", - "type": "tuple" - } - ], - "name": "release", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "releaseRewards", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "releaseStake", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "components": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple" - } - ], - "internalType": "struct IPCAddress", - "name": "from", - "type": "tuple" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple" - } - ], - "internalType": "struct IPCAddress", - "name": "to", - "type": "tuple" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "internalType": "bytes4", - "name": "method", - "type": "bytes4" - }, - { - "internalType": "bytes", - "name": "params", - "type": "bytes" - } - ], - "internalType": "struct StorableMsg", - "name": "message", - "type": "tuple" - }, - { - "internalType": "bool", - "name": "wrapped", - "type": "bool" - } - ], - "internalType": "struct CrossMsg", - "name": "crossMsg", - "type": "tuple" - } - ], - "name": "sendCrossMessage", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[]", - "name": "validators", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "weights", - "type": "uint256[]" - } - ], - "name": "setMembership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "submissionPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint64", - "name": "epoch", - "type": "uint64" - }, - { - "components": [ - { - "components": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple" - } - ], - "internalType": "struct IPCAddress", - "name": "from", - "type": "tuple" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple" - } - ], - "internalType": "struct IPCAddress", - "name": "to", - "type": "tuple" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "internalType": "bytes4", - "name": "method", - "type": "bytes4" - }, - { - "internalType": "bytes", - "name": "params", - "type": "bytes" - } - ], - "internalType": "struct StorableMsg", - "name": "message", - "type": "tuple" - }, - { - "internalType": "bool", - "name": "wrapped", - "type": "bool" - } - ], - "internalType": "struct CrossMsg[]", - "name": "topDownMsgs", - "type": "tuple[]" - } - ], - "internalType": "struct TopDownCheckpoint", - "name": "checkpoint", - "type": "tuple" - } - ], - "name": "submitTopDownCheckpoint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "subnetKeys", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "subnets", - "outputs": [ - { - "internalType": "enum Status", - "name": "status", - "type": "uint8" - }, - { - "internalType": "uint64", - "name": "topDownNonce", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "appliedBottomUpNonce", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "stake", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "genesisEpoch", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "circSupply", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "id", - "type": "tuple" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "source", - "type": "tuple" - }, - { - "internalType": "uint64", - "name": "epoch", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "components": [ - { - "components": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple" - } - ], - "internalType": "struct IPCAddress", - "name": "from", - "type": "tuple" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple" - } - ], - "internalType": "struct IPCAddress", - "name": "to", - "type": "tuple" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "internalType": "bytes4", - "name": "method", - "type": "bytes4" - }, - { - "internalType": "bytes", - "name": "params", - "type": "bytes" - } - ], - "internalType": "struct StorableMsg", - "name": "message", - "type": "tuple" - }, - { - "internalType": "bool", - "name": "wrapped", - "type": "bool" - } - ], - "internalType": "struct CrossMsg[]", - "name": "crossMsgs", - "type": "tuple[]" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "source", - "type": "tuple" - }, - { - "internalType": "bytes32[]", - "name": "checks", - "type": "bytes32[]" - } - ], - "internalType": "struct ChildCheck[]", - "name": "children", - "type": "tuple[]" - }, - { - "internalType": "bytes32", - "name": "prevHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "proof", - "type": "bytes" - } - ], - "internalType": "struct BottomUpCheckpoint", - "name": "prevCheckpoint", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "topDownCheckPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSubnets", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalWeight", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "validatorNonce", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "validatorSet", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": { - "object": "0x6101406040523480156200001257600080fd5b506040516200b98f3803806200b98f8339810160408190526200003591620003b2565b608081015160408201516001600055606460ff831611156200006a576040516375c3b42760e01b815260040160405180910390fd5b60ff8216608052600a6001600160401b038216106200008a57806200008d565b600a5b6001600160401b0390811660a0819052600280546001600160401b0319908116909217905584518051600480549190941692169190911782556020808201518051929550929350620000e59260059291019062000269565b5050670de0b6b3a764000060c052506020810151600a6001600160401b0390911610620001175780602001516200011a565b600a5b6001600160401b0390811660e0526040820151600a9116106200014257806040015162000145565b600a5b6001600160401b039081166101005260608201516101205260408051808201825260048054909316815260058054835160208281028201810190955281815292949380860193929190830182828015620001c957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311620001aa575b5050509190925250506040516310c5511f60e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263862a88f892506200020a9160040162000530565b602060405180830381865af415801562000228573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024e91906200059c565b1562000262576011805460ff191660011790555b50620005c7565b828054828255906000526020600020908101928215620002c1579160200282015b82811115620002c157825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906200028a565b50620002cf929150620002d3565b5090565b5b80821115620002cf5760008155600101620002d4565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b0381118282101715620003255762000325620002ea565b60405290565b604080519081016001600160401b0381118282101715620003255762000325620002ea565b604051601f8201601f191681016001600160401b03811182821017156200037b576200037b620002ea565b604052919050565b80516001600160401b03811681146200039b57600080fd5b919050565b805160ff811681146200039b57600080fd5b60006020808385031215620003c657600080fd5b82516001600160401b0380821115620003de57600080fd5b9084019060a08287031215620003f357600080fd5b620003fd62000300565b8251828111156200040d57600080fd5b8301604081890312156200042057600080fd5b6200042a6200032b565b620004358262000383565b815285820151848111156200044957600080fd5b80830192505088601f8301126200045f57600080fd5b815184811115620004745762000474620002ea565b8060051b94506200048787860162000350565b818152948301870194878101908b871115620004a257600080fd5b938801935b86851015620004dc57845192506001600160a01b0383168314620004cb5760008081fd5b8282529388019390880190620004a7565b838901525050825250620004f283850162000383565b84820152620005046040840162000383565b6040820152606083015160608201526200052160808401620003a0565b60808201529695505050505050565b602080825282516001600160401b0316828201528281015160408084015280516060840181905260009291820190839060808601905b80831015620005915783516001600160a01b0316825292840192600192909201919084019062000566565b509695505050505050565b600060208284031215620005af57600080fd5b81518015158114620005c057600080fd5b9392505050565b60805160a05160c05160e051610100516101205161b31d620006726000396000818161047401528181611a3b01528181611b54015281816123a20152818161385e0152818161677001526170f5015260006106db01526000818161025601526179fd0152600081816104ff01528181611b7f01528181612a030152612bf30152600081816103df0152818161737a0152617efa0152600081816105cd015261858b015261b31d6000f3fe6080604052600436106102025760003560e01c806302e30f9a1461020757806306c46853146102445780630ea746f21461029057806310d500e1146102bd578063133f74ea1461031d578063135493151461035457806313f3538814610381578063158ef93e146103a3578063185fde7e146103cd57806318f44b70146104015780631aa3a00814610414578063223d90561461041c578063247294251461046257806325bf0db6146104965780632cc14ea2146104a95780632f757dd1146104da578063375b3c0a146104ed57806341b6a2e81461052157806341c0e1b51461054157806345f544851461055657806351392fc014610576578063548b3b381461059b578063599c7bd1146105bb5780635a627dbc146106015780635d0296851461060957806366d7bbbc1461062b5780636b2c1eef146106885780636cb2ecee1461069b5780637d9740f4146106c95780638789f83b146106fd5780638cfd78e71461072457806391be4d411461075257806394074b031461076e57806396c82e5714610790578063986acf38146107a65780639d3070b5146107c65780639e530b57146107e6578063a1ada30314610825578063a2b671581461083a578063ad81e2441461085a578063c66c66a11461087a578063d4e149a8146108a8578063e17a684f146108c8578063f75bc557146108de578063f8703bb8146108fe575b600080fd5b34801561021357600080fd5b50610227610222366004618b4b565b61091e565b60405161023b989796959493929190618ead565b60405180910390f35b34801561025057600080fd5b506102787f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160401b03909116815260200161023b565b34801561029c57600080fd5b506102b06102ab3660046190ce565b61104c565b60405161023b9190619112565b3480156102c957600080fd5b506002546102f3906001600160401b0380821691600160401b8104821691600160801b9091041683565b604080516001600160401b039485168152928416602084015292169181019190915260600161023b565b34801561032957600080fd5b5061033d610338366004619125565b611409565b60408051921515835260208301919091520161023b565b34801561036057600080fd5b5061037461036f36600461915a565b6114a2565b60405161023b91906191ab565b34801561038d57600080fd5b506103a161039c366004619125565b6119a3565b005b3480156103af57600080fd5b506011546103bd9060ff1681565b604051901515815260200161023b565b3480156103d957600080fd5b506102787f000000000000000000000000000000000000000000000000000000000000000081565b6103a161040f3660046191be565b611a07565b6103a1611b7d565b34801561042857600080fd5b50610454610437366004619221565b600d60209081526000928352604080842090915290825290205481565b60405190815260200161023b565b34801561046e57600080fd5b506104547f000000000000000000000000000000000000000000000000000000000000000081565b6103a16104a4366004618b4b565b611e19565b3480156104b557600080fd5b506104c96104c4366004619125565b6123e2565b60405161023b959493929190619246565b6103a16104e8366004619294565b61251f565b3480156104f957600080fd5b506104547f000000000000000000000000000000000000000000000000000000000000000081565b34801561052d57600080fd5b50600b54610278906001600160401b031681565b34801561054d57600080fd5b506103a16126f2565b34801561056257600080fd5b506103a1610571366004618b4b565b612967565b34801561058257600080fd5b50600154600160401b90046001600160401b0316610278565b3480156105a757600080fd5b506104546105b6366004618b4b565b612b4a565b3480156105c757600080fd5b506105ef7f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200161023b565b6103a1612b6b565b34801561061557600080fd5b5061061e612c2c565b60405161023b9190619382565b34801561063757600080fd5b506103bd6106463660046193e4565b6001600160401b03821660009081526012602090815260408083208054845260030182528083206001600160a01b038516845290915290205460ff1692915050565b6103a1610696366004619294565b613829565b3480156106a757600080fd5b506106bb6106b6366004619125565b6138f2565b60405161023b929190619412565b3480156106d557600080fd5b506102787f000000000000000000000000000000000000000000000000000000000000000081565b34801561070957600080fd5b50600b5461027890600160401b90046001600160401b031681565b34801561073057600080fd5b5061074461073f366004618b4b565b613ff6565b60405161023b92919061942d565b34801561075e57600080fd5b50610454670de0b6b3a764000081565b34801561077a57600080fd5b50610783614372565b60405161023b9190619451565b34801561079c57600080fd5b50610454600c5481565b3480156107b257600080fd5b506103a16107c1366004619294565b6143fa565b3480156107d257600080fd5b506104546107e1366004619464565b614d72565b3480156107f257600080fd5b50610806610801366004619294565b614d8a565b6040805192151583526001600160401b0390911660208301520161023b565b34801561083157600080fd5b506105ef600a81565b34801561084657600080fd5b50600654610278906001600160401b031681565b34801561086657600080fd5b50600154610278906001600160401b031681565b34801561088657600080fd5b5061089a610895366004619294565b614dcc565b60405161023b929190619498565b3480156108b457600080fd5b506103a16108c33660046194b3565b615924565b3480156108d457600080fd5b50610454600e5481565b3480156108ea57600080fd5b506103a16108f93660046194ed565b616399565b34801561090a57600080fd5b506103a1610919366004618b4b565b6164a4565b6007602090815260009182526040918290208054600182015460028301546003840154865180880188526004860180546001600160401b0390811683526005880180548b51818c0281018c01909c52808c5260ff89169b6101008a0484169b600160481b909a0490931699979896979596858101939291908301828280156109cf57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109b1575b50505091909252505060408051610120810182526006850180546001600160401b031660e08301908152600787018054855160208281028201810190975281815297989794965092948694929386936101008701939092909190830182828015610a6257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a44575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015610e6c5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015610b7357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b55575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610bad906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054610bd9906195a7565b8015610c265780601f10610bfb57610100808354040283529160200191610c26565b820191906000526020600020905b815481529060010190602001808311610c0957829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015610cb757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610c99575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610cf1906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054610d1d906195a7565b8015610d6a5780601f10610d3f57610100808354040283529160200191610d6a565b820191906000526020600020905b815481529060010190602001808311610d4d57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191610dc5906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054610df1906195a7565b8015610e3e5780601f10610e1357610100808354040283529160200191610e3e565b820191906000526020600020905b815481529060010190602001808311610e2157829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101610acd565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015610fa3576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015610f2f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610f11575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610f8b57602002820191906000526020600020905b815481526020019060010190808311610f77575b50505050508152505081526020019060010190610e99565b50505050815260200160068201548152602001600782018054610fc5906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054610ff1906195a7565b801561103e5780601f106110135761010080835404028352916020019161103e565b820191906000526020600020905b81548152906001019060200180831161102157829003601f168201915b505050505081525050905088565b611054618762565b600061105f846164fb565b91505080600e018381548110611077576110776195db565b60009182526020918290206040805161018081018252600c90930290910180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561111657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116110f8575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190611150906195a7565b80601f016020809104026020016040519081016040528092919081815260200182805461117c906195a7565b80156111c95780601f1061119e576101008083540402835291602001916111c9565b820191906000526020600020905b8154815290600101906020018083116111ac57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561125a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161123c575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190611294906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546112c0906195a7565b801561130d5780601f106112e25761010080835404028352916020019161130d565b820191906000526020600020905b8154815290600101906020018083116112f057829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191611368906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054611394906195a7565b80156113e15780601f106113b6576101008083540402835291602001916113e1565b820191906000526020600020905b8154815290600101906020018083116113c457829003601f168201915b505050919092525050508152600b919091015460ff1615156020909101529150505b92915050565b600080600080611418856138f2565b6040516339aa47fb60e01b81529193509150829073__$1cd67d4dc9e627f0bec7928aa480e7d951$__906339aa47fb90611456908590600401619691565b602060405180830381865af4158015611473573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611497919061972d565b935093505050915091565b60606000806114b86114b386619746565b6164fb565b91509150816114fc5760408051600080825260208201909252906114f2565b6114df618762565b8152602001906001900390816114d75790505b5092505050611403565b600e8101546001600160401b03851681811061154f576040805160008082526020820190925290611543565b611530618762565b8152602001906001900390816115285790505b50945050505050611403565b600061155b8284619768565b90506000816001600160401b0381111561157757611577618f1e565b6040519080825280602002602001820160405280156115b057816020015b61159d618762565b8152602001906001900390816115955790505b50905060005b8281101561199657600e86016115cc858361977b565b815481106115dc576115dc6195db565b60009182526020918290206040805161018081018252600c90930290910180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561167b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161165d575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906116b5906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546116e1906195a7565b801561172e5780601f106117035761010080835404028352916020019161172e565b820191906000526020600020905b81548152906001019060200180831161171157829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156117bf57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116117a1575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906117f9906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054611825906195a7565b80156118725780601f1061184757610100808354040283529160200191611872565b820191906000526020600020905b81548152906001019060200180831161185557829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916118cd906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546118f9906195a7565b80156119465780601f1061191b57610100808354040283529160200191611946565b820191906000526020600020905b81548152906001019060200180831161192957829003601f168201915b505050919092525050508152600b919091015460ff1615156020909101528251839083908110611978576119786195db565b6020026020010181905250808061198e9061978e565b9150506115b6565b5098975050505050505050565b6119ab616642565b60115460ff16156119ce5760405162dc149f60e41b815260040160405180910390fd5b600180546001600160401b03909216600160401b02600160401b600160801b03199092169190911781556011805460ff19169091179055565b611a0f6166d9565b611a1761676e565b600073__$33b79814e84bf6cf5e47244090b19ce5f8$__6399aa0eb4843385611a607f000000000000000000000000000000000000000000000000000000000000000034619768565b6040518563ffffffff1660e01b8152600401611a7f949392919061991f565b600060405180830381865af4158015611a9c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ac49190810190619b80565b9050611acf816167af565b611b78611adb84619746565b604051632cff562160e11b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__916359feac4291611b119190600401619451565b602060405180830381865af4158015611b2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b529190619c9d565b7f0000000000000000000000000000000000000000000000000000000000000000616a7c565b505050565b7f0000000000000000000000000000000000000000000000000000000000000000341015611bbe57604051631036b5ad60e31b815260040160405180910390fd5b604080518082018252600480546001600160401b0316825260058054845160208281028201810190965281815260009580860193919290830182828015611c2e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611c10575b50505091909252505060405163aa5106cb60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263aa5106cb9250611c6f913390600401619cba565b600060405180830381865af4158015611c8c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cb49190810190619ce4565b9050600080611cc2836164fb565b915091508115611ce557604051631b538cdf60e11b815260040160405180910390fd5b82516004820180546001600160401b0319166001600160401b039092169190911781556020808501518051869392611d24926005870192910190618782565b505034600183810191909155825460ff1916178255504360028201556040516390ba52cf60e01b815260089073__$a0fe38a9a81205afccc10810b09a4d3f45$__906390ba52cf90611d7a908790600401619451565b602060405180830381865af4158015611d97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dbb919061972d565b815460018181018455600093845260208420909101919091556006805491929091611df09084906001600160401b0316619d18565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550505050565b611e2161676e565b600081815260096020908152604080832081516101808101835281546001600160401b03166101408201908152600183018054855181880281018801875281815294979687966121b5968a958795928601948794869461010089019487948694909386936101608d0193929091830182828015611ec757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611ea9575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190611f01906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054611f2d906195a7565b8015611f7a5780601f10611f4f57610100808354040283529160200191611f7a565b820191906000526020600020905b815481529060010190602001808311611f5d57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561200b57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611fed575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190612045906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054612071906195a7565b80156120be5780601f10612093576101008083540402835291602001916120be565b820191906000526020600020905b8154815290600101906020018083116120a157829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191612119906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054612145906195a7565b80156121925780601f1061216757610100808354040283529160200191612192565b820191906000526020600020905b81548152906001019060200180831161217557829003601f168201915b505050919092525050508152600b919091015460ff161515602090910152616ada565b60088501546040805180820182526004880180546001600160401b031682526005890180548451602082810282018101909652818152979950959750939560009592949193808601939192919083018282801561223b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161221d575b50505091909252505060405163089032d560e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263089032d5925061227c916004908101619dae565b600060405180830381865af4158015612299573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122c19190810190619ce4565b600087815260096020526040812080546001600160401b03191681559192508181818181816122f360018301826187e7565b505060028201805460ff1916815560006123106003850182618805565b505050506004820180546001600160401b03191681556000818161233760058701826187e7565b505060028201805460ff1916815560006123546003850182618805565b50506000600885018190556009850180546001600160601b03191690556123819250600a85019150618805565b505050600b01805460ff1916905561239b82828686616e4a565b60006123c77f000000000000000000000000000000000000000000000000000000000000000034619768565b905080156123d9576123d93382616ea2565b50505050505050565b600a602090815260009182526040918290208251808401845281546001600160401b0316815260018201805485518186028101860190965280865292949193859385820193929183018282801561246257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612444575b5050509190925250505060028201546003830154600684015460078501805494956001600160401b03909416949293919261249c906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546124c8906195a7565b80156125155780601f106124ea57610100808354040283529160200191612515565b820191906000526020600020905b8154815290600101906020018083116124f857829003601f168201915b5050505050905085565b6125276166d9565b61252f61676e565b3461253a8280619dd3565b604001351461255c57604051631036b5ad60e31b815260040160405180910390fd5b6125668180619dd3565b6125709080619df3565b61257a9080619df3565b61258390619746565b60405163c836244d60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9163c836244d916125bb91906004908101619dae565b602060405180830381865af41580156125d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125fc9190619e09565b61261957604051638481de4960e01b815260040160405180910390fd5b60008061262d6126288461a026565b616ada565b9092509050611b7861263f8480619dd3565b6040013561264d8580619dd3565b61265b906020810190619df3565b6126659080619df3565b61266e90619746565b60405163089032d560e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9163089032d5916126a691906004908101619dae565b600060405180830381865af41580156126c3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526126eb9190810190619ce4565b8484616e4a565b6000806126fe33616f37565b915091508161272057604051630e991abd60e41b815260040160405180910390fd5b60038101541561274357604051637c67c70160e11b815260040160405180910390fd5b600180820154600680549192916000906127679084906001600160401b031661a032565b82546101009290920a6001600160401b0381810219909316918316021790915560408051808201825260048601805490931681526005860180548351602080830282018101909552818152600796506000959394808601939192908301828280156127fb57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116127dd575b5050509190925250506040516390ba52cf60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__926390ba52cf925061283a91600401619451565b602060405180830381865af4158015612857573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061287b919061972d565b81526020810191909152604001600090812080546001600160881b03191681556001810182905560028101829055600381018290556004810180546001600160401b0319168155909190816128d360058501826187e7565b50506006820180546001600160401b0319168155600081816128f860078701826187e7565b50506002820180546001600160401b031916905560006003830181905561292390600484019061883f565b612931600583016000618860565b60068201600090556007820160006129499190618805565b5061295a9050600e8301600061883f565b50611b7890503382616ea2565b61296f61706c565b806000036129905760405163c79cad7b60e01b815260040160405180910390fd5b60008061299c33616f37565b91509150816129be57604051630e991abd60e41b815260040160405180910390fd5b82816001015410156129e3576040516379b33e7960e01b815260040160405180910390fd5b828160010160008282546129f79190619768565b909155505060018101547f00000000000000000000000000000000000000000000000000000000000000001115612a3457805460ff191660021781555b6040805180820182526004830180546001600160401b031682526005840180548451602082810282018101909652818152612b3b9589959493818601939091830182828015612aac57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612a8e575b505050919092525050604051632cff562160e11b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__926359feac429250612aeb91600401619451565b602060405180830381865af4158015612b08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b2c9190619c9d565b6001600160a01b031690616ea2565b5050612b476001600055565b50565b60088181548110612b5a57600080fd5b600091825260209091200154905081565b60003411612b8c57604051631036b5ad60e31b815260040160405180910390fd5b600080612b9833616f37565b9150915081612bba57604051630e991abd60e41b815260040160405180910390fd5b34816001016000828254612bce919061977b565b9091555060029050815460ff166005811115612bec57612bec618b64565b03612c28577f0000000000000000000000000000000000000000000000000000000000000000816001015410612c2857805460ff191660011781555b5050565b6008546060906000816001600160401b03811115612c4c57612c4c618f1e565b604051908082528060200260200182016040528015612c8557816020015b612c72618881565b815260200190600190039081612c6a5790505b50905060005b8281101561382257600060088281548110612ca857612ca86195db565b6000918252602080832090910154808352600790915260409182902082516101208101909352805491935090829060ff166005811115612cea57612cea618b64565b6005811115612cfb57612cfb618b64565b815281546001600160401b0361010082048116602080850191909152600160481b90920481166040808501919091526001850154606085015260028501546080850152600385015460a085015280518082018252600486018054909316815260058601805483518187028101870190945280845260c0909601959194858101939290830182828015612db657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612d98575b50505091909252505050815260408051610120810182526006840180546001600160401b031660e0830190815260078601805485516020828102820181019097528181529686019694959394869486936101008701939091830182828015612e4757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612e29575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156132515760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015612f5857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f3a575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190612f92906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054612fbe906195a7565b801561300b5780601f10612fe05761010080835404028352916020019161300b565b820191906000526020600020905b815481529060010190602001808311612fee57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561309c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161307e575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906130d6906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054613102906195a7565b801561314f5780601f106131245761010080835404028352916020019161314f565b820191906000526020600020905b81548152906001019060200180831161313257829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916131aa906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546131d6906195a7565b80156132235780601f106131f857610100808354040283529160200191613223565b820191906000526020600020905b81548152906001019060200180831161320657829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101612eb2565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015613388576000848152602090819020604080516080810182526003860290920180546001600160401b03168383019081526001820180548451818802810188019095528085529495929486949293869360608701939092909183018282801561331457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116132f6575b50505050508152505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561337057602002820191906000526020600020905b81548152602001906001019080831161335c575b5050505050815250508152602001906001019061327e565b505050508152602001600682015481526020016007820180546133aa906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546133d6906195a7565b80156134235780601f106133f857610100808354040283529160200191613423565b820191906000526020600020905b81548152906001019060200180831161340657829003601f168201915b5050505050815250508152602001600e8201805480602002602001604051908101604052809291908181526020016000905b828210156137f45760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d019390918301828280156134fb57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116134dd575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190613535906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054613561906195a7565b80156135ae5780601f10613583576101008083540402835291602001916135ae565b820191906000526020600020905b81548152906001019060200180831161359157829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561363f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613621575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190613679906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546136a5906195a7565b80156136f25780601f106136c7576101008083540402835291602001916136f2565b820191906000526020600020905b8154815290600101906020018083116136d557829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161374d906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054613779906195a7565b80156137c65780601f1061379b576101008083540402835291602001916137c6565b820191906000526020600020905b8154815290600101906020018083116137a957829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101613455565b505050508152505083838151811061380e5761380e6195db565b602090810291909101015250600101612c8b565b5092915050565b6138316166d9565b61383961676e565b600073__$33b79814e84bf6cf5e47244090b19ce5f8$__631860845e600433856138837f000000000000000000000000000000000000000000000000000000000000000034619768565b6040518563ffffffff1660e01b81526004016138a2949392919061a052565b600060405180830381865af41580156138bf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526138e79190810190619b80565b9050612c28816170ca565b60006138fc6188ec565b6001600160401b038084166000908152600a6020908152604091829020825161012081018452815490941660e085019081526001820180548551818602810186019096528086529294869492938693610100870193919083018282801561398c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161396e575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015613d965760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015613a9d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613a7f575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190613ad7906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054613b03906195a7565b8015613b505780601f10613b2557610100808354040283529160200191613b50565b820191906000526020600020905b815481529060010190602001808311613b3357829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015613be157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613bc3575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190613c1b906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054613c47906195a7565b8015613c945780601f10613c6957610100808354040283529160200191613c94565b820191906000526020600020905b815481529060010190602001808311613c7757829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191613cef906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054613d1b906195a7565b8015613d685780601f10613d3d57610100808354040283529160200191613d68565b820191906000526020600020905b815481529060010190602001808311613d4b57829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016139f7565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015613ecd576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015613e5957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613e3b575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015613eb557602002820191906000526020600020905b815481526020019060010190808311613ea1575b50505050508152505081526020019060010190613dc3565b50505050815260200160068201548152602001600782018054613eef906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054613f1b906195a7565b8015613f685780601f10613f3d57610100808354040283529160200191613f68565b820191906000526020600020905b815481529060010190602001808311613f4b57829003601f168201915b5050509190925250508151604051630c133d1360e31b815292935073__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e8989250613fad9190600401619451565b602060405180830381865af4158015613fca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fee9190619e09565b159150915091565b60096020908152600091825260409182902082516101408101845281546001600160401b03166101008201908152600183018054865181870281018701909752808752939592948694869460c086019487948694919386936101208a01939092919083018282801561409157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311614073575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906140cb906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546140f7906195a7565b80156141445780601f1061411957610100808354040283529160200191614144565b820191906000526020600020905b81548152906001019060200180831161412757829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156141d557602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116141b7575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061420f906195a7565b80601f016020809104026020016040519081016040528092919081815260200182805461423b906195a7565b80156142885780601f1061425d57610100808354040283529160200191614288565b820191906000526020600020905b81548152906001019060200180831161426b57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916142e3906195a7565b80601f016020809104026020016040519081016040528092919081815260200182805461430f906195a7565b801561435c5780601f106143315761010080835404028352916020019161435c565b820191906000526020600020905b81548152906001019060200180831161433f57829003601f168201915b50505091909252505050600b9091015460ff1682565b61437a61893b565b604080518082018252600480546001600160401b031682526005805484516020828102820181019096528181529394929383860193909291908301828280156143ec57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116143ce575b505050505081525050905090565b6144026166d9565b61440f6020820182619125565b6144188161730f565b600e546000908152600d6020908152604080832033845290915290205460115460ff16614458576040516321c4e35760e21b815260040160405180910390fd5b8060000361447957604051632ec5b44960e01b815260040160405180910390fd5b73__$33b79814e84bf6cf5e47244090b19ce5f8$__63898414756144a0602086018661a065565b6040518363ffffffff1660e01b81526004016144bd92919061a239565b602060405180830381865af41580156144da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144fe9190619e09565b61451b57604051630bd9169f60e01b815260040160405180910390fd5b600060128161452d6020870187619125565b6001600160401b03166001600160401b031681526020019081526020016000209050600061455d828633866173e5565b905060608115614936576145708361791d565b805480602002602001604051908101604052809291908181526020016000905b8282101561492f5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561463657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311614618575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190614670906195a7565b80601f016020809104026020016040519081016040528092919081815260200182805461469c906195a7565b80156146e95780601f106146be576101008083540402835291602001916146e9565b820191906000526020600020905b8154815290600101906020018083116146cc57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561477a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161475c575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906147b4906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546147e0906195a7565b801561482d5780601f106148025761010080835404028352916020019161482d565b820191906000526020600020905b81548152906001019060200180831161481057829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191614888906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546148b4906195a7565b80156149015780601f106148d657610100808354040283529160200191614901565b820191906000526020600020905b8154815290600101906020018083116148e457829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101614590565b5050505090505b8051600003614d3f5760008061494a61794f565b915091508015614d3c576001600160401b03821660009081526012602052604090206149758161791d565b805480602002602001604051908101604052809291908181526020016000905b82821015614d345760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015614a3b57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311614a1d575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190614a75906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054614aa1906195a7565b8015614aee5780601f10614ac357610100808354040283529160200191614aee565b820191906000526020600020905b815481529060010190602001808311614ad157829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015614b7f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311614b61575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190614bb9906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054614be5906195a7565b8015614c325780601f10614c0757610100808354040283529160200191614c32565b820191906000526020600020905b815481529060010190602001808311614c1557829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191614c8d906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054614cb9906195a7565b8015614d065780601f10614cdb57610100808354040283529160200191614d06565b820191906000526020600020905b815481529060010190602001808311614ce957829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101614995565b505050509350505b50505b604080518082018252600080825282518181526020818101909452614d6a9383019150905282617973565b505050505050565b600080614d7e836164fb565b600e0154949350505050565b6000808080614d9b6114b386619746565b9150915081614db1575060009485945092505050565b546001956101009091046001600160401b0316945092505050565b6000614dd6618881565b614de26114b384619746565b60408051610120810190915281548290829060ff166005811115614e0857614e08618b64565b6005811115614e1957614e19618b64565b815281546001600160401b0361010082048116602080850191909152600160481b90920481166040808501919091526001850154606085015260028501546080850152600385015460a085015280518082018252600486018054909316815260058601805483518187028101870190945280845260c0909601959194858101939290830182828015614ed457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311614eb6575b50505091909252505050815260408051610120810182526006840180546001600160401b031660e0830190815260078601805485516020828102820181019097528181529686019694959394869486936101008701939091830182828015614f6557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311614f47575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b8282101561536f5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561507657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311615058575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906150b0906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546150dc906195a7565b80156151295780601f106150fe57610100808354040283529160200191615129565b820191906000526020600020905b81548152906001019060200180831161510c57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156151ba57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161519c575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906151f4906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054615220906195a7565b801561526d5780601f106152425761010080835404028352916020019161526d565b820191906000526020600020905b81548152906001019060200180831161525057829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916152c8906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546152f4906195a7565b80156153415780601f1061531657610100808354040283529160200191615341565b820191906000526020600020905b81548152906001019060200180831161532457829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101614fd0565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b828210156154a6576000848152602090819020604080516080810182526003860290920180546001600160401b03168383019081526001820180548451818802810188019095528085529495929486949293869360608701939092909183018282801561543257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311615414575b50505050508152505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561548e57602002820191906000526020600020905b81548152602001906001019080831161547a575b5050505050815250508152602001906001019061539c565b505050508152602001600682015481526020016007820180546154c8906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546154f4906195a7565b80156155415780601f1061551657610100808354040283529160200191615541565b820191906000526020600020905b81548152906001019060200180831161552457829003601f168201915b5050505050815250508152602001600e8201805480602002602001604051908101604052809291908181526020016000905b828210156159125760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561561957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116155fb575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190615653906195a7565b80601f016020809104026020016040519081016040528092919081815260200182805461567f906195a7565b80156156cc5780601f106156a1576101008083540402835291602001916156cc565b820191906000526020600020905b8154815290600101906020018083116156af57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561575d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161573f575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190615797906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546157c3906195a7565b80156158105780601f106157e557610100808354040283529160200191615810565b820191906000526020600020905b8154815290600101906020018083116157f357829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161586b906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054615897906195a7565b80156158e45780601f106158b9576101008083540402835291602001916158e4565b820191906000526020600020905b8154815290600101906020018083116158c757829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101615573565b50505091525092969095509350505050565b60115460ff16615947576040516321c4e35760e21b815260040160405180910390fd5b336159e36159558380619df3565b61595e90619746565b604051632cff562160e11b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__916359feac42916159949190600401619451565b602060405180830381865af41580156159b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906159d59190619c9d565b6001600160a01b03166179ab565b6001600160a01b031614615a0a57604051637f39132760e11b815260040160405180910390fd5b6000615a1533616f37565b915060019050815460ff166005811115615a3157615a31618b64565b14615a4f5760405163c18316bf60e01b815260040160405180910390fd5b615a5f6040830160208401619125565b60088201546001600160401b03918216911610615a8f5760405163fae4eadb60e01b815260040160405180910390fd5b60a0820135156161995760408051610120810182526006830180546001600160401b031660e08301908152600785018054855160208281028201810190975281815294959394869486936101008701939091830182828015615b1a57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311615afc575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015615f245760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015615c2b57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311615c0d575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190615c65906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054615c91906195a7565b8015615cde5780601f10615cb357610100808354040283529160200191615cde565b820191906000526020600020905b815481529060010190602001808311615cc157829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015615d6f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311615d51575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190615da9906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054615dd5906195a7565b8015615e225780601f10615df757610100808354040283529160200191615e22565b820191906000526020600020905b815481529060010190602001808311615e0557829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191615e7d906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054615ea9906195a7565b8015615ef65780601f10615ecb57610100808354040283529160200191615ef6565b820191906000526020600020905b815481529060010190602001808311615ed957829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101615b85565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b8282101561605b576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015615fe757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311615fc9575b50505050508152505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561604357602002820191906000526020600020905b81548152602001906001019080831161602f575b50505050508152505081526020019060010190615f51565b5050505081526020016006820154815260200160078201805461607d906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546160a9906195a7565b80156160f65780601f106160cb576101008083540402835291602001916160f6565b820191906000526020600020905b8154815290600101906020018083116160d957829003601f168201915b5050509190925250506040516339aa47fb60e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__926339aa47fb925061613591600401619691565b602060405180830381865af4158015616152573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616176919061972d565b8260a0013514616199576040516312232e5d60e11b815260040160405180910390fd5b60008060006161a66179f2565b92509250925082616205576004805482546001600160401b0319166001600160401b039091161782556005805483916161e491600184019190618953565b5050506002810180546001600160401b0319166001600160401b0384161790555b60405163445cc97560e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__9063445cc975906162469084908990600f90601090899060040161a2f8565b60006040518083038186803b15801561625e57600080fd5b505af4158015616272573d6000803e3d6000fd5b50505050600080868060600190616289919061a065565b9050905060005b818110156162e9576162a5606089018961a065565b828181106162b5576162b56195db565b90506020028101906162c79190619df3565b6162d19080619dd3565b6162df90604001358461977b565b9250600101616290565b5060038301546162fd90604089013561977b565b616307908361977b565b9150818660030154101561632e57604051631d36ca1560e21b815260040160405180910390fd5b818660030160008282546163429190619768565b9091555087905060068701616357828261ad54565b5061638b90506163678880619df3565b61637090619746565b61637d60608a018a61a065565b6163869161aecf565b617973565b6123d9338860400135616a7c565b6163a1616642565b80518251146163c35760405163465f0a7d60e01b815260040160405180910390fd5b600e600081546163d29061978e565b909155508151600090815b8181101561649b5760008582815181106163f9576163f96195db565b6020026020010151905060006001600160a01b0316816001600160a01b031614616492576000858381518110616431576164316195db565b602002602001015190508060000361645c5760405163389b457d60e01b815260040160405180910390fd5b600e546000908152600d602090815260408083206001600160a01b0386168452909152902081905561648e818661977b565b9450505b506001016163dd565b5050600c555050565b6164ac61706c565b806000036164cd5760405163c79cad7b60e01b815260040160405180910390fd5b6000806164d933616f37565b9150915081612a3457604051630e991abd60e41b815260040160405180910390fd5b600080600760008473__$a0fe38a9a81205afccc10810b09a4d3f45$__6390ba52cf90916040518263ffffffff1660e01b815260040161653b9190619451565b602060405180830381865af4158015616558573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061657c919061972d565b81526020808201929092526040908101600020815180830183526004820180546001600160401b03168252600583018054855181880281018801909652808652939650919490938582019390929183018282801561660357602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116165e5575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e8989250613fad91600401619451565b604051635d3f8a6960e01b815273__$e800e3908cdbb6b1b5bd452383a17b18f7$__90635d3f8a699061667990339060040161aedc565b602060405180830381865af4158015616696573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906166ba9190619e09565b6166d75760405163f0d97f3b60e01b815260040160405180910390fd5b565b604051630972932760e21b815273__$e800e3908cdbb6b1b5bd452383a17b18f7$__906325ca4c9c9061671090339060040161aedc565b602060405180830381865af415801561672d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906167519190619e09565b6166d757604051630a23da2b60e31b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000003410156166d7576040516334472ad760e11b815260040160405180910390fd5b8051602001515160405163089032d560e01b815260009173__$a0fe38a9a81205afccc10810b09a4d3f45$__9163089032d5916167f0916004908101619dae565b600060405180830381865af415801561680d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526168359190810190619ce4565b9050600080616843836164fb565b915091508161686557604051630e991abd60e41b815260040160405180910390fd5b805484516101009091046001600160401b0316606090910181905260019082908290616892908290619d18565b92506101000a8154816001600160401b0302191690836001600160401b031602179055508360000151604001518160030160008282546168d2919061977b565b9091555050600e810180546001808201835560009283526020928390208751805180518051600c90960290930180546001600160401b0319166001600160401b039096169590951785558286015180518b979395879593948694938593616940938501929190910190618782565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190616976908261aef0565b50505050602083810151805180516004860180546001600160401b0319166001600160401b039092169190911781558184015180519395509093919284926169c5926005890192910190618782565b505050602082810151805160028401805460ff191660ff9092169190911781559181015190919060038401906169fb908261aef0565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a820190616a58908261aef0565b50505060209190910151600b909101805460ff191691151591909117905550505050565b80600003616a88575050565b611b78616a9d836001600160a01b03166179ab565b6040805160248082018690528251808303909101815260449091019091526020810180516001600160e01b0316632a7edd8f60e21b179052617b34565b80516020015151604051630c133d1360e31b8152600091829173__$a0fe38a9a81205afccc10810b09a4d3f45$__90636099e89890616b1d908490600401619451565b602060405180830381865af4158015616b3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616b5e9190619e09565b15616b7c5760405163461e815d60e01b815260040160405180910390fd5b60405163c836244d60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9063c836244d90616bb59084906004908101619dae565b602060405180830381865af4158015616bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616bf69190619e09565b15616c1457604051632f3335ff60e21b815260040160405180910390fd5b835180515160405163f47ad7eb60e01b8152909160009173__$386b5c41ce93e8b832daf8008b3d30ae09$__9163f47ad7eb91616c569190600490810161afaa565b602060405180830381865af4158015616c73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616c97919061afbd565b905060006001826001811115616caf57616caf618b64565b03616daf57604051631ccc893360e11b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__90633999126690616ced908790879060040161afde565b600060405180830381865af4158015616d0a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052616d329190810190619ce4565b60405163c836244d60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9163c836244d91616d6a91906004908101619dae565b602060405180830381865af4158015616d87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616dab9190619e09565b1590505b8015616dd357616dbe876170ca565b50509351604001511515946000945092505050565b6000826001811115616de757616de7618b64565b03616e3157600b8054600890616e0c90600160401b90046001600160401b031661b003565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b616e3a876167af565b5060009660019650945050505050565b8115616e5b57616e5b606385616ea2565b8015616e9c57604051632cff562160e11b8152616e9c9073__$a0fe38a9a81205afccc10810b09a4d3f45$__906359feac4290611b11908790600401619451565b50505050565b80471015616ec35760405163356680b760e01b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114616f10576040519150601f19603f3d011682016040523d82523d6000602084013e616f15565b606091505b5050905080611b7857604051633204506f60e01b815260040160405180910390fd5b6000806001600160a01b038316616f61576040516370e4510960e01b815260040160405180910390fd5b604080518082018252600480546001600160401b0316825260058054845160208281028201810190965281815260009580860193919290830182828015616fd157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311616fb3575b50505091909252505060405163aa5106cb60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263aa5106cb9250617012918890600401619cba565b600060405180830381865af415801561702f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526170579190810190619ce4565b9050617062816164fb565b9250925050915091565b6002600054036170c35760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b6002600055565b60006170d46179f2565b600b5485516001600160401b039091166060909101526003810180549194507f00000000000000000000000000000000000000000000000000000000000000009350915060009061712690849061977b565b90915550506004810180546001808201835560009283526020928390208551805180518051600c90960290930180546001600160401b0319166001600160401b0390961695909517855582860151805189979395879593948694938593617194938501929190910190618782565b505050602082810151805160028401805460ff191660ff9092169190911781559181015190919060038401906171ca908261aef0565b50505050602083810151805180516004860180546001600160401b0319166001600160401b03909216919091178155818401518051939550909391928492617219926005890192910190618782565b505050602082810151805160028401805460ff191660ff90921691909117815591810151909190600384019061724f908261aef0565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a8201906172ac908261aef0565b50505060209190910151600b918201805460ff19169115159190911790558054600191906000906172e79084906001600160401b0316619d18565b92506101000a8154816001600160401b0302191690836001600160401b031602179055505050565b6001546001600160401b039081169082161161733e57604051631f30cc6360e21b815260040160405180910390fd5b6001546001600160401b03600160401b909104811690821610156173755760405163b4f68f9760e01b815260040160405180910390fd5b6001547f0000000000000000000000000000000000000000000000000000000000000000906173b490600160401b90046001600160401b03168361a032565b6173be919061b047565b6001600160401b031615612b475760405163b4f68f9760e01b815260040160405180910390fd5b6000806173f18561b06d565b604051630edf122560e41b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__9163edf1225091617427919060040161b0cd565b602060405180830381865af4158015617444573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190617468919061972d565b90506174868682868661747e60208b018b619125565b600c54617b7f565b600082815260058801602090815260408083208151808301835281546001600160401b03168152600182018054845181870281018701909552808552969850909591948685019491929184015b828210156178725760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561757957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161755b575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906175b3906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546175df906195a7565b801561762c5780601f106176015761010080835404028352916020019161762c565b820191906000526020600020905b81548152906001019060200180831161760f57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156176bd57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161769f575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906176f7906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054617723906195a7565b80156177705780601f1061774557610100808354040283529160200191617770565b820191906000526020600020905b81548152906001019060200180831161775357829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916177cb906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546177f7906195a7565b80156178445780601f1061781957610100808354040283529160200191617844565b820191906000526020600020905b81548152906001019060200180831161782757829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016174d3565b50505091525050604051632d34315760e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__91632d343157916178af919060040161b0cd565b602060405180830381865af41580156178cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906178f09190619e09565b1561791457600081815260058701602052604090208590617911828261b0fa565b50505b50949350505050565b6002810154600090815260058201602052604081208054617946906001600160401b0316617db2565b60010192915050565b600254600160401b90046001600160401b0316600061796d82617eee565b90509091565b805160005b81811015616e9c576179a384848381518110617996576179966195db565b6020026020010151617f43565b600101617978565b60008060006179b9846183e4565b91509150816179ca57509192915050565b6000806179d683618416565b91509150816179e9575093949350505050565b95945050505050565b6000806000617a21437f0000000000000000000000000000000000000000000000000000000000000000618480565b6001600160401b038082166000908152600a60209081526040918290208251808401845281549094168452600181018054845181850281018501909552808552959750909550929385938583019392909190830182828015617aac57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311617a8e575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e8989250617aeb91600401619451565b602060405180830381865af4158015617b08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190617b2c9190619e09565b159250909192565b6060617b78838360006040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c656400008152506184a2565b9392505050565b8554600081815260038801602090815260408083206001600160a01b038916845290915281205490919060ff1615617bca576040516337138f5f60e11b815260040160405180910390fd5b600081815260038901602090815260408083206001600160a01b038a1684529091528120805460ff1916600190811790915589018054879290617c0e90849061977b565b9091555050600081815260048901602090815260408083208a845290915281208054879290617c3e90849061977b565b90915550506000818152600489016020908152604080832060028c015484529091528082205489835291205480821015617c7a5760028a018990555b6000617c868b8761857f565b90506003816003811115617c9c57617c9c618b64565b03617d2757617caa87617eee565b15617cb85760019450617da4565b60405163199b9ca560e01b815273__$b7b8687e33476c74e3b4e0a64c4768a343$__9063199b9ca590617cf2906002908b9060040161b212565b60006040518083038186803b158015617d0a57600080fd5b505af4158015617d1e573d6000803e3d6000fd5b50505050617da4565b6002816003811115617d3b57617d3b618b64565b03617da457604051635a27a53960e11b8152600481018c905273__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063b44f4a729060240160006040518083038186803b158015617d8b57600080fd5b505af4158015617d9f573d6000803e3d6000fd5b505050505b505050509695505050505050565b617dbb81617eee565b617dc25750565b604051634953836d60e11b815273__$b7b8687e33476c74e3b4e0a64c4768a343$__906392a706da90617dfc90600290859060040161b212565b602060405180830381865af4158015617e19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190617e3d9190619e09565b15617e61576002546001600160401b03828116600160401b9092041614617e615750565b6040516394ecccfd60e01b815273__$b7b8687e33476c74e3b4e0a64c4768a343$__906394ecccfd90617e9b90600290859060040161b212565b60006040518083038186803b158015617eb357600080fd5b505af4158015617ec7573d6000803e3d6000fd5b5050600180546001600160401b0319166001600160401b0394909416939093179092555050565b600154600090617f28907f0000000000000000000000000000000000000000000000000000000000000000906001600160401b0316619d18565b6001600160401b0316826001600160401b0316149050919050565b80516020015151604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__91636099e89891617f809190600401619451565b602060405180830381865af4158015617f9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190617fc19190619e09565b15617fdf5760405163461e815d60e01b815260040160405180910390fd5b8051608001516001600160e01b031916618019578051604001514710156180195760405163569d45cf60e11b815260040160405180910390fd5b805160405163f47ad7eb60e01b815260009173__$386b5c41ce93e8b832daf8008b3d30ae09$__9163f47ad7eb9161805591600490810161afaa565b602060405180830381865af4158015618072573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190618096919061afbd565b8251602001515160405163c836244d60e01b815291925073__$a0fe38a9a81205afccc10810b09a4d3f45$__9163c836244d916180d7916004908101619dae565b602060405180830381865af41580156180f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906181189190619e09565b1561838057600181600181111561813157618131618b64565b0361826657604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__90636099e8989061816d908690600401619451565b602060405180830381865af415801561818a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906181ae9190619e09565b618266576000806181be856164fb565b91509150816181e057604051630e991abd60e41b815260040160405180910390fd5b8351606001518154600160481b90046001600160401b0390811691161461821a5760405163a57cadff60e01b815260040160405180910390fd5b8054600190829060099061823f908490600160481b90046001600160401b0316619d18565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555050505b600081600181111561827a5761827a618b64565b0361830457815160600151600b54600160401b90046001600160401b039081169116146182ba5760405163a57cadff60e01b815260040160405180910390fd5b6001600b60088282829054906101000a90046001600160401b03166182df9190619d18565b92506101000a8154816001600160401b0302191690836001600160401b031602179055505b604051635c46fefb60e11b815273__$33b79814e84bf6cf5e47244090b19ce5f8$__9063b88dfdf69061833b908590600401619112565b600060405180830381865af4158015618358573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052616e9c919081019061b229565b600061838b83618694565b6000818152600960209081526040909120855180518051805184546001600160401b0319166001600160401b03909116178455808501518051969750899694959394869485939284926169409260018501920190618782565b600080600160401b600160a01b03831660ff60981b810361841057600192506001600160401b03841691505b50915091565b600080826000526016600a602060006002607f60991b015afa9150600051806001600160a01b031691508060a01c61ffff16905061040a811461845c5760009250600091505b5081158061846b57503d601614155b1561847b57506000928392509050565b915091565b60008161848d818561b25d565b618498906001619d18565b617b78919061b283565b6060824710156185035760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016170ba565b600080866001600160a01b0316858760405161851f919061b2ae565b60006040518083038185875af1925050503d806000811461855c576040519150601f19603f3d011682016040523d82523d6000602084013e618561565b606091505b5091509150618572878383876186c4565b925050505b949350505050565b60008060646185b160ff7f0000000000000000000000000000000000000000000000000000000000000000168561a422565b6185bb919061b2c0565b604051637d2ef4e560e11b81526004810186905290915060009073__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063fa5de9ca90602401602060405180830381865af4158015618611573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190618635919061972d565b90508185600101541161864d57600092505050611403565b8181111561866057600392505050611403565b600185015461866f9085619768565b6186798284619768565b1061868957600292505050611403565b506001949350505050565b6000816040516020016186a79190619112565b604051602081830303815290604052805190602001209050919050565b6060831561873357825160000361872c576001600160a01b0385163b61872c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016170ba565b5081618577565b61857783838151156187485781518083602001fd5b8060405162461bcd60e51b81526004016170ba919061b2d4565b6040518060400160405280618775618993565b8152600060209091015290565b8280548282559060005260206000209081019282156187d7579160200282015b828111156187d757825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906187a2565b506187e39291506189e8565b5090565b5080546000825590600052602060002090810190612b4791906189e8565b508054618811906195a7565b6000825580601f10618821575050565b601f016020900490600052602060002090810190612b4791906189e8565b50805460008255600c0290600052602060002090810190612b4791906189fd565b5080546000825560030290600052602060002090810190612b479190618acd565b604080516101208101909152806000815260200160006001600160401b0316815260200160006001600160401b031681526020016000815260200160008152602001600081526020016188d261893b565b81526020016188df6188ec565b8152602001606081525090565b6040518060e001604052806188ff61893b565b815260200160006001600160401b0316815260200160008152602001606081526020016060815260200160008019168152602001606081525090565b60408051808201909152600081526060602082015290565b8280548282559060005260206000209081019282156187d75760005260206000209182015b828111156187d7578254825591600101919060010190618978565b6040518060c001604052806189a6618b0e565b81526020016189b3618b0e565b81526020016000815260200160006001600160401b0316815260200160006001600160e01b0319168152602001606081525090565b5b808211156187e357600081556001016189e9565b808211156187e35780546001600160401b03191681556000818181818181618a2860018301826187e7565b505060028201805460ff191681556000618a456003850182618805565b505050506004820180546001600160401b031916815560008181618a6c60058701826187e7565b505060028201805460ff191681556000618a896003850182618805565b50506000600885018190556009850180546001600160601b0319169055618ab69250600a85019150618805565b505050600b8101805460ff19169055600c016189fd565b808211156187e35780546001600160401b031916815560008181618af460018301826187e7565b50618b0590506002830160006187e7565b50600301618acd565b6040518060400160405280618b2161893b565b8152602001618b466040518060400160405280600060ff168152602001606081525090565b905290565b600060208284031215618b5d57600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60068110618b9857634e487b7160e01b600052602160045260246000fd5b9052565b80516001600160401b03168252602080820151604082850181905281519085018190526000929182019190839060608701905b80831015618bf85784516001600160a01b03168252938301936001929092019190830190618bcf565b509695505050505050565b60005b83811015618c1e578181015183820152602001618c06565b50506000910152565b60008151808452618c3f816020860160208601618c03565b601f01601f19169290920160200192915050565b6000815160408452618c686040850182618b9c565b90506020830151848203602086015260ff815116825260208101519050604060208301526179e96040830182618c27565b6000815160c08452618cae60c0850182618c53565b905060208301518482036020860152618cc78282618c53565b9150506040830151604085015260018060401b03606084015116606085015263ffffffff60e01b608084015116608085015260a083015184820360a08601526179e98282618c27565b6000815160408452618d256040850182618c99565b6020938401511515949093019390935250919050565b600081518084526020808501808196508360051b8101915082860160005b85811015618d83578284038952618d71848351618d10565b98850198935090840190600101618d59565b5091979650505050505050565b6000815160e08452618da560e0850182618b9c565b9050602060018060401b038185015116818601526040808501518187015260608501518684036060880152618dda8482618d3b565b935050608085015186840360808801528381518086528486019150848160051b87010185840193506000805b83811015618e7a57888303601f1901855285518051888552618e2a89860182618b9c565b918a0151858303868c01528051808452908b01928592508b01905b80831015618e655783518252928b019260019290920191908b0190618e45565b50978a0197968a019694505050600101618e06565b505060a089015160a08b015260c0890151965089810360c08b0152618e9f8188618c27565b9a9950505050505050505050565b6000610100618ebc838c618b7a565b6001600160401b038a8116602085015289166040840152606083018890526080830187905260a0830186905260c08301819052618efb81840186618b9c565b905082810360e0840152618f0f8185618d90565b9b9a5050505050505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715618f5657618f56618f1e565b60405290565b60405160c081016001600160401b0381118282101715618f5657618f56618f1e565b604051601f8201601f191681016001600160401b0381118282101715618fa657618fa6618f1e565b604052919050565b6001600160401b0381168114612b4757600080fd5b8035618fce81618fae565b919050565b60006001600160401b03821115618fec57618fec618f1e565b5060051b60200190565b6001600160a01b0381168114612b4757600080fd5b600082601f83011261901c57600080fd5b8135602061903161902c83618fd3565b618f7e565b82815260059290921b8401810191818101908684111561905057600080fd5b8286015b84811015618bf857803561906781618ff6565b8352918301918301619054565b60006040828403121561908657600080fd5b61908e618f34565b9050813561909b81618fae565b815260208201356001600160401b038111156190b657600080fd5b6190c28482850161900b565b60208301525092915050565b600080604083850312156190e157600080fd5b82356001600160401b038111156190f757600080fd5b61910385828601619074565b95602094909401359450505050565b602081526000617b786020830184618d10565b60006020828403121561913757600080fd5b8135617b7881618fae565b60006040828403121561915457600080fd5b50919050565b6000806040838503121561916d57600080fd5b82356001600160401b0381111561918357600080fd5b61918f85828601619142565b92505060208301356191a081618fae565b809150509250929050565b602081526000617b786020830184618d3b565b600080604083850312156191d157600080fd5b82356001600160401b03808211156191e857600080fd5b6191f486838701619142565b9350602085013591508082111561920a57600080fd5b5061921785828601619142565b9150509250929050565b6000806040838503121561923457600080fd5b8235915060208301356191a081618ff6565b60a08152600061925960a0830188618b9c565b6001600160401b0387166020840152604083018690526060830185905282810360808401526192888185618c27565b98975050505050505050565b6000602082840312156192a657600080fd5b81356001600160401b038111156192bc57600080fd5b61857784828501619142565b60006101206192d8848451618b7a565b60208301516192f260208601826001600160401b03169052565b50604083015161930d60408601826001600160401b03169052565b50606083015160608501526080830151608085015260a083015160a085015260c08301518160c086015261934382860182618b9c565b91505060e083015184820360e086015261935d8282618d90565b91505061010080840151858303828701526193788382618d3b565b9695505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156193d757603f198886030184526193c58583516192c8565b945092850192908501906001016193a9565b5092979650505050505050565b600080604083850312156193f757600080fd5b823561940281618fae565b915060208301356191a081618ff6565b82151581526040602082015260006185776040830184618d90565b6040815260006194406040830185618c99565b905082151560208301529392505050565b602081526000617b786020830184618b9c565b60006020828403121561947657600080fd5b81356001600160401b0381111561948c57600080fd5b61857784828501619074565b821515815260406020820152600061857760408301846192c8565b6000602082840312156194c557600080fd5b81356001600160401b038111156194db57600080fd5b820160e08185031215617b7857600080fd5b6000806040838503121561950057600080fd5b82356001600160401b038082111561951757600080fd5b6195238683870161900b565b935060209150818501358181111561953a57600080fd5b85019050601f8101861361954d57600080fd5b803561955b61902c82618fd3565b81815260059190911b8201830190838101908883111561957a57600080fd5b928401925b828410156195985783358252928401929084019061957f565b80955050505050509250929050565b600181811c908216806195bb57607f821691505b60208210810361915457634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501808196508360051b810191508286016000805b86811015619683578385038a5282516040815181885261963282890182618b9c565b92890151888403898b01528051808552908a01938693508a0191505b8083101561966e578351825292890192600192909201919089019061964e565b509b88019b9650505091850191600101619610565b509298975050505050505050565b602081526000825160e060208401526196ae610100840182618b9c565b905060018060401b036020850151166040840152604084015160608401526060840151601f19808584030160808601526196e88383618d3b565b925060808601519150808584030160a086015261970583836195f1565b925060a086015160c086015260c08601519150808584030160e0860152506179e98282618c27565b60006020828403121561973f57600080fd5b5051919050565b60006114033683619074565b634e487b7160e01b600052601160045260246000fd5b8181038181111561140357611403619752565b8082018082111561140357611403619752565b6000600182016197a0576197a0619752565b5060010190565b6000808335601e198436030181126197be57600080fd5b83016020810192503590506001600160401b038111156197dd57600080fd5b8060051b36038213156197ef57600080fd5b9250929050565b600060408301823561980781618fae565b6001600160401b031684526020619820848201856197a7565b6040878401529283905291600090606087015b8183101561986357843561984681618ff6565b6001600160a01b0316815293830193600192909201918301619833565b979650505050505050565b60ff81168114612b4757600080fd5b6000808335601e1984360301811261989457600080fd5b83016020810192503590506001600160401b038111156198b357600080fd5b8036038213156197ef57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600081356198f88161986e565b60ff16835261990a602083018361987d565b604060208601526179e96040860182846198c2565b60808152600061993260808301876197f6565b6001600160a01b0386166020840152828103604084015261995381866198eb565b91505082606083015295945050505050565b8051618fce81618fae565b60006040828403121561998257600080fd5b61998a618f34565b9050815161999781618fae565b81526020828101516001600160401b038111156199b357600080fd5b8301601f810185136199c457600080fd5b80516199d261902c82618fd3565b81815260059190911b820183019083810190878311156199f157600080fd5b928401925b82841015619a18578351619a0981618ff6565b825292840192908401906199f6565b8085870152505050505092915050565b60006001600160401b03821115619a4157619a41618f1e565b50601f01601f191660200190565b600082601f830112619a6057600080fd5b8151619a6e61902c82619a28565b818152846020838601011115619a8357600080fd5b618577826020830160208701618c03565b600060408284031215619aa657600080fd5b619aae618f34565b82519091506001600160401b0380821115619ac857600080fd5b619ad485838601619970565b83526020840151915080821115619aea57600080fd5b9083019060408286031215619afe57600080fd5b619b06618f34565b8251619b118161986e565b8152602083015182811115619b2557600080fd5b619b3187828601619a4f565b60208301525080602085015250505092915050565b6001600160e01b031981168114612b4757600080fd5b8051618fce81619b46565b8015158114612b4757600080fd5b8051618fce81619b67565b600060208284031215619b9257600080fd5b81516001600160401b0380821115619ba957600080fd5b9083019060408286031215619bbd57600080fd5b619bc5618f34565b825182811115619bd457600080fd5b830160c08188031215619be657600080fd5b619bee618f5c565b815184811115619bfd57600080fd5b619c0989828501619a94565b825250602082015184811115619c1e57600080fd5b619c2a89828501619a94565b60208301525060408201516040820152619c4660608301619965565b6060820152619c5760808301619b5c565b608082015260a082015184811115619c6e57600080fd5b619c7a89828501619a4f565b60a083015250825250619c8f60208401619b75565b602082015295945050505050565b600060208284031215619caf57600080fd5b8151617b7881618ff6565b604081526000619ccd6040830185618b9c565b905060018060a01b03831660208301529392505050565b600060208284031215619cf657600080fd5b81516001600160401b03811115619d0c57600080fd5b61857784828501619970565b6001600160401b0381811683821601908082111561382257613822619752565b60009081526020902090565b80546001600160401b031682526040602080840182905260018381018054938601849052600090815282812090939092849160608801905b80841015619da25785546001600160a01b03168252948401949284019290820190619d7c565b50979650505050505050565b604081526000619dc16040830185618b9c565b82810360208401526179e98185619d44565b6000823560be19833603018112619de957600080fd5b9190910192915050565b60008235603e19833603018112619de957600080fd5b600060208284031215619e1b57600080fd5b8151617b7881619b67565b600082601f830112619e3757600080fd5b8135619e4561902c82619a28565b818152846020838601011115619e5a57600080fd5b816020850160208301376000918101602001919091529392505050565b600060408284031215619e8957600080fd5b619e91618f34565b905081356001600160401b0380821115619eaa57600080fd5b619eb685838601619074565b83526020840135915080821115619ecc57600080fd5b9083019060408286031215619ee057600080fd5b619ee8618f34565b8235619ef38161986e565b8152602083013582811115619f0757600080fd5b619b3187828601619e26565b8035618fce81619b46565b8035618fce81619b67565b600060408284031215619f3b57600080fd5b619f43618f34565b905081356001600160401b0380821115619f5c57600080fd5b9083019060c08286031215619f7057600080fd5b619f78618f5c565b823582811115619f8757600080fd5b619f9387828601619e77565b825250602083013582811115619fa857600080fd5b619fb487828601619e77565b60208301525060408301356040820152619fd060608401618fc3565b6060820152619fe160808401619f13565b608082015260a083013582811115619ff857600080fd5b61a00487828601619e26565b60a08301525083525061a01b905060208301619f1e565b602082015292915050565b60006114033683619f29565b6001600160401b0382811682821603908082111561382257613822619752565b6080815260006199326080830187619d44565b6000808335601e1984360301811261a07c57600080fd5b8301803591506001600160401b0382111561a09657600080fd5b6020019150600581901b36038213156197ef57600080fd5b60008235603e1983360301811261a0c457600080fd5b90910192915050565b600061a0d9828361a0ae565b6040845261a0ea60408501826197f6565b905061a0f9602084018461a0ae565b84820360208601526179e982826198eb565b81835260006020808501808196508560051b81019150846000805b88811015619683578385038a5261a13d838961a0ae565b6040813560be1983360301811261a152578485fd5b818852820161a161818061a0ae565b60c080848b015261a1766101008b018361a0cd565b915061a1848b84018461a0ae565b603f196060818d860301818e015261a19c858461a0cd565b94506080925086860135838e01528086013596505061a1ba86618fae565b60a060018060401b038716818e015282860135965061a1d887619b46565b6001600160e01b031987168d85015261a1f38682018761987d565b9750955050808c85030160e08d015250505061a2108184846198c2565b9250505061a21f888301619f1e565b15159688019690965250988501989185019160010161a126565b60208152600061857760208301848661a10b565b81835260006020808501808196506005915085821b8101856000805b8981101561a2e9578484038b5261a280838a61a0ae565b604061a28c828361a0ae565b81875261a29b828801826197f6565b91505061a2aa898301836197a7565b8783038b89015280835292506001600160fb1b0383111561a2c9578485fd5b91881b918281838c0137509b88019b01870193509186019160010161a269565b50919998505050505050505050565b85815260a06020820152600061a30e868761a0ae565b60e060a084015261a3236101808401826197f6565b9050602087013561a33381618fae565b6001600160401b031660c0840152604087013560e084015261a35860608801886197a7565b609f19808685030161010087015261a37184838561a10b565b935061a38060808b018b6197a7565b93509150808685030161012087015261a39a84848461a24d565b935060a08a013561014087015261a3b460c08b018b61987d565b9350915080868503016101608701525061a3cf8383836198c2565b935050505084604083015283606083015261937860808301846001600160401b03169052565b6000813561140381618fae565b80546001600160401b0319166001600160401b0392909216919091179055565b808202811582820484141761140357611403619752565b5b81811015612c28576000815560010161a43a565b8054600082558015612c2857816000526020600020611b788282018261a439565b600160401b82111561a4835761a483618f1e565b805482825580831015611b7857816000526020600020616e9c82820185830161a439565b60008155612b476001820161a44e565b600019600383901b1c191660019190911b1790565b61a4d681546195a7565b8015612c2857601f81116001811461a4f057505060009055565b82600052602060002061a50e601f840160051c82016001830161a439565b60008085559055505050565b6000815561a52a6001820161a44e565b60006002820155612b476003820161a4cc565b6000808335601e1984360301811261a55457600080fd5b8301803591506001600160401b0382111561a56e57600080fd5b6020019150368190038213156197ef57600080fd5b601f821115611b7857806000526020600020601f840160051c8101602085101561a5aa5750805b61a5bc601f850160051c83018261a439565b5050505050565b6001600160401b0383111561a5da5761a5da618f1e565b61a5ee8361a5e883546195a7565b8361a583565b6000601f84116001811461a61c576000851561a60a5750838201355b61a614868261a4b7565b84555061a5bc565b601f19851661a62a84619d38565b835b8281101561a64c578685013582556020948501946001909201910161a62c565b508682101561a6695760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b61a6858283619df3565b803561a69081618fae565b61a69a818461a402565b506001808301602061a6ae8185018561a065565b94506001600160401b038086111561a6c85761a6c8618f1e565b61a6d2868561a46f565b600093845282842093805b8781101561a6ff57833561a6f081618ff6565b8682015592840192860161a6dd565b5060028801965061a712848a018a619df3565b94508435925061a7218361986e565b865460ff191660ff841617909655600387019561a7408585018661a53d565b955092508185111561a7545761a754618f1e565b61a7688561a76289546195a7565b8961a583565b809150601f85116001811461a7965781861561a7845750838301355b61a78e878261a4b7565b89555061a7ea565b601f19861661a7a489619d38565b835b8281101561a7c3578686013582559487019490890190870161a7a6565b508782101561a7e05760001960f88960031b161c19858701351681555b50508686881b0188555b50505050505050505050565b6000813561140381619b46565b6000813561140381619b67565b813560be1983360301811261a82457600080fd5b820161a8308180619df3565b61a83a8182619df3565b803561a84581618fae565b61a84f818661a402565b506001808501602061a8638185018561a065565b94506001600160401b038086111561a87d5761a87d618f1e565b61a887868561a46f565b600093845282842093805b8781101561a8b457833561a8a581618ff6565b8682015592840192860161a892565b5060028a01965061a8c784890189619df3565b97508735945061a8d68561986e565b865460ff191660ff861617909655600389019561a8f58885018961a53d565b985094508188111561a9095761a909618f1e565b61a9178861a76289546195a7565b809250601f88116001811461a94757819250881561a936578386013592505b61a940898461a4b7565b885561a99c565b601f198916925061a95788619d38565b825b8481101561a976578786013582559486019490880190860161a959565b508984101561a9935760001960f88b60031b161c19858801351681555b508689881b0188555b5050505061a9b861a9af82880188619df3565b6004890161a67b565b6040860135600888015560098701945061a9dd61a9d76060880161a3f5565b8661a402565b61aa1061a9ec6080880161a7f6565b86805463ffffffff60401b191660a09290921c63ffffffff60401b16919091179055565b61aa1d60a087018761a53d565b9650945061aa2f8686600a8a0161a5c3565b61aa5661aa3d828a0161a803565b600b890160ff1981541660ff8315151681178255505050565b5050505050505050565b600160401b83111561aa745761aa74618f1e565b80548382558084101561ab0857600c818102818104831461aa975761aa97619752565b858202828104871461aaab5761aaab619752565b6000858152602081209283019291909101905b8282101561ab035761aacf8261a51a565b61aadb6004830161a51a565b80600883015580600983015561aaf3600a830161a4cc565b80600b830155838201915061aabe565b505050505b508161ab1382619d38565b60005b85811015614d6a5761ab3161ab2b8487619df3565b8361a810565b60209290920191600c919091019060010161ab16565b805460008083558115611b7857828152602081208281015b8082101561a5bc5782825560018201915061ab5f565b600160401b82111561ab895761ab89618f1e565b805482825580831015611b78576000828152602081208481019083015b80821015614d6a5782825560018201915061aba6565b61abc68283619df3565b803561abd181618fae565b61abdb818461a402565b506001808301602061abef8185018561a065565b94506001600160401b038086111561ac095761ac09618f1e565b61ac13868561a46f565b600093845282842093805b8781101561ac4057833561ac3181618ff6565b8682015592840192860161ac1e565b5060028801965061ac53848a018a61a065565b955092508185111561ac675761ac67618f1e565b61ac71858861ab75565b95865250818520945b8381101561aa565781358682015590820190840161ac7a565b600160401b83111561aca75761aca7618f1e565b80548382558084101561ad15576003818102818104831461acca5761acca619752565b858202828104871461acde5761acde619752565b60008581526020902091820191015b8181101561ad115761acfe8161a4a7565b61ad0a6002820161ab47565b820161aced565b5050505b508161ad2082619d38565b60005b85811015614d6a5761ad3e61ad388487619df3565b8361abbc565b602092909201916003919091019060010161ad23565b61ad5e8283619df3565b803561ad6981618fae565b61ad73818461a402565b506001808301602061ad878185018561a065565b94506001600160401b0385111561ada05761ada0618f1e565b61adaa858461a46f565b6000928352818320925b8581101561add657813561adc781618ff6565b8482015590820190840161adb4565b505061adef61ade682880161a3f5565b6002870161a402565b505050506040820135600382015561ae0a606083018361a065565b61ae1881836004860161aa60565b505061ae27608083018361a065565b61ae3581836005860161ac93565b505060a0820135600682015561ae4e60c083018361a53d565b616e9c81836007860161a5c3565b600061ae6a61902c84618fd3565b8381529050602080820190600585901b84018681111561ae8957600080fd5b845b8181101561aec45780356001600160401b0381111561aeaa5760008081fd5b61aeb689828901619f29565b85525092820192820161ae8b565b505050509392505050565b6000617b7836848461ae5c565b6001600160a01b0391909116815260200190565b81516001600160401b0381111561af095761af09618f1e565b61af1d8161af1784546195a7565b8461a583565b602080601f83116001811461af4c576000841561af3a5750858301515b61af44858261a4b7565b865550614d6a565b601f19841661af5a86619d38565b60005b8281101561af7c5788860151825594840194600190910190840161af5d565b508582101561af9a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b604081526000619dc16040830185618c99565b60006020828403121561afcf57600080fd5b815160028110617b7857600080fd5b60408152600061aff16040830185618b9c565b82810360208401526179e98185618b9c565b60006001600160401b038281166002600160401b0319810161b0275761b027619752565b6001019392505050565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b038381168061b0615761b06161b031565b92169190910692915050565b60006040823603121561b07f57600080fd5b61b087618f34565b823561b09281618fae565b815260208301356001600160401b0381111561b0ad57600080fd5b830136601f82011261b0be57600080fd5b6190c23682356020840161ae5c565b602080825282516001600160401b0316828201528201516040808301526000906185776060840182618d3b565b813561b10581618fae565b61b10f818361a402565b506001808201602061b1238186018661a065565b600160401b81111561b1375761b137618f1e565b83548185558082101561b1ca57600c818102818104831461b15a5761b15a619752565b838202828104851461b16e5761b16e619752565b60008881528781209283019291909101905b8282101561b1c55761b1918261a51a565b61b19d6004830161a51a565b80600883015580600983015561b1b5600a830161a4cc565b80600b830155838201915061b180565b505050505b508161b1d585619d38565b945060005b8281101561b2075761b1f561b1ef8386619df3565b8761a810565b600c959095019490840190860161b1da565b505050505050505050565b9182526001600160401b0316602082015260400190565b60006020828403121561b23b57600080fd5b81516001600160401b0381111561b25157600080fd5b61857784828501619a4f565b60006001600160401b038381168061b2775761b27761b031565b92169190910492915050565b6001600160401b0381811683821602808216919082811461b2a65761b2a6619752565b505092915050565b60008251619de9818460208701618c03565b60008261b2cf5761b2cf61b031565b500490565b602081526000617b786020830184618c2756fea264697066735822122065456745baa1dcff41df13b13d38965feddc99868fbf80d1bd8327da15dbd3b464736f6c63430008130033", - "sourceMap": "1685:33077:25:-:0;;;6738:692;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6790:25;;;;6817;;;;1716:1:18;1821:7;:22;2103:3:28;2081:25;;;;2077:90;;;2129:27;;-1:-1:-1;;;2129:27:28;;;;;;;;;;;2077:90;2177:40;;;;;680:2;-1:-1:-1;;;;;2246:41:28;;;:85;;2314:17;2246:85;;;680:2;2246:85;-1:-1:-1;;;;;2227:104:28;;;;;;;2342:15;:41;;-1:-1:-1;;;;;;2342:41:28;;;;;;;;6869:18:25;;6854:33;;:12:::1;:33:::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;6869:18;;-1:-1:-1;6854:12:25;;-1:-1:-1;6854:33:25::1;::::0;;;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;;2345:7:25::1;6897:32;::::0;-1:-1:-1;6961:26:25::1;::::0;::::1;::::0;680:2:28::1;-1:-1:-1::0;;;;;6961:50:25;;::::1;;:127;;7062:6;:26;;;6961:127;;;680:2:28;6961:127:25;-1:-1:-1::0;;;;;6939:149:25;;::::1;;::::0;7119:25:::1;::::0;::::1;::::0;680:2:28::1;7119:49:25::0;::::1;;:125;;7219:6;:25;;;7119:125;;;680:2:28;7119:125:25;-1:-1:-1::0;;;;;7098:146:25;;::::1;;::::0;7268:13:::1;::::0;::::1;::::0;7254:27:::1;::::0;7358:19:::1;::::0;;;;::::1;::::0;;:12:::1;:19:::0;;;;::::1;::::0;;;;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;;;:12;:19;;::::1;::::0;;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;7358:19:25::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;;;7358:19:25;;;;-1:-1:-1;;7358:21:25::1;::::0;-1:-1:-1;;;7358:21:25;;:19:::1;::::0;::::1;::::0;-1:-1:-1;7358:21:25::1;::::0;::::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7354:70;;;7395:11;:18:::0;;-1:-1:-1;;7395:18:25::1;7409:4;7395:18;::::0;;7354:70:::1;6738:692:::0;1685:33077;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1685:33077:25;-1:-1:-1;;;;;1685:33077:25;;;;;;;;;;;-1:-1:-1;1685:33077:25;;;;;;;-1:-1:-1;1685:33077:25;;;-1:-1:-1;1685:33077:25;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:127:60;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:253;218:2;212:9;260:4;248:17;;-1:-1:-1;;;;;280:34:60;;316:22;;;277:62;274:88;;;342:18;;:::i;:::-;378:2;371:22;146:253;:::o;404:257::-;476:4;470:11;;;508:17;;-1:-1:-1;;;;;540:34:60;;576:22;;;537:62;534:88;;;602:18;;:::i;666:275::-;737:2;731:9;802:2;783:13;;-1:-1:-1;;779:27:60;767:40;;-1:-1:-1;;;;;822:34:60;;858:22;;;819:62;816:88;;;884:18;;:::i;:::-;920:2;913:22;666:275;;-1:-1:-1;666:275:60:o;946:175::-;1024:13;;-1:-1:-1;;;;;1066:30:60;;1056:41;;1046:69;;1111:1;1108;1101:12;1046:69;946:175;;;:::o;1126:160::-;1203:13;;1256:4;1245:16;;1235:27;;1225:55;;1276:1;1273;1266:12;1291:1987;1397:6;1428:2;1471;1459:9;1450:7;1446:23;1442:32;1439:52;;;1487:1;1484;1477:12;1439:52;1514:16;;-1:-1:-1;;;;;1579:14:60;;;1576:34;;;1606:1;1603;1596:12;1576:34;1629:22;;;;1685:4;1667:16;;;1663:27;1660:47;;;1703:1;1700;1693:12;1660:47;1729:22;;:::i;:::-;1782:2;1776:9;1810:2;1800:8;1797:16;1794:36;;;1826:1;1823;1816:12;1794:36;1849:17;;1900:4;1882:16;;;1878:27;1875:47;;;1918:1;1915;1908:12;1875:47;1946:22;;:::i;:::-;1993:32;2022:2;1993:32;:::i;:::-;1984:7;1977:49;2065:2;2061;2057:11;2051:18;2094:2;2084:8;2081:16;2078:36;;;2110:1;2107;2100:12;2078:36;2141:8;2137:2;2133:17;2123:27;;;2188:7;2181:4;2177:2;2173:13;2169:27;2159:55;;2210:1;2207;2200:12;2159:55;2239:2;2233:9;2261:2;2257;2254:10;2251:36;;;2267:18;;:::i;:::-;2313:2;2310:1;2306:10;2296:20;;2336:28;2360:2;2356;2352:11;2336:28;:::i;:::-;2398:15;;;2468:11;;;2464:20;;;2429:12;;;;2496:19;;;2493:39;;;2528:1;2525;2518:12;2493:39;2552:11;;;;2572:327;2588:6;2583:3;2580:15;2572:327;;;2657:10;;;-1:-1:-1;;;;;;2702:33:60;;2690:46;;2680:144;;2778:1;2807:2;2803;2796:14;2680:144;2837:20;;;2605:12;;;;2877;;;;2572:327;;;2915:16;;;2908:31;-1:-1:-1;;2948:22:60;;-1:-1:-1;3002:41:60;3031:11;;;3002:41;:::i;:::-;2997:2;2990:5;2986:14;2979:65;3078:43;3115:4;3111:2;3107:13;3078:43;:::i;:::-;3071:4;3064:5;3060:16;3053:69;3168:2;3164;3160:11;3154:18;3149:2;3142:5;3138:14;3131:42;3206:41;3242:3;3238:2;3234:12;3206:41;:::i;:::-;3200:3;3189:15;;3182:66;3193:5;1291:1987;-1:-1:-1;;;;;;1291:1987:60:o;3283:852::-;3466:2;3477:21;;;3579:13;;-1:-1:-1;;;;;3575:38:60;3555:18;;;3548:66;3649:15;;;3643:22;3602:2;3681:20;;;3674:34;3757:19;;3536:2;3521:18;;3785:22;;;3437:4;;3466:2;3865:21;;;3437:4;;3838:3;3823:19;;;3914:195;3928:6;3925:1;3922:13;3914:195;;;3993:13;;-1:-1:-1;;;;;3989:39:60;3977:52;;4084:15;;;;4025:1;3943:9;;;;;4049:12;;;;3914:195;;;-1:-1:-1;4126:3:60;3283:852;-1:-1:-1;;;;;;3283:852:60:o;4140:277::-;4207:6;4260:2;4248:9;4239:7;4235:23;4231:32;4228:52;;;4276:1;4273;4266:12;4228:52;4308:9;4302:16;4361:5;4354:13;4347:21;4340:5;4337:32;4327:60;;4383:1;4380;4373:12;4327:60;4406:5;4140:277;-1:-1:-1;;;4140:277:60:o;:::-;1685:33077:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", - "linkReferences": { - "src/lib/AccountHelper.sol": { - "AccountHelper": [ - { - "start": 27843, - "length": 20 - }, - { - "start": 27994, - "length": 20 - } - ] - }, - "src/lib/CheckpointHelper.sol": { - "CheckpointHelper": [ - { - "start": 6816, - "length": 20 - }, - { - "start": 26496, - "length": 20 - }, - { - "start": 26758, - "length": 20 - }, - { - "start": 31346, - "length": 20 - }, - { - "start": 32506, - "length": 20 - } - ] - }, - "src/lib/CrossMsgHelper.sol": { - "CrossMsgHelper": [ - { - "start": 8333, - "length": 20 - }, - { - "start": 16047, - "length": 20 - }, - { - "start": 19181, - "length": 20 - }, - { - "start": 35205, - "length": 20 - } - ] - }, - "src/lib/EpochVoteSubmissionHelper.sol": { - "EpochVoteSubmissionHelper": [ - { - "start": 33736, - "length": 20 - }, - { - "start": 35913, - "length": 20 - } - ] - }, - "src/lib/ExecutableQueueHelper.sol": { - "ExecutableQueueHelper": [ - { - "start": 33593, - "length": 20 - }, - { - "start": 33859, - "length": 20 - }, - { - "start": 34018, - "length": 20 - } - ] - }, - "src/lib/StorableMsgHelper.sol": { - "StorableMsgHelper": [ - { - "start": 29343, - "length": 20 - }, - { - "start": 34463, - "length": 20 - } - ] - }, - "src/lib/SubnetIDHelper.sol": { - "SubnetIDHelper": [ - { - "start": 481, - "length": 20 - }, - { - "start": 8540, - "length": 20 - }, - { - "start": 8888, - "length": 20 - }, - { - "start": 9156, - "length": 20 - }, - { - "start": 10437, - "length": 20 - }, - { - "start": 11268, - "length": 20 - }, - { - "start": 11503, - "length": 20 - }, - { - "start": 11909, - "length": 20 - }, - { - "start": 12598, - "length": 20 - }, - { - "start": 17911, - "length": 20 - }, - { - "start": 24543, - "length": 20 - }, - { - "start": 27511, - "length": 20 - }, - { - "start": 27789, - "length": 20 - }, - { - "start": 28218, - "length": 20 - }, - { - "start": 29031, - "length": 20 - }, - { - "start": 29181, - "length": 20 - }, - { - "start": 29493, - "length": 20 - }, - { - "start": 29619, - "length": 20 - }, - { - "start": 29926, - "length": 20 - }, - { - "start": 30299, - "length": 20 - }, - { - "start": 33078, - "length": 20 - }, - { - "start": 34251, - "length": 20 - }, - { - "start": 34593, - "length": 20 - }, - { - "start": 34743, - "length": 20 - } - ] - } - } - }, - "deployedBytecode": { - "object": "0x6080604052600436106102025760003560e01c806302e30f9a1461020757806306c46853146102445780630ea746f21461029057806310d500e1146102bd578063133f74ea1461031d578063135493151461035457806313f3538814610381578063158ef93e146103a3578063185fde7e146103cd57806318f44b70146104015780631aa3a00814610414578063223d90561461041c578063247294251461046257806325bf0db6146104965780632cc14ea2146104a95780632f757dd1146104da578063375b3c0a146104ed57806341b6a2e81461052157806341c0e1b51461054157806345f544851461055657806351392fc014610576578063548b3b381461059b578063599c7bd1146105bb5780635a627dbc146106015780635d0296851461060957806366d7bbbc1461062b5780636b2c1eef146106885780636cb2ecee1461069b5780637d9740f4146106c95780638789f83b146106fd5780638cfd78e71461072457806391be4d411461075257806394074b031461076e57806396c82e5714610790578063986acf38146107a65780639d3070b5146107c65780639e530b57146107e6578063a1ada30314610825578063a2b671581461083a578063ad81e2441461085a578063c66c66a11461087a578063d4e149a8146108a8578063e17a684f146108c8578063f75bc557146108de578063f8703bb8146108fe575b600080fd5b34801561021357600080fd5b50610227610222366004618b4b565b61091e565b60405161023b989796959493929190618ead565b60405180910390f35b34801561025057600080fd5b506102787f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160401b03909116815260200161023b565b34801561029c57600080fd5b506102b06102ab3660046190ce565b61104c565b60405161023b9190619112565b3480156102c957600080fd5b506002546102f3906001600160401b0380821691600160401b8104821691600160801b9091041683565b604080516001600160401b039485168152928416602084015292169181019190915260600161023b565b34801561032957600080fd5b5061033d610338366004619125565b611409565b60408051921515835260208301919091520161023b565b34801561036057600080fd5b5061037461036f36600461915a565b6114a2565b60405161023b91906191ab565b34801561038d57600080fd5b506103a161039c366004619125565b6119a3565b005b3480156103af57600080fd5b506011546103bd9060ff1681565b604051901515815260200161023b565b3480156103d957600080fd5b506102787f000000000000000000000000000000000000000000000000000000000000000081565b6103a161040f3660046191be565b611a07565b6103a1611b7d565b34801561042857600080fd5b50610454610437366004619221565b600d60209081526000928352604080842090915290825290205481565b60405190815260200161023b565b34801561046e57600080fd5b506104547f000000000000000000000000000000000000000000000000000000000000000081565b6103a16104a4366004618b4b565b611e19565b3480156104b557600080fd5b506104c96104c4366004619125565b6123e2565b60405161023b959493929190619246565b6103a16104e8366004619294565b61251f565b3480156104f957600080fd5b506104547f000000000000000000000000000000000000000000000000000000000000000081565b34801561052d57600080fd5b50600b54610278906001600160401b031681565b34801561054d57600080fd5b506103a16126f2565b34801561056257600080fd5b506103a1610571366004618b4b565b612967565b34801561058257600080fd5b50600154600160401b90046001600160401b0316610278565b3480156105a757600080fd5b506104546105b6366004618b4b565b612b4a565b3480156105c757600080fd5b506105ef7f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200161023b565b6103a1612b6b565b34801561061557600080fd5b5061061e612c2c565b60405161023b9190619382565b34801561063757600080fd5b506103bd6106463660046193e4565b6001600160401b03821660009081526012602090815260408083208054845260030182528083206001600160a01b038516845290915290205460ff1692915050565b6103a1610696366004619294565b613829565b3480156106a757600080fd5b506106bb6106b6366004619125565b6138f2565b60405161023b929190619412565b3480156106d557600080fd5b506102787f000000000000000000000000000000000000000000000000000000000000000081565b34801561070957600080fd5b50600b5461027890600160401b90046001600160401b031681565b34801561073057600080fd5b5061074461073f366004618b4b565b613ff6565b60405161023b92919061942d565b34801561075e57600080fd5b50610454670de0b6b3a764000081565b34801561077a57600080fd5b50610783614372565b60405161023b9190619451565b34801561079c57600080fd5b50610454600c5481565b3480156107b257600080fd5b506103a16107c1366004619294565b6143fa565b3480156107d257600080fd5b506104546107e1366004619464565b614d72565b3480156107f257600080fd5b50610806610801366004619294565b614d8a565b6040805192151583526001600160401b0390911660208301520161023b565b34801561083157600080fd5b506105ef600a81565b34801561084657600080fd5b50600654610278906001600160401b031681565b34801561086657600080fd5b50600154610278906001600160401b031681565b34801561088657600080fd5b5061089a610895366004619294565b614dcc565b60405161023b929190619498565b3480156108b457600080fd5b506103a16108c33660046194b3565b615924565b3480156108d457600080fd5b50610454600e5481565b3480156108ea57600080fd5b506103a16108f93660046194ed565b616399565b34801561090a57600080fd5b506103a1610919366004618b4b565b6164a4565b6007602090815260009182526040918290208054600182015460028301546003840154865180880188526004860180546001600160401b0390811683526005880180548b51818c0281018c01909c52808c5260ff89169b6101008a0484169b600160481b909a0490931699979896979596858101939291908301828280156109cf57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109b1575b50505091909252505060408051610120810182526006850180546001600160401b031660e08301908152600787018054855160208281028201810190975281815297989794965092948694929386936101008701939092909190830182828015610a6257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a44575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015610e6c5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015610b7357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b55575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610bad906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054610bd9906195a7565b8015610c265780601f10610bfb57610100808354040283529160200191610c26565b820191906000526020600020905b815481529060010190602001808311610c0957829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015610cb757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610c99575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610cf1906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054610d1d906195a7565b8015610d6a5780601f10610d3f57610100808354040283529160200191610d6a565b820191906000526020600020905b815481529060010190602001808311610d4d57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191610dc5906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054610df1906195a7565b8015610e3e5780601f10610e1357610100808354040283529160200191610e3e565b820191906000526020600020905b815481529060010190602001808311610e2157829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101610acd565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015610fa3576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015610f2f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610f11575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610f8b57602002820191906000526020600020905b815481526020019060010190808311610f77575b50505050508152505081526020019060010190610e99565b50505050815260200160068201548152602001600782018054610fc5906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054610ff1906195a7565b801561103e5780601f106110135761010080835404028352916020019161103e565b820191906000526020600020905b81548152906001019060200180831161102157829003601f168201915b505050505081525050905088565b611054618762565b600061105f846164fb565b91505080600e018381548110611077576110776195db565b60009182526020918290206040805161018081018252600c90930290910180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561111657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116110f8575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190611150906195a7565b80601f016020809104026020016040519081016040528092919081815260200182805461117c906195a7565b80156111c95780601f1061119e576101008083540402835291602001916111c9565b820191906000526020600020905b8154815290600101906020018083116111ac57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561125a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161123c575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190611294906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546112c0906195a7565b801561130d5780601f106112e25761010080835404028352916020019161130d565b820191906000526020600020905b8154815290600101906020018083116112f057829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191611368906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054611394906195a7565b80156113e15780601f106113b6576101008083540402835291602001916113e1565b820191906000526020600020905b8154815290600101906020018083116113c457829003601f168201915b505050919092525050508152600b919091015460ff1615156020909101529150505b92915050565b600080600080611418856138f2565b6040516339aa47fb60e01b81529193509150829073__$1cd67d4dc9e627f0bec7928aa480e7d951$__906339aa47fb90611456908590600401619691565b602060405180830381865af4158015611473573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611497919061972d565b935093505050915091565b60606000806114b86114b386619746565b6164fb565b91509150816114fc5760408051600080825260208201909252906114f2565b6114df618762565b8152602001906001900390816114d75790505b5092505050611403565b600e8101546001600160401b03851681811061154f576040805160008082526020820190925290611543565b611530618762565b8152602001906001900390816115285790505b50945050505050611403565b600061155b8284619768565b90506000816001600160401b0381111561157757611577618f1e565b6040519080825280602002602001820160405280156115b057816020015b61159d618762565b8152602001906001900390816115955790505b50905060005b8281101561199657600e86016115cc858361977b565b815481106115dc576115dc6195db565b60009182526020918290206040805161018081018252600c90930290910180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561167b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161165d575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906116b5906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546116e1906195a7565b801561172e5780601f106117035761010080835404028352916020019161172e565b820191906000526020600020905b81548152906001019060200180831161171157829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156117bf57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116117a1575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906117f9906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054611825906195a7565b80156118725780601f1061184757610100808354040283529160200191611872565b820191906000526020600020905b81548152906001019060200180831161185557829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916118cd906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546118f9906195a7565b80156119465780601f1061191b57610100808354040283529160200191611946565b820191906000526020600020905b81548152906001019060200180831161192957829003601f168201915b505050919092525050508152600b919091015460ff1615156020909101528251839083908110611978576119786195db565b6020026020010181905250808061198e9061978e565b9150506115b6565b5098975050505050505050565b6119ab616642565b60115460ff16156119ce5760405162dc149f60e41b815260040160405180910390fd5b600180546001600160401b03909216600160401b02600160401b600160801b03199092169190911781556011805460ff19169091179055565b611a0f6166d9565b611a1761676e565b600073__$33b79814e84bf6cf5e47244090b19ce5f8$__6399aa0eb4843385611a607f000000000000000000000000000000000000000000000000000000000000000034619768565b6040518563ffffffff1660e01b8152600401611a7f949392919061991f565b600060405180830381865af4158015611a9c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ac49190810190619b80565b9050611acf816167af565b611b78611adb84619746565b604051632cff562160e11b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__916359feac4291611b119190600401619451565b602060405180830381865af4158015611b2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b529190619c9d565b7f0000000000000000000000000000000000000000000000000000000000000000616a7c565b505050565b7f0000000000000000000000000000000000000000000000000000000000000000341015611bbe57604051631036b5ad60e31b815260040160405180910390fd5b604080518082018252600480546001600160401b0316825260058054845160208281028201810190965281815260009580860193919290830182828015611c2e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611c10575b50505091909252505060405163aa5106cb60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263aa5106cb9250611c6f913390600401619cba565b600060405180830381865af4158015611c8c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cb49190810190619ce4565b9050600080611cc2836164fb565b915091508115611ce557604051631b538cdf60e11b815260040160405180910390fd5b82516004820180546001600160401b0319166001600160401b039092169190911781556020808501518051869392611d24926005870192910190618782565b505034600183810191909155825460ff1916178255504360028201556040516390ba52cf60e01b815260089073__$a0fe38a9a81205afccc10810b09a4d3f45$__906390ba52cf90611d7a908790600401619451565b602060405180830381865af4158015611d97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dbb919061972d565b815460018181018455600093845260208420909101919091556006805491929091611df09084906001600160401b0316619d18565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550505050565b611e2161676e565b600081815260096020908152604080832081516101808101835281546001600160401b03166101408201908152600183018054855181880281018801875281815294979687966121b5968a958795928601948794869461010089019487948694909386936101608d0193929091830182828015611ec757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611ea9575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190611f01906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054611f2d906195a7565b8015611f7a5780601f10611f4f57610100808354040283529160200191611f7a565b820191906000526020600020905b815481529060010190602001808311611f5d57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561200b57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611fed575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190612045906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054612071906195a7565b80156120be5780601f10612093576101008083540402835291602001916120be565b820191906000526020600020905b8154815290600101906020018083116120a157829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191612119906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054612145906195a7565b80156121925780601f1061216757610100808354040283529160200191612192565b820191906000526020600020905b81548152906001019060200180831161217557829003601f168201915b505050919092525050508152600b919091015460ff161515602090910152616ada565b60088501546040805180820182526004880180546001600160401b031682526005890180548451602082810282018101909652818152979950959750939560009592949193808601939192919083018282801561223b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161221d575b50505091909252505060405163089032d560e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263089032d5925061227c916004908101619dae565b600060405180830381865af4158015612299573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122c19190810190619ce4565b600087815260096020526040812080546001600160401b03191681559192508181818181816122f360018301826187e7565b505060028201805460ff1916815560006123106003850182618805565b505050506004820180546001600160401b03191681556000818161233760058701826187e7565b505060028201805460ff1916815560006123546003850182618805565b50506000600885018190556009850180546001600160601b03191690556123819250600a85019150618805565b505050600b01805460ff1916905561239b82828686616e4a565b60006123c77f000000000000000000000000000000000000000000000000000000000000000034619768565b905080156123d9576123d93382616ea2565b50505050505050565b600a602090815260009182526040918290208251808401845281546001600160401b0316815260018201805485518186028101860190965280865292949193859385820193929183018282801561246257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612444575b5050509190925250505060028201546003830154600684015460078501805494956001600160401b03909416949293919261249c906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546124c8906195a7565b80156125155780601f106124ea57610100808354040283529160200191612515565b820191906000526020600020905b8154815290600101906020018083116124f857829003601f168201915b5050505050905085565b6125276166d9565b61252f61676e565b3461253a8280619dd3565b604001351461255c57604051631036b5ad60e31b815260040160405180910390fd5b6125668180619dd3565b6125709080619df3565b61257a9080619df3565b61258390619746565b60405163c836244d60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9163c836244d916125bb91906004908101619dae565b602060405180830381865af41580156125d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125fc9190619e09565b61261957604051638481de4960e01b815260040160405180910390fd5b60008061262d6126288461a026565b616ada565b9092509050611b7861263f8480619dd3565b6040013561264d8580619dd3565b61265b906020810190619df3565b6126659080619df3565b61266e90619746565b60405163089032d560e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9163089032d5916126a691906004908101619dae565b600060405180830381865af41580156126c3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526126eb9190810190619ce4565b8484616e4a565b6000806126fe33616f37565b915091508161272057604051630e991abd60e41b815260040160405180910390fd5b60038101541561274357604051637c67c70160e11b815260040160405180910390fd5b600180820154600680549192916000906127679084906001600160401b031661a032565b82546101009290920a6001600160401b0381810219909316918316021790915560408051808201825260048601805490931681526005860180548351602080830282018101909552818152600796506000959394808601939192908301828280156127fb57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116127dd575b5050509190925250506040516390ba52cf60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__926390ba52cf925061283a91600401619451565b602060405180830381865af4158015612857573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061287b919061972d565b81526020810191909152604001600090812080546001600160881b03191681556001810182905560028101829055600381018290556004810180546001600160401b0319168155909190816128d360058501826187e7565b50506006820180546001600160401b0319168155600081816128f860078701826187e7565b50506002820180546001600160401b031916905560006003830181905561292390600484019061883f565b612931600583016000618860565b60068201600090556007820160006129499190618805565b5061295a9050600e8301600061883f565b50611b7890503382616ea2565b61296f61706c565b806000036129905760405163c79cad7b60e01b815260040160405180910390fd5b60008061299c33616f37565b91509150816129be57604051630e991abd60e41b815260040160405180910390fd5b82816001015410156129e3576040516379b33e7960e01b815260040160405180910390fd5b828160010160008282546129f79190619768565b909155505060018101547f00000000000000000000000000000000000000000000000000000000000000001115612a3457805460ff191660021781555b6040805180820182526004830180546001600160401b031682526005840180548451602082810282018101909652818152612b3b9589959493818601939091830182828015612aac57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612a8e575b505050919092525050604051632cff562160e11b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__926359feac429250612aeb91600401619451565b602060405180830381865af4158015612b08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b2c9190619c9d565b6001600160a01b031690616ea2565b5050612b476001600055565b50565b60088181548110612b5a57600080fd5b600091825260209091200154905081565b60003411612b8c57604051631036b5ad60e31b815260040160405180910390fd5b600080612b9833616f37565b9150915081612bba57604051630e991abd60e41b815260040160405180910390fd5b34816001016000828254612bce919061977b565b9091555060029050815460ff166005811115612bec57612bec618b64565b03612c28577f0000000000000000000000000000000000000000000000000000000000000000816001015410612c2857805460ff191660011781555b5050565b6008546060906000816001600160401b03811115612c4c57612c4c618f1e565b604051908082528060200260200182016040528015612c8557816020015b612c72618881565b815260200190600190039081612c6a5790505b50905060005b8281101561382257600060088281548110612ca857612ca86195db565b6000918252602080832090910154808352600790915260409182902082516101208101909352805491935090829060ff166005811115612cea57612cea618b64565b6005811115612cfb57612cfb618b64565b815281546001600160401b0361010082048116602080850191909152600160481b90920481166040808501919091526001850154606085015260028501546080850152600385015460a085015280518082018252600486018054909316815260058601805483518187028101870190945280845260c0909601959194858101939290830182828015612db657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612d98575b50505091909252505050815260408051610120810182526006840180546001600160401b031660e0830190815260078601805485516020828102820181019097528181529686019694959394869486936101008701939091830182828015612e4757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612e29575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156132515760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015612f5857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f3a575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190612f92906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054612fbe906195a7565b801561300b5780601f10612fe05761010080835404028352916020019161300b565b820191906000526020600020905b815481529060010190602001808311612fee57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561309c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161307e575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906130d6906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054613102906195a7565b801561314f5780601f106131245761010080835404028352916020019161314f565b820191906000526020600020905b81548152906001019060200180831161313257829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916131aa906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546131d6906195a7565b80156132235780601f106131f857610100808354040283529160200191613223565b820191906000526020600020905b81548152906001019060200180831161320657829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101612eb2565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015613388576000848152602090819020604080516080810182526003860290920180546001600160401b03168383019081526001820180548451818802810188019095528085529495929486949293869360608701939092909183018282801561331457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116132f6575b50505050508152505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561337057602002820191906000526020600020905b81548152602001906001019080831161335c575b5050505050815250508152602001906001019061327e565b505050508152602001600682015481526020016007820180546133aa906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546133d6906195a7565b80156134235780601f106133f857610100808354040283529160200191613423565b820191906000526020600020905b81548152906001019060200180831161340657829003601f168201915b5050505050815250508152602001600e8201805480602002602001604051908101604052809291908181526020016000905b828210156137f45760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d019390918301828280156134fb57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116134dd575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190613535906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054613561906195a7565b80156135ae5780601f10613583576101008083540402835291602001916135ae565b820191906000526020600020905b81548152906001019060200180831161359157829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561363f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613621575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190613679906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546136a5906195a7565b80156136f25780601f106136c7576101008083540402835291602001916136f2565b820191906000526020600020905b8154815290600101906020018083116136d557829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161374d906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054613779906195a7565b80156137c65780601f1061379b576101008083540402835291602001916137c6565b820191906000526020600020905b8154815290600101906020018083116137a957829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101613455565b505050508152505083838151811061380e5761380e6195db565b602090810291909101015250600101612c8b565b5092915050565b6138316166d9565b61383961676e565b600073__$33b79814e84bf6cf5e47244090b19ce5f8$__631860845e600433856138837f000000000000000000000000000000000000000000000000000000000000000034619768565b6040518563ffffffff1660e01b81526004016138a2949392919061a052565b600060405180830381865af41580156138bf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526138e79190810190619b80565b9050612c28816170ca565b60006138fc6188ec565b6001600160401b038084166000908152600a6020908152604091829020825161012081018452815490941660e085019081526001820180548551818602810186019096528086529294869492938693610100870193919083018282801561398c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161396e575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015613d965760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015613a9d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613a7f575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190613ad7906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054613b03906195a7565b8015613b505780601f10613b2557610100808354040283529160200191613b50565b820191906000526020600020905b815481529060010190602001808311613b3357829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015613be157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613bc3575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190613c1b906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054613c47906195a7565b8015613c945780601f10613c6957610100808354040283529160200191613c94565b820191906000526020600020905b815481529060010190602001808311613c7757829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191613cef906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054613d1b906195a7565b8015613d685780601f10613d3d57610100808354040283529160200191613d68565b820191906000526020600020905b815481529060010190602001808311613d4b57829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016139f7565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015613ecd576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015613e5957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613e3b575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015613eb557602002820191906000526020600020905b815481526020019060010190808311613ea1575b50505050508152505081526020019060010190613dc3565b50505050815260200160068201548152602001600782018054613eef906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054613f1b906195a7565b8015613f685780601f10613f3d57610100808354040283529160200191613f68565b820191906000526020600020905b815481529060010190602001808311613f4b57829003601f168201915b5050509190925250508151604051630c133d1360e31b815292935073__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e8989250613fad9190600401619451565b602060405180830381865af4158015613fca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fee9190619e09565b159150915091565b60096020908152600091825260409182902082516101408101845281546001600160401b03166101008201908152600183018054865181870281018701909752808752939592948694869460c086019487948694919386936101208a01939092919083018282801561409157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311614073575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906140cb906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546140f7906195a7565b80156141445780601f1061411957610100808354040283529160200191614144565b820191906000526020600020905b81548152906001019060200180831161412757829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156141d557602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116141b7575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061420f906195a7565b80601f016020809104026020016040519081016040528092919081815260200182805461423b906195a7565b80156142885780601f1061425d57610100808354040283529160200191614288565b820191906000526020600020905b81548152906001019060200180831161426b57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916142e3906195a7565b80601f016020809104026020016040519081016040528092919081815260200182805461430f906195a7565b801561435c5780601f106143315761010080835404028352916020019161435c565b820191906000526020600020905b81548152906001019060200180831161433f57829003601f168201915b50505091909252505050600b9091015460ff1682565b61437a61893b565b604080518082018252600480546001600160401b031682526005805484516020828102820181019096528181529394929383860193909291908301828280156143ec57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116143ce575b505050505081525050905090565b6144026166d9565b61440f6020820182619125565b6144188161730f565b600e546000908152600d6020908152604080832033845290915290205460115460ff16614458576040516321c4e35760e21b815260040160405180910390fd5b8060000361447957604051632ec5b44960e01b815260040160405180910390fd5b73__$33b79814e84bf6cf5e47244090b19ce5f8$__63898414756144a0602086018661a065565b6040518363ffffffff1660e01b81526004016144bd92919061a239565b602060405180830381865af41580156144da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144fe9190619e09565b61451b57604051630bd9169f60e01b815260040160405180910390fd5b600060128161452d6020870187619125565b6001600160401b03166001600160401b031681526020019081526020016000209050600061455d828633866173e5565b905060608115614936576145708361791d565b805480602002602001604051908101604052809291908181526020016000905b8282101561492f5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561463657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311614618575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190614670906195a7565b80601f016020809104026020016040519081016040528092919081815260200182805461469c906195a7565b80156146e95780601f106146be576101008083540402835291602001916146e9565b820191906000526020600020905b8154815290600101906020018083116146cc57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561477a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161475c575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906147b4906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546147e0906195a7565b801561482d5780601f106148025761010080835404028352916020019161482d565b820191906000526020600020905b81548152906001019060200180831161481057829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191614888906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546148b4906195a7565b80156149015780601f106148d657610100808354040283529160200191614901565b820191906000526020600020905b8154815290600101906020018083116148e457829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101614590565b5050505090505b8051600003614d3f5760008061494a61794f565b915091508015614d3c576001600160401b03821660009081526012602052604090206149758161791d565b805480602002602001604051908101604052809291908181526020016000905b82821015614d345760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015614a3b57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311614a1d575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190614a75906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054614aa1906195a7565b8015614aee5780601f10614ac357610100808354040283529160200191614aee565b820191906000526020600020905b815481529060010190602001808311614ad157829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015614b7f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311614b61575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190614bb9906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054614be5906195a7565b8015614c325780601f10614c0757610100808354040283529160200191614c32565b820191906000526020600020905b815481529060010190602001808311614c1557829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191614c8d906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054614cb9906195a7565b8015614d065780601f10614cdb57610100808354040283529160200191614d06565b820191906000526020600020905b815481529060010190602001808311614ce957829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101614995565b505050509350505b50505b604080518082018252600080825282518181526020818101909452614d6a9383019150905282617973565b505050505050565b600080614d7e836164fb565b600e0154949350505050565b6000808080614d9b6114b386619746565b9150915081614db1575060009485945092505050565b546001956101009091046001600160401b0316945092505050565b6000614dd6618881565b614de26114b384619746565b60408051610120810190915281548290829060ff166005811115614e0857614e08618b64565b6005811115614e1957614e19618b64565b815281546001600160401b0361010082048116602080850191909152600160481b90920481166040808501919091526001850154606085015260028501546080850152600385015460a085015280518082018252600486018054909316815260058601805483518187028101870190945280845260c0909601959194858101939290830182828015614ed457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311614eb6575b50505091909252505050815260408051610120810182526006840180546001600160401b031660e0830190815260078601805485516020828102820181019097528181529686019694959394869486936101008701939091830182828015614f6557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311614f47575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b8282101561536f5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561507657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311615058575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906150b0906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546150dc906195a7565b80156151295780601f106150fe57610100808354040283529160200191615129565b820191906000526020600020905b81548152906001019060200180831161510c57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156151ba57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161519c575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906151f4906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054615220906195a7565b801561526d5780601f106152425761010080835404028352916020019161526d565b820191906000526020600020905b81548152906001019060200180831161525057829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916152c8906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546152f4906195a7565b80156153415780601f1061531657610100808354040283529160200191615341565b820191906000526020600020905b81548152906001019060200180831161532457829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101614fd0565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b828210156154a6576000848152602090819020604080516080810182526003860290920180546001600160401b03168383019081526001820180548451818802810188019095528085529495929486949293869360608701939092909183018282801561543257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311615414575b50505050508152505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561548e57602002820191906000526020600020905b81548152602001906001019080831161547a575b5050505050815250508152602001906001019061539c565b505050508152602001600682015481526020016007820180546154c8906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546154f4906195a7565b80156155415780601f1061551657610100808354040283529160200191615541565b820191906000526020600020905b81548152906001019060200180831161552457829003601f168201915b5050505050815250508152602001600e8201805480602002602001604051908101604052809291908181526020016000905b828210156159125760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561561957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116155fb575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190615653906195a7565b80601f016020809104026020016040519081016040528092919081815260200182805461567f906195a7565b80156156cc5780601f106156a1576101008083540402835291602001916156cc565b820191906000526020600020905b8154815290600101906020018083116156af57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561575d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161573f575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190615797906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546157c3906195a7565b80156158105780601f106157e557610100808354040283529160200191615810565b820191906000526020600020905b8154815290600101906020018083116157f357829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161586b906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054615897906195a7565b80156158e45780601f106158b9576101008083540402835291602001916158e4565b820191906000526020600020905b8154815290600101906020018083116158c757829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101615573565b50505091525092969095509350505050565b60115460ff16615947576040516321c4e35760e21b815260040160405180910390fd5b336159e36159558380619df3565b61595e90619746565b604051632cff562160e11b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__916359feac42916159949190600401619451565b602060405180830381865af41580156159b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906159d59190619c9d565b6001600160a01b03166179ab565b6001600160a01b031614615a0a57604051637f39132760e11b815260040160405180910390fd5b6000615a1533616f37565b915060019050815460ff166005811115615a3157615a31618b64565b14615a4f5760405163c18316bf60e01b815260040160405180910390fd5b615a5f6040830160208401619125565b60088201546001600160401b03918216911610615a8f5760405163fae4eadb60e01b815260040160405180910390fd5b60a0820135156161995760408051610120810182526006830180546001600160401b031660e08301908152600785018054855160208281028201810190975281815294959394869486936101008701939091830182828015615b1a57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311615afc575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015615f245760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015615c2b57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311615c0d575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190615c65906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054615c91906195a7565b8015615cde5780601f10615cb357610100808354040283529160200191615cde565b820191906000526020600020905b815481529060010190602001808311615cc157829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015615d6f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311615d51575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190615da9906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054615dd5906195a7565b8015615e225780601f10615df757610100808354040283529160200191615e22565b820191906000526020600020905b815481529060010190602001808311615e0557829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191615e7d906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054615ea9906195a7565b8015615ef65780601f10615ecb57610100808354040283529160200191615ef6565b820191906000526020600020905b815481529060010190602001808311615ed957829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101615b85565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b8282101561605b576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015615fe757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311615fc9575b50505050508152505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561604357602002820191906000526020600020905b81548152602001906001019080831161602f575b50505050508152505081526020019060010190615f51565b5050505081526020016006820154815260200160078201805461607d906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546160a9906195a7565b80156160f65780601f106160cb576101008083540402835291602001916160f6565b820191906000526020600020905b8154815290600101906020018083116160d957829003601f168201915b5050509190925250506040516339aa47fb60e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__926339aa47fb925061613591600401619691565b602060405180830381865af4158015616152573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616176919061972d565b8260a0013514616199576040516312232e5d60e11b815260040160405180910390fd5b60008060006161a66179f2565b92509250925082616205576004805482546001600160401b0319166001600160401b039091161782556005805483916161e491600184019190618953565b5050506002810180546001600160401b0319166001600160401b0384161790555b60405163445cc97560e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__9063445cc975906162469084908990600f90601090899060040161a2f8565b60006040518083038186803b15801561625e57600080fd5b505af4158015616272573d6000803e3d6000fd5b50505050600080868060600190616289919061a065565b9050905060005b818110156162e9576162a5606089018961a065565b828181106162b5576162b56195db565b90506020028101906162c79190619df3565b6162d19080619dd3565b6162df90604001358461977b565b9250600101616290565b5060038301546162fd90604089013561977b565b616307908361977b565b9150818660030154101561632e57604051631d36ca1560e21b815260040160405180910390fd5b818660030160008282546163429190619768565b9091555087905060068701616357828261ad54565b5061638b90506163678880619df3565b61637090619746565b61637d60608a018a61a065565b6163869161aecf565b617973565b6123d9338860400135616a7c565b6163a1616642565b80518251146163c35760405163465f0a7d60e01b815260040160405180910390fd5b600e600081546163d29061978e565b909155508151600090815b8181101561649b5760008582815181106163f9576163f96195db565b6020026020010151905060006001600160a01b0316816001600160a01b031614616492576000858381518110616431576164316195db565b602002602001015190508060000361645c5760405163389b457d60e01b815260040160405180910390fd5b600e546000908152600d602090815260408083206001600160a01b0386168452909152902081905561648e818661977b565b9450505b506001016163dd565b5050600c555050565b6164ac61706c565b806000036164cd5760405163c79cad7b60e01b815260040160405180910390fd5b6000806164d933616f37565b9150915081612a3457604051630e991abd60e41b815260040160405180910390fd5b600080600760008473__$a0fe38a9a81205afccc10810b09a4d3f45$__6390ba52cf90916040518263ffffffff1660e01b815260040161653b9190619451565b602060405180830381865af4158015616558573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061657c919061972d565b81526020808201929092526040908101600020815180830183526004820180546001600160401b03168252600583018054855181880281018801909652808652939650919490938582019390929183018282801561660357602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116165e5575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e8989250613fad91600401619451565b604051635d3f8a6960e01b815273__$e800e3908cdbb6b1b5bd452383a17b18f7$__90635d3f8a699061667990339060040161aedc565b602060405180830381865af4158015616696573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906166ba9190619e09565b6166d75760405163f0d97f3b60e01b815260040160405180910390fd5b565b604051630972932760e21b815273__$e800e3908cdbb6b1b5bd452383a17b18f7$__906325ca4c9c9061671090339060040161aedc565b602060405180830381865af415801561672d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906167519190619e09565b6166d757604051630a23da2b60e31b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000003410156166d7576040516334472ad760e11b815260040160405180910390fd5b8051602001515160405163089032d560e01b815260009173__$a0fe38a9a81205afccc10810b09a4d3f45$__9163089032d5916167f0916004908101619dae565b600060405180830381865af415801561680d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526168359190810190619ce4565b9050600080616843836164fb565b915091508161686557604051630e991abd60e41b815260040160405180910390fd5b805484516101009091046001600160401b0316606090910181905260019082908290616892908290619d18565b92506101000a8154816001600160401b0302191690836001600160401b031602179055508360000151604001518160030160008282546168d2919061977b565b9091555050600e810180546001808201835560009283526020928390208751805180518051600c90960290930180546001600160401b0319166001600160401b039096169590951785558286015180518b979395879593948694938593616940938501929190910190618782565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190616976908261aef0565b50505050602083810151805180516004860180546001600160401b0319166001600160401b039092169190911781558184015180519395509093919284926169c5926005890192910190618782565b505050602082810151805160028401805460ff191660ff9092169190911781559181015190919060038401906169fb908261aef0565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a820190616a58908261aef0565b50505060209190910151600b909101805460ff191691151591909117905550505050565b80600003616a88575050565b611b78616a9d836001600160a01b03166179ab565b6040805160248082018690528251808303909101815260449091019091526020810180516001600160e01b0316632a7edd8f60e21b179052617b34565b80516020015151604051630c133d1360e31b8152600091829173__$a0fe38a9a81205afccc10810b09a4d3f45$__90636099e89890616b1d908490600401619451565b602060405180830381865af4158015616b3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616b5e9190619e09565b15616b7c5760405163461e815d60e01b815260040160405180910390fd5b60405163c836244d60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9063c836244d90616bb59084906004908101619dae565b602060405180830381865af4158015616bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616bf69190619e09565b15616c1457604051632f3335ff60e21b815260040160405180910390fd5b835180515160405163f47ad7eb60e01b8152909160009173__$386b5c41ce93e8b832daf8008b3d30ae09$__9163f47ad7eb91616c569190600490810161afaa565b602060405180830381865af4158015616c73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616c97919061afbd565b905060006001826001811115616caf57616caf618b64565b03616daf57604051631ccc893360e11b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__90633999126690616ced908790879060040161afde565b600060405180830381865af4158015616d0a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052616d329190810190619ce4565b60405163c836244d60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9163c836244d91616d6a91906004908101619dae565b602060405180830381865af4158015616d87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616dab9190619e09565b1590505b8015616dd357616dbe876170ca565b50509351604001511515946000945092505050565b6000826001811115616de757616de7618b64565b03616e3157600b8054600890616e0c90600160401b90046001600160401b031661b003565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b616e3a876167af565b5060009660019650945050505050565b8115616e5b57616e5b606385616ea2565b8015616e9c57604051632cff562160e11b8152616e9c9073__$a0fe38a9a81205afccc10810b09a4d3f45$__906359feac4290611b11908790600401619451565b50505050565b80471015616ec35760405163356680b760e01b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114616f10576040519150601f19603f3d011682016040523d82523d6000602084013e616f15565b606091505b5050905080611b7857604051633204506f60e01b815260040160405180910390fd5b6000806001600160a01b038316616f61576040516370e4510960e01b815260040160405180910390fd5b604080518082018252600480546001600160401b0316825260058054845160208281028201810190965281815260009580860193919290830182828015616fd157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311616fb3575b50505091909252505060405163aa5106cb60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263aa5106cb9250617012918890600401619cba565b600060405180830381865af415801561702f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526170579190810190619ce4565b9050617062816164fb565b9250925050915091565b6002600054036170c35760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b6002600055565b60006170d46179f2565b600b5485516001600160401b039091166060909101526003810180549194507f00000000000000000000000000000000000000000000000000000000000000009350915060009061712690849061977b565b90915550506004810180546001808201835560009283526020928390208551805180518051600c90960290930180546001600160401b0319166001600160401b0390961695909517855582860151805189979395879593948694938593617194938501929190910190618782565b505050602082810151805160028401805460ff191660ff9092169190911781559181015190919060038401906171ca908261aef0565b50505050602083810151805180516004860180546001600160401b0319166001600160401b03909216919091178155818401518051939550909391928492617219926005890192910190618782565b505050602082810151805160028401805460ff191660ff90921691909117815591810151909190600384019061724f908261aef0565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a8201906172ac908261aef0565b50505060209190910151600b918201805460ff19169115159190911790558054600191906000906172e79084906001600160401b0316619d18565b92506101000a8154816001600160401b0302191690836001600160401b031602179055505050565b6001546001600160401b039081169082161161733e57604051631f30cc6360e21b815260040160405180910390fd5b6001546001600160401b03600160401b909104811690821610156173755760405163b4f68f9760e01b815260040160405180910390fd5b6001547f0000000000000000000000000000000000000000000000000000000000000000906173b490600160401b90046001600160401b03168361a032565b6173be919061b047565b6001600160401b031615612b475760405163b4f68f9760e01b815260040160405180910390fd5b6000806173f18561b06d565b604051630edf122560e41b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__9163edf1225091617427919060040161b0cd565b602060405180830381865af4158015617444573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190617468919061972d565b90506174868682868661747e60208b018b619125565b600c54617b7f565b600082815260058801602090815260408083208151808301835281546001600160401b03168152600182018054845181870281018701909552808552969850909591948685019491929184015b828210156178725760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561757957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161755b575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906175b3906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546175df906195a7565b801561762c5780601f106176015761010080835404028352916020019161762c565b820191906000526020600020905b81548152906001019060200180831161760f57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156176bd57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161769f575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906176f7906195a7565b80601f0160208091040260200160405190810160405280929190818152602001828054617723906195a7565b80156177705780601f1061774557610100808354040283529160200191617770565b820191906000526020600020905b81548152906001019060200180831161775357829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916177cb906195a7565b80601f01602080910402602001604051908101604052809291908181526020018280546177f7906195a7565b80156178445780601f1061781957610100808354040283529160200191617844565b820191906000526020600020905b81548152906001019060200180831161782757829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016174d3565b50505091525050604051632d34315760e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__91632d343157916178af919060040161b0cd565b602060405180830381865af41580156178cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906178f09190619e09565b1561791457600081815260058701602052604090208590617911828261b0fa565b50505b50949350505050565b6002810154600090815260058201602052604081208054617946906001600160401b0316617db2565b60010192915050565b600254600160401b90046001600160401b0316600061796d82617eee565b90509091565b805160005b81811015616e9c576179a384848381518110617996576179966195db565b6020026020010151617f43565b600101617978565b60008060006179b9846183e4565b91509150816179ca57509192915050565b6000806179d683618416565b91509150816179e9575093949350505050565b95945050505050565b6000806000617a21437f0000000000000000000000000000000000000000000000000000000000000000618480565b6001600160401b038082166000908152600a60209081526040918290208251808401845281549094168452600181018054845181850281018501909552808552959750909550929385938583019392909190830182828015617aac57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311617a8e575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e8989250617aeb91600401619451565b602060405180830381865af4158015617b08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190617b2c9190619e09565b159250909192565b6060617b78838360006040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c656400008152506184a2565b9392505050565b8554600081815260038801602090815260408083206001600160a01b038916845290915281205490919060ff1615617bca576040516337138f5f60e11b815260040160405180910390fd5b600081815260038901602090815260408083206001600160a01b038a1684529091528120805460ff1916600190811790915589018054879290617c0e90849061977b565b9091555050600081815260048901602090815260408083208a845290915281208054879290617c3e90849061977b565b90915550506000818152600489016020908152604080832060028c015484529091528082205489835291205480821015617c7a5760028a018990555b6000617c868b8761857f565b90506003816003811115617c9c57617c9c618b64565b03617d2757617caa87617eee565b15617cb85760019450617da4565b60405163199b9ca560e01b815273__$b7b8687e33476c74e3b4e0a64c4768a343$__9063199b9ca590617cf2906002908b9060040161b212565b60006040518083038186803b158015617d0a57600080fd5b505af4158015617d1e573d6000803e3d6000fd5b50505050617da4565b6002816003811115617d3b57617d3b618b64565b03617da457604051635a27a53960e11b8152600481018c905273__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063b44f4a729060240160006040518083038186803b158015617d8b57600080fd5b505af4158015617d9f573d6000803e3d6000fd5b505050505b505050509695505050505050565b617dbb81617eee565b617dc25750565b604051634953836d60e11b815273__$b7b8687e33476c74e3b4e0a64c4768a343$__906392a706da90617dfc90600290859060040161b212565b602060405180830381865af4158015617e19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190617e3d9190619e09565b15617e61576002546001600160401b03828116600160401b9092041614617e615750565b6040516394ecccfd60e01b815273__$b7b8687e33476c74e3b4e0a64c4768a343$__906394ecccfd90617e9b90600290859060040161b212565b60006040518083038186803b158015617eb357600080fd5b505af4158015617ec7573d6000803e3d6000fd5b5050600180546001600160401b0319166001600160401b0394909416939093179092555050565b600154600090617f28907f0000000000000000000000000000000000000000000000000000000000000000906001600160401b0316619d18565b6001600160401b0316826001600160401b0316149050919050565b80516020015151604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__91636099e89891617f809190600401619451565b602060405180830381865af4158015617f9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190617fc19190619e09565b15617fdf5760405163461e815d60e01b815260040160405180910390fd5b8051608001516001600160e01b031916618019578051604001514710156180195760405163569d45cf60e11b815260040160405180910390fd5b805160405163f47ad7eb60e01b815260009173__$386b5c41ce93e8b832daf8008b3d30ae09$__9163f47ad7eb9161805591600490810161afaa565b602060405180830381865af4158015618072573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190618096919061afbd565b8251602001515160405163c836244d60e01b815291925073__$a0fe38a9a81205afccc10810b09a4d3f45$__9163c836244d916180d7916004908101619dae565b602060405180830381865af41580156180f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906181189190619e09565b1561838057600181600181111561813157618131618b64565b0361826657604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__90636099e8989061816d908690600401619451565b602060405180830381865af415801561818a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906181ae9190619e09565b618266576000806181be856164fb565b91509150816181e057604051630e991abd60e41b815260040160405180910390fd5b8351606001518154600160481b90046001600160401b0390811691161461821a5760405163a57cadff60e01b815260040160405180910390fd5b8054600190829060099061823f908490600160481b90046001600160401b0316619d18565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555050505b600081600181111561827a5761827a618b64565b0361830457815160600151600b54600160401b90046001600160401b039081169116146182ba5760405163a57cadff60e01b815260040160405180910390fd5b6001600b60088282829054906101000a90046001600160401b03166182df9190619d18565b92506101000a8154816001600160401b0302191690836001600160401b031602179055505b604051635c46fefb60e11b815273__$33b79814e84bf6cf5e47244090b19ce5f8$__9063b88dfdf69061833b908590600401619112565b600060405180830381865af4158015618358573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052616e9c919081019061b229565b600061838b83618694565b6000818152600960209081526040909120855180518051805184546001600160401b0319166001600160401b03909116178455808501518051969750899694959394869485939284926169409260018501920190618782565b600080600160401b600160a01b03831660ff60981b810361841057600192506001600160401b03841691505b50915091565b600080826000526016600a602060006002607f60991b015afa9150600051806001600160a01b031691508060a01c61ffff16905061040a811461845c5760009250600091505b5081158061846b57503d601614155b1561847b57506000928392509050565b915091565b60008161848d818561b25d565b618498906001619d18565b617b78919061b283565b6060824710156185035760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016170ba565b600080866001600160a01b0316858760405161851f919061b2ae565b60006040518083038185875af1925050503d806000811461855c576040519150601f19603f3d011682016040523d82523d6000602084013e618561565b606091505b5091509150618572878383876186c4565b925050505b949350505050565b60008060646185b160ff7f0000000000000000000000000000000000000000000000000000000000000000168561a422565b6185bb919061b2c0565b604051637d2ef4e560e11b81526004810186905290915060009073__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063fa5de9ca90602401602060405180830381865af4158015618611573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190618635919061972d565b90508185600101541161864d57600092505050611403565b8181111561866057600392505050611403565b600185015461866f9085619768565b6186798284619768565b1061868957600292505050611403565b506001949350505050565b6000816040516020016186a79190619112565b604051602081830303815290604052805190602001209050919050565b6060831561873357825160000361872c576001600160a01b0385163b61872c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016170ba565b5081618577565b61857783838151156187485781518083602001fd5b8060405162461bcd60e51b81526004016170ba919061b2d4565b6040518060400160405280618775618993565b8152600060209091015290565b8280548282559060005260206000209081019282156187d7579160200282015b828111156187d757825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906187a2565b506187e39291506189e8565b5090565b5080546000825590600052602060002090810190612b4791906189e8565b508054618811906195a7565b6000825580601f10618821575050565b601f016020900490600052602060002090810190612b4791906189e8565b50805460008255600c0290600052602060002090810190612b4791906189fd565b5080546000825560030290600052602060002090810190612b479190618acd565b604080516101208101909152806000815260200160006001600160401b0316815260200160006001600160401b031681526020016000815260200160008152602001600081526020016188d261893b565b81526020016188df6188ec565b8152602001606081525090565b6040518060e001604052806188ff61893b565b815260200160006001600160401b0316815260200160008152602001606081526020016060815260200160008019168152602001606081525090565b60408051808201909152600081526060602082015290565b8280548282559060005260206000209081019282156187d75760005260206000209182015b828111156187d7578254825591600101919060010190618978565b6040518060c001604052806189a6618b0e565b81526020016189b3618b0e565b81526020016000815260200160006001600160401b0316815260200160006001600160e01b0319168152602001606081525090565b5b808211156187e357600081556001016189e9565b808211156187e35780546001600160401b03191681556000818181818181618a2860018301826187e7565b505060028201805460ff191681556000618a456003850182618805565b505050506004820180546001600160401b031916815560008181618a6c60058701826187e7565b505060028201805460ff191681556000618a896003850182618805565b50506000600885018190556009850180546001600160601b0319169055618ab69250600a85019150618805565b505050600b8101805460ff19169055600c016189fd565b808211156187e35780546001600160401b031916815560008181618af460018301826187e7565b50618b0590506002830160006187e7565b50600301618acd565b6040518060400160405280618b2161893b565b8152602001618b466040518060400160405280600060ff168152602001606081525090565b905290565b600060208284031215618b5d57600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60068110618b9857634e487b7160e01b600052602160045260246000fd5b9052565b80516001600160401b03168252602080820151604082850181905281519085018190526000929182019190839060608701905b80831015618bf85784516001600160a01b03168252938301936001929092019190830190618bcf565b509695505050505050565b60005b83811015618c1e578181015183820152602001618c06565b50506000910152565b60008151808452618c3f816020860160208601618c03565b601f01601f19169290920160200192915050565b6000815160408452618c686040850182618b9c565b90506020830151848203602086015260ff815116825260208101519050604060208301526179e96040830182618c27565b6000815160c08452618cae60c0850182618c53565b905060208301518482036020860152618cc78282618c53565b9150506040830151604085015260018060401b03606084015116606085015263ffffffff60e01b608084015116608085015260a083015184820360a08601526179e98282618c27565b6000815160408452618d256040850182618c99565b6020938401511515949093019390935250919050565b600081518084526020808501808196508360051b8101915082860160005b85811015618d83578284038952618d71848351618d10565b98850198935090840190600101618d59565b5091979650505050505050565b6000815160e08452618da560e0850182618b9c565b9050602060018060401b038185015116818601526040808501518187015260608501518684036060880152618dda8482618d3b565b935050608085015186840360808801528381518086528486019150848160051b87010185840193506000805b83811015618e7a57888303601f1901855285518051888552618e2a89860182618b9c565b918a0151858303868c01528051808452908b01928592508b01905b80831015618e655783518252928b019260019290920191908b0190618e45565b50978a0197968a019694505050600101618e06565b505060a089015160a08b015260c0890151965089810360c08b0152618e9f8188618c27565b9a9950505050505050505050565b6000610100618ebc838c618b7a565b6001600160401b038a8116602085015289166040840152606083018890526080830187905260a0830186905260c08301819052618efb81840186618b9c565b905082810360e0840152618f0f8185618d90565b9b9a5050505050505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715618f5657618f56618f1e565b60405290565b60405160c081016001600160401b0381118282101715618f5657618f56618f1e565b604051601f8201601f191681016001600160401b0381118282101715618fa657618fa6618f1e565b604052919050565b6001600160401b0381168114612b4757600080fd5b8035618fce81618fae565b919050565b60006001600160401b03821115618fec57618fec618f1e565b5060051b60200190565b6001600160a01b0381168114612b4757600080fd5b600082601f83011261901c57600080fd5b8135602061903161902c83618fd3565b618f7e565b82815260059290921b8401810191818101908684111561905057600080fd5b8286015b84811015618bf857803561906781618ff6565b8352918301918301619054565b60006040828403121561908657600080fd5b61908e618f34565b9050813561909b81618fae565b815260208201356001600160401b038111156190b657600080fd5b6190c28482850161900b565b60208301525092915050565b600080604083850312156190e157600080fd5b82356001600160401b038111156190f757600080fd5b61910385828601619074565b95602094909401359450505050565b602081526000617b786020830184618d10565b60006020828403121561913757600080fd5b8135617b7881618fae565b60006040828403121561915457600080fd5b50919050565b6000806040838503121561916d57600080fd5b82356001600160401b0381111561918357600080fd5b61918f85828601619142565b92505060208301356191a081618fae565b809150509250929050565b602081526000617b786020830184618d3b565b600080604083850312156191d157600080fd5b82356001600160401b03808211156191e857600080fd5b6191f486838701619142565b9350602085013591508082111561920a57600080fd5b5061921785828601619142565b9150509250929050565b6000806040838503121561923457600080fd5b8235915060208301356191a081618ff6565b60a08152600061925960a0830188618b9c565b6001600160401b0387166020840152604083018690526060830185905282810360808401526192888185618c27565b98975050505050505050565b6000602082840312156192a657600080fd5b81356001600160401b038111156192bc57600080fd5b61857784828501619142565b60006101206192d8848451618b7a565b60208301516192f260208601826001600160401b03169052565b50604083015161930d60408601826001600160401b03169052565b50606083015160608501526080830151608085015260a083015160a085015260c08301518160c086015261934382860182618b9c565b91505060e083015184820360e086015261935d8282618d90565b91505061010080840151858303828701526193788382618d3b565b9695505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156193d757603f198886030184526193c58583516192c8565b945092850192908501906001016193a9565b5092979650505050505050565b600080604083850312156193f757600080fd5b823561940281618fae565b915060208301356191a081618ff6565b82151581526040602082015260006185776040830184618d90565b6040815260006194406040830185618c99565b905082151560208301529392505050565b602081526000617b786020830184618b9c565b60006020828403121561947657600080fd5b81356001600160401b0381111561948c57600080fd5b61857784828501619074565b821515815260406020820152600061857760408301846192c8565b6000602082840312156194c557600080fd5b81356001600160401b038111156194db57600080fd5b820160e08185031215617b7857600080fd5b6000806040838503121561950057600080fd5b82356001600160401b038082111561951757600080fd5b6195238683870161900b565b935060209150818501358181111561953a57600080fd5b85019050601f8101861361954d57600080fd5b803561955b61902c82618fd3565b81815260059190911b8201830190838101908883111561957a57600080fd5b928401925b828410156195985783358252928401929084019061957f565b80955050505050509250929050565b600181811c908216806195bb57607f821691505b60208210810361915457634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501808196508360051b810191508286016000805b86811015619683578385038a5282516040815181885261963282890182618b9c565b92890151888403898b01528051808552908a01938693508a0191505b8083101561966e578351825292890192600192909201919089019061964e565b509b88019b9650505091850191600101619610565b509298975050505050505050565b602081526000825160e060208401526196ae610100840182618b9c565b905060018060401b036020850151166040840152604084015160608401526060840151601f19808584030160808601526196e88383618d3b565b925060808601519150808584030160a086015261970583836195f1565b925060a086015160c086015260c08601519150808584030160e0860152506179e98282618c27565b60006020828403121561973f57600080fd5b5051919050565b60006114033683619074565b634e487b7160e01b600052601160045260246000fd5b8181038181111561140357611403619752565b8082018082111561140357611403619752565b6000600182016197a0576197a0619752565b5060010190565b6000808335601e198436030181126197be57600080fd5b83016020810192503590506001600160401b038111156197dd57600080fd5b8060051b36038213156197ef57600080fd5b9250929050565b600060408301823561980781618fae565b6001600160401b031684526020619820848201856197a7565b6040878401529283905291600090606087015b8183101561986357843561984681618ff6565b6001600160a01b0316815293830193600192909201918301619833565b979650505050505050565b60ff81168114612b4757600080fd5b6000808335601e1984360301811261989457600080fd5b83016020810192503590506001600160401b038111156198b357600080fd5b8036038213156197ef57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600081356198f88161986e565b60ff16835261990a602083018361987d565b604060208601526179e96040860182846198c2565b60808152600061993260808301876197f6565b6001600160a01b0386166020840152828103604084015261995381866198eb565b91505082606083015295945050505050565b8051618fce81618fae565b60006040828403121561998257600080fd5b61998a618f34565b9050815161999781618fae565b81526020828101516001600160401b038111156199b357600080fd5b8301601f810185136199c457600080fd5b80516199d261902c82618fd3565b81815260059190911b820183019083810190878311156199f157600080fd5b928401925b82841015619a18578351619a0981618ff6565b825292840192908401906199f6565b8085870152505050505092915050565b60006001600160401b03821115619a4157619a41618f1e565b50601f01601f191660200190565b600082601f830112619a6057600080fd5b8151619a6e61902c82619a28565b818152846020838601011115619a8357600080fd5b618577826020830160208701618c03565b600060408284031215619aa657600080fd5b619aae618f34565b82519091506001600160401b0380821115619ac857600080fd5b619ad485838601619970565b83526020840151915080821115619aea57600080fd5b9083019060408286031215619afe57600080fd5b619b06618f34565b8251619b118161986e565b8152602083015182811115619b2557600080fd5b619b3187828601619a4f565b60208301525080602085015250505092915050565b6001600160e01b031981168114612b4757600080fd5b8051618fce81619b46565b8015158114612b4757600080fd5b8051618fce81619b67565b600060208284031215619b9257600080fd5b81516001600160401b0380821115619ba957600080fd5b9083019060408286031215619bbd57600080fd5b619bc5618f34565b825182811115619bd457600080fd5b830160c08188031215619be657600080fd5b619bee618f5c565b815184811115619bfd57600080fd5b619c0989828501619a94565b825250602082015184811115619c1e57600080fd5b619c2a89828501619a94565b60208301525060408201516040820152619c4660608301619965565b6060820152619c5760808301619b5c565b608082015260a082015184811115619c6e57600080fd5b619c7a89828501619a4f565b60a083015250825250619c8f60208401619b75565b602082015295945050505050565b600060208284031215619caf57600080fd5b8151617b7881618ff6565b604081526000619ccd6040830185618b9c565b905060018060a01b03831660208301529392505050565b600060208284031215619cf657600080fd5b81516001600160401b03811115619d0c57600080fd5b61857784828501619970565b6001600160401b0381811683821601908082111561382257613822619752565b60009081526020902090565b80546001600160401b031682526040602080840182905260018381018054938601849052600090815282812090939092849160608801905b80841015619da25785546001600160a01b03168252948401949284019290820190619d7c565b50979650505050505050565b604081526000619dc16040830185618b9c565b82810360208401526179e98185619d44565b6000823560be19833603018112619de957600080fd5b9190910192915050565b60008235603e19833603018112619de957600080fd5b600060208284031215619e1b57600080fd5b8151617b7881619b67565b600082601f830112619e3757600080fd5b8135619e4561902c82619a28565b818152846020838601011115619e5a57600080fd5b816020850160208301376000918101602001919091529392505050565b600060408284031215619e8957600080fd5b619e91618f34565b905081356001600160401b0380821115619eaa57600080fd5b619eb685838601619074565b83526020840135915080821115619ecc57600080fd5b9083019060408286031215619ee057600080fd5b619ee8618f34565b8235619ef38161986e565b8152602083013582811115619f0757600080fd5b619b3187828601619e26565b8035618fce81619b46565b8035618fce81619b67565b600060408284031215619f3b57600080fd5b619f43618f34565b905081356001600160401b0380821115619f5c57600080fd5b9083019060c08286031215619f7057600080fd5b619f78618f5c565b823582811115619f8757600080fd5b619f9387828601619e77565b825250602083013582811115619fa857600080fd5b619fb487828601619e77565b60208301525060408301356040820152619fd060608401618fc3565b6060820152619fe160808401619f13565b608082015260a083013582811115619ff857600080fd5b61a00487828601619e26565b60a08301525083525061a01b905060208301619f1e565b602082015292915050565b60006114033683619f29565b6001600160401b0382811682821603908082111561382257613822619752565b6080815260006199326080830187619d44565b6000808335601e1984360301811261a07c57600080fd5b8301803591506001600160401b0382111561a09657600080fd5b6020019150600581901b36038213156197ef57600080fd5b60008235603e1983360301811261a0c457600080fd5b90910192915050565b600061a0d9828361a0ae565b6040845261a0ea60408501826197f6565b905061a0f9602084018461a0ae565b84820360208601526179e982826198eb565b81835260006020808501808196508560051b81019150846000805b88811015619683578385038a5261a13d838961a0ae565b6040813560be1983360301811261a152578485fd5b818852820161a161818061a0ae565b60c080848b015261a1766101008b018361a0cd565b915061a1848b84018461a0ae565b603f196060818d860301818e015261a19c858461a0cd565b94506080925086860135838e01528086013596505061a1ba86618fae565b60a060018060401b038716818e015282860135965061a1d887619b46565b6001600160e01b031987168d85015261a1f38682018761987d565b9750955050808c85030160e08d015250505061a2108184846198c2565b9250505061a21f888301619f1e565b15159688019690965250988501989185019160010161a126565b60208152600061857760208301848661a10b565b81835260006020808501808196506005915085821b8101856000805b8981101561a2e9578484038b5261a280838a61a0ae565b604061a28c828361a0ae565b81875261a29b828801826197f6565b91505061a2aa898301836197a7565b8783038b89015280835292506001600160fb1b0383111561a2c9578485fd5b91881b918281838c0137509b88019b01870193509186019160010161a269565b50919998505050505050505050565b85815260a06020820152600061a30e868761a0ae565b60e060a084015261a3236101808401826197f6565b9050602087013561a33381618fae565b6001600160401b031660c0840152604087013560e084015261a35860608801886197a7565b609f19808685030161010087015261a37184838561a10b565b935061a38060808b018b6197a7565b93509150808685030161012087015261a39a84848461a24d565b935060a08a013561014087015261a3b460c08b018b61987d565b9350915080868503016101608701525061a3cf8383836198c2565b935050505084604083015283606083015261937860808301846001600160401b03169052565b6000813561140381618fae565b80546001600160401b0319166001600160401b0392909216919091179055565b808202811582820484141761140357611403619752565b5b81811015612c28576000815560010161a43a565b8054600082558015612c2857816000526020600020611b788282018261a439565b600160401b82111561a4835761a483618f1e565b805482825580831015611b7857816000526020600020616e9c82820185830161a439565b60008155612b476001820161a44e565b600019600383901b1c191660019190911b1790565b61a4d681546195a7565b8015612c2857601f81116001811461a4f057505060009055565b82600052602060002061a50e601f840160051c82016001830161a439565b60008085559055505050565b6000815561a52a6001820161a44e565b60006002820155612b476003820161a4cc565b6000808335601e1984360301811261a55457600080fd5b8301803591506001600160401b0382111561a56e57600080fd5b6020019150368190038213156197ef57600080fd5b601f821115611b7857806000526020600020601f840160051c8101602085101561a5aa5750805b61a5bc601f850160051c83018261a439565b5050505050565b6001600160401b0383111561a5da5761a5da618f1e565b61a5ee8361a5e883546195a7565b8361a583565b6000601f84116001811461a61c576000851561a60a5750838201355b61a614868261a4b7565b84555061a5bc565b601f19851661a62a84619d38565b835b8281101561a64c578685013582556020948501946001909201910161a62c565b508682101561a6695760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b61a6858283619df3565b803561a69081618fae565b61a69a818461a402565b506001808301602061a6ae8185018561a065565b94506001600160401b038086111561a6c85761a6c8618f1e565b61a6d2868561a46f565b600093845282842093805b8781101561a6ff57833561a6f081618ff6565b8682015592840192860161a6dd565b5060028801965061a712848a018a619df3565b94508435925061a7218361986e565b865460ff191660ff841617909655600387019561a7408585018661a53d565b955092508185111561a7545761a754618f1e565b61a7688561a76289546195a7565b8961a583565b809150601f85116001811461a7965781861561a7845750838301355b61a78e878261a4b7565b89555061a7ea565b601f19861661a7a489619d38565b835b8281101561a7c3578686013582559487019490890190870161a7a6565b508782101561a7e05760001960f88960031b161c19858701351681555b50508686881b0188555b50505050505050505050565b6000813561140381619b46565b6000813561140381619b67565b813560be1983360301811261a82457600080fd5b820161a8308180619df3565b61a83a8182619df3565b803561a84581618fae565b61a84f818661a402565b506001808501602061a8638185018561a065565b94506001600160401b038086111561a87d5761a87d618f1e565b61a887868561a46f565b600093845282842093805b8781101561a8b457833561a8a581618ff6565b8682015592840192860161a892565b5060028a01965061a8c784890189619df3565b97508735945061a8d68561986e565b865460ff191660ff861617909655600389019561a8f58885018961a53d565b985094508188111561a9095761a909618f1e565b61a9178861a76289546195a7565b809250601f88116001811461a94757819250881561a936578386013592505b61a940898461a4b7565b885561a99c565b601f198916925061a95788619d38565b825b8481101561a976578786013582559486019490880190860161a959565b508984101561a9935760001960f88b60031b161c19858801351681555b508689881b0188555b5050505061a9b861a9af82880188619df3565b6004890161a67b565b6040860135600888015560098701945061a9dd61a9d76060880161a3f5565b8661a402565b61aa1061a9ec6080880161a7f6565b86805463ffffffff60401b191660a09290921c63ffffffff60401b16919091179055565b61aa1d60a087018761a53d565b9650945061aa2f8686600a8a0161a5c3565b61aa5661aa3d828a0161a803565b600b890160ff1981541660ff8315151681178255505050565b5050505050505050565b600160401b83111561aa745761aa74618f1e565b80548382558084101561ab0857600c818102818104831461aa975761aa97619752565b858202828104871461aaab5761aaab619752565b6000858152602081209283019291909101905b8282101561ab035761aacf8261a51a565b61aadb6004830161a51a565b80600883015580600983015561aaf3600a830161a4cc565b80600b830155838201915061aabe565b505050505b508161ab1382619d38565b60005b85811015614d6a5761ab3161ab2b8487619df3565b8361a810565b60209290920191600c919091019060010161ab16565b805460008083558115611b7857828152602081208281015b8082101561a5bc5782825560018201915061ab5f565b600160401b82111561ab895761ab89618f1e565b805482825580831015611b78576000828152602081208481019083015b80821015614d6a5782825560018201915061aba6565b61abc68283619df3565b803561abd181618fae565b61abdb818461a402565b506001808301602061abef8185018561a065565b94506001600160401b038086111561ac095761ac09618f1e565b61ac13868561a46f565b600093845282842093805b8781101561ac4057833561ac3181618ff6565b8682015592840192860161ac1e565b5060028801965061ac53848a018a61a065565b955092508185111561ac675761ac67618f1e565b61ac71858861ab75565b95865250818520945b8381101561aa565781358682015590820190840161ac7a565b600160401b83111561aca75761aca7618f1e565b80548382558084101561ad15576003818102818104831461acca5761acca619752565b858202828104871461acde5761acde619752565b60008581526020902091820191015b8181101561ad115761acfe8161a4a7565b61ad0a6002820161ab47565b820161aced565b5050505b508161ad2082619d38565b60005b85811015614d6a5761ad3e61ad388487619df3565b8361abbc565b602092909201916003919091019060010161ad23565b61ad5e8283619df3565b803561ad6981618fae565b61ad73818461a402565b506001808301602061ad878185018561a065565b94506001600160401b0385111561ada05761ada0618f1e565b61adaa858461a46f565b6000928352818320925b8581101561add657813561adc781618ff6565b8482015590820190840161adb4565b505061adef61ade682880161a3f5565b6002870161a402565b505050506040820135600382015561ae0a606083018361a065565b61ae1881836004860161aa60565b505061ae27608083018361a065565b61ae3581836005860161ac93565b505060a0820135600682015561ae4e60c083018361a53d565b616e9c81836007860161a5c3565b600061ae6a61902c84618fd3565b8381529050602080820190600585901b84018681111561ae8957600080fd5b845b8181101561aec45780356001600160401b0381111561aeaa5760008081fd5b61aeb689828901619f29565b85525092820192820161ae8b565b505050509392505050565b6000617b7836848461ae5c565b6001600160a01b0391909116815260200190565b81516001600160401b0381111561af095761af09618f1e565b61af1d8161af1784546195a7565b8461a583565b602080601f83116001811461af4c576000841561af3a5750858301515b61af44858261a4b7565b865550614d6a565b601f19841661af5a86619d38565b60005b8281101561af7c5788860151825594840194600190910190840161af5d565b508582101561af9a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b604081526000619dc16040830185618c99565b60006020828403121561afcf57600080fd5b815160028110617b7857600080fd5b60408152600061aff16040830185618b9c565b82810360208401526179e98185618b9c565b60006001600160401b038281166002600160401b0319810161b0275761b027619752565b6001019392505050565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b038381168061b0615761b06161b031565b92169190910692915050565b60006040823603121561b07f57600080fd5b61b087618f34565b823561b09281618fae565b815260208301356001600160401b0381111561b0ad57600080fd5b830136601f82011261b0be57600080fd5b6190c23682356020840161ae5c565b602080825282516001600160401b0316828201528201516040808301526000906185776060840182618d3b565b813561b10581618fae565b61b10f818361a402565b506001808201602061b1238186018661a065565b600160401b81111561b1375761b137618f1e565b83548185558082101561b1ca57600c818102818104831461b15a5761b15a619752565b838202828104851461b16e5761b16e619752565b60008881528781209283019291909101905b8282101561b1c55761b1918261a51a565b61b19d6004830161a51a565b80600883015580600983015561b1b5600a830161a4cc565b80600b830155838201915061b180565b505050505b508161b1d585619d38565b945060005b8281101561b2075761b1f561b1ef8386619df3565b8761a810565b600c959095019490840190860161b1da565b505050505050505050565b9182526001600160401b0316602082015260400190565b60006020828403121561b23b57600080fd5b81516001600160401b0381111561b25157600080fd5b61857784828501619a4f565b60006001600160401b038381168061b2775761b27761b031565b92169190910492915050565b6001600160401b0381811683821602808216919082811461b2a65761b2a6619752565b505092915050565b60008251619de9818460208701618c03565b60008261b2cf5761b2cf61b031565b500490565b602081526000617b786020830184618c2756fea264697066735822122065456745baa1dcff41df13b13d38965feddc99868fbf80d1bd8327da15dbd3b464736f6c63430008130033", - "sourceMap": "1685:33077:25:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2696:41;;;;;;;;;;-1:-1:-1;2696:41:25;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;2925:43;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7634:31:60;;;7616:50;;7604:2;7589:18;2925:43:25;7472:200:60;8125:218:25;;;;;;;;;;-1:-1:-1;8125:218:25;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1363:38:28:-;;;;;;;;;;-1:-1:-1;1363:38:28;;;;-1:-1:-1;;;;;1363:38:28;;;;-1:-1:-1;;;1363:38:28;;;;;-1:-1:-1;;;1363:38:28;;;;;;;;;;-1:-1:-1;;;;;11388:15:60;;;11370:34;;11440:15;;;11435:2;11420:18;;11413:43;11492:15;;11472:18;;;11465:43;;;;11321:2;11306:18;1363:38:28;11137:377:60;22484:240:25;;;;;;;;;;-1:-1:-1;22484:240:25;;;;;:::i;:::-;;:::i;:::-;;;;11962:14:60;;11955:22;11937:41;;12009:2;11994:18;;11987:34;;;;11910:18;22484:240:25;11769:258:60;27864:742:25;;;;;;;;;;-1:-1:-1;27864:742:25;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;8628:224::-;;;;;;;;;;-1:-1:-1;8628:224:25;;;;;:::i;:::-;;:::i;:::-;;4623:23;;;;;;;;;;-1:-1:-1;4623:23:25;;;;;;;;;;;13183:14:60;;13176:22;13158:41;;13146:2;13131:18;4623:23:25;13018:187:60;865:40:28;;;;;;;;;;;;;;;14012:363:25;;;;;;:::i;:::-;;:::i;8963:582::-;;;:::i;4100:67::-;;;;;;;;;;-1:-1:-1;4100:67:25;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;14300:25:60;;;14288:2;14273:18;4100:67:25;14154:177:60;3825:36:25;;;;;;;;;;;;;;;20434:910;;;;;;:::i;:::-;;:::i;3445:64::-;;;;;;;;;;-1:-1:-1;3445:64:25;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;18989:1305::-;;;;;;:::i;:::-;;:::i;2597:33::-;;;;;;;;;;;;;;;3561:27;;;;;;;;;;-1:-1:-1;3561:27:25;;;;-1:-1:-1;;;;;3561:27:25;;;11175:440;;;;;;;;;;;;;:::i;10157:579::-;;;;;;;;;;-1:-1:-1;10157:579:25;;;;;:::i;:::-;;:::i;8284:93:28:-;;;;;;;;;;-1:-1:-1;8357:13:28;;-1:-1:-1;;;8357:13:28;;-1:-1:-1;;;;;8357:13:28;8284:93;;2823:27:25;;;;;;;;;;-1:-1:-1;2823:27:25;;;;;:::i;:::-;;:::i;749:41:28:-;;;;;;;;;;;;;;;;;;15906:4:60;15894:17;;;15876:36;;15864:2;15849:18;749:41:28;15734:184:60;9616:477:25;;;:::i;34391:369::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;21532:285::-;;;;;;;;;;-1:-1:-1;21532:285:25;;;;;:::i;:::-;-1:-1:-1;;;;;21696:28:25;;21628:4;21696:28;;;:21;:28;;;;;;;;21773:25;;21742:57;;:30;;:57;;;;;-1:-1:-1;;;;;21742:68:25;;;;;;;;;;;;21532:285;;;;;14532:305;;;;;;:::i;:::-;;:::i;22028:238::-;;;;;;;;;;-1:-1:-1;22028:238:25;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;3287:42::-;;;;;;;;;;;;;;;3732:33;;;;;;;;;;-1:-1:-1;3732:33:25;;;;-1:-1:-1;;;3732:33:25;;-1:-1:-1;;;;;3732:33:25;;;3170:43;;;;;;;;;;-1:-1:-1;3170:43:25;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;2297:55::-;;;;;;;;;;;;2345:7;2297:55;;8406:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3914:26::-;;;;;;;;;;;;;;;;17179:1663;;;;;;;;;;-1:-1:-1;17179:1663:25;;;;;:::i;:::-;;:::i;7836:202::-;;;;;;;;;;-1:-1:-1;7836:202:25;;;;;:::i;:::-;;:::i;28729:289::-;;;;;;;;;;-1:-1:-1;28729:289:25;;;;;:::i;:::-;;:::i;:::-;;;;20891:14:60;;20884:22;20866:41;;-1:-1:-1;;;;;20943:31:60;;;20938:2;20923:18;;20916:59;20839:18;28729:289:25;20700:281:60;634:48:28;;;;;;;;;;;;680:2;634:48;;2502:26:25;;;;;;;;;;-1:-1:-1;2502:26:25;;;;-1:-1:-1;;;;;2502:26:25;;;961:37:28;;;;;;;;;;-1:-1:-1;961:37:28;;;;-1:-1:-1;;;;;961:37:28;;;7626:135:25;;;;;;;;;;-1:-1:-1;7626:135:25;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;11748:1999::-;;;;;;;;;;-1:-1:-1;11748:1999:25;;;;;:::i;:::-;;:::i;4247:29::-;;;;;;;;;;;;;;;;15027:2008;;;;;;;;;;-1:-1:-1;15027:2008:25;;;;;:::i;:::-;;:::i;10742:359::-;;;;;;;;;;-1:-1:-1;10742:359:25;;;;;:::i;:::-;;:::i;2696:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2696:41:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2696:41:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2696:41:25;;;;;;;;;;;;;;;;-1:-1:-1;;;2696:41:25;;;;-1:-1:-1;;2696:41:25;;;;;;;;;;;;;-1:-1:-1;;;;;2696:41:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2696:41:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2696:41:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2696:41:25;-1:-1:-1;;;;;2696:41:25;-1:-1:-1;;;;;2696:41:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2696:41:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2696:41:25;;;;;;;;;;;;;;;;-1:-1:-1;;;2696:41:25;;;;-1:-1:-1;;;2696:41:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2696:41:25;;;;-1:-1:-1;;;2696:41:25;;-1:-1:-1;2696:41:25;;;;;;;;;;;;;;;-1:-1:-1;;;;;2696:41:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2696:41:25;;;;;;;;;;;;;;;;-1:-1:-1;;;2696:41:25;;;;-1:-1:-1;;;2696:41:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2696:41:25;;;;-1:-1:-1;;;2696:41:25;;-1:-1:-1;2696:41:25;;;;;;;;;;;;;;-1:-1:-1;;;;;2696:41:25;;;;;;-1:-1:-1;;;2696:41:25;;;;-1:-1:-1;;;;;;2696:41:25;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2696:41:25;;;;-1:-1:-1;;;2696:41:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2696:41:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2696:41:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8125:218::-;8218:15;;:::i;:::-;8248:21;8273:20;8284:8;8273:10;:20::i;:::-;8245:48;;;8311:6;:18;;8330:5;8311:25;;;;;;;;:::i;:::-;;;;;;;;;;8304:32;;;;;;;;8311:25;;;;;;;8304:32;;-1:-1:-1;;;;;8304:32:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;8311:25;;8304:32;;;;;8311:25;;8304:32;;;;;;8311:25;;8304:32;;8311:25;;8304:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8304:32:25;;;;;;;;;;;;;;;;-1:-1:-1;;;8304:32:25;;;;-1:-1:-1;;;8304:32:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8304:32:25;;;;-1:-1:-1;;;8304:32:25;;-1:-1:-1;8304:32:25;;;;;;;;;;;;;;;-1:-1:-1;;;;;8304:32:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8304:32:25;;;;;;;;;;;;;;;;-1:-1:-1;;;8304:32:25;;;;-1:-1:-1;;;8304:32:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8304:32:25;;;;-1:-1:-1;;;8304:32:25;;-1:-1:-1;8304:32:25;;;;;;;;;;;;;;-1:-1:-1;;;;;8304:32:25;;;;;;-1:-1:-1;;;8304:32:25;;;;-1:-1:-1;;;;;;8304:32:25;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8304:32:25;;;;-1:-1:-1;;;8304:32:25;;;;;;;;;;;;;;;;;;-1:-1:-1;;8125:218:25;;;;;:::o;22484:240::-;22560:4;22566:7;22586:11;22599:36;22639:32;22665:5;22639:25;:32::i;:::-;22697:19;;-1:-1:-1;;;22697:19:25;;22585:86;;-1:-1:-1;22585:86:25;-1:-1:-1;22585:86:25;;22697:17;;;;:19;;22585:86;;22697:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22681:36;;;;;;22484:240;;;:::o;27864:742::-;27957:17;27987:15;;28029:20;;28040:8;28029:20;:::i;:::-;:10;:20::i;:::-;27986:63;;;;28064:10;28059:66;;28097:17;;;28112:1;28097:17;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;28090:24;;;;;;28059:66;28157:18;;;:25;-1:-1:-1;;;;;28216:18:25;;28248:28;;;28244:83;;28299:17;;;28314:1;28299:17;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;28292:24;;;;;;;;28244:83;28337:17;28357:27;28371:13;28357:11;:27;:::i;:::-;28337:47;;28394:26;28438:9;-1:-1:-1;;;;;28423:25:25;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;28394:54;;28463:9;28458:116;28482:9;28478:1;:13;28458:116;;;28526:18;;;28545:17;28549:13;28545:1;:17;:::i;:::-;28526:37;;;;;;;;:::i;:::-;;;;;;;;;;28512:51;;;;;;;;28526:37;;;;;;;28512:51;;-1:-1:-1;;;;;28512:51:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;28526:37;;28512:51;;;;;28526:37;;28512:51;;;;;;28526:37;;28512:51;;28526:37;;28512:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;28512:51:25;;;;;;;;;;;;;;;;-1:-1:-1;;;28512:51:25;;;;-1:-1:-1;;;28512:51:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;28512:51:25;;;;-1:-1:-1;;;28512:51:25;;-1:-1:-1;28512:51:25;;;;;;;;;;;;;;;-1:-1:-1;;;;;28512:51:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;28512:51:25;;;;;;;;;;;;;;;;-1:-1:-1;;;28512:51:25;;;;-1:-1:-1;;;28512:51:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;28512:51:25;;;;-1:-1:-1;;;28512:51:25;;-1:-1:-1;28512:51:25;;;;;;;;;;;;;;-1:-1:-1;;;;;28512:51:25;;;;;;-1:-1:-1;;;28512:51:25;;;;-1:-1:-1;;;;;;28512:51:25;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;28512:51:25;;;;-1:-1:-1;;;28512:51:25;;;;;;;;;;;;;;;;;:11;;:8;;28521:1;;28512:11;;;;;;:::i;:::-;;;;;;:51;;;;28493:3;;;;;:::i;:::-;;;;28458:116;;;-1:-1:-1;28591:8:25;27864:742;-1:-1:-1;;;;;;;;27864:742:25:o;8628:224::-;6438:18;:16;:18::i;:::-;8714:11:::1;::::0;::::1;;8710:69;;;8748:20;;-1:-1:-1::0;;;8748:20:25::1;;;;;;;;;;;8710:69;8789:13;:28:::0;;-1:-1:-1;;;;;8789:28:25;;::::1;-1:-1:-1::0;;;8789:28:25::1;-1:-1:-1::0;;;;;;;;8789:28:25;;::::1;::::0;;;::::1;::::0;;8827:11:::1;:18:::0;;-1:-1:-1;;8827:18:25::1;::::0;;::::1;::::0;;8628:224::o;14012:363::-;6362:15;:13;:15::i;:::-;6508:9:::1;:7;:9::i;:::-;14125:24:::2;14152:14;:28;14181:8:::0;14191:10:::2;14203:2:::0;14207:23:::2;14219:11;14207:9;:23;:::i;:::-;14152:79;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;::::0;;::::2;-1:-1:-1::0;;14152:79:25::2;::::0;::::2;;::::0;::::2;::::0;;;::::2;::::0;::::2;:::i;:::-;14125:106;;14278:27;14296:8;14278:17;:27::i;:::-;14316:52;14335:17;:8:::0;:17:::2;:::i;:::-;:19;::::0;-1:-1:-1;;;14335:19:25;;:17:::2;::::0;::::2;::::0;:19:::2;::::0;:17;:19:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14356:11;14316:18;:52::i;:::-;14115:260;14012:363:::0;;:::o;8963:582::-;9026:8;9014:9;:20;9010:74;;;9057:16;;-1:-1:-1;;;9057:16:25;;;;;;;;;;;9010:74;9121:27;;;;;;;;:12;:27;;-1:-1:-1;;;;;9121:27:25;;;;;;;;;;;;;;;;;;;;;;9094:24;;9121:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9121:27:25;;;;;;;;;;;;;;;;-1:-1:-1;;;9121:27:25;;;;-1:-1:-1;;9121:39:25;;-1:-1:-1;;;9121:39:25;;:27;;;;-1:-1:-1;9121:39:25;;9149:10;;9121:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9121:39:25;;;;;;;;;;;;:::i;:::-;9094:66;;9172:15;9189:21;9214:20;9225:8;9214:10;:20::i;:::-;9171:63;;;;9249:10;9245:73;;;9282:25;;-1:-1:-1;;;9282:25:25;;;;;;;;;;;9245:73;9328:20;;:9;;;:20;;-1:-1:-1;;;;;;9328:20:25;-1:-1:-1;;;;;9328:20:25;;;;;;;;;;;;;;;;;;:9;:20;;;;;;;;;;:::i;:::-;-1:-1:-1;;9373:9:25;9358:12;;;;:24;;;;9392:29;;-1:-1:-1;;9392:29:25;;;;-1:-1:-1;9453:12:25;9431:19;;;:34;9492:17;;-1:-1:-1;;;9492:17:25;;9476:10;;9492:15;;;;:17;;:8;;:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9476:34;;;;;;;;-1:-1:-1;9476:34:25;;;;;;;;;;;;;9521:12;:17;;9476:34;;9521:12;;:17;;9476:34;;-1:-1:-1;;;;;9521:17:25;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;9521:17:25;;;;;-1:-1:-1;;;;;9521:17:25;;;;;;9000:545;;;8963:582::o;20434:910::-;6508:9;:7;:9::i;:::-;20503:25:::1;20531:15:::0;;;:7:::1;:15;::::0;;;;;;;20607:29;;;;;;;;;-1:-1:-1;;;;;20607:29:25::1;::::0;;;;;;;;::::1;::::0;;;;;;::::1;::::0;;;;;;;;;20531:15;;20503:25;;;20607:29:::1;::::0;20531:15;;20607:29;;;;::::1;::::0;20531:15;;20607:29;;;;;;20531:15;;20607:29;;;;20531:15;;20607:29;;;;;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;20607:29:25::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;;;20607:29:25;;;;-1:-1:-1;;;20607:29:25;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;;::::0;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;20607:29:25;;;;-1:-1:-1;;;20607:29:25;;-1:-1:-1;20607:29:25;;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;20607:29:25::1;::::0;;::::1;::::0;;;;;;;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;;;::::1;::::0;;;;;;;;;;;;;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;20607:29:25::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;;;20607:29:25;;;;-1:-1:-1;;;20607:29:25;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;;::::0;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;20607:29:25;;;;-1:-1:-1;;;20607:29:25;;-1:-1:-1;20607:29:25;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;20607:29:25;::::1;::::0;;;;-1:-1:-1;;;20607:29:25;::::1;;;-1:-1:-1::0;;;;;;20607:29:25::1;::::0;;;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;20607:29:25;;;;-1:-1:-1;;;20607:29:25;;::::1;::::0;;;::::1;::::0;::::1;;;;;::::0;;::::1;::::0;:19:::1;:29::i;:::-;20914:22;::::0;::::1;::::0;20975:33:::1;::::0;;;;::::1;::::0;;:19:::1;::::0;::::1;:33:::0;;-1:-1:-1;;;;;20975:33:25::1;::::0;;;;;;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;20557:79;;-1:-1:-1;20557:79:25;;-1:-1:-1;20914:22:25;;20902:9:::1;::::0;20975:33;;:19;;:33;;::::1;::::0;;;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;20975:33:25::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;;;20975:33:25;;;;-1:-1:-1;;20975:47:25::1;::::0;-1:-1:-1;;;20975:47:25;;:33:::1;::::0;::::1;::::0;-1:-1:-1;20975:47:25::1;::::0;21009:12:::1;::::0;20975:47;::::1;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;20975:47:25::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;21039:15;::::0;;;:7:::1;:15;::::0;;;;21032:22;;-1:-1:-1;;;;;;21032:22:25::1;::::0;;20946:76;;-1:-1:-1;21039:15:25;;;;;;21032:22:::1;::::0;;::::1;21039:15:::0;21032:22:::1;:::i;:::-;-1:-1:-1::0;;21032:22:25::1;::::0;::::1;::::0;;-1:-1:-1;;21032:22:25::1;::::0;;::::1;;::::0;;;;::::1;:::i;:::-;-1:-1:-1::0;;;;21032:22:25::1;::::0;::::1;::::0;;-1:-1:-1;;;;;;21032:22:25::1;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;:::i;:::-;-1:-1:-1::0;;21032:22:25::1;::::0;::::1;::::0;;-1:-1:-1;;21032:22:25::1;::::0;;::::1;;::::0;;;;::::1;:::i;:::-;-1:-1:-1::0;;21032:22:25::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;;21032:22:25;;;::::1;::::0;-1:-1:-1;21032:22:25::1;::::0;::::1;::::0;-1:-1:-1;21032:22:25::1;:::i;:::-;-1:-1:-1::0;;;21032:22:25::1;;::::0;;-1:-1:-1;;21032:22:25::1;::::0;;21065:72:::1;21086:1:::0;21089:10;21101;21113:23;21065:20:::1;:72::i;:::-;21148:20;21171:23;21183:11;21171:9;:23;:::i;:::-;21148:46:::0;-1:-1:-1;21209:16:25;;21205:90:::1;;21241:43;21249:10;21271:12:::0;21241:29:::1;:43::i;:::-;20493:851;;;;;;20434:910:::0;:::o;3445:64::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3445:64:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3445:64:25;;;;;;;;;;;;;;;;-1:-1:-1;;;3445:64:25;;;;-1:-1:-1;;;3445:64:25;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3445:64:25;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;18989:1305::-;6362:15;:13;:15::i;:::-;6508:9:::1;:7;:9::i;:::-;19120::::2;19094:16;:8:::0;;:16:::2;:::i;:::-;:22;;;:35;19090:89;;19152:16;;-1:-1:-1::0;;;19152:16:25::2;;;;;;;;;;;19090:89;19360:16;:8:::0;;:16:::2;:::i;:::-;:21;::::0;;::::2;:::i;:::-;:30;::::0;;::::2;:::i;:::-;:37;;;:::i;:::-;:51;::::0;-1:-1:-1;;;19360:51:25;;:37:::2;::::0;::::2;::::0;:51:::2;::::0;:37;19398:12:::2;::::0;19360:51;::::2;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19355:119;;19434:29;;-1:-1:-1::0;;;19434:29:25::2;;;;;;;;;;;19355:119;19967:15;::::0;20016:29:::2;;20036:8:::0;20016:29:::2;:::i;:::-;:19;:29::i;:::-;19966:79:::0;;-1:-1:-1;19966:79:25;-1:-1:-1;20056:188:25::2;20090:16;:8:::0;;:16:::2;:::i;:::-;:22;;;20126:16;:8:::0;;:16:::2;:::i;:::-;:19;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;:28;::::0;;::::2;:::i;:::-;:33;;;:::i;:::-;:47;::::0;-1:-1:-1;;;20126:47:25;;:33:::2;::::0;::::2;::::0;:47:::2;::::0;:33;20160:12:::2;::::0;20126:47;::::2;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;::::0;;::::2;-1:-1:-1::0;;20126:47:25::2;::::0;::::2;;::::0;::::2;::::0;;;::::2;::::0;::::2;:::i;:::-;20187:10;20211:23;20056:20;:188::i;11175:440::-:0;11211:15;11228:21;11253:22;11264:10;11253;:22::i;:::-;11210:65;;;;11291:10;11286:70;;11324:21;;-1:-1:-1;;;11324:21:25;;;;;;;;;;;11286:70;11369:17;;;;:21;11365:85;;11413:26;;-1:-1:-1;;;11413:26:25;;;;;;;;;;;11365:85;11476:12;;;;;11499;:17;;11476:12;;;11460:13;;11499:17;;11476:12;;-1:-1:-1;;;;;11499:17:25;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;11499:17:25;;;;;;;;;;;;;;;11542:16;;;;;;;;:9;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;11534:7;;-1:-1:-1;;;11542:16:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11542:16:25;;;;;;;;;;;;;;;;-1:-1:-1;;;11542:16:25;;;;-1:-1:-1;;11542:18:25;;-1:-1:-1;;;11542:18:25;;:16;;;;-1:-1:-1;11542:18:25;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11534:27;;;;;;;;;;;-1:-1:-1;11534:27:25;;;11527:34;;-1:-1:-1;;;;;;11527:34:25;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;11527:34:25;;;11534:27;;-1:-1:-1;;11527:34:25;;;;-1:-1:-1;11527:34:25;:::i;:::-;-1:-1:-1;;11527:34:25;;;;;-1:-1:-1;;;;;;11527:34:25;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;11527:34:25;;;;;-1:-1:-1;;;;;;11527:34:25;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;11527:34:25;;-1:-1:-1;11527:34:25;;;;;:::i;:::-;-1:-1:-1;11572:36:25;;-1:-1:-1;11580:10:25;11602:5;11572:29;:36::i;10157:579::-;2261:21:18;:19;:21::i;:::-;10231:6:25::1;10241:1;10231:11:::0;10227:68:::1;;10265:19;;-1:-1:-1::0;;;10265:19:25::1;;;;;;;;;;;10227:68;10306:15;10323:21:::0;10348:22:::1;10359:10;10348;:22::i;:::-;10305:65;;;;10386:10;10381:70;;10419:21;;-1:-1:-1::0;;;10419:21:25::1;;;;;;;;;;;10381:70;10479:6;10464;:12;;;:21;10460:84;;;10508:25;;-1:-1:-1::0;;;10508:25:25::1;;;;;;;;;;;10460:84;10570:6;10554;:12;;;:22;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;10591:12:25::1;::::0;::::1;::::0;10606:8:::1;-1:-1:-1::0;10587:85:25::1;;;10630:31:::0;;-1:-1:-1;;10630:31:25::1;10646:15;10630:31;::::0;;10587:85:::1;10690:18;::::0;;;;::::1;::::0;;:9:::1;::::0;::::1;:18:::0;;-1:-1:-1;;;;;10690:18:25::1;::::0;;;;;;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;10682:47:::1;::::0;10722:6;;10690:18;:9;:18;;::::1;::::0;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;10690:18:25::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;;;10690:18:25;;;;-1:-1:-1;;10690:20:25::1;::::0;-1:-1:-1;;;10690:20:25;;:18:::1;::::0;::::1;::::0;-1:-1:-1;10690:20:25::1;::::0;::::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10682:39:25::1;::::0;::::1;:47::i;:::-;10217:519;;2303:20:18::0;1716:1;2809:7;:22;2629:209;2303:20;10157:579:25;:::o;2823:27::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2823:27:25;:::o;9616:477::-;9680:1;9667:9;:14;9663:68;;9704:16;;-1:-1:-1;;;9704:16:25;;;;;;;;;;;9663:68;9742:15;9759:21;9784:22;9795:10;9784;:22::i;:::-;9741:65;;;;9822:10;9817:70;;9855:21;;-1:-1:-1;;;9855:21:25;;;;;;;;;;;9817:70;9913:9;9897:6;:12;;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;9954:15:25;;-1:-1:-1;9937:13:25;;;;:32;;;;;;;;:::i;:::-;;9933:154;;10005:8;9989:6;:12;;;:24;9985:92;;10033:29;;-1:-1:-1;;10033:29:25;10049:13;10033:29;;;9985:92;9653:440;;9616:477::o;34391:369::-;34479:10;:17;34437:15;;34464:12;34479:17;-1:-1:-1;;;;;34528:18:25;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;34506:40;;34561:9;34556:178;34580:4;34576:1;:8;34556:178;;;34602:11;34616:10;34627:1;34616:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;34652:12;;;:7;:12;;;;;;;;34643:21;;;;;;;;;;34616:13;;-1:-1:-1;34652:12:25;34643:21;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;34643:21:25;;;;;;;;;;;;;-1:-1:-1;;;34643:21:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34643:21:25;;;;;;;;;;;;;;;;-1:-1:-1;;;34643:21:25;;;;-1:-1:-1;;;34643:21:25;;;;;;;;;;;;;;;-1:-1:-1;;;;;34643:21:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34643:21:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34643:21:25;-1:-1:-1;;;;;34643:21:25;-1:-1:-1;;;;;34643:21:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34643:21:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34643:21:25;;;;;;;;;;;;;;;;-1:-1:-1;;;34643:21:25;;;;-1:-1:-1;;;34643:21:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;34643:21:25;;;;-1:-1:-1;;;34643:21:25;;-1:-1:-1;34643:21:25;;;;;;;;;;;;;;;-1:-1:-1;;;;;34643:21:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34643:21:25;;;;;;;;;;;;;;;;-1:-1:-1;;;34643:21:25;;;;-1:-1:-1;;;34643:21:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;34643:21:25;;;;-1:-1:-1;;;34643:21:25;;-1:-1:-1;34643:21:25;;;;;;;;;;;;;;-1:-1:-1;;;;;34643:21:25;;;;;;-1:-1:-1;;;34643:21:25;;;;-1:-1:-1;;;;;;34643:21:25;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;34643:21:25;;;;-1:-1:-1;;;34643:21:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34643:21:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34643:21:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34643:21:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34643:21:25;;;;;;;;;;;;;;;;-1:-1:-1;;;34643:21:25;;;;-1:-1:-1;;;34643:21:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;34643:21:25;;;;-1:-1:-1;;;34643:21:25;;-1:-1:-1;34643:21:25;;;;;;;;;;;;;;;-1:-1:-1;;;;;34643:21:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34643:21:25;;;;;;;;;;;;;;;;-1:-1:-1;;;34643:21:25;;;;-1:-1:-1;;;34643:21:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;34643:21:25;;;;-1:-1:-1;;;34643:21:25;;-1:-1:-1;34643:21:25;;;;;;;;;;;;;;-1:-1:-1;;;;;34643:21:25;;;;;;-1:-1:-1;;;34643:21:25;;;;-1:-1:-1;;;;;;34643:21:25;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;34643:21:25;;;;-1:-1:-1;;;34643:21:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:3;34647:1;34643:6;;;;;;;;:::i;:::-;;;;;;;;;;:21;-1:-1:-1;34706:3:25;;34556:178;;;-1:-1:-1;34750:3:25;34391:369;-1:-1:-1;;34391:369:25:o;14532:305::-;6362:15;:13;:15::i;:::-;6508:9:::1;:7;:9::i;:::-;14620:24:::2;14647:14;:31;14692:12;14718:10;14742:2:::0;14758:23:::2;14770:11;14758:9;:23;:::i;:::-;14647:144;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;::::0;;::::2;-1:-1:-1::0;;14647:144:25::2;::::0;::::2;;::::0;::::2;::::0;;;::::2;::::0;::::2;:::i;:::-;14620:171;;14802:28;14821:8;14802:18;:28::i;22028:238::-:0;22112:11;22125:36;;:::i;:::-;-1:-1:-1;;;;;22186:26:25;;;;;;;:19;:26;;;;;;;;;22173:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22186:26;;22173:39;;;;22186:26;;22173:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22173:39:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22173:39:25;-1:-1:-1;;;;;22173:39:25;-1:-1:-1;;;;;22173:39:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22173:39:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22173:39:25;;;;;;;;;;;;;;;;-1:-1:-1;;;22173:39:25;;;;-1:-1:-1;;;22173:39:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;22173:39:25;;;;-1:-1:-1;;;22173:39:25;;-1:-1:-1;22173:39:25;;;;;;;;;;;;;;;-1:-1:-1;;;;;22173:39:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22173:39:25;;;;;;;;;;;;;;;;-1:-1:-1;;;22173:39:25;;;;-1:-1:-1;;;22173:39:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;22173:39:25;;;;-1:-1:-1;;;22173:39:25;;-1:-1:-1;22173:39:25;;;;;;;;;;;;;;-1:-1:-1;;;;;22173:39:25;;;;;;-1:-1:-1;;;22173:39:25;;;;-1:-1:-1;;;;;;22173:39:25;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;22173:39:25;;;;-1:-1:-1;;;22173:39:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22173:39:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22173:39:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;22173:39:25;;;;-1:-1:-1;;22232:17:25;;:27;;-1:-1:-1;;;22232:27:25;;22173:39;;-1:-1:-1;22232:25:25;;;;-1:-1:-1;22232:27:25;;:17;:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22231:28;22222:37;;22028:238;;;:::o;3170:43::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3170:43:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3170:43:25;;;;;;;;;;;;;;;;-1:-1:-1;;;3170:43:25;;;;-1:-1:-1;;;3170:43:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3170:43:25;;;;-1:-1:-1;;;3170:43:25;;-1:-1:-1;3170:43:25;;;;;;;;;;;;;;;-1:-1:-1;;;;;3170:43:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3170:43:25;;;;;;;;;;;;;;;;-1:-1:-1;;;3170:43:25;;;;-1:-1:-1;;;3170:43:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3170:43:25;;;;-1:-1:-1;;;3170:43:25;;-1:-1:-1;3170:43:25;;;;;;;;;;;;;;-1:-1:-1;;;;;3170:43:25;;;;;;-1:-1:-1;;;3170:43:25;;;;-1:-1:-1;;;;;;3170:43:25;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3170:43:25;;;;-1:-1:-1;;;3170:43:25;;;;;;;;:::o;8406:102::-;8455:15;;:::i;:::-;8482:19;;;;;;;;8489:12;8482:19;;-1:-1:-1;;;;;8482:19:25;;;;;;;;;;;;;;;;;;;;;;;;8489:12;;8482:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8482:19:25;;;;;;;;;;;;;;;;;;;;;;;;;;;8406:102;:::o;17179:1663::-;6362:15;:13;:15::i;:::-;17302:16:::1;;::::0;::::1;:10:::0;:16:::1;:::i;:::-;1956:22:28;1972:5;1956:15;:22::i;:::-;17369:14:25::2;::::0;17330:23:::2;17356:28:::0;;;:12:::2;:28;::::0;;;;;;;17385:10:::2;17356:40:::0;;;;;;;;17412:11:::2;::::0;::::2;;17407:66;;17446:16;;-1:-1:-1::0;;;17446:16:25::2;;;;;;;;;;;17407:66;17486:15;17505:1;17486:20:::0;17482:72:::2;;17529:14;;-1:-1:-1::0;;;17529:14:25::2;;;;;;;;;;;17482:72;17568:14;:23;17592:22;;::::0;::::2;:10:::0;:22:::2;:::i;:::-;17568:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17563:105;;17638:19;;-1:-1:-1::0;;;17638:19:25::2;;;;;;;;;;;17563:105;17678:49;17730:21;17678:49:::0;17752:16:::2;;::::0;::::2;:10:::0;:16:::2;:::i;:::-;-1:-1:-1::0;;;;;17730:39:25::2;-1:-1:-1::0;;;;;17730:39:25::2;;;;;;;;;;;;17678:91;;17807:22;17832:75;17851:14;17867:10;17879;17891:15;17832:18;:75::i;:::-;17807:100;;17975:29;18019:17;18015:110;;;18066:48;18099:14;18066:32;:48::i;:::-;18052:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;;::::2;::::0;;;;::::2;::::0;;;;;;;::::2;::::0;::::2;::::0;;::::2;::::0;;-1:-1:-1;;;;;18052:62:25::2;::::0;;;;;;;;::::2;::::0;;;;;;::::2;::::0;;;;;;;;;;;;;;;;::::2;::::0;;;;;;;;;;;;;;;;;;;;;;::::2;::::0;;;::::2;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;18052:62:25::2;::::0;;;;;::::2;::::0;::::2;;::::0;;::::2;;;;-1:-1:-1::0;;;18052:62:25;;;;-1:-1:-1;;;18052:62:25;;::::2;::::0;;;;::::2;::::0;;;::::2;::::0;::::2;::::0;;::::2;;::::0;;;;;;;::::2;::::0;;::::2;::::0;;::::2;::::0;;::::2;::::0;::::2;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;18052:62:25;;;;-1:-1:-1;;;18052:62:25;;-1:-1:-1;18052:62:25;;::::2;::::0;;;;;;;::::2;::::0;::::2;::::0;;-1:-1:-1;;;;;18052:62:25::2;::::0;;::::2;::::0;;;;;;;;;;::::2;::::0;;::::2;::::0;;;;;;;;;;;;::::2;::::0;;;;;;;;;;;;;;;;::::2;::::0;;;::::2;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;18052:62:25::2;::::0;;;;;::::2;::::0;::::2;;::::0;;::::2;;;;-1:-1:-1::0;;;18052:62:25;;;;-1:-1:-1;;;18052:62:25;;::::2;::::0;;;;::::2;::::0;;;::::2;::::0;::::2;::::0;;::::2;;::::0;;;;;;;::::2;::::0;;::::2;::::0;;::::2;::::0;;::::2;::::0;::::2;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;18052:62:25;;;;-1:-1:-1;;;18052:62:25;;-1:-1:-1;18052:62:25;;::::2;::::0;::::2;::::0;::::2;::::0;::::2;::::0;::::2;::::0;::::2;::::0;-1:-1:-1;;;;;18052:62:25;::::2;::::0;;;;-1:-1:-1;;;18052:62:25;::::2;;;-1:-1:-1::0;;;;;;18052:62:25::2;::::0;;;;::::2;::::0;::::2;::::0;;;;;;;::::2;::::0;::::2;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;18052:62:25;;;;-1:-1:-1;;;18052:62:25;;::::2;::::0;;;::::2;::::0;::::2;;;;;::::0;;::::2;::::0;;;;;;;;::::2;::::0;::::2;;;;;;;;;;18015:110;18286:11;:18;18308:1;18286:23:::0;18282:387:::2;;18326:26;18354:22:::0;18380:25:::2;:23;:25::i;:::-;18325:80;;;;18424:17;18420:239;;;-1:-1:-1::0;;;;;18517:42:25;::::2;18461:53;18517:42:::0;;;:21:::2;:42;::::0;;;;18592:52:::2;18517:42:::0;18592:32:::2;:52::i;:::-;18578:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;;::::2;::::0;;;;::::2;::::0;;;;;;;::::2;::::0;::::2;::::0;;::::2;::::0;;-1:-1:-1;;;;;18578:66:25::2;::::0;;;;;;;;::::2;::::0;;;;;;::::2;::::0;;;;;;;;;;;;;;;;::::2;::::0;;;;;;;;;;;;;;;;;;;;;;::::2;::::0;;;::::2;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;18578:66:25::2;::::0;;;;;::::2;::::0;::::2;;::::0;;::::2;;;;-1:-1:-1::0;;;18578:66:25;;;;-1:-1:-1;;;18578:66:25;;::::2;::::0;;;;::::2;::::0;;;::::2;::::0;::::2;::::0;;::::2;;::::0;;;;;;;::::2;::::0;;::::2;::::0;;::::2;::::0;;::::2;::::0;::::2;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;18578:66:25;;;;-1:-1:-1;;;18578:66:25;;-1:-1:-1;18578:66:25;;::::2;::::0;;;;;;;::::2;::::0;::::2;::::0;;-1:-1:-1;;;;;18578:66:25::2;::::0;;::::2;::::0;;;;;;;;;;::::2;::::0;;::::2;::::0;;;;;;;;;;;;::::2;::::0;;;;;;;;;;;;;;;;::::2;::::0;;;::::2;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;18578:66:25::2;::::0;;;;;::::2;::::0;::::2;;::::0;;::::2;;;;-1:-1:-1::0;;;18578:66:25;;;;-1:-1:-1;;;18578:66:25;;::::2;::::0;;;;::::2;::::0;;;::::2;::::0;::::2;::::0;;::::2;;::::0;;;;;;;::::2;::::0;;::::2;::::0;;::::2;::::0;;::::2;::::0;::::2;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;18578:66:25;;;;-1:-1:-1;;;18578:66:25;;-1:-1:-1;18578:66:25;;::::2;::::0;::::2;::::0;::::2;::::0;::::2;::::0;::::2;::::0;::::2;::::0;-1:-1:-1;;;;;18578:66:25;::::2;::::0;;;;-1:-1:-1;;;18578:66:25;::::2;;;-1:-1:-1::0;;;;;;18578:66:25::2;::::0;;;;::::2;::::0;::::2;::::0;;;;;;;::::2;::::0;::::2;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;18578:66:25;;;;-1:-1:-1;;;18578:66:25;;::::2;::::0;;;::::2;::::0;::::2;;;;;::::0;;::::2;::::0;;;;;;;;::::2;::::0;::::2;;;;;;;;;;18443:216;18420:239;18311:358;;18282:387;18792:29;::::0;;;;::::2;::::0;;-1:-1:-1;18792:29:25;;;18804:16;;;;;18792:29:::2;18804:16:::0;;::::2;::::0;;;18777:58:::2;::::0;18792:29;::::2;::::0;-1:-1:-1;18792:29:25;;18823:11;18777:14:::2;:58::i;:::-;17320:1522;;;;6387:1:::1;17179:1663:::0;:::o;7836:202::-;7921:7;7943:21;7968:20;7979:8;7968:10;:20::i;:::-;8006:18;;:25;;7836:202;-1:-1:-1;;;;7836:202:25:o;28729:289::-;28812:4;;;;28879:20;;28890:8;28879:20;:::i;:::-;28836:63;;;;28914:10;28909:59;;-1:-1:-1;28948:5:25;;;;-1:-1:-1;28729:289:25;-1:-1:-1;;;28729:289:25:o;28909:59::-;28991:19;28985:4;;28991:19;;;;-1:-1:-1;;;;;28991:19:25;;-1:-1:-1;28985:4:25;-1:-1:-1;;;28729:289:25:o;7626:135::-;7696:4;7702:13;;:::i;:::-;7734:20;;7745:8;7734:20;:::i;:::-;7727:27;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;7727:27:25;;;;;;;;;;;;;-1:-1:-1;;;7727:27:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7727:27:25;;;;;;;;;;;;;;;;-1:-1:-1;;;7727:27:25;;;;-1:-1:-1;;;7727:27:25;;;;;;;;;;;;;;;-1:-1:-1;;;;;7727:27:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7727:27:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7727:27:25;-1:-1:-1;;;;;7727:27:25;-1:-1:-1;;;;;7727:27:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7727:27:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7727:27:25;;;;;;;;;;;;;;;;-1:-1:-1;;;7727:27:25;;;;-1:-1:-1;;;7727:27:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7727:27:25;;;;-1:-1:-1;;;7727:27:25;;-1:-1:-1;7727:27:25;;;;;;;;;;;;;;;-1:-1:-1;;;;;7727:27:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7727:27:25;;;;;;;;;;;;;;;;-1:-1:-1;;;7727:27:25;;;;-1:-1:-1;;;7727:27:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7727:27:25;;;;-1:-1:-1;;;7727:27:25;;-1:-1:-1;7727:27:25;;;;;;;;;;;;;;-1:-1:-1;;;;;7727:27:25;;;;;;-1:-1:-1;;;7727:27:25;;;;-1:-1:-1;;;;;;7727:27:25;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7727:27:25;;;;-1:-1:-1;;;7727:27:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7727:27:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7727:27:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7727:27:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7727:27:25;;;;;;;;;;;;;;;;-1:-1:-1;;;7727:27:25;;;;-1:-1:-1;;;7727:27:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7727:27:25;;;;-1:-1:-1;;;7727:27:25;;-1:-1:-1;7727:27:25;;;;;;;;;;;;;;;-1:-1:-1;;;;;7727:27:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7727:27:25;;;;;;;;;;;;;;;;-1:-1:-1;;;7727:27:25;;;;-1:-1:-1;;;7727:27:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7727:27:25;;;;-1:-1:-1;;;7727:27:25;;-1:-1:-1;7727:27:25;;;;;;;;;;;;;;-1:-1:-1;;;;;7727:27:25;;;;;;-1:-1:-1;;;7727:27:25;;;;-1:-1:-1;;;;;;7727:27:25;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7727:27:25;;;;-1:-1:-1;;;7727:27:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7727:27:25;;-1:-1:-1;7727:27:25;;;;-1:-1:-1;7626:135:25;-1:-1:-1;;;;7626:135:25:o;11748:1999::-;11834:11;;;;11829:66;;11868:16;;-1:-1:-1;;;11868:16:25;;;;;;;;;;;11829:66;11948:10;11908:36;:13;:6;;:13;:::i;:::-;:22;;;:::i;:::-;:24;;-1:-1:-1;;;11908:24:25;;:22;;;;:24;;:22;:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11908:34:25;;:36::i;:::-;-1:-1:-1;;;;;11908:50:25;;11904:113;;11981:25;;-1:-1:-1;;;11981:25:25;;;;;;;;;;;11904:113;12030:21;12055:22;12066:10;12055;:22::i;:::-;12027:50;-1:-1:-1;12108:13:25;;-1:-1:-1;12091:13:25;;;;:30;;;;;;;;:::i;:::-;;12087:85;;12144:17;;-1:-1:-1;;;12144:17:25;;;;;;;;;;;12087:85;12216:12;;;;;;;;:::i;:::-;12185:27;;;;-1:-1:-1;;;;;12185:43:25;;;:27;;:43;12181:105;;12251:24;;-1:-1:-1;;;12251:24:25;;;;;;;;;;;12181:105;12299:15;;;;:29;12295:182;;12367:28;;;;;;;;:21;;;:28;;-1:-1:-1;;;;;12367:28:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:21;;:28;;:21;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12367:28:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12367:28:25;-1:-1:-1;;;;;12367:28:25;-1:-1:-1;;;;;12367:28:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12367:28:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12367:28:25;;;;;;;;;;;;;;;;-1:-1:-1;;;12367:28:25;;;;-1:-1:-1;;;12367:28:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12367:28:25;;;;-1:-1:-1;;;12367:28:25;;-1:-1:-1;12367:28:25;;;;;;;;;;;;;;;-1:-1:-1;;;;;12367:28:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12367:28:25;;;;;;;;;;;;;;;;-1:-1:-1;;;12367:28:25;;;;-1:-1:-1;;;12367:28:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12367:28:25;;;;-1:-1:-1;;;12367:28:25;;-1:-1:-1;12367:28:25;;;;;;;;;;;;;;-1:-1:-1;;;;;12367:28:25;;;;;;-1:-1:-1;;;12367:28:25;;;;-1:-1:-1;;;;;;12367:28:25;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12367:28:25;;;;-1:-1:-1;;;12367:28:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12367:28:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12367:28:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12367:28:25;;;;-1:-1:-1;;12367:30:25;;-1:-1:-1;;;12367:30:25;;:28;;;;-1:-1:-1;12367:30:25;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12348:6;:15;;;:49;12344:123;;12424:28;;-1:-1:-1;;;12424:28:25;;;;;;;;;;;12344:123;12568:21;12603;12638:37;12688:31;:29;:31::i;:::-;12554:165;;;;;;12796:16;12791:127;;12848:12;12828:32;;;;-1:-1:-1;;;;;;12828:32:25;-1:-1:-1;;;;;12828:32:25;;;;;;;;;:10;;:32;;;;;;;;:::i;:::-;-1:-1:-1;;;12874:16:25;;;:33;;-1:-1:-1;;;;;;12874:33:25;-1:-1:-1;;;;;12874:33:25;;;;;12791:127;12928:68;;-1:-1:-1;;;12928:68:25;;:24;;;;:68;;:10;;12953:6;;12961:9;;12972:7;;12981:14;;12928:68;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13007:18;13039:22;13064:6;:16;;;;;;;;:::i;:::-;:23;;13039:48;;13102:9;13097:173;13121:14;13117:1;:18;13097:173;;;13167:16;;;;:6;:16;:::i;:::-;13184:1;13167:19;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:27;;;;:::i;:::-;13153:47;;13167:33;;;13153:47;;:::i;:::-;;-1:-1:-1;13242:3:25;;13097:173;;;-1:-1:-1;13307:14:25;;;;13294:27;;:10;;;;:27;:::i;:::-;13280:41;;;;:::i;:::-;;;13476:10;13456:6;:17;;;:30;13452:95;;;13509:27;;-1:-1:-1;;;13509:27:25;;;;;;;;;;;13452:95;13578:10;13557:6;:17;;;:31;;;;;;;:::i;:::-;;;;-1:-1:-1;13623:6:25;;-1:-1:-1;13599:21:25;;;:30;13623:6;13599:21;:30;:::i;:::-;-1:-1:-1;13640:47:25;;-1:-1:-1;13655:13:25;:6;;:13;:::i;:::-;13640:47;;;:::i;:::-;13670:16;;;;:6;:16;:::i;:::-;13640:47;;;:::i;:::-;:14;:47::i;:::-;13698:42;13717:10;13729:6;:10;;;13698:18;:42::i;15027:2008::-;6438:18;:16;:18::i;:::-;15165:7:::1;:14;15144:10;:17;:35;15140:109;;15202:36;;-1:-1:-1::0;;;15202:36:25::1;;;;;;;;;;;15140:109;15309:14;;15307:16;;;;;:::i;:::-;::::0;;;-1:-1:-1;15444:17:25;;15334:29:::1;::::0;;15471:1469:::1;15521:16;15504:14;:33;15471:1469;;;15555:24;15582:10;15593:14;15582:26;;;;;;;;:::i;:::-;;;;;;;15555:53;;15654:1;-1:-1:-1::0;;;;;15626:30:25::1;:16;-1:-1:-1::0;;;;;15626:30:25::1;;15622:375;;15676:23;15702:7;15710:14;15702:23;;;;;;;;:::i;:::-;;;;;;;15676:49;;15748:15;15767:1;15748:20:::0;15744:97:::1;;15799:23;;-1:-1:-1::0;;;15799:23:25::1;;;;;;;;;;;15744:97;15872:14;::::0;15859:28:::1;::::0;;;:12:::1;:28;::::0;;;;;;;-1:-1:-1;;;;;15859:46:25;::::1;::::0;;;;;;;:64;;;15942:40:::1;15908:15:::0;15942:40;::::1;:::i;:::-;;;15658:339;15622:375;-1:-1:-1::0;16899:16:25::1;;15471:1469;;;-1:-1:-1::0;;16950:11:25::1;:35:::0;-1:-1:-1;;15027:2008:25:o;10742:359::-;2261:21:18;:19;:21::i;:::-;10818:6:25::1;10828:1;10818:11:::0;10814:68:::1;;10852:19;;-1:-1:-1::0;;;10852:19:25::1;;;;;;;;;;;10814:68;10893:15;10910:21:::0;10935:22:::1;10946:10;10935;:22::i;:::-;10892:65;;;;10972:10;10967:70;;11005:21;;-1:-1:-1::0;;;11005:21:25::1;;;;;;;;;;;34084:194:::0;34153:10;34165:21;34207:7;:26;34215:8;:15;;;;:17;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;34207:26;;;;;;;;;;;;;;-1:-1:-1;34207:26:25;34252:17;;;;;;;:9;;;:17;;-1:-1:-1;;;;;34252:17:25;;;;;;;;;;;;;;;;;;;;;;;34207:26;;-1:-1:-1;34252:17:25;;:9;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34252:17:25;;;;;;;;;;;;;;;;-1:-1:-1;;;34252:17:25;;;;-1:-1:-1;;34252:19:25;;-1:-1:-1;;;34252:19:25;;:17;;;;-1:-1:-1;34252:19:25;;;;;:::i;6184:138::-;6240:26;;-1:-1:-1;;;6240:26:25;;:24;;;;:26;;:10;;:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6235:81;;6289:16;;-1:-1:-1;;;6289:16:25;;;;;;;;;;;6235:81;6184:138::o;5914:135::-;5967:22;;-1:-1:-1;;;5967:22:25;;:20;;;;:22;;:10;;:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5962:81;;6012:20;;-1:-1:-1;;;6012:20:25;;;;;;;;;;;6055:123;6113:11;6101:9;:23;6097:75;;;6147:14;;-1:-1:-1;;;6147:14:25;;;;;;;;;;;27093:512;27196:20;;:23;;;:32;:51;;-1:-1:-1;;;27196:51:25;;27169:24;;27196:37;;;;:51;;27234:12;;27196:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;27196:51:25;;;;;;;;;;;;:::i;:::-;27169:78;;27259:15;27276:21;27301:20;27312:8;27301:10;:20::i;:::-;27258:63;;;;27337:10;27332:70;;27370:21;;-1:-1:-1;;;27370:21:25;;;;;;;;;;;27332:70;27441:19;;27412:20;;27441:19;;;;-1:-1:-1;;;;;27441:19:25;27412:26;;;;:48;;;27441:19;;;;;;27470:24;;27441:19;;27470:24;:::i;:::-;;;;;;;;-1:-1:-1;;;;;27470:24:25;;;;;-1:-1:-1;;;;;27470:24:25;;;;;;27525:12;:20;;;:26;;;27504:6;:17;;;:47;;;;;;;:::i;:::-;;;;-1:-1:-1;;27561:18:25;;;:37;;;;;;;;-1:-1:-1;27561:37:25;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;27561:37:25;-1:-1:-1;;;;;27561:37:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;27561:37:25;;;;;;;;;;;;-1:-1:-1;;27561:37:25;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;27561:37:25;;;;;;;;;;;;;;-1:-1:-1;;;;;;27561:37:25;-1:-1:-1;;;;;27561:37:25;;;;;;;;;;;;;;;;;-1:-1:-1;27561:37:25;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;27561:37:25;;;;;;;;;;;;-1:-1:-1;;27561:37:25;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;27561:37:25;;;;;;;;-1:-1:-1;27561:37:25;;;;;;;;;;;;;;;-1:-1:-1;;;27561:37:25;-1:-1:-1;;;;;;27561:37:25;;;-1:-1:-1;;;;;27561:37:25;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;27561:37:25;;;;;;;;;;;;-1:-1:-1;;27561:37:25;;;;;;;;;;-1:-1:-1;;;;27093:512:25:o;33089:288::-;33168:6;33178:1;33168:11;33164:48;;33089:288;;:::o;33164:48::-;33272:98;33293:14;:2;-1:-1:-1;;;;;33293:12:25;;:14::i;:::-;33309:60;;;;;;;14300:25:60;;;33309:60:25;;;;;;;;;;14273:18:60;;;;33309:60:25;;;;;;;;-1:-1:-1;;;;;33309:60:25;-1:-1:-1;;;33309:60:25;;;33272:20;:98::i;24772:1281::-;24941:20;;:23;;;:32;24987:12;;-1:-1:-1;;;24987:12:25;;24863:15;;;;24987:10;;;;:12;;24941:32;;24987:12;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24983:84;;;25022:34;;-1:-1:-1;;;25022:34:25;;;;;;;;;;;24983:84;25187:23;;-1:-1:-1;;;25187:23:25;;:9;;;;:23;;:2;;25197:12;;25187:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25183:89;;;25233:28;;-1:-1:-1;;;25233:28:25;;;;;;;;;;;25183:89;25305:20;;:25;;:34;25372:44;;-1:-1:-1;;;25372:44:25;;25305:34;;25282:20;;25372:30;;;;:44;;25305:20;25403:12;;25372:44;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25349:67;-1:-1:-1;25484:25:25;25537:19;25524:9;:32;;;;;;;;:::i;:::-;;25520:129;;25596:21;;-1:-1:-1;;;25596:21:25;;:15;;;;:21;;:2;;25612:4;;25596:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;25596:21:25;;;;;;;;;;;;:::i;:::-;:42;;-1:-1:-1;;;25596:42:25;;:28;;;;:42;;:28;25625:12;;25596:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25595:43;25572:66;;25520:129;25663:20;25659:183;;;25699:32;25718:12;25699:18;:32::i;:::-;-1:-1:-1;;25767:20:25;;:26;;;:30;;;25796:1;;-1:-1:-1;24772:1281:25;-1:-1:-1;;;24772:1281:25:o;25659:183::-;25869:18;25856:9;:31;;;;;;;;:::i;:::-;;25852:83;;25905:19;25903:21;;25905:19;;25903:21;;-1:-1:-1;;;25903:21:25;;-1:-1:-1;;;;;25903:21:25;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;25903:21:25;;;;;-1:-1:-1;;;;;25903:21:25;;;;;;25852:83;25945:31;25963:12;25945:17;:31::i;:::-;-1:-1:-1;26008:5:25;;26041:4;;-1:-1:-1;24772:1281:25;-1:-1:-1;;;;;24772:1281:25:o;26512:377::-;26689:10;26685:80;;;26715:39;109:2:29;26752:1:25;26715:36;:39::i;:::-;26779:23;26775:108;;;26837:21;;-1:-1:-1;;;26837:21:25;;26818:54;;26837:19;;;;:21;;:10;;:21;;;:::i;26818:54::-;26512:377;;;;:::o;13246:258:0:-;13354:7;13330:21;:31;13326:63;;;13370:19;;-1:-1:-1;;;13370:19:0;;;;;;;;;;;13326:63;13401:12;13419:10;-1:-1:-1;;;;;13419:15:0;13442:7;13419:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13400:54;;;13469:7;13464:33;;13485:12;;-1:-1:-1;;;13485:12:0;;;;;;;;;;;33592:296:25;33650:10;;-1:-1:-1;;;;;33699:19:25;;33695:78;;33741:21;;-1:-1:-1;;;33741:21:25;;;;;;;;;;;33695:78;33809:27;;;;;;;;:12;:27;;-1:-1:-1;;;;;33809:27:25;;;;;;;;;;;;;;;;;;;;;;33782:24;;33809:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33809:27:25;;;;;;;;;;;;;;;;-1:-1:-1;;;33809:27:25;;;;-1:-1:-1;;33809:34:25;;-1:-1:-1;;;33809:34:25;;:27;;;;-1:-1:-1;33809:34:25;;33837:5;;33809:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;33809:34:25;;;;;;;;;;;;:::i;:::-;33782:61;;33861:20;33872:8;33861:10;:20::i;:::-;33854:27;;;;;33592:296;;;:::o;2336:287:18:-;1759:1;2468:7;;:19;2460:63;;;;-1:-1:-1;;;2460:63:18;;76144:2:60;2460:63:18;;;76126:21:60;76183:2;76163:18;;;76156:30;76222:33;76202:18;;;76195:61;76273:18;;2460:63:18;;;;;;;;;1759:1;2598:7;:18;2336:287::o;29220:331:25:-;29302:37;29343:31;:29;:31::i;:::-;29414:13;;29385:20;;-1:-1:-1;;;;;29414:13:25;;;29385:26;;;;:42;29438:14;;;:29;;29297:77;;-1:-1:-1;29456:11:25;;-1:-1:-1;29438:14:25;-1:-1:-1;29414:13:25;;29438:29;;29456:11;;29438:29;:::i;:::-;;;;-1:-1:-1;;29477:20:25;;;:39;;;;;;;;-1:-1:-1;29477:39:25;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;29477:39:25;-1:-1:-1;;;;;29477:39:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;29477:39:25;;;;;;;;;;;;-1:-1:-1;;29477:39:25;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;29477:39:25;;;;;;;;;;;;;;-1:-1:-1;;;;;;29477:39:25;-1:-1:-1;;;;;29477:39:25;;;;;;;;;;;;;;;;;-1:-1:-1;29477:39:25;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;29477:39:25;;;;;;;;;;;;-1:-1:-1;;29477:39:25;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;29477:39:25;;;;;;;;-1:-1:-1;29477:39:25;;;;;;;;;;;;;;;-1:-1:-1;;;29477:39:25;-1:-1:-1;;;;;;29477:39:25;;;-1:-1:-1;;;;;29477:39:25;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;29477:39:25;;;;;;;;;;;;-1:-1:-1;;29477:39:25;;;;;;;;;;29526:18;;-1:-1:-1;;29477:39:25;-1:-1:-1;;29526:18:25;;-1:-1:-1;;;;;;;29526:18:25;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;29526:18:25;;;;;-1:-1:-1;;;;;29526:18:25;;;;;;29287:264;29220:331;:::o;1546:356:28:-;1621:23;;-1:-1:-1;;;;;1621:23:28;;;1612:32;;;;1608:92;;1667:22;;-1:-1:-1;;;1667:22:28;;;;;;;;;;;1608:92;1721:13;;-1:-1:-1;;;;;;;;1721:13:28;;;;;1713:21;;;;1709:76;;;1757:17;;-1:-1:-1;;;1757:17:28;;;;;;;;;;;1709:76;1807:13;;1824:16;;1799:21;;-1:-1:-1;;;1807:13:28;;-1:-1:-1;;;;;1807:13:28;1799:5;:21;:::i;:::-;1798:42;;;;:::i;:::-;-1:-1:-1;;;;;1798:47:28;;1794:102;;1868:17;;-1:-1:-1;;;1868:17:28;;;;;;;;;;;23686:737:25;23911:22;;23970:17;:10;:17;:::i;:::-;:19;;-1:-1:-1;;;23970:19:25;;:17;;;;:19;;:17;:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23945:44;-1:-1:-1;24020:196:25;24045:14;23945:44;24106:16;24136:15;24165:16;;;;:10;:16;:::i;:::-;24195:11;;24020;:196::i;:::-;24283:42;;;;:26;;;:42;;;;;;;;:50;;;;;;;;;-1:-1:-1;;;;;24283:50:25;;;;;;;;;;;;;;;;;;;;;;;24000:216;;-1:-1:-1;24283:50:25;;:42;;:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24283:50:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24283:50:25;;;;;;;;;;;;;;;;-1:-1:-1;;;24283:50:25;;;;-1:-1:-1;;;24283:50:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;24283:50:25;;;;-1:-1:-1;;;24283:50:25;;-1:-1:-1;24283:50:25;;;;;;;;;;;;;;;-1:-1:-1;;;;;24283:50:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24283:50:25;;;;;;;;;;;;;;;;-1:-1:-1;;;24283:50:25;;;;-1:-1:-1;;;24283:50:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;24283:50:25;;;;-1:-1:-1;;;24283:50:25;;-1:-1:-1;24283:50:25;;;;;;;;;;;;;;-1:-1:-1;;;;;24283:50:25;;;;;;-1:-1:-1;;;24283:50:25;;;;-1:-1:-1;;;;;;24283:50:25;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;24283:50:25;;;;-1:-1:-1;;;24283:50:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;24283:50:25;;-1:-1:-1;;24283:52:25;;-1:-1:-1;;;24283:52:25;;:50;;;;:52;;:50;:52;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24279:138;;;24351:42;;;;:26;;;:42;;;;;24396:10;;24351:55;24396:10;24351:42;:55;:::i;:::-;-1:-1:-1;;24279:138:25;23935:488;23686:737;;;;;;:::o;22939:409::-;23182:39;;;;23064:18;23142:89;;;:26;;;:89;;;;;23266:25;;23242:50;;-1:-1:-1;;;;;23266:25:25;23242:23;:50::i;:::-;23310:31;;;22939:409;-1:-1:-1;;22939:409:25:o;5657:203:28:-;5774:15;:21;-1:-1:-1;;;5774:21:28;;-1:-1:-1;;;;;5774:21:28;5715:16;5820:33;5774:21;5820:22;:33::i;:::-;5805:48;;5657:203;;:::o;32030:318:25:-;32155:16;;32129:23;32181:161;32205:15;32201:1;:19;32181:161;;;32238:34;32248:9;32259;32269:1;32259:12;;;;;;;;:::i;:::-;;;;;;;32238:9;:34::i;:::-;32314:3;;32181:161;;2356:528:0;2410:7;2506:9;2517;2530:15;2542:2;2530:11;:15::i;:::-;2505:40;;;;2560:4;2555:45;;-1:-1:-1;2587:2:0;;2356:528;-1:-1:-1;;2356:528:0:o;2555:45::-;2733:12;2747:11;2762:17;2776:2;2762:13;:17::i;:::-;2732:47;;;;2794:7;2789:89;;-1:-1:-1;2824:2:0;;2356:528;-1:-1:-1;;;;2356:528:0:o;2789:89::-;2864:3;2356:528;-1:-1:-1;;;;;2356:528:0:o;32569:327:25:-;32657:11;32670:12;32684:37;32745:48;32759:12;32773:19;32745:13;:48::i;:::-;-1:-1:-1;;;;;32816:26:25;;;;;;;:19;:26;;;;;;;;;32862:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32737:56;;-1:-1:-1;32816:26:25;;-1:-1:-1;32862:25:25;;32816:26;;32862:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;32862:25:25;;;;;;;;;;;;;;;;-1:-1:-1;;;32862:25:25;;;;-1:-1:-1;;32862:27:25;;-1:-1:-1;;;32862:27:25;;:25;;;;-1:-1:-1;32862:27:25;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;32861:28;32852:37;;32569:327;;;:::o;3702:185:19:-;3777:12;3808:72;3830:6;3838:4;3844:1;3808:72;;;;;;;;;;;;;;;;;:21;:72::i;:::-;3801:79;3702:185;-1:-1:-1;;;3702:185:19:o;6350:1478:28:-;6637:10;;6587:22;6661;;;:15;;;:22;;;;;;;;-1:-1:-1;;;;;6661:40:28;;;;;;;;;;6587:22;;6637:10;6661:40;;6657:101;;;6724:23;;-1:-1:-1;;;6724:23:28;;;;;;;;;;;6657:101;6768:22;;;;:15;;;:22;;;;;;;;-1:-1:-1;;;;;6768:40:28;;;;;;;;;:47;;-1:-1:-1;;6768:47:28;6811:4;6768:47;;;;;;6825:26;;:45;;6855:15;;6768:22;6825:45;;6855:15;;6825:45;:::i;:::-;;;;-1:-1:-1;;6880:29:28;;;;:22;;;:29;;;;;;;;:45;;;;;;;;:64;;6929:15;;6880:29;:64;;6929:15;;6880:64;:::i;:::-;;;;-1:-1:-1;;6955:23:28;6981:29;;;:22;;;:29;;;;;;;;7011:24;;;;6981:55;;;;;;;;;7072:45;;;;;;7132:33;;;7128:105;;;7181:24;;;:41;;;7128:105;7243:26;7272:41;7295:4;7301:11;7272:22;:41::i;:::-;7243:70;-1:-1:-1;7338:36:28;7328:6;:46;;;;;;;;:::i;:::-;;7324:498;;7394:29;7417:5;7394:22;:29::i;:::-;7390:263;;;7463:4;7443:24;;7324:498;;7390:263;7611:27;;-1:-1:-1;;;7611:27:28;;:20;;;;:27;;:15;;7632:5;;7611:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7324:498;;;7683:30;7673:6;:40;;;;;;;;:::i;:::-;;7669:153;;7799:12;;-1:-1:-1;;;7799:12:28;;;;;14300:25:60;;;7799:10:28;;;;14273:18:60;;7799:12:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7669:153;6611:1217;;;;6350:1478;;;;;;;;:::o;4555:562::-;4673:29;4696:5;4673:22;:29::i;:::-;4668:67;;4555:562;:::o;4668:67::-;4809:31;;-1:-1:-1;;;4809:31:28;;:24;;;;:31;;:15;;4834:5;;4809:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4805:136;;;4860:15;:21;-1:-1:-1;;;;;4860:30:28;;;-1:-1:-1;;;4860:21:28;;;;:30;4856:75;;4555:562;:::o;4856:75::-;4997:29;;-1:-1:-1;;;4997:29:28;;:22;;;;:29;;:15;;5020:5;;4997:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5079:23:28;:31;;-1:-1:-1;;;;;;5079:31:28;-1:-1:-1;;;;;5079:31:28;;;;;;;;;;;-1:-1:-1;;4555:562:28:o;5317:150::-;5418:23;;5386:4;;5418:42;;5444:16;;-1:-1:-1;;;;;5418:23:28;:42;:::i;:::-;-1:-1:-1;;;;;5409:51:28;:5;-1:-1:-1;;;;;5409:51:28;;5402:58;;5317:150;;;:::o;29827:1862:25:-;29922:16;;:19;;;:28;:38;;-1:-1:-1;;;29922:38:25;;:36;;;;:38;;:28;:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29918:110;;;29983:34;;-1:-1:-1;;;29983:34:25;;;;;;;;;;;29918:110;30041:16;;:23;;;-1:-1:-1;;;;;;30041:38:25;30037:178;;30099:16;;:22;;;30124:21;-1:-1:-1;30095:110:25;;;30172:18;;-1:-1:-1;;;30172:18:25;;;;;;;;;;;30095:110;30248:16;;:40;;-1:-1:-1;;;30248:40:25;;30225:20;;30248:26;;;;:40;;30275:12;;30248:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;30371:16;;:19;;;:28;:49;;-1:-1:-1;;;30371:49:25;;30225:63;;-1:-1:-1;30371:35:25;;;;:49;;30407:12;;30371:49;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;30367:1132;;;30623:19;30610:9;:32;;;;;;;;:::i;:::-;;30606:529;;30667:19;;-1:-1:-1;;;30667:19:25;;:17;;;;:19;;:9;;:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;30662:459;;30711:15;30728:21;30753;30764:9;30753:10;:21::i;:::-;30710:64;;;;30801:10;30796:94;;30846:21;;-1:-1:-1;;;30846:21:25;;;;;;;;;;;30796:94;30946:16;;:22;;;30915:27;;-1:-1:-1;;;30915:27:25;;-1:-1:-1;;;;;30915:27:25;;;:53;;;30911:137;;31003:22;;-1:-1:-1;;;31003:22:25;;;;;;;;;;;30911:137;31070:32;;31101:1;;31070:32;;:27;;:32;;31101:1;;-1:-1:-1;;;31070:32:25;;-1:-1:-1;;;;;31070:32:25;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;31070:32:25;;;;;-1:-1:-1;;;;;31070:32:25;;;;;;30688:433;;30662:459;31166:18;31153:9;:31;;;;;;;;:::i;:::-;;31149:232;;31231:16;;:22;;;31208:19;;-1:-1:-1;;;31208:19:25;;-1:-1:-1;;;;;31208:19:25;;;:45;;;31204:121;;31284:22;;-1:-1:-1;;;31284:22:25;;;;;;;;;;;31204:121;31365:1;31342:19;;:24;;;;;;;;;;-1:-1:-1;;;;;31342:24:25;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;31342:24:25;;;;;-1:-1:-1;;;;;31342:24:25;;;;;;31149:232;31450:18;;-1:-1:-1;;;31450:18:25;;:16;;;;:18;;:8;;:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;31450:18:25;;;;;;;;;;;;:::i;30367:1132::-;31617:11;31631:17;:8;:15;:17::i;:::-;31659:12;;;;:7;:12;;;;;;;;:23;;;;;;;;;;-1:-1:-1;;;;;;31659:23:25;-1:-1:-1;;;;;31659:23:25;;;;;;;;;;;;:12;;-1:-1:-1;31659:23:25;;:12;;:23;;:12;;;;:23;:12;;:23;;-1:-1:-1;31659:23:25;;;;;;:::i;4411:476:0:-;4467:9;4478;-1:-1:-1;;;;;;;4632:2:0;4628:17;-1:-1:-1;;;4763:6:0;4760:27;4757:114;;4814:4;4806:12;;-1:-1:-1;;;;;4845:2:0;4841:16;4835:22;;4757:114;;4411:476;;;:::o;7171:2211::-;7229:12;7243:11;8058:3;8055:1;8048:14;8141:2;8137;8133;8130:1;-1:-1:-1;;;;;8097:5:0;8086:58;8075:69;;8405:1;8399:8;8445:6;-1:-1:-1;;;;;8427:25:0;8420:32;;8828:6;8823:3;8819:16;8811:6;8807:29;8793:43;;8870:6;8862;8859:18;8849:103;;8908:5;8897:16;;8937:1;8930:8;;8849:103;;9290:7;9289:8;:34;;;-1:-1:-1;13641:16:0;9321:2;9301:22;;9289:34;9285:91;;;-1:-1:-1;9347:5:0;;;;-1:-1:-1;7171:2211:0;-1:-1:-1;7171:2211:0:o;9285:91::-;7171:2211;;;:::o;8008:174:28:-;8095:6;8164:11;8122:33;8164:11;8129;8122:33;:::i;:::-;8121:39;;8159:1;8121:39;:::i;:::-;8120:55;;;;:::i;5166:446:19:-;5331:12;5388:5;5363:21;:30;;5355:81;;;;-1:-1:-1;;;5355:81:19;;81802:2:60;5355:81:19;;;81784:21:60;81841:2;81821:18;;;81814:30;81880:34;81860:18;;;81853:62;-1:-1:-1;;;81931:18:60;;;81924:36;81977:19;;5355:81:19;81600:402:60;5355:81:19;5447:12;5461:23;5488:6;-1:-1:-1;;;;;5488:11:19;5507:5;5514:4;5488:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5446:73;;;;5536:69;5563:6;5571:7;5580:10;5592:12;5536:26;:69::i;:::-;5529:76;;;;5166:446;;;;;;;:::o;2603:1828:28:-;2735:19;;2823:3;2787:32;;2801:18;2787:32;:11;:32;:::i;:::-;2786:40;;;;:::i;:::-;2862:25;;-1:-1:-1;;;2862:25:28;;;;;14300::60;;;2766:60:28;;-1:-1:-1;2836:23:28;;2862;;;;14273:18:60;;2862:25:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2836:51;;3025:9;2995:4;:26;;;:39;2991:116;;3057:39;3050:46;;;;;;2991:116;3168:9;3150:15;:27;3146:101;;;3200:36;3193:43;;;;;;3146:101;4227:26;;;;4213:40;;:11;:40;:::i;:::-;4182:27;4194:15;4182:9;:27;:::i;:::-;:71;4178:139;;4276:30;4269:37;;;;;;4178:139;-1:-1:-1;4387:37:28;;2603:1828;-1:-1:-1;;;;2603:1828:28:o;2159:129:38:-;2224:7;2271:8;2260:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;2250:31;;;;;;2243:38;;2159:129;;;:::o;7672:628:19:-;7852:12;7880:7;7876:418;;;7907:10;:17;7928:1;7907:22;7903:286;;-1:-1:-1;;;;;1702:19:19;;;8114:60;;;;-1:-1:-1;;;8114:60:19;;82815:2:60;8114:60:19;;;82797:21:60;82854:2;82834:18;;;82827:30;82893:31;82873:18;;;82866:59;82942:18;;8114:60:19;82613:353:60;8114:60:19;-1:-1:-1;8209:10:19;8202:17;;7876:418;8250:33;8258:10;8270:12;8981:17;;:21;8977:379;;9209:10;9203:17;9265:15;9252:10;9248:2;9244:19;9237:44;8977:379;9332:12;9325:20;;-1:-1:-1;;;9325:20:19;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:180:60:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:60;;14:180;-1:-1:-1;14:180:60:o;199:127::-;260:10;255:3;251:20;248:1;241:31;291:4;288:1;281:15;315:4;312:1;305:15;331:234;409:1;402:5;399:12;389:143;;454:10;449:3;445:20;442:1;435:31;489:4;486:1;479:15;517:4;514:1;507:15;389:143;541:18;;331:234::o;677:689::-;797:12;;-1:-1:-1;;;;;793:37:60;781:50;;850:4;889:14;;;883:21;767:4;920:12;;;913:26;;;988:19;;758:14;;;1016:20;;;728:3;;1089:21;;;;850:4;728:3;;1063:2;1054:12;;;1138:201;1152:6;1149:1;1146:13;1138:201;;;1219:13;;-1:-1:-1;;;;;1215:39:60;1201:54;;1314:15;;;;1251:1;1167:9;;;;;1277:14;;;;1138:201;;;-1:-1:-1;1355:5:60;677:689;-1:-1:-1;;;;;;677:689:60:o;1371:250::-;1456:1;1466:113;1480:6;1477:1;1474:13;1466:113;;;1556:11;;;1550:18;1537:11;;;1530:39;1502:2;1495:10;1466:113;;;-1:-1:-1;;1613:1:60;1595:16;;1588:27;1371:250::o;1626:270::-;1667:3;1705:5;1699:12;1732:6;1727:3;1720:19;1748:76;1817:6;1810:4;1805:3;1801:14;1794:4;1787:5;1783:16;1748:76;:::i;:::-;1878:2;1857:15;-1:-1:-1;;1853:29:60;1844:39;;;;1885:4;1840:50;;1626:270;-1:-1:-1;;1626:270:60:o;1901:534::-;1954:3;1998:5;1992:12;2025:4;2020:3;2013:17;2051:56;2101:4;2096:3;2092:14;2078:12;2051:56;:::i;:::-;2039:68;;2155:4;2148:5;2144:16;2138:23;2203:3;2197:4;2193:14;2186:4;2181:3;2177:14;2170:38;2257:4;2240:14;2234:21;2230:32;2224:4;2217:46;2320:4;2304:14;2300:25;2294:32;2272:54;;2359:4;2352;2346;2342:15;2335:29;2380:49;2423:4;2417;2413:15;2397:14;2380:49;:::i;2440:768::-;2494:3;2538:5;2532:12;2565:4;2560:3;2553:17;2591:58;2643:4;2638:3;2634:14;2620:12;2591:58;:::i;:::-;2579:70;;2697:4;2690:5;2686:16;2680:23;2745:3;2739:4;2735:14;2728:4;2723:3;2719:14;2712:38;2773:50;2818:4;2802:14;2773:50;:::i;:::-;2759:64;;;2872:4;2865:5;2861:16;2855:23;2848:4;2843:3;2839:14;2832:47;2956:1;2952;2948:2;2944:10;2940:18;2932:4;2925:5;2921:16;2915:23;2911:48;2904:4;2899:3;2895:14;2888:72;3030:10;3025:3;3021:20;3013:4;3006:5;3002:16;2996:23;2992:50;2985:4;2980:3;2976:14;2969:74;3091:4;3084:5;3080:16;3074:23;3141:3;3133:6;3129:16;3122:4;3117:3;3113:14;3106:40;3162;3195:6;3179:14;3162:40;:::i;3309:305::-;3360:3;3404:5;3398:12;3431:4;3426:3;3419:17;3457:59;3510:4;3505:3;3501:14;3487:12;3457:59;:::i;:::-;3579:4;3568:16;;;3562:23;3555:31;3548:39;3532:14;;;;3525:63;;;;-1:-1:-1;3445:71:60;3309:305;-1:-1:-1;3309:305:60:o;3619:634::-;3680:3;3718:5;3712:12;3745:6;3740:3;3733:19;3771:4;3812:2;3807:3;3803:12;3837:11;3864;3857:18;;3914:6;3911:1;3907:14;3900:5;3896:26;3884:38;;3956:2;3949:5;3945:14;3977:1;3987:240;4001:6;3998:1;3995:13;3987:240;;;4072:5;4066:4;4062:16;4057:3;4050:29;4100:47;4142:4;4133:6;4127:13;4100:47;:::i;:::-;4205:12;;;;4092:55;-1:-1:-1;4170:15:60;;;;4023:1;4016:9;3987:240;;;-1:-1:-1;4243:4:60;;3619:634;-1:-1:-1;;;;;;;3619:634:60:o;4258:2176::-;4319:3;4363:5;4357:12;4390:4;4385:3;4378:17;4416:56;4466:4;4461:3;4457:14;4443:12;4416:56;:::i;:::-;4404:68;;4491:4;4568:1;4564;4560:2;4556:10;4552:18;4546:2;4539:5;4535:14;4529:21;4525:46;4520:2;4515:3;4511:12;4504:68;4591:4;4642:2;4635:5;4631:14;4625:21;4620:2;4615:3;4611:12;4604:43;4695:4;4688:5;4684:16;4678:23;4743:3;4737:4;4733:14;4726:4;4721:3;4717:14;4710:38;4771:58;4824:4;4808:14;4771:58;:::i;:::-;4757:72;;;4877:4;4870:5;4866:16;4860:23;4927:3;4919:6;4915:16;4908:4;4903:3;4899:14;4892:40;4954:6;4989:14;4983:21;5028:6;5020;5013:22;5065:2;5057:6;5053:15;5044:24;;5124:2;5114:6;5111:1;5107:14;5099:6;5095:27;5091:36;5170:2;5154:14;5150:23;5136:37;;5191:1;5212;5222:991;5238:6;5233:3;5230:15;5222:991;;;5309:19;;;-1:-1:-1;;5305:33:60;5291:48;;5362:13;;5410:9;;5432:18;;;5477:59;5520:15;;;5410:9;5477:59;:::i;:::-;5577:11;;;5571:18;5626:19;;;5609:15;;;5602:44;5707:21;;5741:24;;;5831:23;;;;5878:1;;-1:-1:-1;5787:15:60;;;5892:209;5908:8;5903:3;5900:17;5892:209;;;5985:15;;5971:30;;6070:17;;;;5936:1;5927:11;;;;;6027:14;;;;5892:209;;;-1:-1:-1;6152:15:60;;;;6189:14;;;;6124:5;-1:-1:-1;;;5264:1:60;5255:11;5222:991;;;5226:3;;6262:4;6255:5;6251:16;6245:23;6238:4;6233:3;6229:14;6222:47;6317:4;6310:5;6306:16;6300:23;6278:45;;6367:3;6359:6;6355:16;6348:4;6343:3;6339:14;6332:40;6388;6421:6;6405:14;6388:40;:::i;:::-;6381:47;4258:2176;-1:-1:-1;;;;;;;;;;4258:2176:60:o;6439:1028::-;6861:4;6890:3;6902:41;6933:9;6925:6;6902:41;:::i;:::-;-1:-1:-1;;;;;7016:15:60;;;7011:2;6996:18;;6989:43;7068:15;;6970:2;7048:18;;7041:43;7115:2;7100:18;;7093:34;;;7158:3;7143:19;;7136:35;;;7202:3;7187:19;;7180:35;;;7246:3;7231:19;;7224:31;;;7278:54;7313:18;;;7305:6;7278:54;:::i;:::-;7264:68;;7381:9;7373:6;7369:22;7363:3;7352:9;7348:19;7341:51;7409:52;7454:6;7446;7409:52;:::i;:::-;7401:60;6439:1028;-1:-1:-1;;;;;;;;;;;6439:1028:60:o;7677:127::-;7738:10;7733:3;7729:20;7726:1;7719:31;7769:4;7766:1;7759:15;7793:4;7790:1;7783:15;7809:258;7882:4;7876:11;;;7914:17;;-1:-1:-1;;;;;7946:34:60;;7982:22;;;7943:62;7940:88;;;8008:18;;:::i;:::-;8044:4;8037:24;7809:258;:::o;8072:254::-;8145:2;8139:9;8187:4;8175:17;;-1:-1:-1;;;;;8207:34:60;;8243:22;;;8204:62;8201:88;;;8269:18;;:::i;8331:275::-;8402:2;8396:9;8467:2;8448:13;;-1:-1:-1;;8444:27:60;8432:40;;-1:-1:-1;;;;;8487:34:60;;8523:22;;;8484:62;8481:88;;;8549:18;;:::i;:::-;8585:2;8578:22;8331:275;;-1:-1:-1;8331:275:60:o;8611:129::-;-1:-1:-1;;;;;8685:30:60;;8675:41;;8665:69;;8730:1;8727;8720:12;8745:132;8812:20;;8841:30;8812:20;8841:30;:::i;:::-;8745:132;;;:::o;8882:183::-;8942:4;-1:-1:-1;;;;;8964:30:60;;8961:56;;;8997:18;;:::i;:::-;-1:-1:-1;9042:1:60;9038:14;9054:4;9034:25;;8882:183::o;9070:131::-;-1:-1:-1;;;;;9145:31:60;;9135:42;;9125:70;;9191:1;9188;9181:12;9206:737;9260:5;9313:3;9306:4;9298:6;9294:17;9290:27;9280:55;;9331:1;9328;9321:12;9280:55;9367:6;9354:20;9393:4;9417:60;9433:43;9473:2;9433:43;:::i;:::-;9417:60;:::i;:::-;9511:15;;;9597:1;9593:10;;;;9581:23;;9577:32;;;9542:12;;;;9621:15;;;9618:35;;;9649:1;9646;9639:12;9618:35;9685:2;9677:6;9673:15;9697:217;9713:6;9708:3;9705:15;9697:217;;;9793:3;9780:17;9810:31;9835:5;9810:31;:::i;:::-;9854:18;;9892:12;;;;9730;;9697:217;;9948:495;10003:5;10051:4;10039:9;10034:3;10030:19;10026:30;10023:50;;;10069:1;10066;10059:12;10023:50;10091:23;;:::i;:::-;10082:32;;10151:9;10138:23;10170:32;10194:7;10170:32;:::i;:::-;10211:22;;10284:2;10269:18;;10256:32;-1:-1:-1;;;;;10300:30:60;;10297:50;;;10343:1;10340;10333:12;10297:50;10379:57;10432:3;10423:6;10412:9;10408:22;10379:57;:::i;:::-;10374:2;10367:5;10363:14;10356:81;;9948:495;;;;:::o;10448:416::-;10543:6;10551;10604:2;10592:9;10583:7;10579:23;10575:32;10572:52;;;10620:1;10617;10610:12;10572:52;10647:23;;-1:-1:-1;;;;;10682:30:60;;10679:50;;;10725:1;10722;10715:12;10679:50;10748:59;10799:7;10790:6;10779:9;10775:22;10748:59;:::i;:::-;10738:69;10854:2;10839:18;;;;10826:32;;-1:-1:-1;;;;10448:416:60:o;10869:263::-;11052:2;11041:9;11034:21;11015:4;11072:54;11122:2;11111:9;11107:18;11099:6;11072:54;:::i;11519:245::-;11577:6;11630:2;11618:9;11609:7;11605:23;11601:32;11598:52;;;11646:1;11643;11636:12;11598:52;11685:9;11672:23;11704:30;11728:5;11704:30;:::i;12032:156::-;12093:5;12138:2;12129:6;12124:3;12120:16;12116:25;12113:45;;;12154:1;12151;12144:12;12113:45;-1:-1:-1;12176:6:60;12032:156;-1:-1:-1;12032:156:60:o;12193:492::-;12289:6;12297;12350:2;12338:9;12329:7;12325:23;12321:32;12318:52;;;12366:1;12363;12356:12;12318:52;12393:23;;-1:-1:-1;;;;;12428:30:60;;12425:50;;;12471:1;12468;12461:12;12425:50;12494:68;12554:7;12545:6;12534:9;12530:22;12494:68;:::i;:::-;12484:78;;;12612:2;12601:9;12597:18;12584:32;12625:30;12649:5;12625:30;:::i;:::-;12674:5;12664:15;;;12193:492;;;;;:::o;12690:323::-;12923:2;12912:9;12905:21;12886:4;12943:64;13003:2;12992:9;12988:18;12980:6;12943:64;:::i;13210:619::-;13338:6;13346;13399:2;13387:9;13378:7;13374:23;13370:32;13367:52;;;13415:1;13412;13405:12;13367:52;13442:23;;-1:-1:-1;;;;;13514:14:60;;;13511:34;;;13541:1;13538;13531:12;13511:34;13564:68;13624:7;13615:6;13604:9;13600:22;13564:68;:::i;:::-;13554:78;;13685:2;13674:9;13670:18;13657:32;13641:48;;13714:2;13704:8;13701:16;13698:36;;;13730:1;13727;13720:12;13698:36;;13753:70;13815:7;13804:8;13793:9;13789:24;13753:70;:::i;:::-;13743:80;;;13210:619;;;;;:::o;13834:315::-;13902:6;13910;13963:2;13951:9;13942:7;13938:23;13934:32;13931:52;;;13979:1;13976;13969:12;13931:52;14015:9;14002:23;13992:33;;14075:2;14064:9;14060:18;14047:32;14088:31;14113:5;14088:31;:::i;14336:662::-;14647:3;14636:9;14629:22;14610:4;14674:55;14724:3;14713:9;14709:19;14701:6;14674:55;:::i;:::-;-1:-1:-1;;;;;14765:31:60;;14760:2;14745:18;;14738:59;14785:2;14813:18;;14806:34;;;14871:2;14856:18;;14849:34;;;14920:22;;;14914:3;14899:19;;14892:51;14960:32;14924:6;14977;14960:32;:::i;:::-;14952:40;14336:662;-1:-1:-1;;;;;;;;14336:662:60:o;15003:359::-;15091:6;15144:2;15132:9;15123:7;15119:23;15115:32;15112:52;;;15160:1;15157;15150:12;15112:52;15187:23;;-1:-1:-1;;;;;15222:30:60;;15219:50;;;15265:1;15262;15255:12;15219:50;15288:68;15348:7;15339:6;15328:9;15324:22;15288:68;:::i;15923:1075::-;15972:3;16000:6;16015:41;16052:3;16044:5;16038:12;16015:41;:::i;:::-;16102:4;16095:5;16091:16;16085:23;16117:47;16158:4;16153:3;16149:14;16135:12;-1:-1:-1;;;;;635:30:60;623:43;;570:102;16117:47;;16212:4;16205:5;16201:16;16195:23;16227:49;16270:4;16265:3;16261:14;16245;-1:-1:-1;;;;;635:30:60;623:43;;570:102;16227:49;;16325:4;16318:5;16314:16;16308:23;16301:4;16296:3;16292:14;16285:47;16381:4;16374:5;16370:16;16364:23;16357:4;16352:3;16348:14;16341:47;16437:4;16430:5;16426:16;16420:23;16413:4;16408:3;16404:14;16397:47;16492:4;16485:5;16481:16;16475:23;16530:2;16523:4;16518:3;16514:14;16507:26;16554:56;16606:2;16601:3;16597:12;16581:14;16554:56;:::i;:::-;16542:68;;;16658:4;16651:5;16647:16;16641:23;16706:3;16700:4;16696:14;16689:4;16684:3;16680:14;16673:38;16734:58;16787:4;16771:14;16734:58;:::i;:::-;16720:72;;;16811:6;16865:2;16858:5;16854:14;16848:21;16911:3;16903:6;16899:16;16894:2;16889:3;16885:12;16878:38;16932:60;16985:6;16969:14;16932:60;:::i;:::-;16925:67;15923:1075;-1:-1:-1;;;;;;15923:1075:60:o;17003:840::-;17195:4;17224:2;17264;17253:9;17249:18;17294:2;17283:9;17276:21;17317:6;17352;17346:13;17383:6;17375;17368:22;17421:2;17410:9;17406:18;17399:25;;17483:2;17473:6;17470:1;17466:14;17455:9;17451:30;17447:39;17433:53;;17521:2;17513:6;17509:15;17542:1;17552:262;17566:6;17563:1;17560:13;17552:262;;;17659:2;17655:7;17643:9;17635:6;17631:22;17627:36;17622:3;17615:49;17687:47;17727:6;17718;17712:13;17687:47;:::i;:::-;17677:57;-1:-1:-1;17792:12:60;;;;17757:15;;;;17588:1;17581:9;17552:262;;;-1:-1:-1;17831:6:60;;17003:840;-1:-1:-1;;;;;;;17003:840:60:o;17848:386::-;17915:6;17923;17976:2;17964:9;17955:7;17951:23;17947:32;17944:52;;;17992:1;17989;17982:12;17944:52;18031:9;18018:23;18050:30;18074:5;18050:30;:::i;:::-;18099:5;-1:-1:-1;18156:2:60;18141:18;;18128:32;18169:33;18128:32;18169:33;:::i;18605:374::-;18844:6;18837:14;18830:22;18819:9;18812:41;18889:2;18884;18873:9;18869:18;18862:30;18793:4;18909:64;18969:2;18958:9;18954:18;18946:6;18909:64;:::i;18984:353::-;19195:2;19184:9;19177:21;19158:4;19215:57;19268:2;19257:9;19253:18;19245:6;19215:57;:::i;:::-;19207:65;;19322:6;19315:14;19308:22;19303:2;19292:9;19288:18;19281:50;18984:353;;;;;:::o;19342:263::-;19525:2;19514:9;19507:21;19488:4;19545:54;19595:2;19584:9;19580:18;19572:6;19545:54;:::i;19983:348::-;20069:6;20122:2;20110:9;20101:7;20097:23;20093:32;20090:52;;;20138:1;20135;20128:12;20090:52;20165:23;;-1:-1:-1;;;;;20200:30:60;;20197:50;;;20243:1;20240;20233:12;20197:50;20266:59;20317:7;20308:6;20297:9;20293:22;20266:59;:::i;20986:338::-;21201:6;21194:14;21187:22;21176:9;21169:41;21246:2;21241;21230:9;21226:18;21219:30;21150:4;21266:52;21314:2;21303:9;21299:18;21291:6;21266:52;:::i;21329:399::-;21427:6;21480:2;21468:9;21459:7;21455:23;21451:32;21448:52;;;21496:1;21493;21486:12;21448:52;21523:23;;-1:-1:-1;;;;;21558:30:60;;21555:50;;;21601:1;21598;21591:12;21555:50;21624:22;;21680:3;21662:16;;;21658:26;21655:46;;;21697:1;21694;21687:12;21733:1138;21851:6;21859;21912:2;21900:9;21891:7;21887:23;21883:32;21880:52;;;21928:1;21925;21918:12;21880:52;21955:23;;-1:-1:-1;;;;;22027:14:60;;;22024:34;;;22054:1;22051;22044:12;22024:34;22077:61;22130:7;22121:6;22110:9;22106:22;22077:61;:::i;:::-;22067:71;;22157:2;22147:12;;22212:2;22201:9;22197:18;22184:32;22241:2;22231:8;22228:16;22225:36;;;22257:1;22254;22247:12;22225:36;22280:24;;;-1:-1:-1;22335:4:60;22327:13;;22323:27;-1:-1:-1;22313:55:60;;22364:1;22361;22354:12;22313:55;22400:2;22387:16;22423:60;22439:43;22479:2;22439:43;:::i;22423:60::-;22517:15;;;22599:1;22595:10;;;;22587:19;;22583:28;;;22548:12;;;;22623:19;;;22620:39;;;22655:1;22652;22645:12;22620:39;22679:11;;;;22699:142;22715:6;22710:3;22707:15;22699:142;;;22781:17;;22769:30;;22732:12;;;;22819;;;;22699:142;;;22860:5;22850:15;;;;;;;21733:1138;;;;;:::o;22876:380::-;22955:1;22951:12;;;;22998;;;23019:61;;23073:4;23065:6;23061:17;23051:27;;23019:61;23126:2;23118:6;23115:14;23095:18;23092:38;23089:161;;23172:10;23167:3;23163:20;23160:1;23153:31;23207:4;23204:1;23197:15;23235:4;23232:1;23225:15;23261:127;23322:10;23317:3;23313:20;23310:1;23303:31;23353:4;23350:1;23343:15;23377:4;23374:1;23367:15;23393:1398;23456:3;23494:5;23488:12;23521:6;23516:3;23509:19;23547:4;23588:2;23583:3;23579:12;23613:11;23640;23633:18;;23690:6;23687:1;23683:14;23676:5;23672:26;23660:38;;23732:2;23725:5;23721:14;23753:1;23774;23784:981;23800:6;23795:3;23792:15;23784:981;;;23875:5;23869:4;23865:16;23860:3;23853:29;23911:6;23905:13;23941:4;23984:2;23978:9;24013:2;24007:4;24000:16;24043:55;24094:2;24088:4;24084:13;24070:12;24043:55;:::i;:::-;24139:11;;;24133:18;24186:17;;;24171:13;;;24164:40;24265:21;;24299:24;;;24389:23;;;;24436:1;;-1:-1:-1;24345:15:60;;;-1:-1:-1;24450:209:60;24466:8;24461:3;24458:17;24450:209;;;24543:15;;24529:30;;24628:17;;;;24494:1;24485:11;;;;;24585:14;;;;24450:209;;;-1:-1:-1;24743:12:60;;;;24680:5;-1:-1:-1;;;24708:15:60;;;;23826:1;23817:11;23784:981;;;-1:-1:-1;24781:4:60;;23393:1398;-1:-1:-1;;;;;;;;23393:1398:60:o;24796:1211::-;25007:2;24996:9;24989:21;24970:4;25045:6;25039:13;25088:4;25083:2;25072:9;25068:18;25061:32;25116:61;25172:3;25161:9;25157:19;25143:12;25116:61;:::i;:::-;25102:75;;25257:1;25253;25249:2;25245:10;25241:18;25235:2;25227:6;25223:15;25217:22;25213:47;25208:2;25197:9;25193:18;25186:75;25315:2;25307:6;25303:15;25297:22;25292:2;25281:9;25277:18;25270:50;25369:2;25361:6;25357:15;25351:22;25396:2;25392:7;25464:2;25452:9;25444:6;25440:22;25436:31;25430:3;25419:9;25415:19;25408:60;25491;25544:6;25528:14;25491:60;:::i;:::-;25477:74;;25600:3;25592:6;25588:16;25582:23;25560:45;;25670:2;25658:9;25650:6;25646:22;25642:31;25636:3;25625:9;25621:19;25614:60;25697:62;25752:6;25736:14;25697:62;:::i;:::-;25683:76;;25814:3;25806:6;25802:16;25796:23;25790:3;25779:9;25775:19;25768:52;25869:3;25861:6;25857:16;25851:23;25829:45;;25940:2;25928:9;25920:6;25916:22;25912:31;25905:4;25894:9;25890:20;25883:61;;25961:40;25994:6;25978:14;25961:40;:::i;26012:184::-;26082:6;26135:2;26123:9;26114:7;26110:23;26106:32;26103:52;;;26151:1;26148;26141:12;26103:52;-1:-1:-1;26174:16:60;;26012:184;-1:-1:-1;26012:184:60:o;26201:198::-;26307:9;26344:49;26378:14;26371:5;26344:49;:::i;26404:127::-;26465:10;26460:3;26456:20;26453:1;26446:31;26496:4;26493:1;26486:15;26520:4;26517:1;26510:15;26536:128;26603:9;;;26624:11;;;26621:37;;;26638:18;;:::i;26669:125::-;26734:9;;;26755:10;;;26752:36;;;26768:18;;:::i;26799:135::-;26838:3;26859:17;;;26856:43;;26879:18;;:::i;:::-;-1:-1:-1;26926:1:60;26915:13;;26799:135::o;26939:520::-;27009:5;27016:6;27076:3;27063:17;27162:2;27158:7;27147:8;27131:14;27127:29;27123:43;27103:18;27099:68;27089:96;;27181:1;27178;27171:12;27089:96;27209:33;;27313:4;27300:18;;;-1:-1:-1;27261:21:60;;-1:-1:-1;;;;;;27330:30:60;;27327:50;;;27373:1;27370;27363:12;27327:50;27427:6;27424:1;27420:14;27404;27400:35;27393:5;27389:47;27386:67;;;27449:1;27446;27439:12;27386:67;26939:520;;;;;:::o;27464:884::-;27524:3;27563:4;27558:3;27554:14;27605:5;27592:19;27620:32;27644:7;27620:32;:::i;:::-;-1:-1:-1;;;;;27673:32:60;27661:45;;27725:4;27772:65;27822:14;;;27826:5;27772:65;:::i;:::-;27867:4;27853:12;;;27846:26;27907;;;;27986:12;28016:1;;27960:2;27951:12;;28026:295;28040:12;28037:1;28034:19;28026:295;;;28123:6;28110:20;28143:33;28168:7;28143:33;:::i;:::-;-1:-1:-1;;;;;28203:33:60;28189:48;;28296:15;;;;28233:1;28061:9;;;;;28259:14;;28026:295;;;28337:5;27464:884;-1:-1:-1;;;;;;;27464:884:60:o;28353:114::-;28437:4;28430:5;28426:16;28419:5;28416:27;28406:55;;28457:1;28454;28447:12;28472:500;28530:5;28537:6;28597:3;28584:17;28683:2;28679:7;28668:8;28652:14;28648:29;28644:43;28624:18;28620:68;28610:96;;28702:1;28699;28692:12;28610:96;28730:33;;28834:4;28821:18;;;-1:-1:-1;28782:21:60;;-1:-1:-1;;;;;;28851:30:60;;28848:50;;;28894:1;28891;28884:12;28848:50;28941:6;28925:14;28921:27;28914:5;28910:39;28907:59;;;28962:1;28959;28952:12;28977:266;29065:6;29060:3;29053:19;29117:6;29110:5;29103:4;29098:3;29094:14;29081:43;-1:-1:-1;29169:1:60;29144:16;;;29162:4;29140:27;;;29133:38;;;;29225:2;29204:15;;;-1:-1:-1;;29200:29:60;29191:39;;;29187:50;;28977:266::o;29248:420::-;29310:3;29356:5;29343:19;29371:31;29394:7;29371:31;:::i;:::-;29436:4;29423:18;29411:31;;29485:55;29534:4;29523:16;;29527:5;29485:55;:::i;:::-;29572:4;29565;29560:3;29556:14;29549:28;29593:69;29656:4;29651:3;29647:14;29633:12;29619;29593:69;:::i;29673:675::-;30010:3;29999:9;29992:22;29973:4;30037:64;30096:3;30085:9;30081:19;30073:6;30037:64;:::i;:::-;-1:-1:-1;;;;;30137:32:60;;30132:2;30117:18;;30110:60;30206:22;;;30201:2;30186:18;;30179:50;30246:53;30210:6;30284;30246:53;:::i;:::-;30238:61;;;30335:6;30330:2;30319:9;30315:18;30308:34;29673:675;;;;;;;:::o;30353:136::-;30431:13;;30453:30;30431:13;30453:30;:::i;30494:1098::-;30560:5;30608:4;30596:9;30591:3;30587:19;30583:30;30580:50;;;30626:1;30623;30616:12;30580:50;30648:23;;:::i;:::-;30639:32;;30701:9;30695:16;30720:32;30744:7;30720:32;:::i;:::-;30761:22;;30802:2;30833:18;;;30827:25;-1:-1:-1;;;;;30864:30:60;;30861:50;;;30907:1;30904;30897:12;30861:50;30930:22;;30983:4;30975:13;;30971:23;-1:-1:-1;30961:51:60;;31008:1;31005;30998:12;30961:51;31037:2;31031:9;31060:60;31076:43;31116:2;31076:43;:::i;31060:60::-;31154:15;;;31236:1;31232:10;;;;31224:19;;31220:28;;;31185:12;;;;31260:15;;;31257:35;;;31288:1;31285;31278:12;31257:35;31312:11;;;;31332:216;31348:6;31343:3;31340:15;31332:216;;;31423:3;31417:10;31440:33;31465:7;31440:33;:::i;:::-;31486:20;;31365:12;;;;31526;;;;31332:216;;;31580:5;31575:2;31568:5;31564:14;31557:29;;;;;;30494:1098;;;;:::o;31597:186::-;31645:4;-1:-1:-1;;;;;31667:30:60;;31664:56;;;31700:18;;:::i;:::-;-1:-1:-1;31766:2:60;31745:15;-1:-1:-1;;31741:29:60;31772:4;31737:40;;31597:186::o;31788:441::-;31841:5;31894:3;31887:4;31879:6;31875:17;31871:27;31861:55;;31912:1;31909;31902:12;31861:55;31941:6;31935:13;31972:48;31988:31;32016:2;31988:31;:::i;31972:48::-;32045:2;32036:7;32029:19;32091:3;32084:4;32079:2;32071:6;32067:15;32063:26;32060:35;32057:55;;;32108:1;32105;32098:12;32057:55;32121:77;32195:2;32188:4;32179:7;32175:18;32168:4;32160:6;32156:17;32121:77;:::i;32234:951::-;32302:5;32350:4;32338:9;32333:3;32329:19;32325:30;32322:50;;;32368:1;32365;32358:12;32322:50;32390:23;;:::i;:::-;32436:16;;32381:32;;-1:-1:-1;;;;;;32501:14:60;;;32498:34;;;32528:1;32525;32518:12;32498:34;32555:66;32617:3;32608:6;32597:9;32593:22;32555:66;:::i;:::-;32548:5;32541:81;32668:2;32657:9;32653:18;32647:25;32631:41;;32697:2;32687:8;32684:16;32681:36;;;32713:1;32710;32703:12;32681:36;32736:24;;;;32790:4;32776:12;;;32772:23;32769:43;;;32808:1;32805;32798:12;32769:43;32836:23;;:::i;:::-;32889:2;32883:9;32901:31;32924:7;32901:31;:::i;:::-;32941:24;;33004:2;32996:11;;32990:18;33020:16;;;33017:36;;;33049:1;33046;33039:12;33017:36;33087:51;33134:3;33123:8;33119:2;33115:17;33087:51;:::i;:::-;33082:2;33073:7;33069:16;33062:77;;33171:7;33166:2;33159:5;33155:14;33148:31;;;;32234:951;;;;:::o;33190:131::-;-1:-1:-1;;;;;;33264:32:60;;33254:43;;33244:71;;33311:1;33308;33301:12;33326:136;33404:13;;33426:30;33404:13;33426:30;:::i;33467:118::-;33553:5;33546:13;33539:21;33532:5;33529:32;33519:60;;33575:1;33572;33565:12;33590:132;33666:13;;33688:28;33666:13;33688:28;:::i;33727:1535::-;33824:6;33877:2;33865:9;33856:7;33852:23;33848:32;33845:52;;;33893:1;33890;33883:12;33845:52;33920:16;;-1:-1:-1;;;;;33985:14:60;;;33982:34;;;34012:1;34009;34002:12;33982:34;34035:22;;;;34091:4;34073:16;;;34069:27;34066:47;;;34109:1;34106;34099:12;34066:47;34135:23;;:::i;:::-;34189:2;34183:9;34217:2;34207:8;34204:16;34201:36;;;34233:1;34230;34223:12;34201:36;34256:17;;34307:4;34289:16;;;34285:27;34282:47;;;34325:1;34322;34315:12;34282:47;34353:23;;:::i;:::-;34407:2;34401:9;34435:2;34425:8;34422:16;34419:36;;;34451:1;34448;34441:12;34419:36;34480:67;34539:7;34528:8;34524:2;34520:17;34480:67;:::i;:::-;34471:7;34464:84;;34587:2;34583;34579:11;34573:18;34616:2;34606:8;34603:16;34600:36;;;34632:1;34629;34622:12;34600:36;34670:67;34729:7;34718:8;34714:2;34710:17;34670:67;:::i;:::-;34665:2;34656:7;34652:16;34645:93;;34788:4;34784:2;34780:13;34774:20;34767:4;34758:7;34754:18;34747:48;34829:41;34866:2;34862;34858:11;34829:41;:::i;:::-;34824:2;34815:7;34811:16;34804:67;34906:42;34943:3;34939:2;34935:12;34906:42;:::i;:::-;34900:3;34891:7;34887:17;34880:69;34988:3;34984:2;34980:12;34974:19;35018:2;35008:8;35005:16;35002:36;;;35034:1;35031;35024:12;35002:36;35073:55;35120:7;35109:8;35105:2;35101:17;35073:55;:::i;:::-;35067:3;35054:17;;35047:82;-1:-1:-1;35138:22:60;;-1:-1:-1;35192:39:60;35227:2;35219:11;;35192:39;:::i;:::-;35187:2;35176:14;;35169:63;35180:5;33727:1535;-1:-1:-1;;;;;33727:1535:60:o;35543:251::-;35613:6;35666:2;35654:9;35645:7;35641:23;35637:32;35634:52;;;35682:1;35679;35672:12;35634:52;35714:9;35708:16;35733:31;35758:5;35733:31;:::i;35799:368::-;36018:2;36007:9;36000:21;35981:4;36038:54;36088:2;36077:9;36073:18;36065:6;36038:54;:::i;:::-;36030:62;;36157:1;36153;36148:3;36144:11;36140:19;36132:6;36128:32;36123:2;36112:9;36108:18;36101:60;35799:368;;;;;:::o;36172:363::-;36269:6;36322:2;36310:9;36301:7;36297:23;36293:32;36290:52;;;36338:1;36335;36328:12;36290:52;36365:16;;-1:-1:-1;;;;;36393:30:60;;36390:50;;;36436:1;36433;36426:12;36390:50;36459:70;36521:7;36512:6;36501:9;36497:22;36459:70;:::i;36540:180::-;-1:-1:-1;;;;;36645:10:60;;;36657;;;36641:27;;36680:11;;;36677:37;;;36694:18;;:::i;36725:132::-;36809:1;36802:14;;;36846:4;36833:18;;;36725:132::o;36862:741::-;36990:12;;-1:-1:-1;;;;;36986:37:60;36974:50;;36960:4;37109;37129:12;;;37122:26;;;37020:1;37076:14;;;37197:19;;36951:14;;;37225:20;;;36921:3;37284:23;;;37330:16;;;36921:3;;37330:16;;36921:3;;37272:2;37263:12;;;37374:202;37388:6;37385:1;37382:13;37374:202;;;37456:13;;-1:-1:-1;;;;;37452:39:60;37438:54;;37551:15;;;;37403:10;;;;37514:14;;;;37374:202;;;-1:-1:-1;37592:5:60;36862:741;-1:-1:-1;;;;;;;36862:741:60:o;37608:482::-;37878:2;37867:9;37860:21;37841:4;37904:54;37954:2;37943:9;37939:18;37931:6;37904:54;:::i;:::-;38006:9;37998:6;37994:22;37989:2;37978:9;37974:18;37967:50;38034;38077:6;38069;38034:50;:::i;38095:330::-;38193:4;38251:11;38238:25;38345:3;38341:8;38330;38314:14;38310:29;38306:44;38286:18;38282:69;38272:97;;38365:1;38362;38355:12;38272:97;38386:33;;;;;38095:330;-1:-1:-1;;38095:330:60:o;38430:328::-;38527:4;38585:11;38572:25;38679:2;38675:7;38664:8;38648:14;38644:29;38640:43;38620:18;38616:68;38606:96;;38698:1;38695;38688:12;39094:245;39161:6;39214:2;39202:9;39193:7;39189:23;39185:32;39182:52;;;39230:1;39227;39220:12;39182:52;39262:9;39256:16;39281:28;39303:5;39281:28;:::i;39344:462::-;39386:5;39439:3;39432:4;39424:6;39420:17;39416:27;39406:55;;39457:1;39454;39447:12;39406:55;39493:6;39480:20;39524:48;39540:31;39568:2;39540:31;:::i;39524:48::-;39597:2;39588:7;39581:19;39643:3;39636:4;39631:2;39623:6;39619:15;39615:26;39612:35;39609:55;;;39660:1;39657;39650:12;39609:55;39725:2;39718:4;39710:6;39706:17;39699:4;39690:7;39686:18;39673:55;39773:1;39748:16;;;39766:4;39744:27;39737:38;;;;39752:7;39344:462;-1:-1:-1;;;39344:462:60:o;39811:946::-;39868:5;39916:4;39904:9;39899:3;39895:19;39891:30;39888:50;;;39934:1;39931;39924:12;39888:50;39956:23;;:::i;:::-;39947:32;-1:-1:-1;40002:23:60;;-1:-1:-1;;;;;40074:14:60;;;40071:34;;;40101:1;40098;40091:12;40071:34;40128:55;40179:3;40170:6;40159:9;40155:22;40128:55;:::i;:::-;40121:5;40114:70;40237:2;40226:9;40222:18;40209:32;40193:48;;40266:2;40256:8;40253:16;40250:36;;;40282:1;40279;40272:12;40250:36;40305:24;;;;40359:4;40345:12;;;40341:23;40338:43;;;40377:1;40374;40367:12;40338:43;40405:23;;:::i;:::-;40465:2;40452:16;40477:31;40500:7;40477:31;:::i;:::-;40517:24;;40587:2;40579:11;;40566:25;40603:16;;;40600:36;;;40632:1;40629;40622:12;40600:36;40670:40;40706:3;40695:8;40691:2;40687:17;40670:40;:::i;40762:132::-;40829:20;;40858:30;40829:20;40858:30;:::i;40899:128::-;40964:20;;40993:28;40964:20;40993:28;:::i;41032:1251::-;41087:5;41135:4;41123:9;41118:3;41114:19;41110:30;41107:50;;;41153:1;41150;41143:12;41107:50;41175:23;;:::i;:::-;41166:32;-1:-1:-1;41221:23:60;;-1:-1:-1;;;;;41293:14:60;;;41290:34;;;41320:1;41317;41310:12;41290:34;41343:22;;;;41395:4;41381:12;;;41377:23;41374:43;;;41413:1;41410;41403:12;41374:43;41441:23;;:::i;:::-;41502:2;41489:16;41530:2;41520:8;41517:16;41514:36;;;41546:1;41543;41536:12;41514:36;41575:52;41623:3;41612:8;41608:2;41604:17;41575:52;:::i;:::-;41566:7;41559:69;;41674:2;41670;41666:11;41653:25;41703:2;41693:8;41690:16;41687:36;;;41719:1;41716;41709:12;41687:36;41757:52;41805:3;41794:8;41790:2;41786:17;41757:52;:::i;:::-;41752:2;41743:7;41739:16;41732:78;;41867:4;41863:2;41859:13;41846:27;41839:4;41830:7;41826:18;41819:55;41908:30;41934:2;41930;41926:11;41908:30;:::i;:::-;41903:2;41894:7;41890:16;41883:56;41974:31;42000:3;41996:2;41992:12;41974:31;:::i;:::-;41968:3;41959:7;41955:17;41948:58;42052:3;42048:2;42044:12;42031:26;42082:2;42072:8;42069:16;42066:36;;;42098:1;42095;42088:12;42066:36;42137:40;42173:3;42162:8;42158:2;42154:17;42137:40;:::i;:::-;42131:3;42118:17;;42111:67;-1:-1:-1;42187:22:60;;-1:-1:-1;42241:35:60;;-1:-1:-1;42272:2:60;42257:18;;42241:35;:::i;:::-;42236:2;42229:5;42225:14;42218:59;41032:1251;;;;:::o;42288:198::-;42394:9;42431:49;42465:14;42458:5;42431:49;:::i;42491:183::-;-1:-1:-1;;;;;42610:10:60;;;42598;;;42594:27;;42633:12;;;42630:38;;;42648:18;;:::i;42679:669::-;43011:3;43000:9;42993:22;42974:4;43038:63;43096:3;43085:9;43081:19;43073:6;43038:63;:::i;43353:574::-;43475:4;43481:6;43541:11;43528:25;43635:2;43631:7;43620:8;43604:14;43600:29;43596:43;43576:18;43572:68;43562:96;;43654:1;43651;43644:12;43562:96;43681:33;;43733:20;;;-1:-1:-1;;;;;;43765:30:60;;43762:50;;;43808:1;43805;43798:12;43762:50;43841:4;43829:17;;-1:-1:-1;43892:1:60;43888:14;;;43872;43868:35;43858:46;;43855:66;;;43917:1;43914;43907:12;43932:295;44002:5;44061:3;44048:17;44147:2;44143:7;44132:8;44116:14;44112:29;44108:43;44088:18;44084:68;44074:96;;44166:1;44163;44156:12;44074:96;44188:33;;;;43932:295;-1:-1:-1;;43932:295:60:o;44232:494::-;44294:3;44332:56;44382:5;44375;44332:56;:::i;:::-;44409:4;44404:3;44397:17;44435:65;44494:4;44489:3;44485:14;44471:12;44435:65;:::i;:::-;44423:77;;44531:67;44592:4;44585:5;44581:16;44574:5;44531:67;:::i;:::-;44640:3;44634:4;44630:14;44623:4;44618:3;44614:14;44607:38;44661:59;44715:4;44699:14;44661:59;:::i;44731:2354::-;44848:6;44843:3;44836:19;44818:3;44874:4;44915:2;44910:3;44906:12;44940:11;44967;44960:18;;45017:6;45014:1;45010:14;45003:5;44999:26;44987:38;;45048:5;45071:1;45092;45102:1957;45118:6;45113:3;45110:15;45102:1957;;;45193:5;45187:4;45183:16;45178:3;45171:29;45223:57;45273:6;45266:5;45223:57;:::i;:::-;45303:4;45359:2;45346:16;45442:3;45438:8;45433:2;45417:14;45413:23;45409:38;45389:18;45385:63;45375:91;;45462:1;45459;45452:12;45375:91;45534:16;;;45494:27;;45583:60;45494:27;;45583:60;:::i;:::-;45666:4;45705:2;45700;45694:4;45690:13;45683:25;45735:67;45797:3;45791:4;45787:14;45773:12;45735:67;:::i;:::-;45721:81;;45837:69;45902:2;45893:7;45889:16;45880:7;45837:69;:::i;:::-;45933:2;45929:7;45959:2;46019;46012:4;46004:6;46000:17;45996:26;45991:2;45985:4;45981:13;45974:49;46050:61;46104:6;46088:14;46050:61;:::i;:::-;46036:75;;46134:3;46124:13;;46198:2;46189:7;46185:16;46172:30;46167:2;46161:4;46157:13;46150:53;46257:2;46248:7;46244:16;46231:30;46216:45;;;46274:32;46298:7;46274:32;:::i;:::-;46329:3;46396:1;46392;46388:2;46384:10;46380:18;46371:7;46367:32;46362:2;46356:4;46352:13;46345:55;46454:2;46445:7;46441:16;46428:30;46413:45;;46471:32;46495:7;46471:32;:::i;:::-;-1:-1:-1;;;;;;46538:34:60;;46523:13;;;46516:57;46622;46662:16;;;46666:7;46622:57;:::i;:::-;46586:93;;;;;46738:2;46731:4;46723:6;46719:17;46715:26;46709:3;46703:4;46699:14;46692:50;;;;46768:63;46824:6;46810:12;46794:14;46768:63;:::i;:::-;46755:76;;;;46866:28;46890:2;46886;46882:11;46866:28;:::i;:::-;3283:13;3276:21;46939:13;;;3264:34;;;;-1:-1:-1;47037:12:60;;;;47002:15;;;;45144:1;45135:11;45102:1957;;47090:369;47343:2;47332:9;47325:21;47306:4;47363:90;47449:2;47438:9;47434:18;47426:6;47418;47363:90;:::i;47464:1349::-;47583:6;47578:3;47571:19;47553:3;47609:4;47650:2;47645:3;47641:12;47675:11;47702;47695:18;;47732:1;47722:11;;47773:6;47769:2;47765:15;47758:5;47754:27;47804:5;47827:1;47848;47858:929;47874:6;47869:3;47866:15;47858:929;;;47949:5;47943:4;47939:16;47934:3;47927:29;47979:57;48029:6;48022:5;47979:57;:::i;:::-;48059:4;48096:50;48143:2;48139;48096:50;:::i;:::-;48172:2;48166:4;48159:16;48202:64;48262:2;48256:4;48252:13;48238:12;48202:64;:::i;:::-;48188:78;;;48315:59;48370:2;48366;48362:11;48358:2;48315:59;:::i;:::-;48409:17;;;48394:13;;;48387:40;48440:28;;;48279:95;-1:-1:-1;;;;;;48484:37:60;;48481:57;;;48534:1;48531;48524:12;48481:57;48567:21;;;;;48631:14;48614:15;;;48601:55;-1:-1:-1;48765:12:60;;;;48681:21;48677:30;;;-1:-1:-1;48730:15:60;;;;47900:1;47891:11;47858:929;;;-1:-1:-1;48803:4:60;;47464:1349;-1:-1:-1;;;;;;;;;47464:1349:60:o;48818:2101::-;49319:6;49308:9;49301:25;49362:3;49357:2;49346:9;49342:18;49335:31;49282:4;49395:58;49446:6;49438;49395:58;:::i;:::-;49490:4;49484:3;49473:9;49469:19;49462:33;49518:70;49583:3;49572:9;49568:19;49554:12;49518:70;:::i;:::-;49504:84;;49635:2;49627:6;49623:15;49610:29;49648:30;49672:5;49648:30;:::i;:::-;-1:-1:-1;;;;;49715:30:60;49709:3;49694:19;;49687:59;49734:2;49797:17;;49784:31;49777:4;49762:20;;49755:61;49861:69;49924:4;49912:17;;49801:6;49861:69;:::i;:::-;49953:3;49949:8;50022:2;50010:9;50002:6;49998:22;49994:31;49988:3;49977:9;49973:19;49966:60;50049:92;50134:6;50120:12;50104:14;50049:92;:::i;:::-;50035:106;;50188:69;50251:4;50243:6;50239:17;50231:6;50188:69;:::i;:::-;50150:107;;;;50322:2;50310:9;50302:6;50298:22;50294:31;50288:3;50277:9;50273:19;50266:60;50349:96;50438:6;50422:14;50406;50349:96;:::i;:::-;50335:110;;50507:3;50499:6;50495:16;50482:30;50476:3;50465:9;50461:19;50454:59;50560:56;50611:3;50603:6;50599:16;50591:6;50560:56;:::i;:::-;50522:94;;;;50681:2;50669:9;50661:6;50657:22;50653:31;50647:3;50636:9;50632:19;50625:60;;50702:65;50760:6;50744:14;50728;50702:65;:::i;:::-;50694:73;;;;;50805:6;50798:4;50787:9;50783:20;50776:36;50850:6;50843:4;50832:9;50828:20;50821:36;50866:47;50907:4;50896:9;50892:20;50884:6;-1:-1:-1;;;;;635:30:60;623:43;;570:102;51255:174;51299:11;51351:3;51338:17;51364:30;51388:5;51364:30;:::i;51434:179::-;51536:11;;-1:-1:-1;;;;;;51532:41:60;-1:-1:-1;;;;;51575:30:60;;;;51529:77;;;;51516:91;;51434:179::o;51618:168::-;51691:9;;;51722;;51739:15;;;51733:22;;51719:37;51709:71;;51760:18;;:::i;51791:147::-;51854:78;51872:3;51865:5;51862:14;51854:78;;;51928:1;51914:16;;51899:1;51888:13;51854:78;;51943:323;52038:5;52032:12;52067:1;52060:5;52053:16;52095:6;52088:14;52078:182;;52136:5;52133:1;52126:16;52180:4;52177:1;52167:18;52198:52;52242:6;52236:4;52232:17;52226:4;52198:52;:::i;52271:396::-;-1:-1:-1;;;52351:22:60;;52348:48;;;52376:18;;:::i;:::-;52425:5;52419:12;52454:6;52447:5;52440:21;52484:6;52476;52473:18;52470:191;;;52524:5;52521:1;52514:16;52568:4;52565:1;52555:18;52586:65;52643:6;52637:4;52633:17;52624:6;52618:4;52614:17;52586:65;:::i;52672:153::-;52750:1;52744:4;52737:15;52761:58;52816:1;52810:4;52806:12;52761:58;:::i;52830:166::-;-1:-1:-1;;52958:1:60;52954:11;;;52950:24;52946:29;52936:40;52982:1;52978:11;;;;52933:57;;52830:166::o;53001:513::-;53070:38;53102:4;53096:11;53070:38;:::i;:::-;53134:6;53127:14;53117:391;;53183:2;53175:6;53172:14;53204:1;53199:259;;;;-1:-1:-1;;53494:1:60;53481:15;;14012:363:25:o;53199:259:60:-;53234:4;53231:1;53224:15;53281:4;53278:1;53268:18;53303:77;53374:2;53366:6;53362:15;53359:1;53355:23;53349:4;53345:34;53341:1;53335:4;53331:12;53303:77;:::i;:::-;53410:1;53397:15;;;53429;;53165:333;53117:391;53001:513;:::o;53519:235::-;53599:1;53593:4;53586:15;53610:58;53665:1;53659:4;53655:12;53610:58;:::i;:::-;53698:1;53694;53688:4;53684:12;53677:23;53709:39;53745:1;53739:4;53735:12;53709:39;:::i;53759:515::-;53830:4;53836:6;53896:11;53883:25;53990:2;53986:7;53975:8;53959:14;53955:29;53951:43;53931:18;53927:68;53917:96;;54009:1;54006;53999:12;53917:96;54036:33;;54088:20;;;-1:-1:-1;;;;;;54120:30:60;;54117:50;;;54163:1;54160;54153:12;54117:50;54196:4;54184:17;;-1:-1:-1;54227:14:60;54223:27;;;54213:38;;54210:58;;;54264:1;54261;54254:12;54279:418;54380:2;54375:3;54372:11;54369:322;;;54416:5;54413:1;54406:16;54460:4;54457:1;54447:18;54530:2;54518:10;54514:19;54511:1;54507:27;54501:4;54497:38;54566:4;54554:10;54551:20;54548:47;;;-1:-1:-1;54589:4:60;54548:47;54608:73;54675:2;54670:3;54666:12;54663:1;54659:20;54653:4;54649:31;54636:11;54608:73;:::i;:::-;;;54279:418;;;:::o;54702:1198::-;-1:-1:-1;;;;;54800:27:60;;54797:53;;;54830:18;;:::i;:::-;54859:93;54948:3;54908:38;54940:4;54934:11;54908:38;:::i;:::-;54902:4;54859:93;:::i;:::-;54978:1;55003:2;54998:3;54995:11;55020:1;55015:627;;;;55686:1;55703:3;55700:93;;;-1:-1:-1;55759:19:60;;;55746:33;55700:93;55819:64;55879:3;55872:5;55819:64;:::i;:::-;55813:4;55806:78;;54988:906;;55015:627;-1:-1:-1;;55051:17:60;;55095:46;55136:4;55095:46;:::i;:::-;55163:9;55185:229;55199:7;55196:1;55193:14;55185:229;;;55288:19;;;55275:33;55260:49;;55395:4;55380:20;;;;55348:1;55336:14;;;;55215:12;55185:229;;;55189:3;55442;55433:7;55430:16;55427:159;;;55566:1;55562:6;55556:3;55550;55547:1;55543:11;55539:21;55535:34;55531:39;55518:9;55513:3;55509:19;55496:33;55492:79;55484:6;55477:95;55427:159;;;55629:1;55623:3;55620:1;55616:11;55612:19;55606:4;55599:33;54988:906;;54702:1198;;;:::o;55905:2850::-;56027:75;56096:5;56089;56027:75;:::i;:::-;56139:2;56126:16;56151:32;56175:7;56151:32;:::i;:::-;56192:60;56244:7;56238:4;56192:60;:::i;:::-;;56271:1;56309:2;56303:4;56299:13;56331:2;56376:103;56475:2;56471;56467:11;56463:2;56376:103;:::i;:::-;56342:137;-1:-1:-1;;;;;;56528:21:60;;;56525:47;;;56552:18;;:::i;:::-;56581:65;56632:13;56620:10;56581:65;:::i;:::-;56699:1;56709:22;;;56752:17;;;;56699:1;56798:242;56812:13;56809:1;56806:20;56798:242;;;56897:6;56884:20;56917:33;56942:7;56917:33;:::i;:::-;57008:12;;;57001:29;56973:15;;;;56834:10;;56798:242;;;56802:3;57079:1;57073:4;57069:12;57049:32;;57100:84;57180:2;57173:5;57169:14;57162:5;57100:84;:::i;:::-;57090:94;;57221:2;57208:16;57193:31;;57233;57256:7;57233:31;:::i;:::-;57301:19;;-1:-1:-1;;57297:34:60;57346:4;57333:18;;57294:58;57273:80;;;57392:1;57382:12;;;57439:52;57479:11;;;57483:2;57439:52;:::i;:::-;57403:88;;;;57521:2;57506:13;57503:21;57500:47;;;57527:18;;:::i;:::-;57556:119;57661:13;57613:46;57645:12;57639:19;57613:46;:::i;:::-;57599:12;57556:119;:::i;:::-;57701:2;57684:19;;57737:2;57722:13;57719:21;57754:1;57749:703;;;;58498:2;58516:13;58513:115;;;-1:-1:-1;58584:29:60;;;58571:43;58513:115;58662:76;58724:13;58715:7;58662:76;:::i;:::-;58648:12;58641:98;;57712:1037;;57749:703;-1:-1:-1;;57785:27:60;;57839:54;57880:12;57839:54;:::i;:::-;57917:2;57932:242;57948:7;57943:3;57940:16;57932:242;;;58039:29;;;58026:43;58011:59;;58142:18;;;;58097:15;;;;57966:12;;57932:242;;;57936:3;58202:13;58193:7;58190:26;58187:189;;;58356:1;58352:6;58346:3;58330:13;58327:1;58323:21;58319:31;58315:44;58311:49;58298:9;58283:13;58279:29;58266:43;58262:99;58254:6;58247:115;58187:189;;;58438:2;58422:13;58418:2;58414:22;58410:31;58396:12;58389:53;57712:1037;;;;;;;;;55905:2850;;:::o;58760:174::-;58804:11;58856:3;58843:17;58869:30;58893:5;58869:30;:::i;59156:170::-;59198:11;59250:3;59237:17;59263:28;59285:5;59263:28;:::i;59528:3995::-;59675:5;59662:19;59760:3;59756:8;59748:5;59732:14;59728:26;59724:41;59704:18;59700:66;59690:94;;59780:1;59777;59770:12;59690:94;59805:30;;59854:73;59805:30;;59854:73;:::i;:::-;59946:69;60012:2;60008;59946:69;:::i;:::-;60052:2;60039:16;60064:32;60088:7;60064:32;:::i;:::-;60105:60;60157:7;60151:4;60105:60;:::i;:::-;;60184:1;60222:2;60216:4;60212:13;60244:2;60289:103;60388:2;60384;60380:11;60376:2;60289:103;:::i;:::-;60255:137;-1:-1:-1;;;;;;60441:21:60;;;60438:47;;;60465:18;;:::i;:::-;60494:65;60545:13;60533:10;60494:65;:::i;:::-;60612:1;60622:22;;;60665:17;;;;60612:1;60711:281;60725:13;60722:1;60719:20;60711:281;;;60810:6;60797:20;60830:33;60855:7;60830:33;:::i;:::-;60958:12;;;60951:31;60923:15;;;;60747:10;;60711:281;;;60715:3;61031:1;61025:4;61021:12;61001:32;;61052:78;61126:2;61122;61118:11;61114:2;61052:78;:::i;:::-;61042:88;;61167:2;61154:16;61139:31;;61179;61202:7;61179:31;:::i;:::-;61247:19;;-1:-1:-1;;61243:34:60;61292:4;61279:18;;61240:58;61219:80;;;61338:1;61328:12;;;61385:52;61425:11;;;61429:2;61385:52;:::i;:::-;61349:88;;;;61467:2;61452:13;61449:21;61446:47;;;61473:18;;:::i;:::-;61502:119;61607:13;61559:46;61591:12;61585:19;61559:46;:::i;61502:119::-;61647:2;61630:19;;61683:2;61668:13;61665:21;61700:1;61695:703;;;;62444:2;62429:17;;62462:13;62459:115;;;62549:9;62534:13;62530:29;62517:43;62506:54;;62459:115;62608:76;62670:13;62661:7;62608:76;:::i;:::-;62594:12;62587:98;61658:1037;;61695:703;-1:-1:-1;;61731:27:60;;;-1:-1:-1;61785:54:60;61826:12;61785:54;:::i;:::-;61863:2;61878:242;61894:7;61889:3;61886:16;61878:242;;;61985:29;;;61972:43;61957:59;;62088:18;;;;62043:15;;;;61912:12;;61878:242;;;61882:3;62148:13;62139:7;62136:26;62133:189;;;62302:1;62298:6;62292:3;62276:13;62273:1;62269:21;62265:31;62261:44;62257:49;62244:9;62229:13;62225:29;62212:43;62208:99;62200:6;62193:115;62133:189;;62384:2;62368:13;62364:2;62360:22;62356:31;62342:12;62335:53;61658:1037;;;;;62704:173;62794:82;62872:2;62866:4;62862:13;62856:4;62794:82;:::i;:::-;62790:1;62784:4;62780:12;62704:173;:::i;:::-;62930:2;62924:4;62920:13;62907:27;62903:1;62897:4;62893:12;62886:49;62974:1;62968:4;62964:12;62944:32;;62985:102;63045:41;63082:2;63076:4;63072:13;63045:41;:::i;:::-;63031:12;62985:102;:::i;:::-;63096:103;63156:42;63193:3;63187:4;63183:14;63156:42;:::i;:::-;63142:12;59031:11;;-1:-1:-1;;;;59067:33:60;59110:3;59106:15;;;;-1:-1:-1;;;59102:41:60;59064:80;;;;59051:94;;58939:212;63096:103;63244:57;63296:3;63290:4;63286:14;63280:4;63244:57;:::i;:::-;63208:93;;;;63310:100;63396:13;63381;63376:2;63370:4;63366:13;63310:100;:::i;:::-;63419:98;63476:40;63512:2;63505:5;63501:14;63476:40;:::i;:::-;63471:2;63465:4;63461:13;59445:3;59441:8;59434:4;59428:11;59424:26;59511:3;59502:5;59495:13;59488:21;59484:31;59475:7;59472:44;59466:4;59459:58;;59331:192;;;63419:98;;;;;;;59528:3995;;:::o;63528:1596::-;-1:-1:-1;;;63673:19:60;;63670:45;;;63695:18;;:::i;:::-;63744:4;63738:11;63771:3;63765:4;63758:17;63795:6;63790:3;63787:15;63784:886;;;63835:2;63873:6;63869:2;63865:15;63927:2;63918:7;63914:16;63906:6;63903:28;63893:62;;63935:18;;:::i;:::-;63993:3;63989:2;63985:12;64043:2;64032:9;64028:18;64023:3;64020:27;64010:61;;64051:18;;:::i;:::-;64094:1;64108:16;;;64163:4;64149:19;;64191:18;;;;64235:20;;;;;64268:392;64286:2;64279:5;64276:13;64268:392;;;64348:44;64386:5;64348:44;:::i;:::-;64409:52;64458:1;64451:5;64447:13;64409:52;:::i;:::-;64500:2;64496:1;64489:5;64485:13;64478:25;64542:2;64538:1;64531:5;64527:13;64520:25;64562:41;64599:2;64592:5;64588:14;64562:41;:::i;:::-;64643:2;64638;64631:5;64627:14;64620:26;64312:2;64305:5;64301:14;64292:23;;64268:392;;;64272:3;;;;63784:886;;64693:5;64726:46;64767:4;64726:46;:::i;:::-;64790:1;64800:318;64814:3;64811:1;64808:10;64800:318;;;64860:162;64945:76;65014:6;65007:5;64945:76;:::i;:::-;64932:11;64860:162;:::i;:::-;65057:2;65045:15;;;;;65105:2;65088:20;;;;;64833:1;64826:9;64800:318;;65129:446;65224:5;65218:12;65249:1;65273:2;65266:5;65259:17;65302:6;65295:14;65285:284;;65344:5;65340:2;65333:17;65389:4;65385:2;65375:19;65427:6;65421:4;65417:17;65477:82;65495:2;65488:5;65485:13;65477:82;;;65554:2;65547:5;65540:17;65521:1;65514:5;65510:13;65501:22;;65477:82;;65580:522;-1:-1:-1;;;65660:22:60;;65657:48;;;65685:18;;:::i;:::-;65734:5;65728:12;65763:6;65756:5;65749:21;65793:6;65785;65782:18;65779:317;;;65833:1;65847:17;;;65903:4;65889:19;;65974:17;;;;65931;;66004:82;66022:2;66015:5;66012:13;66004:82;;;66081:2;66074:5;66067:17;66048:1;66041:5;66037:13;66028:22;;66004:82;;66107:1812;66229:75;66298:5;66291;66229:75;:::i;:::-;66341:2;66328:16;66353:32;66377:7;66353:32;:::i;:::-;66394:60;66446:7;66440:4;66394:60;:::i;:::-;;66473:1;66511:2;66505:4;66501:13;66533:2;66578:103;66677:2;66673;66669:11;66665:2;66578:103;:::i;:::-;66544:137;-1:-1:-1;;;;;;66730:21:60;;;66727:47;;;66754:18;;:::i;:::-;66783:65;66834:13;66822:10;66783:65;:::i;:::-;66901:1;66911:22;;;66954:17;;;;66901:1;67000:242;67014:13;67011:1;67008:20;67000:242;;;67099:6;67086:20;67119:33;67144:7;67119:33;:::i;:::-;67210:12;;;67203:29;67175:15;;;;67036:10;;67000:242;;;67004:3;67281:1;67275:4;67271:12;67251:32;;67328:109;67433:2;67426:5;67422:14;67415:5;67328:109;:::i;:::-;67292:145;;;;67467:2;67452:13;67449:21;67446:47;;;67473:18;;:::i;:::-;67502:67;67555:13;67541:12;67502:67;:::i;:::-;67616:24;;;-1:-1:-1;67663:17:60;;;;67711:202;67727:13;67722:3;67719:22;67711:202;;;67798:22;;67882:16;;;67875:28;67845:17;;;;67751:12;;67711:202;;67924:1396;-1:-1:-1;;;68073:19:60;;68070:45;;;68095:18;;:::i;:::-;68144:4;68138:11;68171:3;68165:4;68158:17;68195:6;68190:3;68187:15;68184:679;;;68235:1;68272:6;68268:2;68264:15;68326:2;68317:7;68313:16;68305:6;68302:28;68292:62;;68334:18;;:::i;:::-;68392:3;68388:2;68384:12;68442:2;68431:9;68427:18;68422:3;68419:27;68409:61;;68450:18;;:::i;:::-;68490:1;68483:15;;;68536:4;68523:18;;68564;;;;68608:20;68641:212;68659:2;68652:5;68649:13;68641:212;;;68721:42;68757:5;68721:42;:::i;:::-;68780:59;68836:1;68829:5;68825:13;68780:59;:::i;:::-;68674:14;;68641:212;;;68645:3;;;68184:679;;68886:5;68919:46;68960:4;68919:46;:::i;:::-;68983:1;68993:321;69007:3;69004:1;69001:10;68993:321;;;69053:166;69142:76;69211:6;69204:5;69142:76;:::i;:::-;69129:11;69053:166;:::i;:::-;69254:2;69242:15;;;;;69302:1;69285:19;;;;;69026:1;69019:9;68993:321;;69325:2247;69496:75;69565:5;69558;69496:75;:::i;:::-;69608:2;69595:16;69620:32;69644:7;69620:32;:::i;:::-;69661:60;69713:7;69707:4;69661:60;:::i;:::-;;69740:1;69778:2;69772:4;69768:13;69800:2;69845:103;69944:2;69940;69936:11;69932:2;69845:103;:::i;:::-;69811:137;-1:-1:-1;;;;;;69960:37:60;;69957:63;;;70000:18;;:::i;:::-;70029:65;70080:13;70068:10;70029:65;:::i;:::-;70144:1;70137:21;;;70179:16;;;;70223:281;70237:13;70234:1;70231:20;70223:281;;;70322:6;70309:20;70342:33;70367:7;70342:33;:::i;:::-;70470:12;;;70463:31;70435:15;;;;70259:10;;70223:281;;;70227:3;;70513:103;70573:42;70611:2;70604:5;70600:14;70573:42;:::i;:::-;70569:1;70563:4;70559:12;70513:103;:::i;:::-;;;;;70670:2;70663:5;70659:14;70646:28;70642:1;70636:4;70632:12;70625:50;70720:109;70825:2;70818:5;70814:14;70807:5;70720:109;:::i;:::-;70838:144;70968:13;70953;70949:1;70943:4;70939:12;70838:144;:::i;:::-;;;71027:110;71132:3;71125:5;71121:15;71114:5;71027:110;:::i;:::-;71146:148;71280:13;71265;71261:1;71255:4;71251:12;71146:148;:::i;:::-;;;71348:3;71341:5;71337:15;71324:29;71320:1;71314:4;71310:12;71303:51;71399:59;71453:3;71446:5;71442:15;71435:5;71399:59;:::i;:::-;71467:99;71552:13;71537;71533:1;71527:4;71523:12;71467:99;:::i;71577:792::-;71664:5;71693:64;71709:47;71749:6;71709:47;:::i;71693:64::-;71791:21;;;71684:73;-1:-1:-1;71831:4:60;71851:14;;;;71904:1;71900:14;;;71888:27;;71927:15;;;71924:35;;;71955:1;71952;71945:12;71924:35;71979:6;71994:369;72010:6;72005:3;72002:15;71994:369;;;72083:17;;-1:-1:-1;;;;;72116:35:60;;72113:125;;;72192:1;72221:2;72217;72210:14;72113:125;72263:57;72316:3;72302:11;72294:6;72290:24;72263:57;:::i;:::-;72251:70;;-1:-1:-1;72341:12:60;;;;72027;;71994:369;;;71998:3;;;;71577:792;;;;;:::o;72374:299::-;72546:9;72583:84;72652:14;72644:6;72637:5;72583:84;:::i;72678:211::-;-1:-1:-1;;;;;72850:32:60;;;;72832:51;;72820:2;72805:18;;72678:211::o;72894:1360::-;73012:10;;-1:-1:-1;;;;;73034:30:60;;73031:56;;;73067:18;;:::i;:::-;73096:96;73185:6;73145:38;73177:4;73171:11;73145:38;:::i;:::-;73139:4;73096:96;:::i;:::-;73247:4;;73311:2;73300:14;;73328:1;73323:674;;;;74041:1;74058:6;74055:89;;;-1:-1:-1;74110:19:60;;;74104:26;74055:89;74170:67;74230:6;74223:5;74170:67;:::i;:::-;74164:4;74157:81;;73293:955;;73323:674;-1:-1:-1;;73359:20:60;;73406:46;73447:4;73406:46;:::i;:::-;73474:1;73488:236;73502:7;73499:1;73496:14;73488:236;;;73591:19;;;73585:26;73570:42;;73683:27;;;;73651:1;73639:14;;;;73518:19;;73488:236;;;73492:3;73752:6;73743:7;73740:19;73737:201;;;73813:19;;;73807:26;-1:-1:-1;;73896:1:60;73892:14;;;73908:3;73888:24;73884:37;73880:42;73865:58;73850:74;;73737:201;-1:-1:-1;;;;;73984:1:60;73968:14;;;73964:22;73951:36;;-1:-1:-1;72894:1360:60:o;74259:491::-;74535:2;74524:9;74517:21;74498:4;74561:57;74614:2;74603:9;74599:18;74591:6;74561:57;:::i;74755:276::-;74841:6;74894:2;74882:9;74873:7;74869:23;74865:32;74862:52;;;74910:1;74907;74900:12;74862:52;74942:9;74936:16;74981:1;74974:5;74971:12;74961:40;;74997:1;74994;74987:12;75036:477;75309:2;75298:9;75291:21;75272:4;75335:54;75385:2;75374:9;75370:18;75362:6;75335:54;:::i;:::-;75437:9;75429:6;75425:22;75420:2;75409:9;75405:18;75398:50;75465:42;75500:6;75492;75465:42;:::i;75518:209::-;75556:3;-1:-1:-1;;;;;75626:14:60;;;-1:-1:-1;;;;;;75652:15:60;;75649:41;;75670:18;;:::i;:::-;75719:1;75706:15;;75518:209;-1:-1:-1;;;75518:209:60:o;76302:127::-;76363:10;76358:3;76354:20;76351:1;76344:31;76394:4;76391:1;76384:15;76418:4;76415:1;76408:15;76434:191;76465:1;-1:-1:-1;;;;;76529:10:60;;;;76548:37;;76565:18;;:::i;:::-;76603:10;;76599:20;;;;;76434:191;-1:-1:-1;;76434:191:60:o;76630:757::-;76754:9;76813:4;76805:5;76789:14;76785:26;76781:37;76778:57;;;76831:1;76828;76821:12;76778:57;76859:23;;:::i;:::-;76919:5;76906:19;76934:32;76958:7;76934:32;:::i;:::-;76975:24;;77046:2;77035:14;;77022:28;-1:-1:-1;;;;;77062:30:60;;77059:50;;;77105:1;77102;77095:12;77059:50;77128:18;;77184:14;77177:4;77169:13;;77165:34;77155:62;;77213:1;77210;77203:12;77155:62;77251:100;77336:14;77331:2;77318:16;77313:2;77309;77305:11;77251:100;:::i;77392:474::-;77601:2;77583:21;;;77644:13;;-1:-1:-1;;;;;77640:38:60;77620:18;;;77613:66;77714:15;;77708:22;77667:2;77746:20;;;77739:34;-1:-1:-1;;77790:70:60;77856:2;77841:18;;77708:22;77790:70;:::i;77871:2094::-;78058:5;78045:19;78073:32;78097:7;78073:32;:::i;:::-;78114:60;78166:7;78160:4;78114:60;:::i;:::-;;78193:1;78231:2;78225:4;78221:13;78253:2;78298:109;78403:2;78396:5;78392:14;78385:5;78298:109;:::i;:::-;-1:-1:-1;;;78419:29:60;;78416:55;;;78451:18;;:::i;:::-;78500:10;78494:17;78539:13;78527:10;78520:33;78583:6;78568:13;78565:25;78562:920;;;78623:2;78661:6;78657:2;78653:15;78715:2;78706:7;78702:16;78694:6;78691:28;78681:62;;78723:18;;:::i;:::-;78781:13;78777:2;78773:22;78851:2;78840:9;78836:18;78821:13;78818:37;78808:71;;78859:18;;:::i;:::-;78902:1;78916:22;;;78963:17;;;79003:18;;;;79047:20;;;;;79080:392;79098:2;79091:5;79088:13;79080:392;;;79160:44;79198:5;79160:44;:::i;:::-;79221:52;79270:1;79263:5;79259:13;79221:52;:::i;:::-;79312:2;79308:1;79301:5;79297:13;79290:25;79354:2;79350:1;79343:5;79339:13;79332:25;79374:41;79411:2;79404:5;79400:14;79374:41;:::i;:::-;79455:2;79450;79443:5;79439:14;79432:26;79124:2;79117:5;79113:14;79104:23;;79080:392;;;79084:3;;;;78562:920;;79505:11;79544:52;79585:10;79544:52;:::i;:::-;79525:71;;79614:1;79624:335;79638:13;79635:1;79632:20;79624:335;;;79695:168;79780:82;79855:6;79842:11;79780:82;:::i;:::-;79767:11;79695:168;:::i;:::-;79946:2;79929:20;;;;;79886:15;;;;79660:10;;79624:335;;;79628:3;;;;;;;77871:2094;;:::o;79970:314::-;80185:25;;;-1:-1:-1;;;;;80246:31:60;80241:2;80226:18;;80219:59;80173:2;80158:18;;79970:314::o;80794:335::-;80873:6;80926:2;80914:9;80905:7;80901:23;80897:32;80894:52;;;80942:1;80939;80932:12;80894:52;80969:16;;-1:-1:-1;;;;;80997:30:60;;80994:50;;;81040:1;81037;81030:12;80994:50;81063:60;81115:7;81106:6;81095:9;81091:22;81063:60;:::i;81134:199::-;81173:1;-1:-1:-1;;;;;81237:10:60;;;;81256:37;;81273:18;;:::i;:::-;81311:10;;81307:20;;;;;81134:199;-1:-1:-1;;81134:199:60:o;81338:257::-;-1:-1:-1;;;;;81459:10:60;;;81471;;;81455:27;81502:20;;;;81409:18;81541:24;;;81531:58;;81569:18;;:::i;:::-;81531:58;;81338:257;;;;:::o;82007:287::-;82136:3;82174:6;82168:13;82190:66;82249:6;82244:3;82237:4;82229:6;82225:17;82190:66;:::i;82299:120::-;82339:1;82365;82355:35;;82370:18;;:::i;:::-;-1:-1:-1;82404:9:60;;82299:120::o;82971:219::-;83120:2;83109:9;83102:21;83083:4;83140:44;83180:2;83169:9;83165:18;83157:6;83140:44;:::i", - "linkReferences": { - "src/lib/AccountHelper.sol": { - "AccountHelper": [ - { - "start": 26193, - "length": 20 - }, - { - "start": 26344, - "length": 20 - } - ] - }, - "src/lib/CheckpointHelper.sol": { - "CheckpointHelper": [ - { - "start": 5166, - "length": 20 - }, - { - "start": 24846, - "length": 20 - }, - { - "start": 25108, - "length": 20 - }, - { - "start": 29696, - "length": 20 - }, - { - "start": 30856, - "length": 20 - } - ] - }, - "src/lib/CrossMsgHelper.sol": { - "CrossMsgHelper": [ - { - "start": 6683, - "length": 20 - }, - { - "start": 14397, - "length": 20 - }, - { - "start": 17531, - "length": 20 - }, - { - "start": 33555, - "length": 20 - } - ] - }, - "src/lib/EpochVoteSubmissionHelper.sol": { - "EpochVoteSubmissionHelper": [ - { - "start": 32086, - "length": 20 - }, - { - "start": 34263, - "length": 20 - } - ] - }, - "src/lib/ExecutableQueueHelper.sol": { - "ExecutableQueueHelper": [ - { - "start": 31943, - "length": 20 - }, - { - "start": 32209, - "length": 20 - }, - { - "start": 32368, - "length": 20 - } - ] - }, - "src/lib/StorableMsgHelper.sol": { - "StorableMsgHelper": [ - { - "start": 27693, - "length": 20 - }, - { - "start": 32813, - "length": 20 - } - ] - }, - "src/lib/SubnetIDHelper.sol": { - "SubnetIDHelper": [ - { - "start": 6890, - "length": 20 - }, - { - "start": 7238, - "length": 20 - }, - { - "start": 7506, - "length": 20 - }, - { - "start": 8787, - "length": 20 - }, - { - "start": 9618, - "length": 20 - }, - { - "start": 9853, - "length": 20 - }, - { - "start": 10259, - "length": 20 - }, - { - "start": 10948, - "length": 20 - }, - { - "start": 16261, - "length": 20 - }, - { - "start": 22893, - "length": 20 - }, - { - "start": 25861, - "length": 20 - }, - { - "start": 26139, - "length": 20 - }, - { - "start": 26568, - "length": 20 - }, - { - "start": 27381, - "length": 20 - }, - { - "start": 27531, - "length": 20 - }, - { - "start": 27843, - "length": 20 - }, - { - "start": 27969, - "length": 20 - }, - { - "start": 28276, - "length": 20 - }, - { - "start": 28649, - "length": 20 - }, - { - "start": 31428, - "length": 20 - }, - { - "start": 32601, - "length": 20 - }, - { - "start": 32943, - "length": 20 - }, - { - "start": 33093, - "length": 20 - } - ] - } - }, - "immutableReferences": { - "32998": [ - { - "start": 1279, - "length": 32 - }, - { - "start": 7039, - "length": 32 - }, - { - "start": 10755, - "length": 32 - }, - { - "start": 11251, - "length": 32 - } - ], - "33011": [ - { - "start": 598, - "length": 32 - }, - { - "start": 31229, - "length": 32 - } - ], - "33020": [ - { - "start": 1755, - "length": 32 - } - ], - "33035": [ - { - "start": 1140, - "length": 32 - }, - { - "start": 6715, - "length": 32 - }, - { - "start": 6996, - "length": 32 - }, - { - "start": 9122, - "length": 32 - }, - { - "start": 14430, - "length": 32 - }, - { - "start": 26480, - "length": 32 - }, - { - "start": 28917, - "length": 32 - } - ], - "36616": [ - { - "start": 1485, - "length": 32 - }, - { - "start": 34187, - "length": 32 - } - ], - "36619": [ - { - "start": 991, - "length": 32 - }, - { - "start": 29562, - "length": 32 - }, - { - "start": 32506, - "length": 32 - } - ] - } - }, - "methodIdentifiers": { - "MIN_CHECKPOINT_PERIOD()": "a1ada303", - "MIN_COLLATERAL_AMOUNT()": "91be4d41", - "addStake()": "5a627dbc", - "appliedTopDownNonce()": "8789f83b", - "bottomUpCheckPeriod()": "06c46853", - "bottomUpCheckpointAtEpoch(uint64)": "6cb2ecee", - "bottomUpCheckpointHashAtEpoch(uint64)": "133f74ea", - "bottomUpCheckpoints(uint64)": "2cc14ea2", - "bottomUpNonce()": "41b6a2e8", - "commitChildCheck(((uint64,address[]),uint64,uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[],((uint64,address[]),bytes32[])[],bytes32,bytes))": "d4e149a8", - "crossMsgFee()": "24729425", - "executableQueue()": "10d500e1", - "fund((uint64,address[]),(uint8,bytes))": "18f44b70", - "getAppliedTopDownNonce((uint64,address[]))": "9e530b57", - "getGenesisEpoch()": "51392fc0", - "getNetworkName()": "94074b03", - "getSubnet((uint64,address[]))": "c66c66a1", - "getSubnetTopDownMsg((uint64,address[]),uint256)": "0ea746f2", - "getSubnetTopDownMsgsLength((uint64,address[]))": "9d3070b5", - "getTopDownMsgs((uint64,address[]),uint64)": "13549315", - "hasValidatorVotedForSubmission(uint64,address)": "66d7bbbc", - "initGenesisEpoch(uint64)": "13f35388", - "initialized()": "158ef93e", - "kill()": "41c0e1b5", - "lastVotingExecutedEpoch()": "ad81e244", - "listSubnets()": "5d029685", - "majorityPercentage()": "599c7bd1", - "minStake()": "375b3c0a", - "postbox(bytes32)": "8cfd78e7", - "propagate(bytes32)": "25bf0db6", - "register()": "1aa3a008", - "release((uint8,bytes))": "6b2c1eef", - "releaseRewards(uint256)": "f8703bb8", - "releaseStake(uint256)": "45f54485", - "sendCrossMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool))": "2f757dd1", - "setMembership(address[],uint256[])": "f75bc557", - "submissionPeriod()": "185fde7e", - "submitTopDownCheckpoint((uint64,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[]))": "986acf38", - "subnetKeys(uint256)": "548b3b38", - "subnets(bytes32)": "02e30f9a", - "topDownCheckPeriod()": "7d9740f4", - "totalSubnets()": "a2b67158", - "totalWeight()": "96c82e57", - "validatorNonce()": "e17a684f", - "validatorSet(uint256,address)": "223d9056" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"networkName\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"bottomUpCheckPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"topDownCheckPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"msgFee\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"majorityPercentage\",\"type\":\"uint8\"}],\"internalType\":\"struct Gateway.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotReleaseZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotSendCrossMsgToItself\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptySubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EpochAlreadyExecuted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EpochNotVotable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InconsistentPrevCheckpoint\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidActorAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCheckpointEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCheckpointSource\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgDestinationSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgFromSubnetId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgsSortOrder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidMajorityPercentage\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MessagesNotSorted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MethodNotSupportedYet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEmptySubnetCircSupply\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFee\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFundsForMembership\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFundsToRelease\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughSubnetCircSupply\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSignableAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSystemActor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PostboxNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetNotActive\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorAlreadyVoted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorWeightIsZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorsAndWeightsLengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MIN_CHECKPOINT_PERIOD\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_COLLATERAL_AMOUNT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"appliedTopDownNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpCheckPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"}],\"name\":\"bottomUpCheckpointAtEpoch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"checks\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ChildCheck[]\",\"name\":\"children\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"}],\"name\":\"bottomUpCheckpointHashAtEpoch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"bottomUpCheckpoints\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"checks\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ChildCheck[]\",\"name\":\"children\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"commit\",\"type\":\"tuple\"}],\"name\":\"commitChildCheck\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"crossMsgFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executableQueue\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"period\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"first\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"last\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"}],\"name\":\"fund\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"getAppliedTopDownNonce\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGenesisEpoch\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNetworkName\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"getSubnet\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"enum Status\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"topDownNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"appliedBottomUpNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"genesisEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"circSupply\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"id\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"checks\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ChildCheck[]\",\"name\":\"children\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"prevCheckpoint\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"topDownMsgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Subnet\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getSubnetTopDownMsg\",\"outputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"getSubnetTopDownMsgsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"fromNonce\",\"type\":\"uint64\"}],\"name\":\"getTopDownMsgs\",\"outputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"hasValidatorVotedForSubmission\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"genesisEpoch\",\"type\":\"uint64\"}],\"name\":\"initGenesisEpoch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastVotingExecutedEpoch\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"listSubnets\",\"outputs\":[{\"components\":[{\"internalType\":\"enum Status\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"topDownNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"appliedBottomUpNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"genesisEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"circSupply\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"id\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"checks\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ChildCheck[]\",\"name\":\"children\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"prevCheckpoint\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"topDownMsgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Subnet[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"majorityPercentage\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"postbox\",\"outputs\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"msgCid\",\"type\":\"bytes32\"}],\"name\":\"propagate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"releaseRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"releaseStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg\",\"name\":\"crossMsg\",\"type\":\"tuple\"}],\"name\":\"sendCrossMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"weights\",\"type\":\"uint256[]\"}],\"name\":\"setMembership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"submissionPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"topDownMsgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct TopDownCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"}],\"name\":\"submitTopDownCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"subnetKeys\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"subnets\",\"outputs\":[{\"internalType\":\"enum Status\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"topDownNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"appliedBottomUpNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"genesisEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"circSupply\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"id\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"checks\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ChildCheck[]\",\"name\":\"children\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"prevCheckpoint\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"topDownCheckPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSubnets\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"validatorSet\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"LimeChain team\",\"kind\":\"dev\",\"methods\":{\"bottomUpCheckpointAtEpoch(uint64)\":{\"params\":{\"epoch\":\"- the epoch to check\"},\"returns\":{\"checkpoint\":\"- the checkpoint struct\",\"exists\":\"- whether the checkpoint exists\"}},\"bottomUpCheckpointHashAtEpoch(uint64)\":{\"params\":{\"epoch\":\"- the epoch to check\"},\"returns\":{\"_0\":\"exists - whether the checkpoint exists\",\"_1\":\"hash - the hash of the checkpoint\"}},\"fund((uint64,address[]),(uint8,bytes))\":{\"params\":{\"subnetId\":\"- subnet to fund\",\"to\":\"- the address to send funds to\"}},\"getAppliedTopDownNonce((uint64,address[]))\":{\"params\":{\"subnetId\":\"- The subnet id to fetch messages from\"}},\"getGenesisEpoch()\":{\"returns\":{\"_0\":\"epoch - the genesis epoch\"}},\"getSubnet((uint64,address[]))\":{\"params\":{\"subnetId\":\"the id of the subnet\"},\"returns\":{\"_0\":\"found whether the subnet exists\",\"_1\":\"subnet - the subnet struct\"}},\"getTopDownMsgs((uint64,address[]),uint64)\":{\"params\":{\"fromNonce\":\"- The starting nonce to get top down messages, inclusive.\",\"subnetId\":\"- The subnet id to fetch messages from\"}},\"hasValidatorVotedForSubmission(uint64,address)\":{\"params\":{\"epoch\":\"- the epoch to check\",\"submitter\":\"- the validator to check\"}},\"initGenesisEpoch(uint64)\":{\"params\":{\"genesisEpoch\":\"- genesis epoch to set\"}},\"listSubnets()\":{\"returns\":{\"_0\":\"subnet - the list of subnets\"}},\"propagate(bytes32)\":{\"params\":{\"msgCid\":\"- the cid of the cross-net message\"}},\"sendCrossMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool))\":{\"params\":{\"crossMsg\":\"- message to send\"}},\"setMembership(address[],uint256[])\":{\"params\":{\"validators\":\"- list of validator addresses\",\"weights\":\"- list of validators voting powers\"}},\"submitTopDownCheckpoint((uint64,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[]))\":{\"params\":{\"checkpoint\":\"- top-down checkpoint\"}}},\"title\":\"Gateway Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"MIN_CHECKPOINT_PERIOD()\":{\"notice\":\"minimum checkpoint period. Values get clamped to this\"},\"addStake()\":{\"notice\":\"addStake - add collateral for an existing subnet\"},\"appliedTopDownNonce()\":{\"notice\":\"AppliedNonces keep track of the next nonce of the message to be applied. This prevents potential replay attacks.\"},\"bottomUpCheckPeriod()\":{\"notice\":\"bottom-up period in number of epochs for the subnet\"},\"bottomUpCheckpointAtEpoch(uint64)\":{\"notice\":\"returns the current bottom-up checkpoint\"},\"bottomUpCheckpointHashAtEpoch(uint64)\":{\"notice\":\"returns the historical bottom-up checkpoint hash\"},\"bottomUpCheckpoints(uint64)\":{\"notice\":\"BottomUpCheckpoints in the GW per epoch\"},\"bottomUpNonce()\":{\"notice\":\"nonce for bottom-up messages\"},\"commitChildCheck(((uint64,address[]),uint64,uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[],((uint64,address[]),bytes32[])[],bytes32,bytes))\":{\"notice\":\"submit a checkpoint in the gateway. Called from a subnet once the checkpoint is voted for and reaches majority\"},\"crossMsgFee()\":{\"notice\":\"fee amount charged per cross message\"},\"executableQueue()\":{\"notice\":\"Contains the executable epochs that are ready to be executed, but has yet to be executed. This usually happens when previous submission epoch has not executed, but the next submission epoch is ready to be executed. Most of the time this should be empty\"},\"fund((uint64,address[]),(uint8,bytes))\":{\"notice\":\"fund - commit a top-down message releasing funds in a child subnet. There is an associated fee that gets distributed to validators in the subnet as well\"},\"getAppliedTopDownNonce((uint64,address[]))\":{\"notice\":\"Get the latest applied top down nonce\"},\"getGenesisEpoch()\":{\"notice\":\"method that returns the genesis epoch\"},\"getNetworkName()\":{\"notice\":\"get the network name in subnet id format\"},\"getSubnet((uint64,address[]))\":{\"notice\":\"returns the subnet with the given id\"},\"getSubnetTopDownMsg((uint64,address[]),uint256)\":{\"notice\":\"get the top-down message at the given index for the given subnet\"},\"getSubnetTopDownMsgsLength((uint64,address[]))\":{\"notice\":\"get number of top-down messages for the given subnet\"},\"getTopDownMsgs((uint64,address[]),uint64)\":{\"notice\":\"get the list of top down messages from nonce, we may also consider introducing pagination.\"},\"hasValidatorVotedForSubmission(uint64,address)\":{\"notice\":\"whether a validator has voted for a checkpoint submission during an epoch\"},\"initGenesisEpoch(uint64)\":{\"notice\":\"initialize the contract with the genesis epoch\"},\"initialized()\":{\"notice\":\"whether the contract is initialized\"},\"kill()\":{\"notice\":\"kill an existing subnet. It's balance must be empty\"},\"lastVotingExecutedEpoch()\":{\"notice\":\"last executed epoch after voting\"},\"listSubnets()\":{\"notice\":\"returns the list of registered subnets in IPC\"},\"majorityPercentage()\":{\"notice\":\"percent approvals needed to reach consensus\"},\"minStake()\":{\"notice\":\"Minimum stake required to create a new subnet\"},\"postbox(bytes32)\":{\"notice\":\"Postbox keeps track of all the cross-net messages triggered by an actor that need to be propagated further through the hierarchy. cross-net message id => CrossMsg\"},\"propagate(bytes32)\":{\"notice\":\"propagates the populated cross net message for the given cid\"},\"register()\":{\"notice\":\"register a subnet in the gateway. called by a subnet when it reaches the threshold stake\"},\"release((uint8,bytes))\":{\"notice\":\"release method locks funds in the current subnet and sends a cross message up the hierarchy to the parent gateway to release the funds\"},\"releaseStake(uint256)\":{\"notice\":\"release collateral for an existing subnet\"},\"sendCrossMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool))\":{\"notice\":\"sends an arbitrary cross message from the current subnet to the destination subnet\"},\"setMembership(address[],uint256[])\":{\"notice\":\"set up the top-down validators and their voting power\"},\"submissionPeriod()\":{\"notice\":\"number of blocks between two checkpoint submissions\"},\"submitTopDownCheckpoint((uint64,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[]))\":{\"notice\":\"allows a validator to submit a batch of messages in a top-down commitment\"},\"subnetKeys(uint256)\":{\"notice\":\"Keys of the registered subnets. Useful to iterate through them\"},\"subnets(bytes32)\":{\"notice\":\"List of subnets SubnetID => Subnet\"},\"topDownCheckPeriod()\":{\"notice\":\"top-down period in number of epochs for the subnet\"},\"totalSubnets()\":{\"notice\":\"Number of active subnets spawned from this one\"},\"totalWeight()\":{\"notice\":\"total votes of all validators\"},\"validatorNonce()\":{\"notice\":\"sequence number that uniquely identifies a validator set\"},\"validatorSet(uint256,address)\":{\"notice\":\"List of validators and how many votes of the total each validator has for top-down messages\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Gateway.sol\":\"Gateway\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0xbe176ce3d98aadbda895fde9c771534f511235689f34cfe93c97794221826a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6f045631220f84768b8cb7087a5fe85e0e536b759f440031ee1b74e77984c74\",\"dweb:/ipfs/QmR7b6FcDAK672BWanKGWE19pcEG7i7S4jqNnzCs4AYSCD\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x03a26b0ce85afee2c16f3232bd123286b849ca576778781cf6e8bbf51cb7570a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://13a4f5cec214760f14abaedfc0a1860d80c2267386fa62dc77e8eee51ec84d71\",\"dweb:/ipfs/QmWmEKeofHqLnNEeCivhzTepo1k5xZZqzMxyyyzNBYiYBW\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x2e53602b96c1bf97c731ed3e2a981b4f85e23a9410a5ebd36e549a4cc93340dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://523f47b3ecc6d4e47b4b998d3356199988eef8a42a10dff5a3660d5f9e76cc71\",\"dweb:/ipfs/QmRLH8CNvDsuLzNCjsbpLM3RHD9he5ESXroYoDT3tpaTCA\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x2626d8ab3dfdad0fad630c212ad146d59473d0f48b771784c61a7c1dbbea1f3f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7c144532f1e7c76ac95fb6a8f617c1f740d7a73442a907eb60910e99dfa1fbf\",\"dweb:/ipfs/QmZsGyooD6emxB8JCuugRjnRYS2MPZEL586uuV7dgC8Jng\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3546b156d97633f7f8cad536d5454c81d1d604687c02b2eb105fdc33cb962b41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc373869014f80e7ad928ae44bb7678a2d7aacf213fb0ce36bcbbb3166845903\",\"dweb:/ipfs/QmUaRPa2Nm2WfKeCq8yRCR94JZFCnfr4xw9LJADWxhTcwt\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x721e69345488526862ebd8284dfd4976bcecd1c8508fe6b5bd9ba1a9cc2d9de2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47903784cc874a21f2add3b947283fa8d3e4b3c040e41f871adeb8dea0e0a253\",\"dweb:/ipfs/QmP4P2LQEeG2ojfLZ7Wo4n5xUmPPPt4bVNR34FxMQNqY61\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xacbaaa9be521944f83d2852379e1f40b28ada61a256493474f6cdc9b59620598\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15aa625baf68ba948a074361f38f7cf0e6198ba67d1d808c43865409296f1e72\",\"dweb:/ipfs/Qmbcae8x18H5Uzp2DsQcfZH3PMxokhhVCcwks22CDqVsPQ\"]},\"src/Gateway.sol\":{\"keccak256\":\"0xe7591d6f0b0f2d36de37568102cf645f306b65abb810c27aa7444c1696683df0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://7125b3ef2d921160dd49505bc873d225b1f03cfb3fc9b8681976123c975d85ca\",\"dweb:/ipfs/QmfJqQGEbSa4EF8qiJ6JemEb4zRxED2aEm7jJYqcFSVn6w\"]},\"src/Voting.sol\":{\"keccak256\":\"0xea28372fddefe2b3981d6e06c171d92523b39ac9aa5ba60c74a088f35505421d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0466daf1fae11d37574bc9793172f5f116f906e46478dde17c72725519c5f645\",\"dweb:/ipfs/Qmbt85ktcuSddaHFfxT98hgKRG9r1dNDkzSjbAVnZMFdjB\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x8a925dea568a61a38de9615aae7bb462d9eb6f8eb2c6ca409f1e740519077ab8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b7e2f836581694867c09bb9c80ff2ab6ae039ece2ff3bbf4d1bc2026449fa551\",\"dweb:/ipfs/QmVMvaQSCRBHZudSV8AzimYre76tJVm4UrHYnrT89zcjho\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x2bf6521d3fc6d484d27e8cbae0b577ff4f310979fdf95ed4366d73c4701f9acc\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e01f6417e82d8791aa19694939d0e425adc8670bad777383ddd238c1ffc6d122\",\"dweb:/ipfs/QmeUmaBpkvaYtaTaxEwLaaXPQizZNz6nsMxKvscTf1X49f\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0xf29c18f694b5acc919b7cada2875ca3bd2c52ddd7ef86ee747aab0faeb50ac8b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d8fb92f533cc119c578da73b06efe76b0efaa612af7c77178eb903952fcf53df\",\"dweb:/ipfs/QmdosRgUmvwXRnxq5TmoJoFMs7TULduTFpMUNyYXQNGfQD\"]},\"src/enums/VoteExecutionStatus.sol\":{\"keccak256\":\"0x56d1db8abf83feb0f1d69f1919fbd5bd79c6f3c5bf3c149950d307b9d62b6455\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb2ec0f87a9091eab463ac6a776d5737189e0239f412b36b975bb0be1fcb4ad8\",\"dweb:/ipfs/QmWiXwab54Ag2f1kyGjqT3brh5JrV5Lc7cqod9VPaS5ey6\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x57865785239b076bc429cd989bc5cb2a2e68050c7293a5a537d8cdeded170294\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://28285703560a0bbfa247c894c9f14f2a14e02e430e7dedb0a05b58c53aed3763\",\"dweb:/ipfs/QmcrNx18jZYJ7dRduWu1do3th74cHy7zn9Zx8x13WsCLj5\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0xe3f7371c7c7af8dfa71daa6c4171f6853c9ab1fdd619c09eb12c11ff18d17d91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6a09ea45ed335eada22e7cf3643c17d1c59750ed2156cc29c0960a8e8b53e394\",\"dweb:/ipfs/QmSYTNGqP9wEJnPDXmvghfL8zL8BrHGnixhbsimA9oydLG\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x86bf44c7e35907c1b0ed2fd55a6a8a277b46e6ee52b6933610504bc1d2de3b12\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb47357cd7342f951e5d08b1960e9ab7d458463e71ce08ff61b900bbb04118f0\",\"dweb:/ipfs/QmTKHhnYs1xKZUwCmSRPmSi5utfGrosYV57fSoGF7bGnJs\"]},\"src/lib/CheckpointHelper.sol\":{\"keccak256\":\"0x25d67ccc67b6b537df920c92dc3c704dc097e000c444149d3732e1d20848a269\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5823e88c38b5c4e90ee5700cee5a5fd8d982015dab7ea1cbe2f26d62a359ae76\",\"dweb:/ipfs/QmT9Ves86HoEqQciunzEwvDsyv2dgQwF8uPUjNuGsycHuF\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0xe7aacc0bc5eb10763685d6766524f6db05b151b37de4ccbd2b04649e54b9af36\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d6fae33fe9dc258efc3e0c484c6e69ff8314af266c78fd9b3d20c5bf8f251865\",\"dweb:/ipfs/QmYYpC6GnJNRvAg3MCSHKHk47cas888N3HzmMrmiRT4bnJ\"]},\"src/lib/EpochVoteSubmissionHelper.sol\":{\"keccak256\":\"0x1eaf867ddfc3e83d5a2ca50a81809e1529ea2436a8d2697d868bc8653b8c6c9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://65eb6a69fdb0fd8bfc1cd3d5044791225ff9fa8887dda49fd530e7c46e6e5366\",\"dweb:/ipfs/QmepF17eiqGqiNJRfeCohdeVw2aJxgkFS1AyFSM78v16nC\"]},\"src/lib/ExecutableQueueHelper.sol\":{\"keccak256\":\"0x66b7ba58bb9ba987789f22dcc5e44f1720876a79a52a9630d886490d48f80ece\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8b388b9f63b4f86ac03f24089a1f110e482ae89b1eb628fc78aeead1d6f50869\",\"dweb:/ipfs/QmVGVh9r2GBgXRn7Z13sMKmnn3xjfHm9tM3mnLUH1UwjQX\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x80d7d30532305664e31ad114d702904287e6f93954b420315f660ddf30791ac6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0b108070a13f76614f36e46f0af85d12aa53209ff9bb9c32ee1945be3e0a1fe1\",\"dweb:/ipfs/QmcyMuCZB4Z3qFUUjvcoVeSePJXU5F9hN4Zhy94U2qqcPq\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0x6d8042388daad40be71d0ceaddeab0dee54ccc70d921ca177fe57ce9b575959f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9a5f2660c29fb44ca2278e5e5ce75adcf01fcb3521f62d2bd624c3fe53c60875\",\"dweb:/ipfs/QmeNEQZM8QdvALJmt8V8nfqYE6xVMs8m2YAF2yT589mm6L\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0xf82021571aa9a7b021b2d24b2c0eb80c5796b9f28ebb6a1c239146c0c0168817\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b546fc429093a558b9382e28886d1f09e7f308e55f6398989583bc420a630326\",\"dweb:/ipfs/QmSmQPQbMBX8N8r8nGboBWdzJjUaK7ACaFUf8XosZVZPT8\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0xcddaa4630a6f68c59a819bafee579a8979cc9fd7b00d5b49f99eeefb9ce0c02c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9713f988a5709dea3ee0fb204a2d0b64b0dc115912ed9eb128f479156d97a949\",\"dweb:/ipfs/QmUjTAvd2eAYQFqgfZUf5R67daeC7eUKrL6WrFb8oEWB9j\"]},\"src/structs/EpochVoteSubmission.sol\":{\"keccak256\":\"0x4cc52a36cac1a063bf1f996b91ea81ce118b7ce8923e62cec6e5bf08b689e96a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb33236d8c7a40e17c416a21e9f0df268d6a7f4d6ba1df86ab0c2dbf444702e9\",\"dweb:/ipfs/QmXEbdkweqL1f4Q71YPiuxwhQooh1oim9oBybAbr9Jd3A2\"]},\"src/structs/ExecutableQueue.sol\":{\"keccak256\":\"0xfacfd91786edac0462f4bba34d3a3766c8785925ae96301b68b76fba78c5cab4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb421106bc9158e8a12dd7054d265113dd890337937e73acb03f03e33a13eb18\",\"dweb:/ipfs/Qmdxs4akDWuzwf5nYsCaNuYNZ5sTrMCzdgVMuSpKCjFyaP\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xbaae3da91048d76b5bab0404eebf7dc41ed273a8cd1f4143ea1b3403d89f77c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5a69d76f5022d2e19f69ef0d70d4c5e3a3e7ae8e02fcfdb2682c901ac2f3a707\",\"dweb:/ipfs/QmYEWyPz9UqVssUpU42VTv6DhzRNAfaHKt9ZsNCAvtLjTr\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0xb37b12df0c9ff47c2e88f9612b624bb44e6de5dfb8030dfd83582997dcd6aa83\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a321a05abf7b3b461e3d6c4ac27b18d3e14dffad9e2bf9a0ceb68538a02ab1e4\",\"dweb:/ipfs/QmPo878trP8pv9yXXpwUHSnP7Xt6uz9eWuB25pz2JGiCot\"]}},\"version\":1}", - "metadata": { - "compiler": { - "version": "0.8.19+commit.7dd6d404" - }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ - { - "internalType": "struct Gateway.ConstructorParams", - "name": "params", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "networkName", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "uint64", - "name": "bottomUpCheckPeriod", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "topDownCheckPeriod", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "msgFee", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "majorityPercentage", - "type": "uint8" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "type": "error", - "name": "AlreadyInitialized" - }, - { - "inputs": [], - "type": "error", - "name": "AlreadyRegisteredSubnet" - }, - { - "inputs": [], - "type": "error", - "name": "CallFailed" - }, - { - "inputs": [], - "type": "error", - "name": "CannotReleaseZero" - }, - { - "inputs": [], - "type": "error", - "name": "CannotSendCrossMsgToItself" - }, - { - "inputs": [], - "type": "error", - "name": "EmptySubnet" - }, - { - "inputs": [], - "type": "error", - "name": "EpochAlreadyExecuted" - }, - { - "inputs": [], - "type": "error", - "name": "EpochNotVotable" - }, - { - "inputs": [], - "type": "error", - "name": "InconsistentPrevCheckpoint" - }, - { - "inputs": [], - "type": "error", - "name": "InsufficientFunds" - }, - { - "inputs": [], - "type": "error", - "name": "InvalidActorAddress" - }, - { - "inputs": [], - "type": "error", - "name": "InvalidCheckpointEpoch" - }, - { - "inputs": [], - "type": "error", - "name": "InvalidCheckpointSource" - }, - { - "inputs": [], - "type": "error", - "name": "InvalidCrossMsgDestinationSubnet" - }, - { - "inputs": [], - "type": "error", - "name": "InvalidCrossMsgFromSubnetId" - }, - { - "inputs": [], - "type": "error", - "name": "InvalidCrossMsgNonce" - }, - { - "inputs": [], - "type": "error", - "name": "InvalidCrossMsgsSortOrder" - }, - { - "inputs": [], - "type": "error", - "name": "InvalidMajorityPercentage" - }, - { - "inputs": [], - "type": "error", - "name": "MessagesNotSorted" - }, - { - "inputs": [], - "type": "error", - "name": "MethodNotSupportedYet" - }, - { - "inputs": [], - "type": "error", - "name": "NotEmptySubnetCircSupply" - }, - { - "inputs": [], - "type": "error", - "name": "NotEnoughBalance" - }, - { - "inputs": [], - "type": "error", - "name": "NotEnoughFee" - }, - { - "inputs": [], - "type": "error", - "name": "NotEnoughFunds" - }, - { - "inputs": [], - "type": "error", - "name": "NotEnoughFundsForMembership" - }, - { - "inputs": [], - "type": "error", - "name": "NotEnoughFundsToRelease" - }, - { - "inputs": [], - "type": "error", - "name": "NotEnoughSubnetCircSupply" - }, - { - "inputs": [], - "type": "error", - "name": "NotInitialized" - }, - { - "inputs": [], - "type": "error", - "name": "NotRegisteredSubnet" - }, - { - "inputs": [], - "type": "error", - "name": "NotSignableAccount" - }, - { - "inputs": [], - "type": "error", - "name": "NotSystemActor" - }, - { - "inputs": [], - "type": "error", - "name": "NotValidator" - }, - { - "inputs": [], - "type": "error", - "name": "PostboxNotExist" - }, - { - "inputs": [], - "type": "error", - "name": "SubnetNotActive" - }, - { - "inputs": [], - "type": "error", - "name": "ValidatorAlreadyVoted" - }, - { - "inputs": [], - "type": "error", - "name": "ValidatorWeightIsZero" - }, - { - "inputs": [], - "type": "error", - "name": "ValidatorsAndWeightsLengthMismatch" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "MIN_CHECKPOINT_PERIOD", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "MIN_COLLATERAL_AMOUNT", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "payable", - "type": "function", - "name": "addStake" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "appliedTopDownNonce", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "bottomUpCheckPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "epoch", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function", - "name": "bottomUpCheckpointAtEpoch", - "outputs": [ - { - "internalType": "bool", - "name": "exists", - "type": "bool" - }, - { - "internalType": "struct BottomUpCheckpoint", - "name": "checkpoint", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "source", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "uint64", - "name": "epoch", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "internalType": "struct CrossMsg[]", - "name": "crossMsgs", - "type": "tuple[]", - "components": [ - { - "internalType": "struct StorableMsg", - "name": "message", - "type": "tuple", - "components": [ - { - "internalType": "struct IPCAddress", - "name": "from", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - } - ] - }, - { - "internalType": "struct IPCAddress", - "name": "to", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - } - ] - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "internalType": "bytes4", - "name": "method", - "type": "bytes4" - }, - { - "internalType": "bytes", - "name": "params", - "type": "bytes" - } - ] - }, - { - "internalType": "bool", - "name": "wrapped", - "type": "bool" - } - ] - }, - { - "internalType": "struct ChildCheck[]", - "name": "children", - "type": "tuple[]", - "components": [ - { - "internalType": "struct SubnetID", - "name": "source", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "bytes32[]", - "name": "checks", - "type": "bytes32[]" - } - ] - }, - { - "internalType": "bytes32", - "name": "prevHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "proof", - "type": "bytes" - } - ] - } - ] - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "epoch", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function", - "name": "bottomUpCheckpointHashAtEpoch", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function", - "name": "bottomUpCheckpoints", - "outputs": [ - { - "internalType": "struct SubnetID", - "name": "source", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "uint64", - "name": "epoch", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "prevHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "proof", - "type": "bytes" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "bottomUpNonce", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ] - }, - { - "inputs": [ - { - "internalType": "struct BottomUpCheckpoint", - "name": "commit", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "source", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "uint64", - "name": "epoch", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "internalType": "struct CrossMsg[]", - "name": "crossMsgs", - "type": "tuple[]", - "components": [ - { - "internalType": "struct StorableMsg", - "name": "message", - "type": "tuple", - "components": [ - { - "internalType": "struct IPCAddress", - "name": "from", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - } - ] - }, - { - "internalType": "struct IPCAddress", - "name": "to", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - } - ] - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "internalType": "bytes4", - "name": "method", - "type": "bytes4" - }, - { - "internalType": "bytes", - "name": "params", - "type": "bytes" - } - ] - }, - { - "internalType": "bool", - "name": "wrapped", - "type": "bool" - } - ] - }, - { - "internalType": "struct ChildCheck[]", - "name": "children", - "type": "tuple[]", - "components": [ - { - "internalType": "struct SubnetID", - "name": "source", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "bytes32[]", - "name": "checks", - "type": "bytes32[]" - } - ] - }, - { - "internalType": "bytes32", - "name": "prevHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "proof", - "type": "bytes" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "commitChildCheck" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "crossMsgFee", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "executableQueue", - "outputs": [ - { - "internalType": "uint64", - "name": "period", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "first", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "last", - "type": "uint64" - } - ] - }, - { - "inputs": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "struct FvmAddress", - "name": "to", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - } - ], - "stateMutability": "payable", - "type": "function", - "name": "fund" - }, - { - "inputs": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - } - ], - "stateMutability": "view", - "type": "function", - "name": "getAppliedTopDownNonce", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - }, - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "getGenesisEpoch", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "getNetworkName", - "outputs": [ - { - "internalType": "struct SubnetID", - "name": "", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - } - ] - }, - { - "inputs": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - } - ], - "stateMutability": "view", - "type": "function", - "name": "getSubnet", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - }, - { - "internalType": "struct Subnet", - "name": "", - "type": "tuple", - "components": [ - { - "internalType": "enum Status", - "name": "status", - "type": "uint8" - }, - { - "internalType": "uint64", - "name": "topDownNonce", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "appliedBottomUpNonce", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "stake", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "genesisEpoch", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "circSupply", - "type": "uint256" - }, - { - "internalType": "struct SubnetID", - "name": "id", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "struct BottomUpCheckpoint", - "name": "prevCheckpoint", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "source", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "uint64", - "name": "epoch", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "internalType": "struct CrossMsg[]", - "name": "crossMsgs", - "type": "tuple[]", - "components": [ - { - "internalType": "struct StorableMsg", - "name": "message", - "type": "tuple", - "components": [ - { - "internalType": "struct IPCAddress", - "name": "from", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - } - ] - }, - { - "internalType": "struct IPCAddress", - "name": "to", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - } - ] - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "internalType": "bytes4", - "name": "method", - "type": "bytes4" - }, - { - "internalType": "bytes", - "name": "params", - "type": "bytes" - } - ] - }, - { - "internalType": "bool", - "name": "wrapped", - "type": "bool" - } - ] - }, - { - "internalType": "struct ChildCheck[]", - "name": "children", - "type": "tuple[]", - "components": [ - { - "internalType": "struct SubnetID", - "name": "source", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "bytes32[]", - "name": "checks", - "type": "bytes32[]" - } - ] - }, - { - "internalType": "bytes32", - "name": "prevHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "proof", - "type": "bytes" - } - ] - }, - { - "internalType": "struct CrossMsg[]", - "name": "topDownMsgs", - "type": "tuple[]", - "components": [ - { - "internalType": "struct StorableMsg", - "name": "message", - "type": "tuple", - "components": [ - { - "internalType": "struct IPCAddress", - "name": "from", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - } - ] - }, - { - "internalType": "struct IPCAddress", - "name": "to", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - } - ] - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "internalType": "bytes4", - "name": "method", - "type": "bytes4" - }, - { - "internalType": "bytes", - "name": "params", - "type": "bytes" - } - ] - }, - { - "internalType": "bool", - "name": "wrapped", - "type": "bool" - } - ] - } - ] - } - ] - }, - { - "inputs": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getSubnetTopDownMsg", - "outputs": [ - { - "internalType": "struct CrossMsg", - "name": "", - "type": "tuple", - "components": [ - { - "internalType": "struct StorableMsg", - "name": "message", - "type": "tuple", - "components": [ - { - "internalType": "struct IPCAddress", - "name": "from", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - } - ] - }, - { - "internalType": "struct IPCAddress", - "name": "to", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - } - ] - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "internalType": "bytes4", - "name": "method", - "type": "bytes4" - }, - { - "internalType": "bytes", - "name": "params", - "type": "bytes" - } - ] - }, - { - "internalType": "bool", - "name": "wrapped", - "type": "bool" - } - ] - } - ] - }, - { - "inputs": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - } - ], - "stateMutability": "view", - "type": "function", - "name": "getSubnetTopDownMsgsLength", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "uint64", - "name": "fromNonce", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getTopDownMsgs", - "outputs": [ - { - "internalType": "struct CrossMsg[]", - "name": "", - "type": "tuple[]", - "components": [ - { - "internalType": "struct StorableMsg", - "name": "message", - "type": "tuple", - "components": [ - { - "internalType": "struct IPCAddress", - "name": "from", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - } - ] - }, - { - "internalType": "struct IPCAddress", - "name": "to", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - } - ] - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "internalType": "bytes4", - "name": "method", - "type": "bytes4" - }, - { - "internalType": "bytes", - "name": "params", - "type": "bytes" - } - ] - }, - { - "internalType": "bool", - "name": "wrapped", - "type": "bool" - } - ] - } - ] - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "epoch", - "type": "uint64" - }, - { - "internalType": "address", - "name": "submitter", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "hasValidatorVotedForSubmission", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "genesisEpoch", - "type": "uint64" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "initGenesisEpoch" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "initialized", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "function", - "name": "kill" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "lastVotingExecutedEpoch", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "listSubnets", - "outputs": [ - { - "internalType": "struct Subnet[]", - "name": "", - "type": "tuple[]", - "components": [ - { - "internalType": "enum Status", - "name": "status", - "type": "uint8" - }, - { - "internalType": "uint64", - "name": "topDownNonce", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "appliedBottomUpNonce", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "stake", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "genesisEpoch", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "circSupply", - "type": "uint256" - }, - { - "internalType": "struct SubnetID", - "name": "id", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "struct BottomUpCheckpoint", - "name": "prevCheckpoint", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "source", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "uint64", - "name": "epoch", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "internalType": "struct CrossMsg[]", - "name": "crossMsgs", - "type": "tuple[]", - "components": [ - { - "internalType": "struct StorableMsg", - "name": "message", - "type": "tuple", - "components": [ - { - "internalType": "struct IPCAddress", - "name": "from", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - } - ] - }, - { - "internalType": "struct IPCAddress", - "name": "to", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - } - ] - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "internalType": "bytes4", - "name": "method", - "type": "bytes4" - }, - { - "internalType": "bytes", - "name": "params", - "type": "bytes" - } - ] - }, - { - "internalType": "bool", - "name": "wrapped", - "type": "bool" - } - ] - }, - { - "internalType": "struct ChildCheck[]", - "name": "children", - "type": "tuple[]", - "components": [ - { - "internalType": "struct SubnetID", - "name": "source", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "bytes32[]", - "name": "checks", - "type": "bytes32[]" - } - ] - }, - { - "internalType": "bytes32", - "name": "prevHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "proof", - "type": "bytes" - } - ] - }, - { - "internalType": "struct CrossMsg[]", - "name": "topDownMsgs", - "type": "tuple[]", - "components": [ - { - "internalType": "struct StorableMsg", - "name": "message", - "type": "tuple", - "components": [ - { - "internalType": "struct IPCAddress", - "name": "from", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - } - ] - }, - { - "internalType": "struct IPCAddress", - "name": "to", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - } - ] - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "internalType": "bytes4", - "name": "method", - "type": "bytes4" - }, - { - "internalType": "bytes", - "name": "params", - "type": "bytes" - } - ] - }, - { - "internalType": "bool", - "name": "wrapped", - "type": "bool" - } - ] - } - ] - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "majorityPercentage", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "minStake", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "postbox", - "outputs": [ - { - "internalType": "struct StorableMsg", - "name": "message", - "type": "tuple", - "components": [ - { - "internalType": "struct IPCAddress", - "name": "from", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - } - ] - }, - { - "internalType": "struct IPCAddress", - "name": "to", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - } - ] - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "internalType": "bytes4", - "name": "method", - "type": "bytes4" - }, - { - "internalType": "bytes", - "name": "params", - "type": "bytes" - } - ] - }, - { - "internalType": "bool", - "name": "wrapped", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "msgCid", - "type": "bytes32" - } - ], - "stateMutability": "payable", - "type": "function", - "name": "propagate" - }, - { - "inputs": [], - "stateMutability": "payable", - "type": "function", - "name": "register" - }, - { - "inputs": [ - { - "internalType": "struct FvmAddress", - "name": "to", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - } - ], - "stateMutability": "payable", - "type": "function", - "name": "release" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "releaseRewards" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "releaseStake" - }, - { - "inputs": [ - { - "internalType": "struct CrossMsg", - "name": "crossMsg", - "type": "tuple", - "components": [ - { - "internalType": "struct StorableMsg", - "name": "message", - "type": "tuple", - "components": [ - { - "internalType": "struct IPCAddress", - "name": "from", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - } - ] - }, - { - "internalType": "struct IPCAddress", - "name": "to", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - } - ] - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "internalType": "bytes4", - "name": "method", - "type": "bytes4" - }, - { - "internalType": "bytes", - "name": "params", - "type": "bytes" - } - ] - }, - { - "internalType": "bool", - "name": "wrapped", - "type": "bool" - } - ] - } - ], - "stateMutability": "payable", - "type": "function", - "name": "sendCrossMessage" - }, - { - "inputs": [ - { - "internalType": "address[]", - "name": "validators", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "weights", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "setMembership" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "submissionPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ] - }, - { - "inputs": [ - { - "internalType": "struct TopDownCheckpoint", - "name": "checkpoint", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "epoch", - "type": "uint64" - }, - { - "internalType": "struct CrossMsg[]", - "name": "topDownMsgs", - "type": "tuple[]", - "components": [ - { - "internalType": "struct StorableMsg", - "name": "message", - "type": "tuple", - "components": [ - { - "internalType": "struct IPCAddress", - "name": "from", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - } - ] - }, - { - "internalType": "struct IPCAddress", - "name": "to", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - } - ] - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "internalType": "bytes4", - "name": "method", - "type": "bytes4" - }, - { - "internalType": "bytes", - "name": "params", - "type": "bytes" - } - ] - }, - { - "internalType": "bool", - "name": "wrapped", - "type": "bool" - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "submitTopDownCheckpoint" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "subnetKeys", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "subnets", - "outputs": [ - { - "internalType": "enum Status", - "name": "status", - "type": "uint8" - }, - { - "internalType": "uint64", - "name": "topDownNonce", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "appliedBottomUpNonce", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "stake", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "genesisEpoch", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "circSupply", - "type": "uint256" - }, - { - "internalType": "struct SubnetID", - "name": "id", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "struct BottomUpCheckpoint", - "name": "prevCheckpoint", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "source", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "uint64", - "name": "epoch", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "internalType": "struct CrossMsg[]", - "name": "crossMsgs", - "type": "tuple[]", - "components": [ - { - "internalType": "struct StorableMsg", - "name": "message", - "type": "tuple", - "components": [ - { - "internalType": "struct IPCAddress", - "name": "from", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - } - ] - }, - { - "internalType": "struct IPCAddress", - "name": "to", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - } - ] - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "internalType": "bytes4", - "name": "method", - "type": "bytes4" - }, - { - "internalType": "bytes", - "name": "params", - "type": "bytes" - } - ] - }, - { - "internalType": "bool", - "name": "wrapped", - "type": "bool" - } - ] - }, - { - "internalType": "struct ChildCheck[]", - "name": "children", - "type": "tuple[]", - "components": [ - { - "internalType": "struct SubnetID", - "name": "source", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "bytes32[]", - "name": "checks", - "type": "bytes32[]" - } - ] - }, - { - "internalType": "bytes32", - "name": "prevHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "proof", - "type": "bytes" - } - ] - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "topDownCheckPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "totalSubnets", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "totalWeight", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "validatorNonce", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "validatorSet", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - } - ], - "devdoc": { - "kind": "dev", - "methods": { - "bottomUpCheckpointAtEpoch(uint64)": { - "params": { - "epoch": "- the epoch to check" - }, - "returns": { - "checkpoint": "- the checkpoint struct", - "exists": "- whether the checkpoint exists" - } - }, - "bottomUpCheckpointHashAtEpoch(uint64)": { - "params": { - "epoch": "- the epoch to check" - }, - "returns": { - "_0": "exists - whether the checkpoint exists", - "_1": "hash - the hash of the checkpoint" - } - }, - "fund((uint64,address[]),(uint8,bytes))": { - "params": { - "subnetId": "- subnet to fund", - "to": "- the address to send funds to" - } - }, - "getAppliedTopDownNonce((uint64,address[]))": { - "params": { - "subnetId": "- The subnet id to fetch messages from" - } - }, - "getGenesisEpoch()": { - "returns": { - "_0": "epoch - the genesis epoch" - } - }, - "getSubnet((uint64,address[]))": { - "params": { - "subnetId": "the id of the subnet" - }, - "returns": { - "_0": "found whether the subnet exists", - "_1": "subnet - the subnet struct" - } - }, - "getTopDownMsgs((uint64,address[]),uint64)": { - "params": { - "fromNonce": "- The starting nonce to get top down messages, inclusive.", - "subnetId": "- The subnet id to fetch messages from" - } - }, - "hasValidatorVotedForSubmission(uint64,address)": { - "params": { - "epoch": "- the epoch to check", - "submitter": "- the validator to check" - } - }, - "initGenesisEpoch(uint64)": { - "params": { - "genesisEpoch": "- genesis epoch to set" - } - }, - "listSubnets()": { - "returns": { - "_0": "subnet - the list of subnets" - } - }, - "propagate(bytes32)": { - "params": { - "msgCid": "- the cid of the cross-net message" - } - }, - "sendCrossMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool))": { - "params": { - "crossMsg": "- message to send" - } - }, - "setMembership(address[],uint256[])": { - "params": { - "validators": "- list of validator addresses", - "weights": "- list of validators voting powers" - } - }, - "submitTopDownCheckpoint((uint64,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[]))": { - "params": { - "checkpoint": "- top-down checkpoint" - } - } - }, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": { - "MIN_CHECKPOINT_PERIOD()": { - "notice": "minimum checkpoint period. Values get clamped to this" - }, - "addStake()": { - "notice": "addStake - add collateral for an existing subnet" - }, - "appliedTopDownNonce()": { - "notice": "AppliedNonces keep track of the next nonce of the message to be applied. This prevents potential replay attacks." - }, - "bottomUpCheckPeriod()": { - "notice": "bottom-up period in number of epochs for the subnet" - }, - "bottomUpCheckpointAtEpoch(uint64)": { - "notice": "returns the current bottom-up checkpoint" - }, - "bottomUpCheckpointHashAtEpoch(uint64)": { - "notice": "returns the historical bottom-up checkpoint hash" - }, - "bottomUpCheckpoints(uint64)": { - "notice": "BottomUpCheckpoints in the GW per epoch" - }, - "bottomUpNonce()": { - "notice": "nonce for bottom-up messages" - }, - "commitChildCheck(((uint64,address[]),uint64,uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[],((uint64,address[]),bytes32[])[],bytes32,bytes))": { - "notice": "submit a checkpoint in the gateway. Called from a subnet once the checkpoint is voted for and reaches majority" - }, - "crossMsgFee()": { - "notice": "fee amount charged per cross message" - }, - "executableQueue()": { - "notice": "Contains the executable epochs that are ready to be executed, but has yet to be executed. This usually happens when previous submission epoch has not executed, but the next submission epoch is ready to be executed. Most of the time this should be empty" - }, - "fund((uint64,address[]),(uint8,bytes))": { - "notice": "fund - commit a top-down message releasing funds in a child subnet. There is an associated fee that gets distributed to validators in the subnet as well" - }, - "getAppliedTopDownNonce((uint64,address[]))": { - "notice": "Get the latest applied top down nonce" - }, - "getGenesisEpoch()": { - "notice": "method that returns the genesis epoch" - }, - "getNetworkName()": { - "notice": "get the network name in subnet id format" - }, - "getSubnet((uint64,address[]))": { - "notice": "returns the subnet with the given id" - }, - "getSubnetTopDownMsg((uint64,address[]),uint256)": { - "notice": "get the top-down message at the given index for the given subnet" - }, - "getSubnetTopDownMsgsLength((uint64,address[]))": { - "notice": "get number of top-down messages for the given subnet" - }, - "getTopDownMsgs((uint64,address[]),uint64)": { - "notice": "get the list of top down messages from nonce, we may also consider introducing pagination." - }, - "hasValidatorVotedForSubmission(uint64,address)": { - "notice": "whether a validator has voted for a checkpoint submission during an epoch" - }, - "initGenesisEpoch(uint64)": { - "notice": "initialize the contract with the genesis epoch" - }, - "initialized()": { - "notice": "whether the contract is initialized" - }, - "kill()": { - "notice": "kill an existing subnet. It's balance must be empty" - }, - "lastVotingExecutedEpoch()": { - "notice": "last executed epoch after voting" - }, - "listSubnets()": { - "notice": "returns the list of registered subnets in IPC" - }, - "majorityPercentage()": { - "notice": "percent approvals needed to reach consensus" - }, - "minStake()": { - "notice": "Minimum stake required to create a new subnet" - }, - "postbox(bytes32)": { - "notice": "Postbox keeps track of all the cross-net messages triggered by an actor that need to be propagated further through the hierarchy. cross-net message id => CrossMsg" - }, - "propagate(bytes32)": { - "notice": "propagates the populated cross net message for the given cid" - }, - "register()": { - "notice": "register a subnet in the gateway. called by a subnet when it reaches the threshold stake" - }, - "release((uint8,bytes))": { - "notice": "release method locks funds in the current subnet and sends a cross message up the hierarchy to the parent gateway to release the funds" - }, - "releaseStake(uint256)": { - "notice": "release collateral for an existing subnet" - }, - "sendCrossMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool))": { - "notice": "sends an arbitrary cross message from the current subnet to the destination subnet" - }, - "setMembership(address[],uint256[])": { - "notice": "set up the top-down validators and their voting power" - }, - "submissionPeriod()": { - "notice": "number of blocks between two checkpoint submissions" - }, - "submitTopDownCheckpoint((uint64,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[]))": { - "notice": "allows a validator to submit a batch of messages in a top-down commitment" - }, - "subnetKeys(uint256)": { - "notice": "Keys of the registered subnets. Useful to iterate through them" - }, - "subnets(bytes32)": { - "notice": "List of subnets SubnetID => Subnet" - }, - "topDownCheckPeriod()": { - "notice": "top-down period in number of epochs for the subnet" - }, - "totalSubnets()": { - "notice": "Number of active subnets spawned from this one" - }, - "totalWeight()": { - "notice": "total votes of all validators" - }, - "validatorNonce()": { - "notice": "sequence number that uniquely identifies a validator set" - }, - "validatorSet(uint256,address)": { - "notice": "List of validators and how many votes of the total each validator has for top-down messages" - } - }, - "version": 1 - } - }, - "settings": { - "remappings": [ - ":@openzeppelin/=node_modules/@openzeppelin/", - ":ds-test/=lib/forge-std/lib/ds-test/src/", - ":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", - ":fevmate/=lib/fevmate/contracts/", - ":forge-std/=lib/forge-std/src/", - ":hardhat-deploy/=node_modules/hardhat-deploy/", - ":hardhat/=node_modules/hardhat/", - ":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/" - ], - "optimizer": { - "enabled": true, - "runs": 1 - }, - "metadata": { - "bytecodeHash": "ipfs" - }, - "compilationTarget": { - "src/Gateway.sol": "Gateway" - }, - "libraries": {} - }, - "sources": { - "lib/fevmate/contracts/utils/FilAddress.sol": { - "keccak256": "0xbe176ce3d98aadbda895fde9c771534f511235689f34cfe93c97794221826a3c", - "urls": [ - "bzz-raw://a6f045631220f84768b8cb7087a5fe85e0e536b759f440031ee1b74e77984c74", - "dweb:/ipfs/QmR7b6FcDAK672BWanKGWE19pcEG7i7S4jqNnzCs4AYSCD" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol": { - "keccak256": "0x03a26b0ce85afee2c16f3232bd123286b849ca576778781cf6e8bbf51cb7570a", - "urls": [ - "bzz-raw://13a4f5cec214760f14abaedfc0a1860d80c2267386fa62dc77e8eee51ec84d71", - "dweb:/ipfs/QmWmEKeofHqLnNEeCivhzTepo1k5xZZqzMxyyyzNBYiYBW" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/utils/Address.sol": { - "keccak256": "0x2e53602b96c1bf97c731ed3e2a981b4f85e23a9410a5ebd36e549a4cc93340dc", - "urls": [ - "bzz-raw://523f47b3ecc6d4e47b4b998d3356199988eef8a42a10dff5a3660d5f9e76cc71", - "dweb:/ipfs/QmRLH8CNvDsuLzNCjsbpLM3RHD9he5ESXroYoDT3tpaTCA" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/utils/Strings.sol": { - "keccak256": "0x2626d8ab3dfdad0fad630c212ad146d59473d0f48b771784c61a7c1dbbea1f3f", - "urls": [ - "bzz-raw://d7c144532f1e7c76ac95fb6a8f617c1f740d7a73442a907eb60910e99dfa1fbf", - "dweb:/ipfs/QmZsGyooD6emxB8JCuugRjnRYS2MPZEL586uuV7dgC8Jng" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/utils/math/Math.sol": { - "keccak256": "0x3546b156d97633f7f8cad536d5454c81d1d604687c02b2eb105fdc33cb962b41", - "urls": [ - "bzz-raw://fc373869014f80e7ad928ae44bb7678a2d7aacf213fb0ce36bcbbb3166845903", - "dweb:/ipfs/QmUaRPa2Nm2WfKeCq8yRCR94JZFCnfr4xw9LJADWxhTcwt" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol": { - "keccak256": "0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc", - "urls": [ - "bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7", - "dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol": { - "keccak256": "0x721e69345488526862ebd8284dfd4976bcecd1c8508fe6b5bd9ba1a9cc2d9de2", - "urls": [ - "bzz-raw://47903784cc874a21f2add3b947283fa8d3e4b3c040e41f871adeb8dea0e0a253", - "dweb:/ipfs/QmP4P2LQEeG2ojfLZ7Wo4n5xUmPPPt4bVNR34FxMQNqY61" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol": { - "keccak256": "0xacbaaa9be521944f83d2852379e1f40b28ada61a256493474f6cdc9b59620598", - "urls": [ - "bzz-raw://15aa625baf68ba948a074361f38f7cf0e6198ba67d1d808c43865409296f1e72", - "dweb:/ipfs/Qmbcae8x18H5Uzp2DsQcfZH3PMxokhhVCcwks22CDqVsPQ" - ], - "license": "MIT" - }, - "src/Gateway.sol": { - "keccak256": "0xe7591d6f0b0f2d36de37568102cf645f306b65abb810c27aa7444c1696683df0", - "urls": [ - "bzz-raw://7125b3ef2d921160dd49505bc873d225b1f03cfb3fc9b8681976123c975d85ca", - "dweb:/ipfs/QmfJqQGEbSa4EF8qiJ6JemEb4zRxED2aEm7jJYqcFSVn6w" - ], - "license": "UNLICENSED" - }, - "src/Voting.sol": { - "keccak256": "0xea28372fddefe2b3981d6e06c171d92523b39ac9aa5ba60c74a088f35505421d", - "urls": [ - "bzz-raw://0466daf1fae11d37574bc9793172f5f116f906e46478dde17c72725519c5f645", - "dweb:/ipfs/Qmbt85ktcuSddaHFfxT98hgKRG9r1dNDkzSjbAVnZMFdjB" - ], - "license": "UNLICENSED" - }, - "src/constants/Constants.sol": { - "keccak256": "0x8a925dea568a61a38de9615aae7bb462d9eb6f8eb2c6ca409f1e740519077ab8", - "urls": [ - "bzz-raw://b7e2f836581694867c09bb9c80ff2ab6ae039ece2ff3bbf4d1bc2026449fa551", - "dweb:/ipfs/QmVMvaQSCRBHZudSV8AzimYre76tJVm4UrHYnrT89zcjho" - ], - "license": "UNLICENSED" - }, - "src/enums/IPCMsgType.sol": { - "keccak256": "0x2bf6521d3fc6d484d27e8cbae0b577ff4f310979fdf95ed4366d73c4701f9acc", - "urls": [ - "bzz-raw://e01f6417e82d8791aa19694939d0e425adc8670bad777383ddd238c1ffc6d122", - "dweb:/ipfs/QmeUmaBpkvaYtaTaxEwLaaXPQizZNz6nsMxKvscTf1X49f" - ], - "license": "UNLICENSED" - }, - "src/enums/Status.sol": { - "keccak256": "0xf29c18f694b5acc919b7cada2875ca3bd2c52ddd7ef86ee747aab0faeb50ac8b", - "urls": [ - "bzz-raw://d8fb92f533cc119c578da73b06efe76b0efaa612af7c77178eb903952fcf53df", - "dweb:/ipfs/QmdosRgUmvwXRnxq5TmoJoFMs7TULduTFpMUNyYXQNGfQD" - ], - "license": "UNLICENSED" - }, - "src/enums/VoteExecutionStatus.sol": { - "keccak256": "0x56d1db8abf83feb0f1d69f1919fbd5bd79c6f3c5bf3c149950d307b9d62b6455", - "urls": [ - "bzz-raw://bb2ec0f87a9091eab463ac6a776d5737189e0239f412b36b975bb0be1fcb4ad8", - "dweb:/ipfs/QmWiXwab54Ag2f1kyGjqT3brh5JrV5Lc7cqod9VPaS5ey6" - ], - "license": "UNLICENSED" - }, - "src/interfaces/IGateway.sol": { - "keccak256": "0x57865785239b076bc429cd989bc5cb2a2e68050c7293a5a537d8cdeded170294", - "urls": [ - "bzz-raw://28285703560a0bbfa247c894c9f14f2a14e02e430e7dedb0a05b58c53aed3763", - "dweb:/ipfs/QmcrNx18jZYJ7dRduWu1do3th74cHy7zn9Zx8x13WsCLj5" - ], - "license": "UNLICENSED" - }, - "src/interfaces/ISubnetActor.sol": { - "keccak256": "0xe3f7371c7c7af8dfa71daa6c4171f6853c9ab1fdd619c09eb12c11ff18d17d91", - "urls": [ - "bzz-raw://6a09ea45ed335eada22e7cf3643c17d1c59750ed2156cc29c0960a8e8b53e394", - "dweb:/ipfs/QmSYTNGqP9wEJnPDXmvghfL8zL8BrHGnixhbsimA9oydLG" - ], - "license": "UNLICENSED" - }, - "src/lib/AccountHelper.sol": { - "keccak256": "0x86bf44c7e35907c1b0ed2fd55a6a8a277b46e6ee52b6933610504bc1d2de3b12", - "urls": [ - "bzz-raw://bb47357cd7342f951e5d08b1960e9ab7d458463e71ce08ff61b900bbb04118f0", - "dweb:/ipfs/QmTKHhnYs1xKZUwCmSRPmSi5utfGrosYV57fSoGF7bGnJs" - ], - "license": "UNLICENSED" - }, - "src/lib/CheckpointHelper.sol": { - "keccak256": "0x25d67ccc67b6b537df920c92dc3c704dc097e000c444149d3732e1d20848a269", - "urls": [ - "bzz-raw://5823e88c38b5c4e90ee5700cee5a5fd8d982015dab7ea1cbe2f26d62a359ae76", - "dweb:/ipfs/QmT9Ves86HoEqQciunzEwvDsyv2dgQwF8uPUjNuGsycHuF" - ], - "license": "UNLICENSED" - }, - "src/lib/CrossMsgHelper.sol": { - "keccak256": "0xe7aacc0bc5eb10763685d6766524f6db05b151b37de4ccbd2b04649e54b9af36", - "urls": [ - "bzz-raw://d6fae33fe9dc258efc3e0c484c6e69ff8314af266c78fd9b3d20c5bf8f251865", - "dweb:/ipfs/QmYYpC6GnJNRvAg3MCSHKHk47cas888N3HzmMrmiRT4bnJ" - ], - "license": "UNLICENSED" - }, - "src/lib/EpochVoteSubmissionHelper.sol": { - "keccak256": "0x1eaf867ddfc3e83d5a2ca50a81809e1529ea2436a8d2697d868bc8653b8c6c9e", - "urls": [ - "bzz-raw://65eb6a69fdb0fd8bfc1cd3d5044791225ff9fa8887dda49fd530e7c46e6e5366", - "dweb:/ipfs/QmepF17eiqGqiNJRfeCohdeVw2aJxgkFS1AyFSM78v16nC" - ], - "license": "UNLICENSED" - }, - "src/lib/ExecutableQueueHelper.sol": { - "keccak256": "0x66b7ba58bb9ba987789f22dcc5e44f1720876a79a52a9630d886490d48f80ece", - "urls": [ - "bzz-raw://8b388b9f63b4f86ac03f24089a1f110e482ae89b1eb628fc78aeead1d6f50869", - "dweb:/ipfs/QmVGVh9r2GBgXRn7Z13sMKmnn3xjfHm9tM3mnLUH1UwjQX" - ], - "license": "UNLICENSED" - }, - "src/lib/FvmAddressHelper.sol": { - "keccak256": "0x80d7d30532305664e31ad114d702904287e6f93954b420315f660ddf30791ac6", - "urls": [ - "bzz-raw://0b108070a13f76614f36e46f0af85d12aa53209ff9bb9c32ee1945be3e0a1fe1", - "dweb:/ipfs/QmcyMuCZB4Z3qFUUjvcoVeSePJXU5F9hN4Zhy94U2qqcPq" - ], - "license": "UNLICENSED" - }, - "src/lib/StorableMsgHelper.sol": { - "keccak256": "0x6d8042388daad40be71d0ceaddeab0dee54ccc70d921ca177fe57ce9b575959f", - "urls": [ - "bzz-raw://9a5f2660c29fb44ca2278e5e5ce75adcf01fcb3521f62d2bd624c3fe53c60875", - "dweb:/ipfs/QmeNEQZM8QdvALJmt8V8nfqYE6xVMs8m2YAF2yT589mm6L" - ], - "license": "UNLICENSED" - }, - "src/lib/SubnetIDHelper.sol": { - "keccak256": "0xf82021571aa9a7b021b2d24b2c0eb80c5796b9f28ebb6a1c239146c0c0168817", - "urls": [ - "bzz-raw://b546fc429093a558b9382e28886d1f09e7f308e55f6398989583bc420a630326", - "dweb:/ipfs/QmSmQPQbMBX8N8r8nGboBWdzJjUaK7ACaFUf8XosZVZPT8" - ], - "license": "UNLICENSED" - }, - "src/structs/Checkpoint.sol": { - "keccak256": "0xcddaa4630a6f68c59a819bafee579a8979cc9fd7b00d5b49f99eeefb9ce0c02c", - "urls": [ - "bzz-raw://9713f988a5709dea3ee0fb204a2d0b64b0dc115912ed9eb128f479156d97a949", - "dweb:/ipfs/QmUjTAvd2eAYQFqgfZUf5R67daeC7eUKrL6WrFb8oEWB9j" - ], - "license": "UNLICENSED" - }, - "src/structs/EpochVoteSubmission.sol": { - "keccak256": "0x4cc52a36cac1a063bf1f996b91ea81ce118b7ce8923e62cec6e5bf08b689e96a", - "urls": [ - "bzz-raw://fb33236d8c7a40e17c416a21e9f0df268d6a7f4d6ba1df86ab0c2dbf444702e9", - "dweb:/ipfs/QmXEbdkweqL1f4Q71YPiuxwhQooh1oim9oBybAbr9Jd3A2" - ], - "license": "UNLICENSED" - }, - "src/structs/ExecutableQueue.sol": { - "keccak256": "0xfacfd91786edac0462f4bba34d3a3766c8785925ae96301b68b76fba78c5cab4", - "urls": [ - "bzz-raw://bb421106bc9158e8a12dd7054d265113dd890337937e73acb03f03e33a13eb18", - "dweb:/ipfs/Qmdxs4akDWuzwf5nYsCaNuYNZ5sTrMCzdgVMuSpKCjFyaP" - ], - "license": "UNLICENSED" - }, - "src/structs/FvmAddress.sol": { - "keccak256": "0xbaae3da91048d76b5bab0404eebf7dc41ed273a8cd1f4143ea1b3403d89f77c9", - "urls": [ - "bzz-raw://5a69d76f5022d2e19f69ef0d70d4c5e3a3e7ae8e02fcfdb2682c901ac2f3a707", - "dweb:/ipfs/QmYEWyPz9UqVssUpU42VTv6DhzRNAfaHKt9ZsNCAvtLjTr" - ], - "license": "UNLICENSED" - }, - "src/structs/Subnet.sol": { - "keccak256": "0xb37b12df0c9ff47c2e88f9612b624bb44e6de5dfb8030dfd83582997dcd6aa83", - "urls": [ - "bzz-raw://a321a05abf7b3b461e3d6c4ac27b18d3e14dffad9e2bf9a0ceb68538a02ab1e4", - "dweb:/ipfs/QmPo878trP8pv9yXXpwUHSnP7Xt6uz9eWuB25pz2JGiCot" - ], - "license": "UNLICENSED" - } - }, - "version": 1 - }, - "ast": { - "absolutePath": "src/Gateway.sol", - "id": 35199, - "exportedSymbols": { - "AccountHelper": [ - 37245 - ], - "Address": [ - 29810 - ], - "BURNT_FUNDS_ACTOR": [ - 37025 - ], - "BottomUpCheckpoint": [ - 38937 - ], - "CheckpointHelper": [ - 37513 - ], - "CrossMsg": [ - 38957 - ], - "CrossMsgHelper": [ - 37840 - ], - "EMPTY_HASH": [ - 37031 - ], - "EnumerableMap": [ - 32268 - ], - "EnumerableSet": [ - 32881 - ], - "EpochVoteSubmissionHelper": [ - 37888 - ], - "EpochVoteTopDownSubmission": [ - 39005 - ], - "ExecutableQueue": [ - 39027 - ], - "ExecutableQueueHelper": [ - 38092 - ], - "FilAddress": [ - 298 - ], - "FvmAddress": [ - 39034 - ], - "FvmAddressHelper": [ - 38219 - ], - "Gateway": [ - 35198 - ], - "IGateway": [ - 37158 - ], - "IPCMsgType": [ - 37055 - ], - "ISubnetActor": [ - 37196 - ], - "METHOD_SEND": [ - 37046 - ], - "ReentrancyGuard": [ - 29480 - ], - "Status": [ - 37064 - ], - "StorableMsg": [ - 38972 - ], - "StorableMsgHelper": [ - 38318 - ], - "Subnet": [ - 39084 - ], - "SubnetID": [ - 39060 - ], - "SubnetIDHelper": [ - 38912 - ], - "TopDownCheckpoint": [ - 38944 - ], - "Voting": [ - 37017 - ] - }, - "nodeType": "SourceUnit", - "src": "39:34724:25", - "nodes": [ - { - "id": 32883, - "nodeType": "PragmaDirective", - "src": "39:23:25", - "nodes": [], - "literals": [ - "solidity", - "0.8", - ".19" - ] - }, - { - "id": 32887, - "nodeType": "ImportDirective", - "src": "64:85:25", - "nodes": [], - "absolutePath": "src/constants/Constants.sol", - "file": "./constants/Constants.sol", - "nameLocation": "-1:-1:-1", - "scope": 35199, - "sourceUnit": 37047, - "symbolAliases": [ - { - "foreign": { - "id": 32884, - "name": "EMPTY_HASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37031, - "src": "72:10:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 32885, - "name": "BURNT_FUNDS_ACTOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37025, - "src": "84:17:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 32886, - "name": "METHOD_SEND", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37046, - "src": "103:11:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 32889, - "nodeType": "ImportDirective", - "src": "150:36:25", - "nodes": [], - "absolutePath": "src/Voting.sol", - "file": "./Voting.sol", - "nameLocation": "-1:-1:-1", - "scope": 35199, - "sourceUnit": 37018, - "symbolAliases": [ - { - "foreign": { - "id": 32888, - "name": "Voting", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37017, - "src": "158:6:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 32894, - "nodeType": "ImportDirective", - "src": "187:102:25", - "nodes": [], - "absolutePath": "src/structs/Checkpoint.sol", - "file": "./structs/Checkpoint.sol", - "nameLocation": "-1:-1:-1", - "scope": 35199, - "sourceUnit": 38973, - "symbolAliases": [ - { - "foreign": { - "id": 32890, - "name": "CrossMsg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 38957, - "src": "195:8:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 32891, - "name": "BottomUpCheckpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 38937, - "src": "205:18:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 32892, - "name": "TopDownCheckpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 38944, - "src": "225:17:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 32893, - "name": "StorableMsg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 38972, - "src": "244:11:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 32896, - "nodeType": "ImportDirective", - "src": "290:52:25", - "nodes": [], - "absolutePath": "src/structs/FvmAddress.sol", - "file": "./structs/FvmAddress.sol", - "nameLocation": "-1:-1:-1", - "scope": 35199, - "sourceUnit": 39042, - "symbolAliases": [ - { - "foreign": { - "id": 32895, - "name": "FvmAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39034, - "src": "298:10:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 32898, - "nodeType": "ImportDirective", - "src": "343:77:25", - "nodes": [], - "absolutePath": "src/structs/EpochVoteSubmission.sol", - "file": "./structs/EpochVoteSubmission.sol", - "nameLocation": "-1:-1:-1", - "scope": 35199, - "sourceUnit": 39015, - "symbolAliases": [ - { - "foreign": { - "id": 32897, - "name": "EpochVoteTopDownSubmission", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39005, - "src": "351:26:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 32900, - "nodeType": "ImportDirective", - "src": "421:42:25", - "nodes": [], - "absolutePath": "src/enums/Status.sol", - "file": "./enums/Status.sol", - "nameLocation": "-1:-1:-1", - "scope": 35199, - "sourceUnit": 37065, - "symbolAliases": [ - { - "foreign": { - "id": 32899, - "name": "Status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37064, - "src": "429:6:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 32902, - "nodeType": "ImportDirective", - "src": "464:50:25", - "nodes": [], - "absolutePath": "src/enums/IPCMsgType.sol", - "file": "./enums/IPCMsgType.sol", - "nameLocation": "-1:-1:-1", - "scope": 35199, - "sourceUnit": 37056, - "symbolAliases": [ - { - "foreign": { - "id": 32901, - "name": "IPCMsgType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37055, - "src": "472:10:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 32904, - "nodeType": "ImportDirective", - "src": "515:62:25", - "nodes": [], - "absolutePath": "src/structs/ExecutableQueue.sol", - "file": "./structs/ExecutableQueue.sol", - "nameLocation": "-1:-1:-1", - "scope": 35199, - "sourceUnit": 39028, - "symbolAliases": [ - { - "foreign": { - "id": 32903, - "name": "ExecutableQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39027, - "src": "523:15:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 32906, - "nodeType": "ImportDirective", - "src": "578:51:25", - "nodes": [], - "absolutePath": "src/interfaces/IGateway.sol", - "file": "./interfaces/IGateway.sol", - "nameLocation": "-1:-1:-1", - "scope": 35199, - "sourceUnit": 37159, - "symbolAliases": [ - { - "foreign": { - "id": 32905, - "name": "IGateway", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37158, - "src": "586:8:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 32908, - "nodeType": "ImportDirective", - "src": "630:59:25", - "nodes": [], - "absolutePath": "src/interfaces/ISubnetActor.sol", - "file": "./interfaces/ISubnetActor.sol", - "nameLocation": "-1:-1:-1", - "scope": 35199, - "sourceUnit": 37197, - "symbolAliases": [ - { - "foreign": { - "id": 32907, - "name": "ISubnetActor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37196, - "src": "638:12:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 32911, - "nodeType": "ImportDirective", - "src": "690:54:25", - "nodes": [], - "absolutePath": "src/structs/Subnet.sol", - "file": "./structs/Subnet.sol", - "nameLocation": "-1:-1:-1", - "scope": 35199, - "sourceUnit": 39092, - "symbolAliases": [ - { - "foreign": { - "id": 32909, - "name": "SubnetID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39060, - "src": "698:8:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 32910, - "name": "Subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39084, - "src": "708:6:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 32913, - "nodeType": "ImportDirective", - "src": "745:56:25", - "nodes": [], - "absolutePath": "src/lib/SubnetIDHelper.sol", - "file": "./lib/SubnetIDHelper.sol", - "nameLocation": "-1:-1:-1", - "scope": 35199, - "sourceUnit": 38913, - "symbolAliases": [ - { - "foreign": { - "id": 32912, - "name": "SubnetIDHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 38912, - "src": "753:14:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 32915, - "nodeType": "ImportDirective", - "src": "802:60:25", - "nodes": [], - "absolutePath": "src/lib/FvmAddressHelper.sol", - "file": "./lib/FvmAddressHelper.sol", - "nameLocation": "-1:-1:-1", - "scope": 35199, - "sourceUnit": 38220, - "symbolAliases": [ - { - "foreign": { - "id": 32914, - "name": "FvmAddressHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 38219, - "src": "810:16:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 32917, - "nodeType": "ImportDirective", - "src": "863:60:25", - "nodes": [], - "absolutePath": "src/lib/CheckpointHelper.sol", - "file": "./lib/CheckpointHelper.sol", - "nameLocation": "-1:-1:-1", - "scope": 35199, - "sourceUnit": 37514, - "symbolAliases": [ - { - "foreign": { - "id": 32916, - "name": "CheckpointHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37513, - "src": "871:16:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 32919, - "nodeType": "ImportDirective", - "src": "924:54:25", - "nodes": [], - "absolutePath": "src/lib/AccountHelper.sol", - "file": "./lib/AccountHelper.sol", - "nameLocation": "-1:-1:-1", - "scope": 35199, - "sourceUnit": 37246, - "symbolAliases": [ - { - "foreign": { - "id": 32918, - "name": "AccountHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37245, - "src": "932:13:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 32921, - "nodeType": "ImportDirective", - "src": "979:56:25", - "nodes": [], - "absolutePath": "src/lib/CrossMsgHelper.sol", - "file": "./lib/CrossMsgHelper.sol", - "nameLocation": "-1:-1:-1", - "scope": 35199, - "sourceUnit": 37841, - "symbolAliases": [ - { - "foreign": { - "id": 32920, - "name": "CrossMsgHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37840, - "src": "987:14:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 32923, - "nodeType": "ImportDirective", - "src": "1036:62:25", - "nodes": [], - "absolutePath": "src/lib/StorableMsgHelper.sol", - "file": "./lib/StorableMsgHelper.sol", - "nameLocation": "-1:-1:-1", - "scope": 35199, - "sourceUnit": 38319, - "symbolAliases": [ - { - "foreign": { - "id": 32922, - "name": "StorableMsgHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 38318, - "src": "1044:17:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 32925, - "nodeType": "ImportDirective", - "src": "1099:70:25", - "nodes": [], - "absolutePath": "src/lib/ExecutableQueueHelper.sol", - "file": "./lib/ExecutableQueueHelper.sol", - "nameLocation": "-1:-1:-1", - "scope": 35199, - "sourceUnit": 38093, - "symbolAliases": [ - { - "foreign": { - "id": 32924, - "name": "ExecutableQueueHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 38092, - "src": "1107:21:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 32927, - "nodeType": "ImportDirective", - "src": "1170:78:25", - "nodes": [], - "absolutePath": "src/lib/EpochVoteSubmissionHelper.sol", - "file": "./lib/EpochVoteSubmissionHelper.sol", - "nameLocation": "-1:-1:-1", - "scope": 35199, - "sourceUnit": 37889, - "symbolAliases": [ - { - "foreign": { - "id": 32926, - "name": "EpochVoteSubmissionHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37888, - "src": "1178:25:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 32929, - "nodeType": "ImportDirective", - "src": "1249:56:25", - "nodes": [], - "absolutePath": "lib/fevmate/contracts/utils/FilAddress.sol", - "file": "fevmate/utils/FilAddress.sol", - "nameLocation": "-1:-1:-1", - "scope": 35199, - "sourceUnit": 299, - "symbolAliases": [ - { - "foreign": { - "id": 32928, - "name": "FilAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "1257:10:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 32931, - "nodeType": "ImportDirective", - "src": "1306:84:25", - "nodes": [], - "absolutePath": "lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol", - "file": "openzeppelin-contracts/security/ReentrancyGuard.sol", - "nameLocation": "-1:-1:-1", - "scope": 35199, - "sourceUnit": 29481, - "symbolAliases": [ - { - "foreign": { - "id": 32930, - "name": "ReentrancyGuard", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 29480, - "src": "1314:15:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 32933, - "nodeType": "ImportDirective", - "src": "1391:85:25", - "nodes": [], - "absolutePath": "lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", - "file": "openzeppelin-contracts/utils/structs/EnumerableSet.sol", - "nameLocation": "-1:-1:-1", - "scope": 35199, - "sourceUnit": 32882, - "symbolAliases": [ - { - "foreign": { - "id": 32932, - "name": "EnumerableSet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32881, - "src": "1399:13:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 32935, - "nodeType": "ImportDirective", - "src": "1477:85:25", - "nodes": [], - "absolutePath": "lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol", - "file": "openzeppelin-contracts/utils/structs/EnumerableMap.sol", - "nameLocation": "-1:-1:-1", - "scope": 35199, - "sourceUnit": 32269, - "symbolAliases": [ - { - "foreign": { - "id": 32934, - "name": "EnumerableMap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32268, - "src": "1485:13:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 32937, - "nodeType": "ImportDirective", - "src": "1563:65:25", - "nodes": [], - "absolutePath": "lib/openzeppelin-contracts/contracts/utils/Address.sol", - "file": "openzeppelin-contracts/utils/Address.sol", - "nameLocation": "-1:-1:-1", - "scope": 35199, - "sourceUnit": 29811, - "symbolAliases": [ - { - "foreign": { - "id": 32936, - "name": "Address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 29810, - "src": "1571:7:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 35198, - "nodeType": "ContractDefinition", - "src": "1685:33077:25", - "nodes": [ - { - "id": 32947, - "nodeType": "UsingForDirective", - "src": "1745:29:25", - "nodes": [], - "global": false, - "libraryName": { - "id": 32945, - "name": "FilAddress", - "nameLocations": [ - "1751:10:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 298, - "src": "1751:10:25" - }, - "typeName": { - "id": 32946, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1766:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "id": 32950, - "nodeType": "UsingForDirective", - "src": "1779:37:25", - "nodes": [], - "global": false, - "libraryName": { - "id": 32948, - "name": "FilAddress", - "nameLocations": [ - "1785:10:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 298, - "src": "1785:10:25" - }, - "typeName": { - "id": 32949, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1800:15:25", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - }, - { - "id": 32954, - "nodeType": "UsingForDirective", - "src": "1821:38:25", - "nodes": [], - "global": false, - "libraryName": { - "id": 32951, - "name": "FvmAddressHelper", - "nameLocations": [ - "1827:16:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38219, - "src": "1827:16:25" - }, - "typeName": { - "id": 32953, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 32952, - "name": "FvmAddress", - "nameLocations": [ - "1848:10:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39034, - "src": "1848:10:25" - }, - "referencedDeclaration": 39034, - "src": "1848:10:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_FvmAddress_$39034_storage_ptr", - "typeString": "struct FvmAddress" - } - } - }, - { - "id": 32957, - "nodeType": "UsingForDirective", - "src": "1864:32:25", - "nodes": [], - "global": false, - "libraryName": { - "id": 32955, - "name": "AccountHelper", - "nameLocations": [ - "1870:13:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 37245, - "src": "1870:13:25" - }, - "typeName": { - "id": 32956, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1888:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "id": 32961, - "nodeType": "UsingForDirective", - "src": "1901:34:25", - "nodes": [], - "global": false, - "libraryName": { - "id": 32958, - "name": "SubnetIDHelper", - "nameLocations": [ - "1907:14:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38912, - "src": "1907:14:25" - }, - "typeName": { - "id": 32960, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 32959, - "name": "SubnetID", - "nameLocations": [ - "1926:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39060, - "src": "1926:8:25" - }, - "referencedDeclaration": 39060, - "src": "1926:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage_ptr", - "typeString": "struct SubnetID" - } - } - }, - { - "id": 32965, - "nodeType": "UsingForDirective", - "src": "1940:34:25", - "nodes": [], - "global": false, - "libraryName": { - "id": 32962, - "name": "CrossMsgHelper", - "nameLocations": [ - "1946:14:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 37840, - "src": "1946:14:25" - }, - "typeName": { - "id": 32964, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 32963, - "name": "CrossMsg", - "nameLocations": [ - "1965:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38957, - "src": "1965:8:25" - }, - "referencedDeclaration": 38957, - "src": "1965:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_storage_ptr", - "typeString": "struct CrossMsg" - } - } - }, - { - "id": 32969, - "nodeType": "UsingForDirective", - "src": "1979:46:25", - "nodes": [], - "global": false, - "libraryName": { - "id": 32966, - "name": "CheckpointHelper", - "nameLocations": [ - "1985:16:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 37513, - "src": "1985:16:25" - }, - "typeName": { - "id": 32968, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 32967, - "name": "BottomUpCheckpoint", - "nameLocations": [ - "2006:18:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38937, - "src": "2006:18:25" - }, - "referencedDeclaration": 38937, - "src": "2006:18:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint" - } - } - }, - { - "id": 32973, - "nodeType": "UsingForDirective", - "src": "2030:45:25", - "nodes": [], - "global": false, - "libraryName": { - "id": 32970, - "name": "CheckpointHelper", - "nameLocations": [ - "2036:16:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 37513, - "src": "2036:16:25" - }, - "typeName": { - "id": 32972, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 32971, - "name": "TopDownCheckpoint", - "nameLocations": [ - "2057:17:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38944, - "src": "2057:17:25" - }, - "referencedDeclaration": 38944, - "src": "2057:17:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$38944_storage_ptr", - "typeString": "struct TopDownCheckpoint" - } - } - }, - { - "id": 32977, - "nodeType": "UsingForDirective", - "src": "2080:40:25", - "nodes": [], - "global": false, - "libraryName": { - "id": 32974, - "name": "StorableMsgHelper", - "nameLocations": [ - "2086:17:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38318, - "src": "2086:17:25" - }, - "typeName": { - "id": 32976, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 32975, - "name": "StorableMsg", - "nameLocations": [ - "2108:11:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38972, - "src": "2108:11:25" - }, - "referencedDeclaration": 38972, - "src": "2108:11:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$38972_storage_ptr", - "typeString": "struct StorableMsg" - } - } - }, - { - "id": 32981, - "nodeType": "UsingForDirective", - "src": "2125:48:25", - "nodes": [], - "global": false, - "libraryName": { - "id": 32978, - "name": "ExecutableQueueHelper", - "nameLocations": [ - "2131:21:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38092, - "src": "2131:21:25" - }, - "typeName": { - "id": 32980, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 32979, - "name": "ExecutableQueue", - "nameLocations": [ - "2157:15:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39027, - "src": "2157:15:25" - }, - "referencedDeclaration": 39027, - "src": "2157:15:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ExecutableQueue_$39027_storage_ptr", - "typeString": "struct ExecutableQueue" - } - } - }, - { - "id": 32985, - "nodeType": "UsingForDirective", - "src": "2178:63:25", - "nodes": [], - "global": false, - "libraryName": { - "id": 32982, - "name": "EpochVoteSubmissionHelper", - "nameLocations": [ - "2184:25:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 37888, - "src": "2184:25:25" - }, - "typeName": { - "id": 32984, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 32983, - "name": "EpochVoteTopDownSubmission", - "nameLocations": [ - "2214:26:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39005, - "src": "2214:26:25" - }, - "referencedDeclaration": 39005, - "src": "2214:26:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39005_storage_ptr", - "typeString": "struct EpochVoteTopDownSubmission" - } - } - }, - { - "id": 32988, - "nodeType": "VariableDeclaration", - "src": "2297:55:25", - "nodes": [], - "constant": true, - "functionSelector": "91be4d41", - "mutability": "constant", - "name": "MIN_COLLATERAL_AMOUNT", - "nameLocation": "2321:21:25", - "scope": 35198, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2297:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "31", - "id": 32987, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2345:7:25", - "subdenomination": "ether", - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - }, - "value": "1" - }, - "visibility": "public" - }, - { - "id": 32992, - "nodeType": "VariableDeclaration", - "src": "2403:29:25", - "nodes": [], - "constant": false, - "documentation": { - "id": 32989, - "nodeType": "StructuredDocumentation", - "src": "2359:39:25", - "text": "@notice path to the current network" - }, - "mutability": "mutable", - "name": "_networkName", - "nameLocation": "2420:12:25", - "scope": 35198, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID" - }, - "typeName": { - "id": 32991, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 32990, - "name": "SubnetID", - "nameLocations": [ - "2403:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39060, - "src": "2403:8:25" - }, - "referencedDeclaration": 39060, - "src": "2403:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage_ptr", - "typeString": "struct SubnetID" - } - }, - "visibility": "private" - }, - { - "id": 32995, - "nodeType": "VariableDeclaration", - "src": "2502:26:25", - "nodes": [], - "constant": false, - "documentation": { - "id": 32993, - "nodeType": "StructuredDocumentation", - "src": "2439:58:25", - "text": "@notice Number of active subnets spawned from this one" - }, - "functionSelector": "a2b67158", - "mutability": "mutable", - "name": "totalSubnets", - "nameLocation": "2516:12:25", - "scope": 35198, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 32994, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2502:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "public" - }, - { - "id": 32998, - "nodeType": "VariableDeclaration", - "src": "2597:33:25", - "nodes": [], - "constant": false, - "documentation": { - "id": 32996, - "nodeType": "StructuredDocumentation", - "src": "2535:57:25", - "text": "@notice Minimum stake required to create a new subnet" - }, - "functionSelector": "375b3c0a", - "mutability": "immutable", - "name": "minStake", - "nameLocation": "2622:8:25", - "scope": 35198, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 32997, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2597:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "id": 33004, - "nodeType": "VariableDeclaration", - "src": "2696:41:25", - "nodes": [], - "constant": false, - "documentation": { - "id": 32999, - "nodeType": "StructuredDocumentation", - "src": "2637:54:25", - "text": "@notice List of subnets\n SubnetID => Subnet" - }, - "functionSelector": "02e30f9a", - "mutability": "mutable", - "name": "subnets", - "nameLocation": "2730:7:25", - "scope": 35198, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Subnet_$39084_storage_$", - "typeString": "mapping(bytes32 => struct Subnet)" - }, - "typeName": { - "id": 33003, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 33000, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2704:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "2696:26:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Subnet_$39084_storage_$", - "typeString": "mapping(bytes32 => struct Subnet)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 33002, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33001, - "name": "Subnet", - "nameLocations": [ - "2715:6:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39084, - "src": "2715:6:25" - }, - "referencedDeclaration": 39084, - "src": "2715:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - } - } - }, - "visibility": "public" - }, - { - "id": 33008, - "nodeType": "VariableDeclaration", - "src": "2823:27:25", - "nodes": [], - "constant": false, - "documentation": { - "id": 33005, - "nodeType": "StructuredDocumentation", - "src": "2744:74:25", - "text": "@notice Keys of the registered subnets. Useful to iterate through them" - }, - "functionSelector": "548b3b38", - "mutability": "mutable", - "name": "subnetKeys", - "nameLocation": "2840:10:25", - "scope": 35198, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", - "typeString": "bytes32[]" - }, - "typeName": { - "baseType": { - "id": 33006, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2823:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 33007, - "nodeType": "ArrayTypeName", - "src": "2823:9:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - } - }, - "visibility": "public" - }, - { - "id": 33011, - "nodeType": "VariableDeclaration", - "src": "2925:43:25", - "nodes": [], - "constant": false, - "documentation": { - "id": 33009, - "nodeType": "StructuredDocumentation", - "src": "2857:63:25", - "text": "@notice bottom-up period in number of epochs for the subnet" - }, - "functionSelector": "06c46853", - "mutability": "immutable", - "name": "bottomUpCheckPeriod", - "nameLocation": "2949:19:25", - "scope": 35198, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 33010, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2925:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "public" - }, - { - "id": 33017, - "nodeType": "VariableDeclaration", - "src": "3170:43:25", - "nodes": [], - "constant": false, - "documentation": { - "id": 33012, - "nodeType": "StructuredDocumentation", - "src": "2975:190:25", - "text": "@notice Postbox keeps track of all the cross-net messages triggered by\n an actor that need to be propagated further through the hierarchy.\n cross-net message id => CrossMsg" - }, - "functionSelector": "8cfd78e7", - "mutability": "mutable", - "name": "postbox", - "nameLocation": "3206:7:25", - "scope": 35198, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$38957_storage_$", - "typeString": "mapping(bytes32 => struct CrossMsg)" - }, - "typeName": { - "id": 33016, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 33013, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3178:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "3170:28:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$38957_storage_$", - "typeString": "mapping(bytes32 => struct CrossMsg)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 33015, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33014, - "name": "CrossMsg", - "nameLocations": [ - "3189:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38957, - "src": "3189:8:25" - }, - "referencedDeclaration": 38957, - "src": "3189:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_storage_ptr", - "typeString": "struct CrossMsg" - } - } - }, - "visibility": "public" - }, - { - "id": 33020, - "nodeType": "VariableDeclaration", - "src": "3287:42:25", - "nodes": [], - "constant": false, - "documentation": { - "id": 33018, - "nodeType": "StructuredDocumentation", - "src": "3220:62:25", - "text": "@notice top-down period in number of epochs for the subnet" - }, - "functionSelector": "7d9740f4", - "mutability": "immutable", - "name": "topDownCheckPeriod", - "nameLocation": "3311:18:25", - "scope": 35198, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 33019, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3287:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "public" - }, - { - "id": 33026, - "nodeType": "VariableDeclaration", - "src": "3445:64:25", - "nodes": [], - "constant": false, - "documentation": { - "id": 33021, - "nodeType": "StructuredDocumentation", - "src": "3336:51:25", - "text": "@notice BottomUpCheckpoints in the GW per epoch" - }, - "functionSelector": "2cc14ea2", - "mutability": "mutable", - "name": "bottomUpCheckpoints", - "nameLocation": "3490:19:25", - "scope": 35198, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$38937_storage_$", - "typeString": "mapping(uint64 => struct BottomUpCheckpoint)" - }, - "typeName": { - "id": 33025, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 33022, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3453:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Mapping", - "src": "3445:37:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$38937_storage_$", - "typeString": "mapping(uint64 => struct BottomUpCheckpoint)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 33024, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33023, - "name": "BottomUpCheckpoint", - "nameLocations": [ - "3463:18:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38937, - "src": "3463:18:25" - }, - "referencedDeclaration": 38937, - "src": "3463:18:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint" - } - } - }, - "visibility": "public" - }, - { - "id": 33029, - "nodeType": "VariableDeclaration", - "src": "3561:27:25", - "nodes": [], - "constant": false, - "documentation": { - "id": 33027, - "nodeType": "StructuredDocumentation", - "src": "3516:40:25", - "text": "@notice nonce for bottom-up messages" - }, - "functionSelector": "41b6a2e8", - "mutability": "mutable", - "name": "bottomUpNonce", - "nameLocation": "3575:13:25", - "scope": 35198, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 33028, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3561:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "public" - }, - { - "id": 33032, - "nodeType": "VariableDeclaration", - "src": "3732:33:25", - "nodes": [], - "constant": false, - "documentation": { - "id": 33030, - "nodeType": "StructuredDocumentation", - "src": "3595:132:25", - "text": "@notice AppliedNonces keep track of the next nonce of the message to be applied.\n This prevents potential replay attacks." - }, - "functionSelector": "8789f83b", - "mutability": "mutable", - "name": "appliedTopDownNonce", - "nameLocation": "3746:19:25", - "scope": 35198, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 33031, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3732:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "public" - }, - { - "id": 33035, - "nodeType": "VariableDeclaration", - "src": "3825:36:25", - "nodes": [], - "constant": false, - "documentation": { - "id": 33033, - "nodeType": "StructuredDocumentation", - "src": "3772:48:25", - "text": "@notice fee amount charged per cross message" - }, - "functionSelector": "24729425", - "mutability": "immutable", - "name": "crossMsgFee", - "nameLocation": "3850:11:25", - "scope": 35198, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33034, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3825:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "id": 33038, - "nodeType": "VariableDeclaration", - "src": "3914:26:25", - "nodes": [], - "constant": false, - "documentation": { - "id": 33036, - "nodeType": "StructuredDocumentation", - "src": "3868:41:25", - "text": "@notice total votes of all validators" - }, - "functionSelector": "96c82e57", - "mutability": "mutable", - "name": "totalWeight", - "nameLocation": "3929:11:25", - "scope": 35198, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33037, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3914:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "id": 33045, - "nodeType": "VariableDeclaration", - "src": "4100:67:25", - "nodes": [], - "constant": false, - "documentation": { - "id": 33039, - "nodeType": "StructuredDocumentation", - "src": "3947:103:25", - "text": "@notice List of validators and how many votes of the total each validator has for top-down messages" - }, - "functionSelector": "223d9056", - "mutability": "mutable", - "name": "validatorSet", - "nameLocation": "4155:12:25", - "scope": 35198, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(uint256 => mapping(address => uint256))" - }, - "typeName": { - "id": 33044, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 33040, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4108:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "4100:47:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(uint256 => mapping(address => uint256))" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 33043, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 33041, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4127:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "4119:27:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 33042, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4138:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "visibility": "public" - }, - { - "id": 33048, - "nodeType": "VariableDeclaration", - "src": "4247:29:25", - "nodes": [], - "constant": false, - "documentation": { - "id": 33046, - "nodeType": "StructuredDocumentation", - "src": "4174:68:25", - "text": "@notice sequence number that uniquely identifies a validator set" - }, - "functionSelector": "e17a684f", - "mutability": "mutable", - "name": "validatorNonce", - "nameLocation": "4262:14:25", - "scope": 35198, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33047, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4247:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "id": 33057, - "nodeType": "VariableDeclaration", - "src": "4358:67:25", - "nodes": [], - "constant": false, - "documentation": { - "id": 33049, - "nodeType": "StructuredDocumentation", - "src": "4283:70:25", - "text": "@notice epoch => SubnetID => [childIndex, exists(0 - no, 1 - yes)]" - }, - "mutability": "mutable", - "name": "_children", - "nameLocation": "4416:9:25", - "scope": 35198, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_bytes32_$_t_array$_t_uint256_$2_storage_$_$", - "typeString": "mapping(uint64 => mapping(bytes32 => uint256[2]))" - }, - "typeName": { - "id": 33056, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 33050, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "4366:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Mapping", - "src": "4358:49:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_bytes32_$_t_array$_t_uint256_$2_storage_$_$", - "typeString": "mapping(uint64 => mapping(bytes32 => uint256[2]))" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 33055, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 33051, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4384:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "4376:30:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$2_storage_$", - "typeString": "mapping(bytes32 => uint256[2])" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "baseType": { - "id": 33052, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4395:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33054, - "length": { - "hexValue": "32", - "id": 33053, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4403:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "4395:10:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", - "typeString": "uint256[2]" - } - } - } - }, - "visibility": "private" - }, - { - "id": 33066, - "nodeType": "VariableDeclaration", - "src": "4485:79:25", - "nodes": [], - "constant": false, - "documentation": { - "id": 33058, - "nodeType": "StructuredDocumentation", - "src": "4432:48:25", - "text": "@notice epoch => SubnetID => check => exists" - }, - "mutability": "mutable", - "name": "_checks", - "nameLocation": "4557:7:25", - "scope": 35198, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_bool_$_$_$", - "typeString": "mapping(uint64 => mapping(bytes32 => mapping(bytes32 => bool)))" - }, - "typeName": { - "id": 33065, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 33059, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "4493:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Mapping", - "src": "4485:63:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_bool_$_$_$", - "typeString": "mapping(uint64 => mapping(bytes32 => mapping(bytes32 => bool)))" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 33064, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 33060, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4511:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "4503:44:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_bool_$_$", - "typeString": "mapping(bytes32 => mapping(bytes32 => bool))" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 33063, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 33061, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4530:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "4522:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 33062, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4541:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - } - }, - "visibility": "private" - }, - { - "id": 33069, - "nodeType": "VariableDeclaration", - "src": "4623:23:25", - "nodes": [], - "constant": false, - "documentation": { - "id": 33067, - "nodeType": "StructuredDocumentation", - "src": "4571:47:25", - "text": "@notice whether the contract is initialized" - }, - "functionSelector": "158ef93e", - "mutability": "mutable", - "name": "initialized", - "nameLocation": "4635:11:25", - "scope": 35198, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 33068, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4623:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "public" - }, - { - "id": 33075, - "nodeType": "VariableDeclaration", - "src": "4767:75:25", - "nodes": [], - "constant": false, - "documentation": { - "id": 33070, - "nodeType": "StructuredDocumentation", - "src": "4653:56:25", - "text": "@notice contains voted submissions for a given epoch" - }, - "mutability": "mutable", - "name": "_epochVoteSubmissions", - "nameLocation": "4821:21:25", - "scope": 35198, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_EpochVoteTopDownSubmission_$39005_storage_$", - "typeString": "mapping(uint64 => struct EpochVoteTopDownSubmission)" - }, - "typeName": { - "id": 33074, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 33071, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "4775:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Mapping", - "src": "4767:45:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_EpochVoteTopDownSubmission_$39005_storage_$", - "typeString": "mapping(uint64 => struct EpochVoteTopDownSubmission)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 33073, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33072, - "name": "EpochVoteTopDownSubmission", - "nameLocations": [ - "4785:26:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39005, - "src": "4785:26:25" - }, - "referencedDeclaration": 39005, - "src": "4785:26:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39005_storage_ptr", - "typeString": "struct EpochVoteTopDownSubmission" - } - } - }, - "visibility": "private" - }, - { - "id": 33077, - "nodeType": "ErrorDefinition", - "src": "4849:20:25", - "nodes": [], - "errorSelector": "79e7ca82", - "name": "EmptySubnet", - "nameLocation": "4855:11:25", - "parameters": { - "id": 33076, - "nodeType": "ParameterList", - "parameters": [], - "src": "4866:2:25" - } - }, - { - "id": 33079, - "nodeType": "ErrorDefinition", - "src": "4874:23:25", - "nodes": [], - "errorSelector": "f0d97f3b", - "name": "NotSystemActor", - "nameLocation": "4880:14:25", - "parameters": { - "id": 33078, - "nodeType": "ParameterList", - "parameters": [], - "src": "4894:2:25" - } - }, - { - "id": 33081, - "nodeType": "ErrorDefinition", - "src": "4902:27:25", - "nodes": [], - "errorSelector": "511ed158", - "name": "NotSignableAccount", - "nameLocation": "4908:18:25", - "parameters": { - "id": 33080, - "nodeType": "ParameterList", - "parameters": [], - "src": "4926:2:25" - } - }, - { - "id": 33083, - "nodeType": "ErrorDefinition", - "src": "4934:21:25", - "nodes": [], - "errorSelector": "688e55ae", - "name": "NotEnoughFee", - "nameLocation": "4940:12:25", - "parameters": { - "id": 33082, - "nodeType": "ParameterList", - "parameters": [], - "src": "4952:2:25" - } - }, - { - "id": 33085, - "nodeType": "ErrorDefinition", - "src": "4960:23:25", - "nodes": [], - "errorSelector": "81b5ad68", - "name": "NotEnoughFunds", - "nameLocation": "4966:14:25", - "parameters": { - "id": 33084, - "nodeType": "ParameterList", - "parameters": [], - "src": "4980:2:25" - } - }, - { - "id": 33087, - "nodeType": "ErrorDefinition", - "src": "4988:32:25", - "nodes": [], - "errorSelector": "79b33e79", - "name": "NotEnoughFundsToRelease", - "nameLocation": "4994:23:25", - "parameters": { - "id": 33086, - "nodeType": "ParameterList", - "parameters": [], - "src": "5017:2:25" - } - }, - { - "id": 33089, - "nodeType": "ErrorDefinition", - "src": "5025:26:25", - "nodes": [], - "errorSelector": "c79cad7b", - "name": "CannotReleaseZero", - "nameLocation": "5031:17:25", - "parameters": { - "id": 33088, - "nodeType": "ParameterList", - "parameters": [], - "src": "5048:2:25" - } - }, - { - "id": 33091, - "nodeType": "ErrorDefinition", - "src": "5056:34:25", - "nodes": [], - "errorSelector": "74db2854", - "name": "NotEnoughSubnetCircSupply", - "nameLocation": "5062:25:25", - "parameters": { - "id": 33090, - "nodeType": "ParameterList", - "parameters": [], - "src": "5087:2:25" - } - }, - { - "id": 33093, - "nodeType": "ErrorDefinition", - "src": "5095:25:25", - "nodes": [], - "errorSelector": "ad3a8b9e", - "name": "NotEnoughBalance", - "nameLocation": "5101:16:25", - "parameters": { - "id": 33092, - "nodeType": "ParameterList", - "parameters": [], - "src": "5117:2:25" - } - }, - { - "id": 33095, - "nodeType": "ErrorDefinition", - "src": "5125:23:25", - "nodes": [], - "errorSelector": "87138d5c", - "name": "NotInitialized", - "nameLocation": "5131:14:25", - "parameters": { - "id": 33094, - "nodeType": "ParameterList", - "parameters": [], - "src": "5145:2:25" - } - }, - { - "id": 33097, - "nodeType": "ErrorDefinition", - "src": "5153:21:25", - "nodes": [], - "errorSelector": "2ec5b449", - "name": "NotValidator", - "nameLocation": "5159:12:25", - "parameters": { - "id": 33096, - "nodeType": "ParameterList", - "parameters": [], - "src": "5171:2:25" - } - }, - { - "id": 33099, - "nodeType": "ErrorDefinition", - "src": "5179:33:25", - "nodes": [], - "errorSelector": "f8cf8e02", - "name": "NotEmptySubnetCircSupply", - "nameLocation": "5185:24:25", - "parameters": { - "id": 33098, - "nodeType": "ParameterList", - "parameters": [], - "src": "5209:2:25" - } - }, - { - "id": 33101, - "nodeType": "ErrorDefinition", - "src": "5217:28:25", - "nodes": [], - "errorSelector": "e991abd0", - "name": "NotRegisteredSubnet", - "nameLocation": "5223:19:25", - "parameters": { - "id": 33100, - "nodeType": "ParameterList", - "parameters": [], - "src": "5242:2:25" - } - }, - { - "id": 33103, - "nodeType": "ErrorDefinition", - "src": "5250:32:25", - "nodes": [], - "errorSelector": "36a719be", - "name": "AlreadyRegisteredSubnet", - "nameLocation": "5256:23:25", - "parameters": { - "id": 33102, - "nodeType": "ParameterList", - "parameters": [], - "src": "5279:2:25" - } - }, - { - "id": 33105, - "nodeType": "ErrorDefinition", - "src": "5287:27:25", - "nodes": [], - "errorSelector": "0dc149f0", - "name": "AlreadyInitialized", - "nameLocation": "5293:18:25", - "parameters": { - "id": 33104, - "nodeType": "ParameterList", - "parameters": [], - "src": "5311:2:25" - } - }, - { - "id": 33107, - "nodeType": "ErrorDefinition", - "src": "5319:35:25", - "nodes": [], - "errorSelector": "24465cba", - "name": "InconsistentPrevCheckpoint", - "nameLocation": "5325:26:25", - "parameters": { - "id": 33106, - "nodeType": "ParameterList", - "parameters": [], - "src": "5351:2:25" - } - }, - { - "id": 33109, - "nodeType": "ErrorDefinition", - "src": "5359:28:25", - "nodes": [], - "errorSelector": "70e45109", - "name": "InvalidActorAddress", - "nameLocation": "5365:19:25", - "parameters": { - "id": 33108, - "nodeType": "ParameterList", - "parameters": [], - "src": "5384:2:25" - } - }, - { - "id": 33111, - "nodeType": "ErrorDefinition", - "src": "5392:31:25", - "nodes": [], - "errorSelector": "fae4eadb", - "name": "InvalidCheckpointEpoch", - "nameLocation": "5398:22:25", - "parameters": { - "id": 33110, - "nodeType": "ParameterList", - "parameters": [], - "src": "5420:2:25" - } - }, - { - "id": 33113, - "nodeType": "ErrorDefinition", - "src": "5428:32:25", - "nodes": [], - "errorSelector": "fe72264e", - "name": "InvalidCheckpointSource", - "nameLocation": "5434:23:25", - "parameters": { - "id": 33112, - "nodeType": "ParameterList", - "parameters": [], - "src": "5457:2:25" - } - }, - { - "id": 33115, - "nodeType": "ErrorDefinition", - "src": "5465:29:25", - "nodes": [], - "errorSelector": "a57cadff", - "name": "InvalidCrossMsgNonce", - "nameLocation": "5471:20:25", - "parameters": { - "id": 33114, - "nodeType": "ParameterList", - "parameters": [], - "src": "5491:2:25" - } - }, - { - "id": 33117, - "nodeType": "ErrorDefinition", - "src": "5499:41:25", - "nodes": [], - "errorSelector": "461e815d", - "name": "InvalidCrossMsgDestinationSubnet", - "nameLocation": "5505:32:25", - "parameters": { - "id": 33116, - "nodeType": "ParameterList", - "parameters": [], - "src": "5537:2:25" - } - }, - { - "id": 33119, - "nodeType": "ErrorDefinition", - "src": "5545:34:25", - "nodes": [], - "errorSelector": "abc05942", - "name": "InvalidCrossMsgsSortOrder", - "nameLocation": "5551:25:25", - "parameters": { - "id": 33118, - "nodeType": "ParameterList", - "parameters": [], - "src": "5576:2:25" - } - }, - { - "id": 33121, - "nodeType": "ErrorDefinition", - "src": "5584:36:25", - "nodes": [], - "errorSelector": "8481de49", - "name": "InvalidCrossMsgFromSubnetId", - "nameLocation": "5590:27:25", - "parameters": { - "id": 33120, - "nodeType": "ParameterList", - "parameters": [], - "src": "5617:2:25" - } - }, - { - "id": 33123, - "nodeType": "ErrorDefinition", - "src": "5625:35:25", - "nodes": [], - "errorSelector": "bcccd7fc", - "name": "CannotSendCrossMsgToItself", - "nameLocation": "5631:26:25", - "parameters": { - "id": 33122, - "nodeType": "ParameterList", - "parameters": [], - "src": "5657:2:25" - } - }, - { - "id": 33125, - "nodeType": "ErrorDefinition", - "src": "5665:24:25", - "nodes": [], - "errorSelector": "c18316bf", - "name": "SubnetNotActive", - "nameLocation": "5671:15:25", - "parameters": { - "id": 33124, - "nodeType": "ParameterList", - "parameters": [], - "src": "5686:2:25" - } - }, - { - "id": 33127, - "nodeType": "ErrorDefinition", - "src": "5694:24:25", - "nodes": [], - "errorSelector": "24498941", - "name": "PostboxNotExist", - "nameLocation": "5700:15:25", - "parameters": { - "id": 33126, - "nodeType": "ParameterList", - "parameters": [], - "src": "5715:2:25" - } - }, - { - "id": 33129, - "nodeType": "ErrorDefinition", - "src": "5723:26:25", - "nodes": [], - "errorSelector": "0bd9169f", - "name": "MessagesNotSorted", - "nameLocation": "5729:17:25", - "parameters": { - "id": 33128, - "nodeType": "ParameterList", - "parameters": [], - "src": "5746:2:25" - } - }, - { - "id": 33131, - "nodeType": "ErrorDefinition", - "src": "5754:43:25", - "nodes": [], - "errorSelector": "465f0a7d", - "name": "ValidatorsAndWeightsLengthMismatch", - "nameLocation": "5760:34:25", - "parameters": { - "id": 33130, - "nodeType": "ParameterList", - "parameters": [], - "src": "5794:2:25" - } - }, - { - "id": 33133, - "nodeType": "ErrorDefinition", - "src": "5802:30:25", - "nodes": [], - "errorSelector": "389b457d", - "name": "ValidatorWeightIsZero", - "nameLocation": "5808:21:25", - "parameters": { - "id": 33132, - "nodeType": "ParameterList", - "parameters": [], - "src": "5829:2:25" - } - }, - { - "id": 33135, - "nodeType": "ErrorDefinition", - "src": "5837:36:25", - "nodes": [], - "errorSelector": "c26f1a27", - "name": "NotEnoughFundsForMembership", - "nameLocation": "5843:27:25", - "parameters": { - "id": 33134, - "nodeType": "ParameterList", - "parameters": [], - "src": "5870:2:25" - } - }, - { - "id": 33137, - "nodeType": "ErrorDefinition", - "src": "5878:30:25", - "nodes": [], - "errorSelector": "2b843632", - "name": "MethodNotSupportedYet", - "nameLocation": "5884:21:25", - "parameters": { - "id": 33136, - "nodeType": "ParameterList", - "parameters": [], - "src": "5905:2:25" - } - }, - { - "id": 33151, - "nodeType": "FunctionDefinition", - "src": "5914:135:25", - "nodes": [], - "body": { - "id": 33150, - "nodeType": "Block", - "src": "5952:97:25", - "nodes": [], - "statements": [ - { - "condition": { - "id": 33144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "5966:23:25", - "subExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "expression": { - "id": 33140, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "5967:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 33141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5971:6:25", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "5967:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 33142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5978:9:25", - "memberName": "isAccount", - "nodeType": "MemberAccess", - "referencedDeclaration": 37231, - "src": "5967:20:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_address_$returns$_t_bool_$attached_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 33143, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5967:22:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33149, - "nodeType": "IfStatement", - "src": "5962:81:25", - "trueBody": { - "id": 33148, - "nodeType": "Block", - "src": "5991:52:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33145, - "name": "NotSignableAccount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33081, - "src": "6012:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 33146, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6012:20:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33147, - "nodeType": "RevertStatement", - "src": "6005:27:25" - } - ] - } - } - ] - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_signableOnly", - "nameLocation": "5923:13:25", - "parameters": { - "id": 33138, - "nodeType": "ParameterList", - "parameters": [], - "src": "5936:2:25" - }, - "returnParameters": { - "id": 33139, - "nodeType": "ParameterList", - "parameters": [], - "src": "5952:0:25" - }, - "scope": 35198, - "stateMutability": "view", - "virtual": false, - "visibility": "private" - }, - { - "id": 33164, - "nodeType": "FunctionDefinition", - "src": "6055:123:25", - "nodes": [], - "body": { - "id": 33163, - "nodeType": "Block", - "src": "6087:91:25", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33157, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 33154, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "6101:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 33155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6105:5:25", - "memberName": "value", - "nodeType": "MemberAccess", - "src": "6101:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 33156, - "name": "crossMsgFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33035, - "src": "6113:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6101:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33162, - "nodeType": "IfStatement", - "src": "6097:75:25", - "trueBody": { - "id": 33161, - "nodeType": "Block", - "src": "6126:46:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33158, - "name": "NotEnoughFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33083, - "src": "6147:12:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 33159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6147:14:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33160, - "nodeType": "RevertStatement", - "src": "6140:21:25" - } - ] - } - } - ] - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_hasFee", - "nameLocation": "6064:7:25", - "parameters": { - "id": 33152, - "nodeType": "ParameterList", - "parameters": [], - "src": "6071:2:25" - }, - "returnParameters": { - "id": 33153, - "nodeType": "ParameterList", - "parameters": [], - "src": "6087:0:25" - }, - "scope": 35198, - "stateMutability": "view", - "virtual": false, - "visibility": "private" - }, - { - "id": 33178, - "nodeType": "FunctionDefinition", - "src": "6184:138:25", - "nodes": [], - "body": { - "id": 33177, - "nodeType": "Block", - "src": "6225:97:25", - "nodes": [], - "statements": [ - { - "condition": { - "id": 33171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "6239:27:25", - "subExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "expression": { - "id": 33167, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "6240:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 33168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6244:6:25", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "6240:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 33169, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6251:13:25", - "memberName": "isSystemActor", - "nodeType": "MemberAccess", - "referencedDeclaration": 37244, - "src": "6240:24:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_address_$returns$_t_bool_$attached_to$_t_address_$", - "typeString": "function (address) pure returns (bool)" - } - }, - "id": 33170, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6240:26:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33176, - "nodeType": "IfStatement", - "src": "6235:81:25", - "trueBody": { - "id": 33175, - "nodeType": "Block", - "src": "6268:48:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33172, - "name": "NotSystemActor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33079, - "src": "6289:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 33173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6289:16:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33174, - "nodeType": "RevertStatement", - "src": "6282:23:25" - } - ] - } - } - ] - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_systemActorOnly", - "nameLocation": "6193:16:25", - "parameters": { - "id": 33165, - "nodeType": "ParameterList", - "parameters": [], - "src": "6209:2:25" - }, - "returnParameters": { - "id": 33166, - "nodeType": "ParameterList", - "parameters": [], - "src": "6225:0:25" - }, - "scope": 35198, - "stateMutability": "view", - "virtual": false, - "visibility": "private" - }, - { - "id": 33185, - "nodeType": "ModifierDefinition", - "src": "6328:67:25", - "nodes": [], - "body": { - "id": 33184, - "nodeType": "Block", - "src": "6352:43:25", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33180, - "name": "_signableOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33151, - "src": "6362:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 33181, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6362:15:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33182, - "nodeType": "ExpressionStatement", - "src": "6362:15:25" - }, - { - "id": 33183, - "nodeType": "PlaceholderStatement", - "src": "6387:1:25" - } - ] - }, - "name": "signableOnly", - "nameLocation": "6337:12:25", - "parameters": { - "id": 33179, - "nodeType": "ParameterList", - "parameters": [], - "src": "6349:2:25" - }, - "virtual": false, - "visibility": "internal" - }, - { - "id": 33192, - "nodeType": "ModifierDefinition", - "src": "6401:73:25", - "nodes": [], - "body": { - "id": 33191, - "nodeType": "Block", - "src": "6428:46:25", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33187, - "name": "_systemActorOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33178, - "src": "6438:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 33188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6438:18:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33189, - "nodeType": "ExpressionStatement", - "src": "6438:18:25" - }, - { - "id": 33190, - "nodeType": "PlaceholderStatement", - "src": "6466:1:25" - } - ] - }, - "name": "systemActorOnly", - "nameLocation": "6410:15:25", - "parameters": { - "id": 33186, - "nodeType": "ParameterList", - "parameters": [], - "src": "6425:2:25" - }, - "virtual": false, - "visibility": "internal" - }, - { - "id": 33199, - "nodeType": "ModifierDefinition", - "src": "6480:55:25", - "nodes": [], - "body": { - "id": 33198, - "nodeType": "Block", - "src": "6498:37:25", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33194, - "name": "_hasFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33164, - "src": "6508:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 33195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6508:9:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33196, - "nodeType": "ExpressionStatement", - "src": "6508:9:25" - }, - { - "id": 33197, - "nodeType": "PlaceholderStatement", - "src": "6527:1:25" - } - ] - }, - "name": "hasFee", - "nameLocation": "6489:6:25", - "parameters": { - "id": 33193, - "nodeType": "ParameterList", - "parameters": [], - "src": "6495:2:25" - }, - "virtual": false, - "visibility": "internal" - }, - { - "id": 33211, - "nodeType": "StructDefinition", - "src": "6541:191:25", - "nodes": [], - "canonicalName": "Gateway.ConstructorParams", - "members": [ - { - "constant": false, - "id": 33202, - "mutability": "mutable", - "name": "networkName", - "nameLocation": "6585:11:25", - "nodeType": "VariableDeclaration", - "scope": 33211, - "src": "6576:20:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage_ptr", - "typeString": "struct SubnetID" - }, - "typeName": { - "id": 33201, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33200, - "name": "SubnetID", - "nameLocations": [ - "6576:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39060, - "src": "6576:8:25" - }, - "referencedDeclaration": 39060, - "src": "6576:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage_ptr", - "typeString": "struct SubnetID" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33204, - "mutability": "mutable", - "name": "bottomUpCheckPeriod", - "nameLocation": "6613:19:25", - "nodeType": "VariableDeclaration", - "scope": 33211, - "src": "6606:26:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 33203, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "6606:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33206, - "mutability": "mutable", - "name": "topDownCheckPeriod", - "nameLocation": "6649:18:25", - "nodeType": "VariableDeclaration", - "scope": 33211, - "src": "6642:25:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 33205, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "6642:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33208, - "mutability": "mutable", - "name": "msgFee", - "nameLocation": "6685:6:25", - "nodeType": "VariableDeclaration", - "scope": 33211, - "src": "6677:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33207, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6677:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33210, - "mutability": "mutable", - "name": "majorityPercentage", - "nameLocation": "6707:18:25", - "nodeType": "VariableDeclaration", - "scope": 33211, - "src": "6701:24:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 33209, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "6701:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "name": "ConstructorParams", - "nameLocation": "6548:17:25", - "scope": 35198, - "visibility": "public" - }, - { - "id": 33269, - "nodeType": "FunctionDefinition", - "src": "6738:692:25", - "nodes": [], - "body": { - "id": 33268, - "nodeType": "Block", - "src": "6844:586:25", - "nodes": [], - "statements": [ - { - "expression": { - "id": 33226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 33223, - "name": "_networkName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32992, - "src": "6854:12:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 33224, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33214, - "src": "6869:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConstructorParams_$33211_memory_ptr", - "typeString": "struct Gateway.ConstructorParams memory" - } - }, - "id": 33225, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6876:11:25", - "memberName": "networkName", - "nodeType": "MemberAccess", - "referencedDeclaration": 33202, - "src": "6869:18:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - }, - "src": "6854:33:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - }, - "id": 33227, - "nodeType": "ExpressionStatement", - "src": "6854:33:25" - }, - { - "expression": { - "id": 33230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 33228, - "name": "minStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32998, - "src": "6897:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 33229, - "name": "MIN_COLLATERAL_AMOUNT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32988, - "src": "6908:21:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6897:32:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33231, - "nodeType": "ExpressionStatement", - "src": "6897:32:25" - }, - { - "expression": { - "id": 33241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 33232, - "name": "bottomUpCheckPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33011, - "src": "6939:19:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "condition": { - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 33236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 33233, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33214, - "src": "6961:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConstructorParams_$33211_memory_ptr", - "typeString": "struct Gateway.ConstructorParams memory" - } - }, - "id": 33234, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6968:19:25", - "memberName": "bottomUpCheckPeriod", - "nodeType": "MemberAccess", - "referencedDeclaration": 33204, - "src": "6961:26:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 33235, - "name": "MIN_CHECKPOINT_PERIOD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36613, - "src": "6990:21:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "6961:50:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "expression": { - "id": 33238, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33214, - "src": "7062:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConstructorParams_$33211_memory_ptr", - "typeString": "struct Gateway.ConstructorParams memory" - } - }, - "id": 33239, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7069:19:25", - "memberName": "bottomUpCheckPeriod", - "nodeType": "MemberAccess", - "referencedDeclaration": 33204, - "src": "7062:26:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 33240, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "6961:127:25", - "trueExpression": { - "id": 33237, - "name": "MIN_CHECKPOINT_PERIOD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36613, - "src": "7026:21:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "6939:149:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 33242, - "nodeType": "ExpressionStatement", - "src": "6939:149:25" - }, - { - "expression": { - "id": 33252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 33243, - "name": "topDownCheckPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33020, - "src": "7098:18:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "condition": { - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 33247, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 33244, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33214, - "src": "7119:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConstructorParams_$33211_memory_ptr", - "typeString": "struct Gateway.ConstructorParams memory" - } - }, - "id": 33245, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7126:18:25", - "memberName": "topDownCheckPeriod", - "nodeType": "MemberAccess", - "referencedDeclaration": 33206, - "src": "7119:25:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 33246, - "name": "MIN_CHECKPOINT_PERIOD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36613, - "src": "7147:21:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "7119:49:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "expression": { - "id": 33249, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33214, - "src": "7219:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConstructorParams_$33211_memory_ptr", - "typeString": "struct Gateway.ConstructorParams memory" - } - }, - "id": 33250, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7226:18:25", - "memberName": "topDownCheckPeriod", - "nodeType": "MemberAccess", - "referencedDeclaration": 33206, - "src": "7219:25:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 33251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "7119:125:25", - "trueExpression": { - "id": 33248, - "name": "MIN_CHECKPOINT_PERIOD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36613, - "src": "7183:21:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "7098:146:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 33253, - "nodeType": "ExpressionStatement", - "src": "7098:146:25" - }, - { - "expression": { - "id": 33257, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 33254, - "name": "crossMsgFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33035, - "src": "7254:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 33255, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33214, - "src": "7268:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConstructorParams_$33211_memory_ptr", - "typeString": "struct Gateway.ConstructorParams memory" - } - }, - "id": 33256, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7275:6:25", - "memberName": "msgFee", - "nodeType": "MemberAccess", - "referencedDeclaration": 33208, - "src": "7268:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7254:27:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33258, - "nodeType": "ExpressionStatement", - "src": "7254:27:25" - }, - { - "condition": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 33259, - "name": "_networkName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32992, - "src": "7358:12:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - }, - "id": 33260, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7371:6:25", - "memberName": "isRoot", - "nodeType": "MemberAccess", - "referencedDeclaration": 38609, - "src": "7358:19:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$39060_memory_ptr_$", - "typeString": "function (struct SubnetID memory) pure returns (bool)" - } - }, - "id": 33261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7358:21:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33267, - "nodeType": "IfStatement", - "src": "7354:70:25", - "trueBody": { - "id": 33266, - "nodeType": "Block", - "src": "7381:43:25", - "statements": [ - { - "expression": { - "id": 33264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 33262, - "name": "initialized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33069, - "src": "7395:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 33263, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7409:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "7395:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33265, - "nodeType": "ExpressionStatement", - "src": "7395:18:25" - } - ] - } - } - ] - }, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "expression": { - "id": 33217, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33214, - "src": "6790:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConstructorParams_$33211_memory_ptr", - "typeString": "struct Gateway.ConstructorParams memory" - } - }, - "id": 33218, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6797:18:25", - "memberName": "majorityPercentage", - "nodeType": "MemberAccess", - "referencedDeclaration": 33210, - "src": "6790:25:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "expression": { - "id": 33219, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33214, - "src": "6817:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConstructorParams_$33211_memory_ptr", - "typeString": "struct Gateway.ConstructorParams memory" - } - }, - "id": 33220, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6824:18:25", - "memberName": "topDownCheckPeriod", - "nodeType": "MemberAccess", - "referencedDeclaration": 33206, - "src": "6817:25:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "id": 33221, - "kind": "baseConstructorSpecifier", - "modifierName": { - "id": 33216, - "name": "Voting", - "nameLocations": [ - "6783:6:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 37017, - "src": "6783:6:25" - }, - "nodeType": "ModifierInvocation", - "src": "6783:60:25" - } - ], - "name": "", - "nameLocation": "-1:-1:-1", - "parameters": { - "id": 33215, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33214, - "mutability": "mutable", - "name": "params", - "nameLocation": "6775:6:25", - "nodeType": "VariableDeclaration", - "scope": 33269, - "src": "6750:31:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConstructorParams_$33211_memory_ptr", - "typeString": "struct Gateway.ConstructorParams" - }, - "typeName": { - "id": 33213, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33212, - "name": "ConstructorParams", - "nameLocations": [ - "6750:17:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 33211, - "src": "6750:17:25" - }, - "referencedDeclaration": 33211, - "src": "6750:17:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConstructorParams_$33211_storage_ptr", - "typeString": "struct Gateway.ConstructorParams" - } - }, - "visibility": "internal" - } - ], - "src": "6749:33:25" - }, - "returnParameters": { - "id": 33222, - "nodeType": "ParameterList", - "parameters": [], - "src": "6844:0:25" - }, - "scope": 35198, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 33286, - "nodeType": "FunctionDefinition", - "src": "7626:135:25", - "nodes": [], - "body": { - "id": 33285, - "nodeType": "Block", - "src": "7717:44:25", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 33282, - "name": "subnetId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33273, - "src": "7745:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_calldata_ptr", - "typeString": "struct SubnetID calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SubnetID_$39060_calldata_ptr", - "typeString": "struct SubnetID calldata" - } - ], - "id": 33281, - "name": "_getSubnet", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 35113, - 35142 - ], - "referencedDeclaration": 35142, - "src": "7734:10:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$39084_storage_ptr_$", - "typeString": "function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)" - } - }, - "id": 33283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7734:20:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$39084_storage_ptr_$", - "typeString": "tuple(bool,struct Subnet storage pointer)" - } - }, - "functionReturnParameters": 33280, - "id": 33284, - "nodeType": "Return", - "src": "7727:27:25" - } - ] - }, - "documentation": { - "id": 33270, - "nodeType": "StructuredDocumentation", - "src": "7436:185:25", - "text": "@notice returns the subnet with the given id\n @param subnetId the id of the subnet\n @return found whether the subnet exists\n @return subnet - the subnet struct" - }, - "functionSelector": "c66c66a1", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getSubnet", - "nameLocation": "7635:9:25", - "parameters": { - "id": 33274, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33273, - "mutability": "mutable", - "name": "subnetId", - "nameLocation": "7663:8:25", - "nodeType": "VariableDeclaration", - "scope": 33286, - "src": "7645:26:25", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_calldata_ptr", - "typeString": "struct SubnetID" - }, - "typeName": { - "id": 33272, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33271, - "name": "SubnetID", - "nameLocations": [ - "7645:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39060, - "src": "7645:8:25" - }, - "referencedDeclaration": 39060, - "src": "7645:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage_ptr", - "typeString": "struct SubnetID" - } - }, - "visibility": "internal" - } - ], - "src": "7644:28:25" - }, - "returnParameters": { - "id": 33280, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33276, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 33286, - "src": "7696:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 33275, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7696:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33279, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 33286, - "src": "7702:13:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_memory_ptr", - "typeString": "struct Subnet" - }, - "typeName": { - "id": 33278, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33277, - "name": "Subnet", - "nameLocations": [ - "7702:6:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39084, - "src": "7702:6:25" - }, - "referencedDeclaration": 39084, - "src": "7702:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - } - }, - "visibility": "internal" - } - ], - "src": "7695:21:25" - }, - "scope": 35198, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 33307, - "nodeType": "FunctionDefinition", - "src": "7836:202:25", - "nodes": [], - "body": { - "id": 33306, - "nodeType": "Block", - "src": "7930:108:25", - "nodes": [], - "statements": [ - { - "assignments": [ - null, - 33297 - ], - "declarations": [ - null, - { - "constant": false, - "id": 33297, - "mutability": "mutable", - "name": "subnet", - "nameLocation": "7958:6:25", - "nodeType": "VariableDeclaration", - "scope": 33306, - "src": "7943:21:25", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - }, - "typeName": { - "id": 33296, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33295, - "name": "Subnet", - "nameLocations": [ - "7943:6:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39084, - "src": "7943:6:25" - }, - "referencedDeclaration": 39084, - "src": "7943:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - } - }, - "visibility": "internal" - } - ], - "id": 33301, - "initialValue": { - "arguments": [ - { - "id": 33299, - "name": "subnetId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33290, - "src": "7979:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - ], - "id": 33298, - "name": "_getSubnet", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 35113, - 35142 - ], - "referencedDeclaration": 35142, - "src": "7968:10:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$39084_storage_ptr_$", - "typeString": "function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)" - } - }, - "id": 33300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7968:20:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$39084_storage_ptr_$", - "typeString": "tuple(bool,struct Subnet storage pointer)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7940:48:25" - }, - { - "expression": { - "expression": { - "expression": { - "id": 33302, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33297, - "src": "8006:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 33303, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8013:11:25", - "memberName": "topDownMsgs", - "nodeType": "MemberAccess", - "referencedDeclaration": 39083, - "src": "8006:18:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_storage_$dyn_storage", - "typeString": "struct CrossMsg storage ref[] storage ref" - } - }, - "id": 33304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8025:6:25", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "8006:25:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 33294, - "id": 33305, - "nodeType": "Return", - "src": "7999:32:25" - } - ] - }, - "documentation": { - "id": 33287, - "nodeType": "StructuredDocumentation", - "src": "7767:64:25", - "text": "@notice get number of top-down messages for the given subnet" - }, - "functionSelector": "9d3070b5", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getSubnetTopDownMsgsLength", - "nameLocation": "7845:26:25", - "parameters": { - "id": 33291, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33290, - "mutability": "mutable", - "name": "subnetId", - "nameLocation": "7888:8:25", - "nodeType": "VariableDeclaration", - "scope": 33307, - "src": "7872:24:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID" - }, - "typeName": { - "id": 33289, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33288, - "name": "SubnetID", - "nameLocations": [ - "7872:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39060, - "src": "7872:8:25" - }, - "referencedDeclaration": 39060, - "src": "7872:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage_ptr", - "typeString": "struct SubnetID" - } - }, - "visibility": "internal" - } - ], - "src": "7871:26:25" - }, - "returnParameters": { - "id": 33294, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33293, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 33307, - "src": "7921:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33292, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7921:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "7920:9:25" - }, - "scope": 35198, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 33332, - "nodeType": "FunctionDefinition", - "src": "8125:218:25", - "nodes": [], - "body": { - "id": 33331, - "nodeType": "Block", - "src": "8235:108:25", - "nodes": [], - "statements": [ - { - "assignments": [ - null, - 33321 - ], - "declarations": [ - null, - { - "constant": false, - "id": 33321, - "mutability": "mutable", - "name": "subnet", - "nameLocation": "8263:6:25", - "nodeType": "VariableDeclaration", - "scope": 33331, - "src": "8248:21:25", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - }, - "typeName": { - "id": 33320, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33319, - "name": "Subnet", - "nameLocations": [ - "8248:6:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39084, - "src": "8248:6:25" - }, - "referencedDeclaration": 39084, - "src": "8248:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - } - }, - "visibility": "internal" - } - ], - "id": 33325, - "initialValue": { - "arguments": [ - { - "id": 33323, - "name": "subnetId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33311, - "src": "8284:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - ], - "id": 33322, - "name": "_getSubnet", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 35113, - 35142 - ], - "referencedDeclaration": 35142, - "src": "8273:10:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$39084_storage_ptr_$", - "typeString": "function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)" - } - }, - "id": 33324, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8273:20:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$39084_storage_ptr_$", - "typeString": "tuple(bool,struct Subnet storage pointer)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8245:48:25" - }, - { - "expression": { - "baseExpression": { - "expression": { - "id": 33326, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33321, - "src": "8311:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 33327, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8318:11:25", - "memberName": "topDownMsgs", - "nodeType": "MemberAccess", - "referencedDeclaration": 39083, - "src": "8311:18:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_storage_$dyn_storage", - "typeString": "struct CrossMsg storage ref[] storage ref" - } - }, - "id": 33329, - "indexExpression": { - "id": 33328, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33313, - "src": "8330:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8311:25:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_storage", - "typeString": "struct CrossMsg storage ref" - } - }, - "functionReturnParameters": 33318, - "id": 33330, - "nodeType": "Return", - "src": "8304:32:25" - } - ] - }, - "documentation": { - "id": 33308, - "nodeType": "StructuredDocumentation", - "src": "8044:76:25", - "text": "@notice get the top-down message at the given index for the given subnet" - }, - "functionSelector": "0ea746f2", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getSubnetTopDownMsg", - "nameLocation": "8134:19:25", - "parameters": { - "id": 33314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33311, - "mutability": "mutable", - "name": "subnetId", - "nameLocation": "8170:8:25", - "nodeType": "VariableDeclaration", - "scope": 33332, - "src": "8154:24:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID" - }, - "typeName": { - "id": 33310, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33309, - "name": "SubnetID", - "nameLocations": [ - "8154:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39060, - "src": "8154:8:25" - }, - "referencedDeclaration": 39060, - "src": "8154:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage_ptr", - "typeString": "struct SubnetID" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33313, - "mutability": "mutable", - "name": "index", - "nameLocation": "8188:5:25", - "nodeType": "VariableDeclaration", - "scope": 33332, - "src": "8180:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33312, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8180:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "8153:41:25" - }, - "returnParameters": { - "id": 33318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33317, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 33332, - "src": "8218:15:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg" - }, - "typeName": { - "id": 33316, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33315, - "name": "CrossMsg", - "nameLocations": [ - "8218:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38957, - "src": "8218:8:25" - }, - "referencedDeclaration": 38957, - "src": "8218:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_storage_ptr", - "typeString": "struct CrossMsg" - } - }, - "visibility": "internal" - } - ], - "src": "8217:17:25" - }, - "scope": 35198, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 33342, - "nodeType": "FunctionDefinition", - "src": "8406:102:25", - "nodes": [], - "body": { - "id": 33341, - "nodeType": "Block", - "src": "8472:36:25", - "nodes": [], - "statements": [ - { - "expression": { - "id": 33339, - "name": "_networkName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32992, - "src": "8489:12:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - }, - "functionReturnParameters": 33338, - "id": 33340, - "nodeType": "Return", - "src": "8482:19:25" - } - ] - }, - "documentation": { - "id": 33333, - "nodeType": "StructuredDocumentation", - "src": "8349:52:25", - "text": "@notice get the network name in subnet id format" - }, - "functionSelector": "94074b03", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getNetworkName", - "nameLocation": "8415:14:25", - "parameters": { - "id": 33334, - "nodeType": "ParameterList", - "parameters": [], - "src": "8429:2:25" - }, - "returnParameters": { - "id": 33338, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33337, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 33342, - "src": "8455:15:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID" - }, - "typeName": { - "id": 33336, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33335, - "name": "SubnetID", - "nameLocations": [ - "8455:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39060, - "src": "8455:8:25" - }, - "referencedDeclaration": 39060, - "src": "8455:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage_ptr", - "typeString": "struct SubnetID" - } - }, - "visibility": "internal" - } - ], - "src": "8454:17:25" - }, - "scope": 35198, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 33365, - "nodeType": "FunctionDefinition", - "src": "8628:224:25", - "nodes": [], - "body": { - "id": 33364, - "nodeType": "Block", - "src": "8700:152:25", - "nodes": [], - "statements": [ - { - "condition": { - "id": 33350, - "name": "initialized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33069, - "src": "8714:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33355, - "nodeType": "IfStatement", - "src": "8710:69:25", - "trueBody": { - "id": 33354, - "nodeType": "Block", - "src": "8727:52:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33351, - "name": "AlreadyInitialized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33105, - "src": "8748:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 33352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8748:20:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33353, - "nodeType": "RevertStatement", - "src": "8741:27:25" - } - ] - } - }, - { - "expression": { - "id": 33358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 33356, - "name": "_genesisEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36625, - "src": "8789:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 33357, - "name": "genesisEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33345, - "src": "8805:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "8789:28:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 33359, - "nodeType": "ExpressionStatement", - "src": "8789:28:25" - }, - { - "expression": { - "id": 33362, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 33360, - "name": "initialized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33069, - "src": "8827:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 33361, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8841:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "8827:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33363, - "nodeType": "ExpressionStatement", - "src": "8827:18:25" - } - ] - }, - "documentation": { - "id": 33343, - "nodeType": "StructuredDocumentation", - "src": "8514:109:25", - "text": "@notice initialize the contract with the genesis epoch\n @param genesisEpoch - genesis epoch to set" - }, - "functionSelector": "13f35388", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 33348, - "kind": "modifierInvocation", - "modifierName": { - "id": 33347, - "name": "systemActorOnly", - "nameLocations": [ - "8684:15:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 33192, - "src": "8684:15:25" - }, - "nodeType": "ModifierInvocation", - "src": "8684:15:25" - } - ], - "name": "initGenesisEpoch", - "nameLocation": "8637:16:25", - "parameters": { - "id": 33346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33345, - "mutability": "mutable", - "name": "genesisEpoch", - "nameLocation": "8661:12:25", - "nodeType": "VariableDeclaration", - "scope": 33365, - "src": "8654:19:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 33344, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "8654:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "8653:21:25" - }, - "returnParameters": { - "id": 33349, - "nodeType": "ParameterList", - "parameters": [], - "src": "8700:0:25" - }, - "scope": 35198, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 33442, - "nodeType": "FunctionDefinition", - "src": "8963:582:25", - "nodes": [], - "body": { - "id": 33441, - "nodeType": "Block", - "src": "9000:545:25", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33372, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 33369, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "9014:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 33370, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9018:5:25", - "memberName": "value", - "nodeType": "MemberAccess", - "src": "9014:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 33371, - "name": "minStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32998, - "src": "9026:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9014:20:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33377, - "nodeType": "IfStatement", - "src": "9010:74:25", - "trueBody": { - "id": 33376, - "nodeType": "Block", - "src": "9036:48:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33373, - "name": "NotEnoughFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33085, - "src": "9057:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 33374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9057:16:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33375, - "nodeType": "RevertStatement", - "src": "9050:23:25" - } - ] - } - }, - { - "assignments": [ - 33380 - ], - "declarations": [ - { - "constant": false, - "id": 33380, - "mutability": "mutable", - "name": "subnetId", - "nameLocation": "9110:8:25", - "nodeType": "VariableDeclaration", - "scope": 33441, - "src": "9094:24:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID" - }, - "typeName": { - "id": 33379, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33378, - "name": "SubnetID", - "nameLocations": [ - "9094:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39060, - "src": "9094:8:25" - }, - "referencedDeclaration": 39060, - "src": "9094:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage_ptr", - "typeString": "struct SubnetID" - } - }, - "visibility": "internal" - } - ], - "id": 33386, - "initialValue": { - "arguments": [ - { - "expression": { - "id": 33383, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "9149:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 33384, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9153:6:25", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "9149:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 33381, - "name": "_networkName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32992, - "src": "9121:12:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - }, - "id": 33382, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9134:14:25", - "memberName": "createSubnetId", - "nodeType": "MemberAccess", - "referencedDeclaration": 38559, - "src": "9121:27:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39060_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$39060_memory_ptr_$attached_to$_t_struct$_SubnetID_$39060_memory_ptr_$", - "typeString": "function (struct SubnetID memory,address) pure returns (struct SubnetID memory)" - } - }, - "id": 33385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9121:39:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9094:66:25" - }, - { - "assignments": [ - 33388, - 33391 - ], - "declarations": [ - { - "constant": false, - "id": 33388, - "mutability": "mutable", - "name": "registered", - "nameLocation": "9177:10:25", - "nodeType": "VariableDeclaration", - "scope": 33441, - "src": "9172:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 33387, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "9172:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33391, - "mutability": "mutable", - "name": "subnet", - "nameLocation": "9204:6:25", - "nodeType": "VariableDeclaration", - "scope": 33441, - "src": "9189:21:25", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - }, - "typeName": { - "id": 33390, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33389, - "name": "Subnet", - "nameLocations": [ - "9189:6:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39084, - "src": "9189:6:25" - }, - "referencedDeclaration": 39084, - "src": "9189:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - } - }, - "visibility": "internal" - } - ], - "id": 33395, - "initialValue": { - "arguments": [ - { - "id": 33393, - "name": "subnetId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33380, - "src": "9225:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - ], - "id": 33392, - "name": "_getSubnet", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 35113, - 35142 - ], - "referencedDeclaration": 35142, - "src": "9214:10:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$39084_storage_ptr_$", - "typeString": "function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)" - } - }, - "id": 33394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9214:20:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$39084_storage_ptr_$", - "typeString": "tuple(bool,struct Subnet storage pointer)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9171:63:25" - }, - { - "condition": { - "id": 33396, - "name": "registered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33388, - "src": "9249:10:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33401, - "nodeType": "IfStatement", - "src": "9245:73:25", - "trueBody": { - "id": 33400, - "nodeType": "Block", - "src": "9261:57:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33397, - "name": "AlreadyRegisteredSubnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33103, - "src": "9282:23:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 33398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9282:25:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33399, - "nodeType": "RevertStatement", - "src": "9275:32:25" - } - ] - } - }, - { - "expression": { - "id": 33406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 33402, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33391, - "src": "9328:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 33404, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "9335:2:25", - "memberName": "id", - "nodeType": "MemberAccess", - "referencedDeclaration": 39076, - "src": "9328:9:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 33405, - "name": "subnetId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33380, - "src": "9340:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - }, - "src": "9328:20:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - }, - "id": 33407, - "nodeType": "ExpressionStatement", - "src": "9328:20:25" - }, - { - "expression": { - "id": 33413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 33408, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33391, - "src": "9358:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 33410, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "9365:5:25", - "memberName": "stake", - "nodeType": "MemberAccess", - "referencedDeclaration": 39069, - "src": "9358:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 33411, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "9373:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 33412, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9377:5:25", - "memberName": "value", - "nodeType": "MemberAccess", - "src": "9373:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9358:24:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33414, - "nodeType": "ExpressionStatement", - "src": "9358:24:25" - }, - { - "expression": { - "id": 33420, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 33415, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33391, - "src": "9392:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 33417, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "9399:6:25", - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 39063, - "src": "9392:13:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 33418, - "name": "Status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37064, - "src": "9408:6:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Status_$37064_$", - "typeString": "type(enum Status)" - } - }, - "id": 33419, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "9415:6:25", - "memberName": "Active", - "nodeType": "MemberAccess", - "referencedDeclaration": 37059, - "src": "9408:13:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "src": "9392:29:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "id": 33421, - "nodeType": "ExpressionStatement", - "src": "9392:29:25" - }, - { - "expression": { - "id": 33427, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 33422, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33391, - "src": "9431:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 33424, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "9438:12:25", - "memberName": "genesisEpoch", - "nodeType": "MemberAccess", - "referencedDeclaration": 39071, - "src": "9431:19:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 33425, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "9453:5:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 33426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9459:6:25", - "memberName": "number", - "nodeType": "MemberAccess", - "src": "9453:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9431:34:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33428, - "nodeType": "ExpressionStatement", - "src": "9431:34:25" - }, - { - "expression": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 33432, - "name": "subnetId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33380, - "src": "9492:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - }, - "id": 33433, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9501:6:25", - "memberName": "toHash", - "nodeType": "MemberAccess", - "referencedDeclaration": 38484, - "src": "9492:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$39060_memory_ptr_$", - "typeString": "function (struct SubnetID memory) pure returns (bytes32)" - } - }, - "id": 33434, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9492:17:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 33429, - "name": "subnetKeys", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33008, - "src": "9476:10:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", - "typeString": "bytes32[] storage ref" - } - }, - "id": 33431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9487:4:25", - "memberName": "push", - "nodeType": "MemberAccess", - "src": "9476:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$", - "typeString": "function (bytes32[] storage pointer,bytes32)" - } - }, - "id": 33435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9476:34:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33436, - "nodeType": "ExpressionStatement", - "src": "9476:34:25" - }, - { - "expression": { - "id": 33439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 33437, - "name": "totalSubnets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32995, - "src": "9521:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "31", - "id": 33438, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9537:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9521:17:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 33440, - "nodeType": "ExpressionStatement", - "src": "9521:17:25" - } - ] - }, - "baseFunctions": [ - 37086 - ], - "documentation": { - "id": 33366, - "nodeType": "StructuredDocumentation", - "src": "8858:100:25", - "text": "@notice register a subnet in the gateway. called by a subnet when it reaches the threshold stake" - }, - "functionSelector": "1aa3a008", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "register", - "nameLocation": "8972:8:25", - "parameters": { - "id": 33367, - "nodeType": "ParameterList", - "parameters": [], - "src": "8980:2:25" - }, - "returnParameters": { - "id": 33368, - "nodeType": "ParameterList", - "parameters": [], - "src": "9000:0:25" - }, - "scope": 35198, - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "id": 33500, - "nodeType": "FunctionDefinition", - "src": "9616:477:25", - "nodes": [], - "body": { - "id": 33499, - "nodeType": "Block", - "src": "9653:440:25", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 33446, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "9667:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 33447, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9671:5:25", - "memberName": "value", - "nodeType": "MemberAccess", - "src": "9667:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "hexValue": "30", - "id": 33448, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9680:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "9667:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33454, - "nodeType": "IfStatement", - "src": "9663:68:25", - "trueBody": { - "id": 33453, - "nodeType": "Block", - "src": "9683:48:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33450, - "name": "NotEnoughFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33085, - "src": "9704:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 33451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9704:16:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33452, - "nodeType": "RevertStatement", - "src": "9697:23:25" - } - ] - } - }, - { - "assignments": [ - 33456, - 33459 - ], - "declarations": [ - { - "constant": false, - "id": 33456, - "mutability": "mutable", - "name": "registered", - "nameLocation": "9747:10:25", - "nodeType": "VariableDeclaration", - "scope": 33499, - "src": "9742:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 33455, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "9742:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33459, - "mutability": "mutable", - "name": "subnet", - "nameLocation": "9774:6:25", - "nodeType": "VariableDeclaration", - "scope": 33499, - "src": "9759:21:25", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - }, - "typeName": { - "id": 33458, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33457, - "name": "Subnet", - "nameLocations": [ - "9759:6:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39084, - "src": "9759:6:25" - }, - "referencedDeclaration": 39084, - "src": "9759:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - } - }, - "visibility": "internal" - } - ], - "id": 33464, - "initialValue": { - "arguments": [ - { - "expression": { - "id": 33461, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "9795:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 33462, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9799:6:25", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "9795:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 33460, - "name": "_getSubnet", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 35113, - 35142 - ], - "referencedDeclaration": 35113, - "src": "9784:10:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$39084_storage_ptr_$", - "typeString": "function (address) view returns (bool,struct Subnet storage pointer)" - } - }, - "id": 33463, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9784:22:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$39084_storage_ptr_$", - "typeString": "tuple(bool,struct Subnet storage pointer)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9741:65:25" - }, - { - "condition": { - "id": 33466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "9821:11:25", - "subExpression": { - "id": 33465, - "name": "registered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33456, - "src": "9822:10:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33471, - "nodeType": "IfStatement", - "src": "9817:70:25", - "trueBody": { - "id": 33470, - "nodeType": "Block", - "src": "9834:53:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33467, - "name": "NotRegisteredSubnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33101, - "src": "9855:19:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 33468, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9855:21:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33469, - "nodeType": "RevertStatement", - "src": "9848:28:25" - } - ] - } - }, - { - "expression": { - "id": 33477, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 33472, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33459, - "src": "9897:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 33474, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "9904:5:25", - "memberName": "stake", - "nodeType": "MemberAccess", - "referencedDeclaration": 39069, - "src": "9897:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "expression": { - "id": 33475, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "9913:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 33476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9917:5:25", - "memberName": "value", - "nodeType": "MemberAccess", - "src": "9913:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9897:25:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33478, - "nodeType": "ExpressionStatement", - "src": "9897:25:25" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - }, - "id": 33483, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 33479, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33459, - "src": "9937:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 33480, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9944:6:25", - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 39063, - "src": "9937:13:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 33481, - "name": "Status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37064, - "src": "9954:6:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Status_$37064_$", - "typeString": "type(enum Status)" - } - }, - "id": 33482, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "9961:8:25", - "memberName": "Inactive", - "nodeType": "MemberAccess", - "referencedDeclaration": 37060, - "src": "9954:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "src": "9937:32:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33498, - "nodeType": "IfStatement", - "src": "9933:154:25", - "trueBody": { - "id": 33497, - "nodeType": "Block", - "src": "9971:116:25", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 33484, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33459, - "src": "9989:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 33485, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9996:5:25", - "memberName": "stake", - "nodeType": "MemberAccess", - "referencedDeclaration": 39069, - "src": "9989:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "id": 33486, - "name": "minStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32998, - "src": "10005:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9989:24:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33496, - "nodeType": "IfStatement", - "src": "9985:92:25", - "trueBody": { - "id": 33495, - "nodeType": "Block", - "src": "10015:62:25", - "statements": [ - { - "expression": { - "id": 33493, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 33488, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33459, - "src": "10033:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 33490, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "10040:6:25", - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 39063, - "src": "10033:13:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 33491, - "name": "Status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37064, - "src": "10049:6:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Status_$37064_$", - "typeString": "type(enum Status)" - } - }, - "id": 33492, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "10056:6:25", - "memberName": "Active", - "nodeType": "MemberAccess", - "referencedDeclaration": 37059, - "src": "10049:13:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "src": "10033:29:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "id": 33494, - "nodeType": "ExpressionStatement", - "src": "10033:29:25" - } - ] - } - } - ] - } - } - ] - }, - "baseFunctions": [ - 37090 - ], - "documentation": { - "id": 33443, - "nodeType": "StructuredDocumentation", - "src": "9551:60:25", - "text": "@notice addStake - add collateral for an existing subnet" - }, - "functionSelector": "5a627dbc", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "addStake", - "nameLocation": "9625:8:25", - "parameters": { - "id": 33444, - "nodeType": "ParameterList", - "parameters": [], - "src": "9633:2:25" - }, - "returnParameters": { - "id": 33445, - "nodeType": "ParameterList", - "parameters": [], - "src": "9653:0:25" - }, - "scope": 35198, - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "id": 33573, - "nodeType": "FunctionDefinition", - "src": "10157:579:25", - "nodes": [], - "body": { - "id": 33572, - "nodeType": "Block", - "src": "10217:519:25", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33508, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33503, - "src": "10231:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 33509, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10241:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10231:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33515, - "nodeType": "IfStatement", - "src": "10227:68:25", - "trueBody": { - "id": 33514, - "nodeType": "Block", - "src": "10244:51:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33511, - "name": "CannotReleaseZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33089, - "src": "10265:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 33512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10265:19:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33513, - "nodeType": "RevertStatement", - "src": "10258:26:25" - } - ] - } - }, - { - "assignments": [ - 33517, - 33520 - ], - "declarations": [ - { - "constant": false, - "id": 33517, - "mutability": "mutable", - "name": "registered", - "nameLocation": "10311:10:25", - "nodeType": "VariableDeclaration", - "scope": 33572, - "src": "10306:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 33516, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10306:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33520, - "mutability": "mutable", - "name": "subnet", - "nameLocation": "10338:6:25", - "nodeType": "VariableDeclaration", - "scope": 33572, - "src": "10323:21:25", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - }, - "typeName": { - "id": 33519, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33518, - "name": "Subnet", - "nameLocations": [ - "10323:6:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39084, - "src": "10323:6:25" - }, - "referencedDeclaration": 39084, - "src": "10323:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - } - }, - "visibility": "internal" - } - ], - "id": 33525, - "initialValue": { - "arguments": [ - { - "expression": { - "id": 33522, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "10359:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 33523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10363:6:25", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "10359:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 33521, - "name": "_getSubnet", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 35113, - 35142 - ], - "referencedDeclaration": 35113, - "src": "10348:10:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$39084_storage_ptr_$", - "typeString": "function (address) view returns (bool,struct Subnet storage pointer)" - } - }, - "id": 33524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10348:22:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$39084_storage_ptr_$", - "typeString": "tuple(bool,struct Subnet storage pointer)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10305:65:25" - }, - { - "condition": { - "id": 33527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "10385:11:25", - "subExpression": { - "id": 33526, - "name": "registered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33517, - "src": "10386:10:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33532, - "nodeType": "IfStatement", - "src": "10381:70:25", - "trueBody": { - "id": 33531, - "nodeType": "Block", - "src": "10398:53:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33528, - "name": "NotRegisteredSubnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33101, - "src": "10419:19:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 33529, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10419:21:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33530, - "nodeType": "RevertStatement", - "src": "10412:28:25" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 33533, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33520, - "src": "10464:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 33534, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10471:5:25", - "memberName": "stake", - "nodeType": "MemberAccess", - "referencedDeclaration": 39069, - "src": "10464:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 33535, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33503, - "src": "10479:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10464:21:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33541, - "nodeType": "IfStatement", - "src": "10460:84:25", - "trueBody": { - "id": 33540, - "nodeType": "Block", - "src": "10487:57:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33537, - "name": "NotEnoughFundsToRelease", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33087, - "src": "10508:23:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 33538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10508:25:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33539, - "nodeType": "RevertStatement", - "src": "10501:32:25" - } - ] - } - }, - { - "expression": { - "id": 33546, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 33542, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33520, - "src": "10554:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 33544, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "10561:5:25", - "memberName": "stake", - "nodeType": "MemberAccess", - "referencedDeclaration": 39069, - "src": "10554:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "id": 33545, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33503, - "src": "10570:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10554:22:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33547, - "nodeType": "ExpressionStatement", - "src": "10554:22:25" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 33548, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33520, - "src": "10591:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 33549, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10598:5:25", - "memberName": "stake", - "nodeType": "MemberAccess", - "referencedDeclaration": 39069, - "src": "10591:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 33550, - "name": "minStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32998, - "src": "10606:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10591:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33560, - "nodeType": "IfStatement", - "src": "10587:85:25", - "trueBody": { - "id": 33559, - "nodeType": "Block", - "src": "10616:56:25", - "statements": [ - { - "expression": { - "id": 33557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 33552, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33520, - "src": "10630:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 33554, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "10637:6:25", - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 39063, - "src": "10630:13:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 33555, - "name": "Status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37064, - "src": "10646:6:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Status_$37064_$", - "typeString": "type(enum Status)" - } - }, - "id": 33556, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "10653:8:25", - "memberName": "Inactive", - "nodeType": "MemberAccess", - "referencedDeclaration": 37060, - "src": "10646:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "src": "10630:31:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "id": 33558, - "nodeType": "ExpressionStatement", - "src": "10630:31:25" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 33569, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33503, - "src": "10722:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "expression": { - "id": 33563, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33520, - "src": "10690:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 33564, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10697:2:25", - "memberName": "id", - "nodeType": "MemberAccess", - "referencedDeclaration": 39076, - "src": "10690:9:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - }, - "id": 33565, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10700:8:25", - "memberName": "getActor", - "nodeType": "MemberAccess", - "referencedDeclaration": 38589, - "src": "10690:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$39060_memory_ptr_$", - "typeString": "function (struct SubnetID memory) pure returns (address)" - } - }, - "id": 33566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10690:20:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 33562, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10682:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_payable_$", - "typeString": "type(address payable)" - }, - "typeName": { - "id": 33561, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10682:8:25", - "stateMutability": "payable", - "typeDescriptions": {} - } - }, - "id": 33567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10682:29:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 33568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10712:9:25", - "memberName": "sendValue", - "nodeType": "MemberAccess", - "referencedDeclaration": 290, - "src": "10682:39:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$", - "typeString": "function (address payable,uint256)" - } - }, - "id": 33570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10682:47:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33571, - "nodeType": "ExpressionStatement", - "src": "10682:47:25" - } - ] - }, - "baseFunctions": [ - 37096 - ], - "documentation": { - "id": 33501, - "nodeType": "StructuredDocumentation", - "src": "10099:53:25", - "text": "@notice release collateral for an existing subnet" - }, - "functionSelector": "45f54485", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 33506, - "kind": "modifierInvocation", - "modifierName": { - "id": 33505, - "name": "nonReentrant", - "nameLocations": [ - "10204:12:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 29445, - "src": "10204:12:25" - }, - "nodeType": "ModifierInvocation", - "src": "10204:12:25" - } - ], - "name": "releaseStake", - "nameLocation": "10166:12:25", - "parameters": { - "id": 33504, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33503, - "mutability": "mutable", - "name": "amount", - "nameLocation": "10187:6:25", - "nodeType": "VariableDeclaration", - "scope": 33573, - "src": "10179:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33502, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10179:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "10178:16:25" - }, - "returnParameters": { - "id": 33507, - "nodeType": "ParameterList", - "parameters": [], - "src": "10217:0:25" - }, - "scope": 35198, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 33617, - "nodeType": "FunctionDefinition", - "src": "10742:359:25", - "nodes": [], - "body": { - "id": 33616, - "nodeType": "Block", - "src": "10804:297:25", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33580, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33575, - "src": "10818:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 33581, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10828:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10818:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33587, - "nodeType": "IfStatement", - "src": "10814:68:25", - "trueBody": { - "id": 33586, - "nodeType": "Block", - "src": "10831:51:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33583, - "name": "CannotReleaseZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33089, - "src": "10852:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 33584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10852:19:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33585, - "nodeType": "RevertStatement", - "src": "10845:26:25" - } - ] - } - }, - { - "assignments": [ - 33589, - 33592 - ], - "declarations": [ - { - "constant": false, - "id": 33589, - "mutability": "mutable", - "name": "registered", - "nameLocation": "10898:10:25", - "nodeType": "VariableDeclaration", - "scope": 33616, - "src": "10893:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 33588, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10893:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33592, - "mutability": "mutable", - "name": "subnet", - "nameLocation": "10925:6:25", - "nodeType": "VariableDeclaration", - "scope": 33616, - "src": "10910:21:25", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - }, - "typeName": { - "id": 33591, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33590, - "name": "Subnet", - "nameLocations": [ - "10910:6:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39084, - "src": "10910:6:25" - }, - "referencedDeclaration": 39084, - "src": "10910:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - } - }, - "visibility": "internal" - } - ], - "id": 33597, - "initialValue": { - "arguments": [ - { - "expression": { - "id": 33594, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "10946:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 33595, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10950:6:25", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "10946:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 33593, - "name": "_getSubnet", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 35113, - 35142 - ], - "referencedDeclaration": 35113, - "src": "10935:10:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$39084_storage_ptr_$", - "typeString": "function (address) view returns (bool,struct Subnet storage pointer)" - } - }, - "id": 33596, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10935:22:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$39084_storage_ptr_$", - "typeString": "tuple(bool,struct Subnet storage pointer)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10892:65:25" - }, - { - "condition": { - "id": 33599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "10971:11:25", - "subExpression": { - "id": 33598, - "name": "registered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33589, - "src": "10972:10:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33604, - "nodeType": "IfStatement", - "src": "10967:70:25", - "trueBody": { - "id": 33603, - "nodeType": "Block", - "src": "10984:53:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33600, - "name": "NotRegisteredSubnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33101, - "src": "11005:19:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 33601, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11005:21:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33602, - "nodeType": "RevertStatement", - "src": "10998:28:25" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 33613, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33575, - "src": "11087:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "expression": { - "id": 33607, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33592, - "src": "11055:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 33608, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11062:2:25", - "memberName": "id", - "nodeType": "MemberAccess", - "referencedDeclaration": 39076, - "src": "11055:9:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - }, - "id": 33609, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11065:8:25", - "memberName": "getActor", - "nodeType": "MemberAccess", - "referencedDeclaration": 38589, - "src": "11055:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$39060_memory_ptr_$", - "typeString": "function (struct SubnetID memory) pure returns (address)" - } - }, - "id": 33610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11055:20:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 33606, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11047:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_payable_$", - "typeString": "type(address payable)" - }, - "typeName": { - "id": 33605, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11047:8:25", - "stateMutability": "payable", - "typeDescriptions": {} - } - }, - "id": 33611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11047:29:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 33612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11077:9:25", - "memberName": "sendValue", - "nodeType": "MemberAccess", - "referencedDeclaration": 290, - "src": "11047:39:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$", - "typeString": "function (address payable,uint256)" - } - }, - "id": 33614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11047:47:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33615, - "nodeType": "ExpressionStatement", - "src": "11047:47:25" - } - ] - }, - "baseFunctions": [ - 37101 - ], - "functionSelector": "f8703bb8", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 33578, - "kind": "modifierInvocation", - "modifierName": { - "id": 33577, - "name": "nonReentrant", - "nameLocations": [ - "10791:12:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 29445, - "src": "10791:12:25" - }, - "nodeType": "ModifierInvocation", - "src": "10791:12:25" - } - ], - "name": "releaseRewards", - "nameLocation": "10751:14:25", - "parameters": { - "id": 33576, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33575, - "mutability": "mutable", - "name": "amount", - "nameLocation": "10774:6:25", - "nodeType": "VariableDeclaration", - "scope": 33617, - "src": "10766:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33574, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10766:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "10765:16:25" - }, - "returnParameters": { - "id": 33579, - "nodeType": "ParameterList", - "parameters": [], - "src": "10804:0:25" - }, - "scope": 35198, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 33674, - "nodeType": "FunctionDefinition", - "src": "11175:440:25", - "nodes": [], - "body": { - "id": 33673, - "nodeType": "Block", - "src": "11200:415:25", - "nodes": [], - "statements": [ - { - "assignments": [ - 33622, - 33625 - ], - "declarations": [ - { - "constant": false, - "id": 33622, - "mutability": "mutable", - "name": "registered", - "nameLocation": "11216:10:25", - "nodeType": "VariableDeclaration", - "scope": 33673, - "src": "11211:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 33621, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11211:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33625, - "mutability": "mutable", - "name": "subnet", - "nameLocation": "11243:6:25", - "nodeType": "VariableDeclaration", - "scope": 33673, - "src": "11228:21:25", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - }, - "typeName": { - "id": 33624, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33623, - "name": "Subnet", - "nameLocations": [ - "11228:6:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39084, - "src": "11228:6:25" - }, - "referencedDeclaration": 39084, - "src": "11228:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - } - }, - "visibility": "internal" - } - ], - "id": 33630, - "initialValue": { - "arguments": [ - { - "expression": { - "id": 33627, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "11264:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 33628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11268:6:25", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "11264:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 33626, - "name": "_getSubnet", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 35113, - 35142 - ], - "referencedDeclaration": 35113, - "src": "11253:10:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$39084_storage_ptr_$", - "typeString": "function (address) view returns (bool,struct Subnet storage pointer)" - } - }, - "id": 33629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11253:22:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$39084_storage_ptr_$", - "typeString": "tuple(bool,struct Subnet storage pointer)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11210:65:25" - }, - { - "condition": { - "id": 33632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "11290:11:25", - "subExpression": { - "id": 33631, - "name": "registered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33622, - "src": "11291:10:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33637, - "nodeType": "IfStatement", - "src": "11286:70:25", - "trueBody": { - "id": 33636, - "nodeType": "Block", - "src": "11303:53:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33633, - "name": "NotRegisteredSubnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33101, - "src": "11324:19:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 33634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11324:21:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33635, - "nodeType": "RevertStatement", - "src": "11317:28:25" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 33638, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33625, - "src": "11369:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 33639, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11376:10:25", - "memberName": "circSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 39073, - "src": "11369:17:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 33640, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11389:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11369:21:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33646, - "nodeType": "IfStatement", - "src": "11365:85:25", - "trueBody": { - "id": 33645, - "nodeType": "Block", - "src": "11392:58:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33642, - "name": "NotEmptySubnetCircSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33099, - "src": "11413:24:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 33643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11413:26:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33644, - "nodeType": "RevertStatement", - "src": "11406:33:25" - } - ] - } - }, - { - "assignments": [ - 33648 - ], - "declarations": [ - { - "constant": false, - "id": 33648, - "mutability": "mutable", - "name": "stake", - "nameLocation": "11468:5:25", - "nodeType": "VariableDeclaration", - "scope": 33673, - "src": "11460:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33647, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11460:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 33651, - "initialValue": { - "expression": { - "id": 33649, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33625, - "src": "11476:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 33650, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11483:5:25", - "memberName": "stake", - "nodeType": "MemberAccess", - "referencedDeclaration": 39069, - "src": "11476:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11460:28:25" - }, - { - "expression": { - "id": 33654, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 33652, - "name": "totalSubnets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32995, - "src": "11499:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "hexValue": "31", - "id": 33653, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11515:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "11499:17:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 33655, - "nodeType": "ExpressionStatement", - "src": "11499:17:25" - }, - { - "expression": { - "id": 33662, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "11527:34:25", - "subExpression": { - "baseExpression": { - "id": 33656, - "name": "subnets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33004, - "src": "11534:7:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Subnet_$39084_storage_$", - "typeString": "mapping(bytes32 => struct Subnet storage ref)" - } - }, - "id": 33661, - "indexExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "expression": { - "id": 33657, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33625, - "src": "11542:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 33658, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11549:2:25", - "memberName": "id", - "nodeType": "MemberAccess", - "referencedDeclaration": 39076, - "src": "11542:9:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - }, - "id": 33659, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11552:6:25", - "memberName": "toHash", - "nodeType": "MemberAccess", - "referencedDeclaration": 38484, - "src": "11542:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$39060_memory_ptr_$", - "typeString": "function (struct SubnetID memory) pure returns (bytes32)" - } - }, - "id": 33660, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11542:18:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11534:27:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage", - "typeString": "struct Subnet storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33663, - "nodeType": "ExpressionStatement", - "src": "11527:34:25" - }, - { - "expression": { - "arguments": [ - { - "id": 33670, - "name": "stake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33648, - "src": "11602:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "expression": { - "id": 33666, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "11580:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 33667, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11584:6:25", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "11580:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 33665, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11572:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_payable_$", - "typeString": "type(address payable)" - }, - "typeName": { - "id": 33664, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11572:8:25", - "stateMutability": "payable", - "typeDescriptions": {} - } - }, - "id": 33668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11572:19:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 33669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11592:9:25", - "memberName": "sendValue", - "nodeType": "MemberAccess", - "referencedDeclaration": 290, - "src": "11572:29:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$", - "typeString": "function (address payable,uint256)" - } - }, - "id": 33671, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11572:36:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33672, - "nodeType": "ExpressionStatement", - "src": "11572:36:25" - } - ] - }, - "baseFunctions": [ - 37105 - ], - "documentation": { - "id": 33618, - "nodeType": "StructuredDocumentation", - "src": "11107:63:25", - "text": "@notice kill an existing subnet. It's balance must be empty" - }, - "functionSelector": "41c0e1b5", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "kill", - "nameLocation": "11184:4:25", - "parameters": { - "id": 33619, - "nodeType": "ParameterList", - "parameters": [], - "src": "11188:2:25" - }, - "returnParameters": { - "id": 33620, - "nodeType": "ParameterList", - "parameters": [], - "src": "11200:0:25" - }, - "scope": 35198, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 33860, - "nodeType": "FunctionDefinition", - "src": "11748:1999:25", - "nodes": [], - "body": { - "id": 33859, - "nodeType": "Block", - "src": "11819:1928:25", - "nodes": [], - "statements": [ - { - "condition": { - "id": 33682, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "11833:12:25", - "subExpression": { - "id": 33681, - "name": "initialized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33069, - "src": "11834:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33687, - "nodeType": "IfStatement", - "src": "11829:66:25", - "trueBody": { - "id": 33686, - "nodeType": "Block", - "src": "11847:48:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33683, - "name": "NotInitialized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33095, - "src": "11868:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 33684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11868:16:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33685, - "nodeType": "RevertStatement", - "src": "11861:23:25" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 33696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "expression": { - "id": 33688, - "name": "commit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33678, - "src": "11908:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_calldata_ptr", - "typeString": "struct BottomUpCheckpoint calldata" - } - }, - "id": 33689, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11915:6:25", - "memberName": "source", - "nodeType": "MemberAccess", - "referencedDeclaration": 38920, - "src": "11908:13:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_calldata_ptr", - "typeString": "struct SubnetID calldata" - } - }, - "id": 33690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11922:8:25", - "memberName": "getActor", - "nodeType": "MemberAccess", - "referencedDeclaration": 38589, - "src": "11908:22:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$39060_memory_ptr_$", - "typeString": "function (struct SubnetID memory) pure returns (address)" - } - }, - "id": 33691, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11908:24:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 33692, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11933:9:25", - "memberName": "normalize", - "nodeType": "MemberAccess", - "referencedDeclaration": 90, - "src": "11908:34:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_address_$attached_to$_t_address_$", - "typeString": "function (address) view returns (address)" - } - }, - "id": 33693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11908:36:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "expression": { - "id": 33694, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "11948:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 33695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11952:6:25", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "11948:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "11908:50:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33701, - "nodeType": "IfStatement", - "src": "11904:113:25", - "trueBody": { - "id": 33700, - "nodeType": "Block", - "src": "11960:57:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33697, - "name": "InvalidCheckpointSource", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33113, - "src": "11981:23:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 33698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11981:25:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33699, - "nodeType": "RevertStatement", - "src": "11974:32:25" - } - ] - } - }, - { - "assignments": [ - null, - 33704 - ], - "declarations": [ - null, - { - "constant": false, - "id": 33704, - "mutability": "mutable", - "name": "subnet", - "nameLocation": "12045:6:25", - "nodeType": "VariableDeclaration", - "scope": 33859, - "src": "12030:21:25", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - }, - "typeName": { - "id": 33703, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33702, - "name": "Subnet", - "nameLocations": [ - "12030:6:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39084, - "src": "12030:6:25" - }, - "referencedDeclaration": 39084, - "src": "12030:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - } - }, - "visibility": "internal" - } - ], - "id": 33709, - "initialValue": { - "arguments": [ - { - "expression": { - "id": 33706, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "12066:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 33707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12070:6:25", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "12066:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 33705, - "name": "_getSubnet", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 35113, - 35142 - ], - "referencedDeclaration": 35113, - "src": "12055:10:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$39084_storage_ptr_$", - "typeString": "function (address) view returns (bool,struct Subnet storage pointer)" - } - }, - "id": 33708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12055:22:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$39084_storage_ptr_$", - "typeString": "tuple(bool,struct Subnet storage pointer)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12027:50:25" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - }, - "id": 33714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 33710, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33704, - "src": "12091:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 33711, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12098:6:25", - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 39063, - "src": "12091:13:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "expression": { - "id": 33712, - "name": "Status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37064, - "src": "12108:6:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Status_$37064_$", - "typeString": "type(enum Status)" - } - }, - "id": 33713, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "12115:6:25", - "memberName": "Active", - "nodeType": "MemberAccess", - "referencedDeclaration": 37059, - "src": "12108:13:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "src": "12091:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33719, - "nodeType": "IfStatement", - "src": "12087:85:25", - "trueBody": { - "id": 33718, - "nodeType": "Block", - "src": "12123:49:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33715, - "name": "SubnetNotActive", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33125, - "src": "12144:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 33716, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12144:17:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33717, - "nodeType": "RevertStatement", - "src": "12137:24:25" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 33725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "expression": { - "id": 33720, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33704, - "src": "12185:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 33721, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12192:14:25", - "memberName": "prevCheckpoint", - "nodeType": "MemberAccess", - "referencedDeclaration": 39079, - "src": "12185:21:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage", - "typeString": "struct BottomUpCheckpoint storage ref" - } - }, - "id": 33722, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12207:5:25", - "memberName": "epoch", - "nodeType": "MemberAccess", - "referencedDeclaration": 38922, - "src": "12185:27:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "expression": { - "id": 33723, - "name": "commit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33678, - "src": "12216:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_calldata_ptr", - "typeString": "struct BottomUpCheckpoint calldata" - } - }, - "id": 33724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12223:5:25", - "memberName": "epoch", - "nodeType": "MemberAccess", - "referencedDeclaration": 38922, - "src": "12216:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "12185:43:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33730, - "nodeType": "IfStatement", - "src": "12181:105:25", - "trueBody": { - "id": 33729, - "nodeType": "Block", - "src": "12230:56:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33726, - "name": "InvalidCheckpointEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33111, - "src": "12251:22:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 33727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12251:24:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33728, - "nodeType": "RevertStatement", - "src": "12244:31:25" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 33734, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 33731, - "name": "commit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33678, - "src": "12299:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_calldata_ptr", - "typeString": "struct BottomUpCheckpoint calldata" - } - }, - "id": 33732, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12306:8:25", - "memberName": "prevHash", - "nodeType": "MemberAccess", - "referencedDeclaration": 38934, - "src": "12299:15:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 33733, - "name": "EMPTY_HASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37031, - "src": "12318:10:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "12299:29:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33748, - "nodeType": "IfStatement", - "src": "12295:182:25", - "trueBody": { - "id": 33747, - "nodeType": "Block", - "src": "12330:147:25", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 33741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 33735, - "name": "commit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33678, - "src": "12348:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_calldata_ptr", - "typeString": "struct BottomUpCheckpoint calldata" - } - }, - "id": 33736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12355:8:25", - "memberName": "prevHash", - "nodeType": "MemberAccess", - "referencedDeclaration": 38934, - "src": "12348:15:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "expression": { - "id": 33737, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33704, - "src": "12367:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 33738, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12374:14:25", - "memberName": "prevCheckpoint", - "nodeType": "MemberAccess", - "referencedDeclaration": 39079, - "src": "12367:21:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage", - "typeString": "struct BottomUpCheckpoint storage ref" - } - }, - "id": 33739, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12389:6:25", - "memberName": "toHash", - "nodeType": "MemberAccess", - "referencedDeclaration": 37331, - "src": "12367:28:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_BottomUpCheckpoint_$38937_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_BottomUpCheckpoint_$38937_memory_ptr_$", - "typeString": "function (struct BottomUpCheckpoint memory) pure returns (bytes32)" - } - }, - "id": 33740, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12367:30:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "12348:49:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33746, - "nodeType": "IfStatement", - "src": "12344:123:25", - "trueBody": { - "id": 33745, - "nodeType": "Block", - "src": "12399:68:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33742, - "name": "InconsistentPrevCheckpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33107, - "src": "12424:26:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 33743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12424:28:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33744, - "nodeType": "RevertStatement", - "src": "12417:35:25" - } - ] - } - } - ] - } - }, - { - "assignments": [ - 33750, - 33752, - 33755 - ], - "declarations": [ - { - "constant": false, - "id": 33750, - "mutability": "mutable", - "name": "checkpointExists", - "nameLocation": "12573:16:25", - "nodeType": "VariableDeclaration", - "scope": 33859, - "src": "12568:21:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 33749, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12568:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33752, - "mutability": "mutable", - "name": "nextCheckEpoch", - "nameLocation": "12610:14:25", - "nodeType": "VariableDeclaration", - "scope": 33859, - "src": "12603:21:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 33751, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "12603:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33755, - "mutability": "mutable", - "name": "checkpoint", - "nameLocation": "12665:10:25", - "nodeType": "VariableDeclaration", - "scope": 33859, - "src": "12638:37:25", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint" - }, - "typeName": { - "id": 33754, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33753, - "name": "BottomUpCheckpoint", - "nameLocations": [ - "12638:18:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38937, - "src": "12638:18:25" - }, - "referencedDeclaration": 38937, - "src": "12638:18:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint" - } - }, - "visibility": "internal" - } - ], - "id": 33758, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33756, - "name": "_getCurrentBottomUpCheckpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35048, - "src": "12688:29:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$_t_uint64_$_t_struct$_BottomUpCheckpoint_$38937_storage_ptr_$", - "typeString": "function () view returns (bool,uint64,struct BottomUpCheckpoint storage pointer)" - } - }, - "id": 33757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12688:31:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint64_$_t_struct$_BottomUpCheckpoint_$38937_storage_ptr_$", - "typeString": "tuple(bool,uint64,struct BottomUpCheckpoint storage pointer)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12554:165:25" - }, - { - "condition": { - "id": 33760, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "12795:17:25", - "subExpression": { - "id": 33759, - "name": "checkpointExists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33750, - "src": "12796:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33774, - "nodeType": "IfStatement", - "src": "12791:127:25", - "trueBody": { - "id": 33773, - "nodeType": "Block", - "src": "12814:104:25", - "statements": [ - { - "expression": { - "id": 33765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 33761, - "name": "checkpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33755, - "src": "12828:10:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint storage pointer" - } - }, - "id": 33763, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "12839:6:25", - "memberName": "source", - "nodeType": "MemberAccess", - "referencedDeclaration": 38920, - "src": "12828:17:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 33764, - "name": "_networkName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32992, - "src": "12848:12:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - }, - "src": "12828:32:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - }, - "id": 33766, - "nodeType": "ExpressionStatement", - "src": "12828:32:25" - }, - { - "expression": { - "id": 33771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 33767, - "name": "checkpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33755, - "src": "12874:10:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint storage pointer" - } - }, - "id": 33769, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "12885:5:25", - "memberName": "epoch", - "nodeType": "MemberAccess", - "referencedDeclaration": 38922, - "src": "12874:16:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 33770, - "name": "nextCheckEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33752, - "src": "12893:14:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "12874:33:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 33772, - "nodeType": "ExpressionStatement", - "src": "12874:33:25" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 33778, - "name": "commit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33678, - "src": "12953:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_calldata_ptr", - "typeString": "struct BottomUpCheckpoint calldata" - } - }, - { - "id": 33779, - "name": "_children", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33057, - "src": "12961:9:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_bytes32_$_t_array$_t_uint256_$2_storage_$_$", - "typeString": "mapping(uint64 => mapping(bytes32 => uint256[2] storage ref))" - } - }, - { - "id": 33780, - "name": "_checks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33066, - "src": "12972:7:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_bool_$_$_$", - "typeString": "mapping(uint64 => mapping(bytes32 => mapping(bytes32 => bool)))" - } - }, - { - "id": 33781, - "name": "nextCheckEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33752, - "src": "12981:14:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_calldata_ptr", - "typeString": "struct BottomUpCheckpoint calldata" - }, - { - "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_bytes32_$_t_array$_t_uint256_$2_storage_$_$", - "typeString": "mapping(uint64 => mapping(bytes32 => uint256[2] storage ref))" - }, - { - "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_bool_$_$_$", - "typeString": "mapping(uint64 => mapping(bytes32 => mapping(bytes32 => bool)))" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "id": 33775, - "name": "checkpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33755, - "src": "12928:10:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint storage pointer" - } - }, - "id": 33777, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12939:13:25", - "memberName": "setChildCheck", - "nodeType": "MemberAccess", - "referencedDeclaration": 37512, - "src": "12928:24:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_BottomUpCheckpoint_$38937_storage_ptr_$_t_struct$_BottomUpCheckpoint_$38937_memory_ptr_$_t_mapping$_t_uint64_$_t_mapping$_t_bytes32_$_t_array$_t_uint256_$2_storage_$_$_$_t_mapping$_t_uint64_$_t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_bool_$_$_$_$_t_uint64_$returns$__$attached_to$_t_struct$_BottomUpCheckpoint_$38937_storage_ptr_$", - "typeString": "function (struct BottomUpCheckpoint storage pointer,struct BottomUpCheckpoint memory,mapping(uint64 => mapping(bytes32 => uint256[2] storage ref)),mapping(uint64 => mapping(bytes32 => mapping(bytes32 => bool))),uint64)" - } - }, - "id": 33782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12928:68:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33783, - "nodeType": "ExpressionStatement", - "src": "12928:68:25" - }, - { - "assignments": [ - 33785 - ], - "declarations": [ - { - "constant": false, - "id": 33785, - "mutability": "mutable", - "name": "totalValue", - "nameLocation": "13015:10:25", - "nodeType": "VariableDeclaration", - "scope": 33859, - "src": "13007:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33784, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13007:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 33787, - "initialValue": { - "hexValue": "30", - "id": 33786, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13028:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "13007:22:25" - }, - { - "assignments": [ - 33789 - ], - "declarations": [ - { - "constant": false, - "id": 33789, - "mutability": "mutable", - "name": "crossMsgLength", - "nameLocation": "13047:14:25", - "nodeType": "VariableDeclaration", - "scope": 33859, - "src": "13039:22:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33788, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13039:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 33793, - "initialValue": { - "expression": { - "expression": { - "id": 33790, - "name": "commit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33678, - "src": "13064:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_calldata_ptr", - "typeString": "struct BottomUpCheckpoint calldata" - } - }, - "id": 33791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13071:9:25", - "memberName": "crossMsgs", - "nodeType": "MemberAccess", - "referencedDeclaration": 38928, - "src": "13064:16:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct CrossMsg calldata[] calldata" - } - }, - "id": 33792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13081:6:25", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "13064:23:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13039:48:25" - }, - { - "body": { - "id": 33814, - "nodeType": "Block", - "src": "13139:131:25", - "statements": [ - { - "expression": { - "id": 33808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 33801, - "name": "totalValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33785, - "src": "13153:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "expression": { - "expression": { - "baseExpression": { - "expression": { - "id": 33802, - "name": "commit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33678, - "src": "13167:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_calldata_ptr", - "typeString": "struct BottomUpCheckpoint calldata" - } - }, - "id": 33803, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13174:9:25", - "memberName": "crossMsgs", - "nodeType": "MemberAccess", - "referencedDeclaration": 38928, - "src": "13167:16:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct CrossMsg calldata[] calldata" - } - }, - "id": 33805, - "indexExpression": { - "id": 33804, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33795, - "src": "13184:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13167:19:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_calldata_ptr", - "typeString": "struct CrossMsg calldata" - } - }, - "id": 33806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13187:7:25", - "memberName": "message", - "nodeType": "MemberAccess", - "referencedDeclaration": 38954, - "src": "13167:27:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$38972_calldata_ptr", - "typeString": "struct StorableMsg calldata" - } - }, - "id": 33807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13195:5:25", - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": 38965, - "src": "13167:33:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13153:47:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33809, - "nodeType": "ExpressionStatement", - "src": "13153:47:25" - }, - { - "id": 33813, - "nodeType": "UncheckedBlock", - "src": "13214:46:25", - "statements": [ - { - "expression": { - "id": 33811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "13242:3:25", - "subExpression": { - "id": 33810, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33795, - "src": "13244:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33812, - "nodeType": "ExpressionStatement", - "src": "13242:3:25" - } - ] - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33798, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33795, - "src": "13117:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 33799, - "name": "crossMsgLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33789, - "src": "13121:14:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13117:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33815, - "initializationExpression": { - "assignments": [ - 33795 - ], - "declarations": [ - { - "constant": false, - "id": 33795, - "mutability": "mutable", - "name": "i", - "nameLocation": "13110:1:25", - "nodeType": "VariableDeclaration", - "scope": 33815, - "src": "13102:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33794, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13102:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 33797, - "initialValue": { - "hexValue": "30", - "id": 33796, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13114:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "13102:13:25" - }, - "nodeType": "ForStatement", - "src": "13097:173:25" - }, - { - "expression": { - "id": 33822, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 33816, - "name": "totalValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33785, - "src": "13280:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 33817, - "name": "commit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33678, - "src": "13294:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_calldata_ptr", - "typeString": "struct BottomUpCheckpoint calldata" - } - }, - "id": 33818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13301:3:25", - "memberName": "fee", - "nodeType": "MemberAccess", - "referencedDeclaration": 38924, - "src": "13294:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "expression": { - "id": 33819, - "name": "checkpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33755, - "src": "13307:10:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint storage pointer" - } - }, - "id": 33820, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13318:3:25", - "memberName": "fee", - "nodeType": "MemberAccess", - "referencedDeclaration": 38924, - "src": "13307:14:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13294:27:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13280:41:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33823, - "nodeType": "ExpressionStatement", - "src": "13280:41:25" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 33824, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33704, - "src": "13456:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 33825, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13463:10:25", - "memberName": "circSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 39073, - "src": "13456:17:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 33826, - "name": "totalValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33785, - "src": "13476:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13456:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33832, - "nodeType": "IfStatement", - "src": "13452:95:25", - "trueBody": { - "id": 33831, - "nodeType": "Block", - "src": "13488:59:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33828, - "name": "NotEnoughSubnetCircSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33091, - "src": "13509:25:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 33829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13509:27:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33830, - "nodeType": "RevertStatement", - "src": "13502:34:25" - } - ] - } - }, - { - "expression": { - "id": 33837, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 33833, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33704, - "src": "13557:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 33835, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "13564:10:25", - "memberName": "circSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 39073, - "src": "13557:17:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "id": 33836, - "name": "totalValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33785, - "src": "13578:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13557:31:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33838, - "nodeType": "ExpressionStatement", - "src": "13557:31:25" - }, - { - "expression": { - "id": 33843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 33839, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33704, - "src": "13599:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 33841, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "13606:14:25", - "memberName": "prevCheckpoint", - "nodeType": "MemberAccess", - "referencedDeclaration": 39079, - "src": "13599:21:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage", - "typeString": "struct BottomUpCheckpoint storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 33842, - "name": "commit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33678, - "src": "13623:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_calldata_ptr", - "typeString": "struct BottomUpCheckpoint calldata" - } - }, - "src": "13599:30:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage", - "typeString": "struct BottomUpCheckpoint storage ref" - } - }, - "id": 33844, - "nodeType": "ExpressionStatement", - "src": "13599:30:25" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 33846, - "name": "commit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33678, - "src": "13655:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_calldata_ptr", - "typeString": "struct BottomUpCheckpoint calldata" - } - }, - "id": 33847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13662:6:25", - "memberName": "source", - "nodeType": "MemberAccess", - "referencedDeclaration": 38920, - "src": "13655:13:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_calldata_ptr", - "typeString": "struct SubnetID calldata" - } - }, - { - "expression": { - "id": 33848, - "name": "commit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33678, - "src": "13670:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_calldata_ptr", - "typeString": "struct BottomUpCheckpoint calldata" - } - }, - "id": 33849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13677:9:25", - "memberName": "crossMsgs", - "nodeType": "MemberAccess", - "referencedDeclaration": 38928, - "src": "13670:16:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct CrossMsg calldata[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SubnetID_$39060_calldata_ptr", - "typeString": "struct SubnetID calldata" - }, - { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct CrossMsg calldata[] calldata" - } - ], - "id": 33845, - "name": "_applyMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35014, - "src": "13640:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_SubnetID_$39060_memory_ptr_$_t_array$_t_struct$_CrossMsg_$38957_memory_ptr_$dyn_memory_ptr_$returns$__$", - "typeString": "function (struct SubnetID memory,struct CrossMsg memory[] memory)" - } - }, - "id": 33850, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13640:47:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33851, - "nodeType": "ExpressionStatement", - "src": "13640:47:25" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 33853, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "13717:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 33854, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13721:6:25", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "13717:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 33855, - "name": "commit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33678, - "src": "13729:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_calldata_ptr", - "typeString": "struct BottomUpCheckpoint calldata" - } - }, - "id": 33856, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13736:3:25", - "memberName": "fee", - "nodeType": "MemberAccess", - "referencedDeclaration": 38924, - "src": "13729:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 33852, - "name": "_distributeRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35078, - "src": "13698:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 33857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13698:42:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33858, - "nodeType": "ExpressionStatement", - "src": "13698:42:25" - } - ] - }, - "baseFunctions": [ - 37112 - ], - "documentation": { - "id": 33675, - "nodeType": "StructuredDocumentation", - "src": "11621:122:25", - "text": "@notice submit a checkpoint in the gateway. Called from a subnet once the checkpoint is voted for and reaches majority" - }, - "functionSelector": "d4e149a8", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "commitChildCheck", - "nameLocation": "11757:16:25", - "parameters": { - "id": 33679, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33678, - "mutability": "mutable", - "name": "commit", - "nameLocation": "11802:6:25", - "nodeType": "VariableDeclaration", - "scope": 33860, - "src": "11774:34:25", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_calldata_ptr", - "typeString": "struct BottomUpCheckpoint" - }, - "typeName": { - "id": 33677, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33676, - "name": "BottomUpCheckpoint", - "nameLocations": [ - "11774:18:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38937, - "src": "11774:18:25" - }, - "referencedDeclaration": 38937, - "src": "11774:18:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint" - } - }, - "visibility": "internal" - } - ], - "src": "11773:36:25" - }, - "returnParameters": { - "id": 33680, - "nodeType": "ParameterList", - "parameters": [], - "src": "11819:0:25" - }, - "scope": 35198, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 33901, - "nodeType": "FunctionDefinition", - "src": "14012:363:25", - "nodes": [], - "body": { - "id": 33900, - "nodeType": "Block", - "src": "14115:260:25", - "nodes": [], - "statements": [ - { - "assignments": [ - 33876 - ], - "declarations": [ - { - "constant": false, - "id": 33876, - "mutability": "mutable", - "name": "crossMsg", - "nameLocation": "14141:8:25", - "nodeType": "VariableDeclaration", - "scope": 33900, - "src": "14125:24:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg" - }, - "typeName": { - "id": 33875, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33874, - "name": "CrossMsg", - "nameLocations": [ - "14125:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38957, - "src": "14125:8:25" - }, - "referencedDeclaration": 38957, - "src": "14125:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_storage_ptr", - "typeString": "struct CrossMsg" - } - }, - "visibility": "internal" - } - ], - "id": 33888, - "initialValue": { - "arguments": [ - { - "id": 33879, - "name": "subnetId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33864, - "src": "14181:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_calldata_ptr", - "typeString": "struct SubnetID calldata" - } - }, - { - "expression": { - "id": 33880, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "14191:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 33881, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14195:6:25", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "14191:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 33882, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33867, - "src": "14203:2:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_FvmAddress_$39034_calldata_ptr", - "typeString": "struct FvmAddress calldata" - } - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33886, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 33883, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "14207:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 33884, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14211:5:25", - "memberName": "value", - "nodeType": "MemberAccess", - "src": "14207:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 33885, - "name": "crossMsgFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33035, - "src": "14219:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14207:23:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SubnetID_$39060_calldata_ptr", - "typeString": "struct SubnetID calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_struct$_FvmAddress_$39034_calldata_ptr", - "typeString": "struct FvmAddress calldata" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 33877, - "name": "CrossMsgHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37840, - "src": "14152:14:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_CrossMsgHelper_$37840_$", - "typeString": "type(library CrossMsgHelper)" - } - }, - "id": 33878, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14167:13:25", - "memberName": "createFundMsg", - "nodeType": "MemberAccess", - "referencedDeclaration": 37627, - "src": "14152:28:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39060_memory_ptr_$_t_address_$_t_struct$_FvmAddress_$39034_memory_ptr_$_t_uint256_$returns$_t_struct$_CrossMsg_$38957_memory_ptr_$", - "typeString": "function (struct SubnetID memory,address,struct FvmAddress memory,uint256) pure returns (struct CrossMsg memory)" - } - }, - "id": 33887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14152:79:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14125:106:25" - }, - { - "expression": { - "arguments": [ - { - "id": 33890, - "name": "crossMsg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33876, - "src": "14296:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - ], - "id": 33889, - "name": "_commitTopDownMsg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34657, - "src": "14278:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_CrossMsg_$38957_memory_ptr_$returns$__$", - "typeString": "function (struct CrossMsg memory)" - } - }, - "id": 33891, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14278:27:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33892, - "nodeType": "ExpressionStatement", - "src": "14278:27:25" - }, - { - "expression": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 33894, - "name": "subnetId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33864, - "src": "14335:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_calldata_ptr", - "typeString": "struct SubnetID calldata" - } - }, - "id": 33895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14344:8:25", - "memberName": "getActor", - "nodeType": "MemberAccess", - "referencedDeclaration": 38589, - "src": "14335:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$39060_memory_ptr_$", - "typeString": "function (struct SubnetID memory) pure returns (address)" - } - }, - "id": 33896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14335:19:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 33897, - "name": "crossMsgFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33035, - "src": "14356:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 33893, - "name": "_distributeRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35078, - "src": "14316:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 33898, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14316:52:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33899, - "nodeType": "ExpressionStatement", - "src": "14316:52:25" - } - ] - }, - "baseFunctions": [ - 37122 - ], - "documentation": { - "id": 33861, - "nodeType": "StructuredDocumentation", - "src": "13753:254:25", - "text": "@notice fund - commit a top-down message releasing funds in a child subnet. There is an associated fee that gets distributed to validators in the subnet as well\n @param subnetId - subnet to fund\n @param to - the address to send funds to" - }, - "functionSelector": "18f44b70", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 33870, - "kind": "modifierInvocation", - "modifierName": { - "id": 33869, - "name": "signableOnly", - "nameLocations": [ - "14095:12:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 33185, - "src": "14095:12:25" - }, - "nodeType": "ModifierInvocation", - "src": "14095:12:25" - }, - { - "id": 33872, - "kind": "modifierInvocation", - "modifierName": { - "id": 33871, - "name": "hasFee", - "nameLocations": [ - "14108:6:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 33199, - "src": "14108:6:25" - }, - "nodeType": "ModifierInvocation", - "src": "14108:6:25" - } - ], - "name": "fund", - "nameLocation": "14021:4:25", - "parameters": { - "id": 33868, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33864, - "mutability": "mutable", - "name": "subnetId", - "nameLocation": "14044:8:25", - "nodeType": "VariableDeclaration", - "scope": 33901, - "src": "14026:26:25", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_calldata_ptr", - "typeString": "struct SubnetID" - }, - "typeName": { - "id": 33863, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33862, - "name": "SubnetID", - "nameLocations": [ - "14026:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39060, - "src": "14026:8:25" - }, - "referencedDeclaration": 39060, - "src": "14026:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage_ptr", - "typeString": "struct SubnetID" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33867, - "mutability": "mutable", - "name": "to", - "nameLocation": "14074:2:25", - "nodeType": "VariableDeclaration", - "scope": 33901, - "src": "14054:22:25", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_FvmAddress_$39034_calldata_ptr", - "typeString": "struct FvmAddress" - }, - "typeName": { - "id": 33866, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33865, - "name": "FvmAddress", - "nameLocations": [ - "14054:10:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39034, - "src": "14054:10:25" - }, - "referencedDeclaration": 39034, - "src": "14054:10:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_FvmAddress_$39034_storage_ptr", - "typeString": "struct FvmAddress" - } - }, - "visibility": "internal" - } - ], - "src": "14025:52:25" - }, - "returnParameters": { - "id": 33873, - "nodeType": "ParameterList", - "parameters": [], - "src": "14115:0:25" - }, - "scope": 35198, - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "id": 33932, - "nodeType": "FunctionDefinition", - "src": "14532:305:25", - "nodes": [], - "body": { - "id": 33931, - "nodeType": "Block", - "src": "14610:227:25", - "nodes": [], - "statements": [ - { - "assignments": [ - 33914 - ], - "declarations": [ - { - "constant": false, - "id": 33914, - "mutability": "mutable", - "name": "crossMsg", - "nameLocation": "14636:8:25", - "nodeType": "VariableDeclaration", - "scope": 33931, - "src": "14620:24:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg" - }, - "typeName": { - "id": 33913, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33912, - "name": "CrossMsg", - "nameLocations": [ - "14620:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38957, - "src": "14620:8:25" - }, - "referencedDeclaration": 38957, - "src": "14620:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_storage_ptr", - "typeString": "struct CrossMsg" - } - }, - "visibility": "internal" - } - ], - "id": 33926, - "initialValue": { - "arguments": [ - { - "id": 33917, - "name": "_networkName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32992, - "src": "14692:12:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - }, - { - "expression": { - "id": 33918, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "14718:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 33919, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14722:6:25", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "14718:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 33920, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33905, - "src": "14742:2:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_FvmAddress_$39034_calldata_ptr", - "typeString": "struct FvmAddress calldata" - } - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33924, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 33921, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "14758:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 33922, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14762:5:25", - "memberName": "value", - "nodeType": "MemberAccess", - "src": "14758:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 33923, - "name": "crossMsgFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33035, - "src": "14770:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14758:23:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_struct$_FvmAddress_$39034_calldata_ptr", - "typeString": "struct FvmAddress calldata" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 33915, - "name": "CrossMsgHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37840, - "src": "14647:14:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_CrossMsgHelper_$37840_$", - "typeString": "type(library CrossMsgHelper)" - } - }, - "id": 33916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14662:16:25", - "memberName": "createReleaseMsg", - "nodeType": "MemberAccess", - "referencedDeclaration": 37587, - "src": "14647:31:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39060_memory_ptr_$_t_address_$_t_struct$_FvmAddress_$39034_memory_ptr_$_t_uint256_$returns$_t_struct$_CrossMsg_$38957_memory_ptr_$", - "typeString": "function (struct SubnetID memory,address,struct FvmAddress memory,uint256) pure returns (struct CrossMsg memory)" - } - }, - "id": 33925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14647:144:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14620:171:25" - }, - { - "expression": { - "arguments": [ - { - "id": 33928, - "name": "crossMsg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33914, - "src": "14821:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - ], - "id": 33927, - "name": "_commitBottomUpMsg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34833, - "src": "14802:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_CrossMsg_$38957_memory_ptr_$returns$__$", - "typeString": "function (struct CrossMsg memory)" - } - }, - "id": 33929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14802:28:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33930, - "nodeType": "ExpressionStatement", - "src": "14802:28:25" - } - ] - }, - "baseFunctions": [ - 37129 - ], - "documentation": { - "id": 33902, - "nodeType": "StructuredDocumentation", - "src": "14381:146:25", - "text": "@notice release method locks funds in the current subnet and sends a cross message up the hierarchy to the parent gateway to release the funds" - }, - "functionSelector": "6b2c1eef", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 33908, - "kind": "modifierInvocation", - "modifierName": { - "id": 33907, - "name": "signableOnly", - "nameLocations": [ - "14590:12:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 33185, - "src": "14590:12:25" - }, - "nodeType": "ModifierInvocation", - "src": "14590:12:25" - }, - { - "id": 33910, - "kind": "modifierInvocation", - "modifierName": { - "id": 33909, - "name": "hasFee", - "nameLocations": [ - "14603:6:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 33199, - "src": "14603:6:25" - }, - "nodeType": "ModifierInvocation", - "src": "14603:6:25" - } - ], - "name": "release", - "nameLocation": "14541:7:25", - "parameters": { - "id": 33906, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33905, - "mutability": "mutable", - "name": "to", - "nameLocation": "14569:2:25", - "nodeType": "VariableDeclaration", - "scope": 33932, - "src": "14549:22:25", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_FvmAddress_$39034_calldata_ptr", - "typeString": "struct FvmAddress" - }, - "typeName": { - "id": 33904, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 33903, - "name": "FvmAddress", - "nameLocations": [ - "14549:10:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39034, - "src": "14549:10:25" - }, - "referencedDeclaration": 39034, - "src": "14549:10:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_FvmAddress_$39034_storage_ptr", - "typeString": "struct FvmAddress" - } - }, - "visibility": "internal" - } - ], - "src": "14548:24:25" - }, - "returnParameters": { - "id": 33911, - "nodeType": "ParameterList", - "parameters": [], - "src": "14610:0:25" - }, - "scope": 35198, - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "id": 34024, - "nodeType": "FunctionDefinition", - "src": "15027:2008:25", - "nodes": [], - "body": { - "id": 34023, - "nodeType": "Block", - "src": "15130:1905:25", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33948, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 33944, - "name": "validators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33936, - "src": "15144:10:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 33945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15155:6:25", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "15144:17:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "expression": { - "id": 33946, - "name": "weights", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33939, - "src": "15165:7:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 33947, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15173:6:25", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "15165:14:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15144:35:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33953, - "nodeType": "IfStatement", - "src": "15140:109:25", - "trueBody": { - "id": 33952, - "nodeType": "Block", - "src": "15181:68:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33949, - "name": "ValidatorsAndWeightsLengthMismatch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33131, - "src": "15202:34:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 33950, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15202:36:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33951, - "nodeType": "RevertStatement", - "src": "15195:43:25" - } - ] - } - }, - { - "expression": { - "id": 33955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "15307:16:25", - "subExpression": { - "id": 33954, - "name": "validatorNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33048, - "src": "15309:14:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33956, - "nodeType": "ExpressionStatement", - "src": "15307:16:25" - }, - { - "assignments": [ - 33958 - ], - "declarations": [ - { - "constant": false, - "id": 33958, - "mutability": "mutable", - "name": "totalValidatorsWeight", - "nameLocation": "15342:21:25", - "nodeType": "VariableDeclaration", - "scope": 34023, - "src": "15334:29:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33957, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15334:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 33960, - "initialValue": { - "hexValue": "30", - "id": 33959, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15366:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "15334:33:25" - }, - { - "assignments": [ - 33962 - ], - "declarations": [ - { - "constant": false, - "id": 33962, - "mutability": "mutable", - "name": "validatorsLength", - "nameLocation": "15425:16:25", - "nodeType": "VariableDeclaration", - "scope": 34023, - "src": "15417:24:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33961, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15417:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 33965, - "initialValue": { - "expression": { - "id": 33963, - "name": "validators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33936, - "src": "15444:10:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 33964, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15455:6:25", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "15444:17:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15417:44:25" - }, - { - "body": { - "id": 34017, - "nodeType": "Block", - "src": "15541:1399:25", - "statements": [ - { - "assignments": [ - 33974 - ], - "declarations": [ - { - "constant": false, - "id": 33974, - "mutability": "mutable", - "name": "validatorAddress", - "nameLocation": "15563:16:25", - "nodeType": "VariableDeclaration", - "scope": 34017, - "src": "15555:24:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 33973, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15555:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 33978, - "initialValue": { - "baseExpression": { - "id": 33975, - "name": "validators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33936, - "src": "15582:10:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 33977, - "indexExpression": { - "id": 33976, - "name": "validatorIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33967, - "src": "15593:14:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15582:26:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15555:53:25" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 33984, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33979, - "name": "validatorAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33974, - "src": "15626:16:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 33982, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15654:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 33981, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "15646:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 33980, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15646:7:25", - "typeDescriptions": {} - } - }, - "id": 33983, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15646:10:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15626:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34012, - "nodeType": "IfStatement", - "src": "15622:375:25", - "trueBody": { - "id": 34011, - "nodeType": "Block", - "src": "15658:339:25", - "statements": [ - { - "assignments": [ - 33986 - ], - "declarations": [ - { - "constant": false, - "id": 33986, - "mutability": "mutable", - "name": "validatorWeight", - "nameLocation": "15684:15:25", - "nodeType": "VariableDeclaration", - "scope": 34011, - "src": "15676:23:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33985, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15676:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 33990, - "initialValue": { - "baseExpression": { - "id": 33987, - "name": "weights", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33939, - "src": "15702:7:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 33989, - "indexExpression": { - "id": 33988, - "name": "validatorIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33967, - "src": "15710:14:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15702:23:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15676:49:25" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33993, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33991, - "name": "validatorWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33986, - "src": "15748:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 33992, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15767:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15748:20:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 33998, - "nodeType": "IfStatement", - "src": "15744:97:25", - "trueBody": { - "id": 33997, - "nodeType": "Block", - "src": "15770:71:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 33994, - "name": "ValidatorWeightIsZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33133, - "src": "15799:21:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 33995, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15799:23:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 33996, - "nodeType": "RevertStatement", - "src": "15792:30:25" - } - ] - } - }, - { - "expression": { - "id": 34005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "baseExpression": { - "id": 33999, - "name": "validatorSet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33045, - "src": "15859:12:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(uint256 => mapping(address => uint256))" - } - }, - "id": 34002, - "indexExpression": { - "id": 34000, - "name": "validatorNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33048, - "src": "15872:14:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15859:28:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 34003, - "indexExpression": { - "id": 34001, - "name": "validatorAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33974, - "src": "15888:16:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15859:46:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 34004, - "name": "validatorWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33986, - "src": "15908:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15859:64:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 34006, - "nodeType": "ExpressionStatement", - "src": "15859:64:25" - }, - { - "expression": { - "id": 34009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 34007, - "name": "totalValidatorsWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33958, - "src": "15942:21:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 34008, - "name": "validatorWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33986, - "src": "15967:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15942:40:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 34010, - "nodeType": "ExpressionStatement", - "src": "15942:40:25" - } - ] - } - }, - { - "id": 34016, - "nodeType": "UncheckedBlock", - "src": "16871:59:25", - "statements": [ - { - "expression": { - "id": 34014, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "16899:16:25", - "subExpression": { - "id": 34013, - "name": "validatorIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33967, - "src": "16901:14:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 34015, - "nodeType": "ExpressionStatement", - "src": "16899:16:25" - } - ] - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 33972, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 33970, - "name": "validatorIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33967, - "src": "15504:14:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 33971, - "name": "validatorsLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33962, - "src": "15521:16:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15504:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34018, - "initializationExpression": { - "assignments": [ - 33967 - ], - "declarations": [ - { - "constant": false, - "id": 33967, - "mutability": "mutable", - "name": "validatorIndex", - "nameLocation": "15484:14:25", - "nodeType": "VariableDeclaration", - "scope": 34018, - "src": "15476:22:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33966, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15476:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 33969, - "initialValue": { - "hexValue": "30", - "id": 33968, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15501:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "15476:26:25" - }, - "nodeType": "ForStatement", - "src": "15471:1469:25" - }, - { - "expression": { - "id": 34021, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 34019, - "name": "totalWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33038, - "src": "16950:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 34020, - "name": "totalValidatorsWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33958, - "src": "16964:21:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16950:35:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 34022, - "nodeType": "ExpressionStatement", - "src": "16950:35:25" - } - ] - }, - "baseFunctions": [ - 37157 - ], - "documentation": { - "id": 33933, - "nodeType": "StructuredDocumentation", - "src": "14843:179:25", - "text": "@notice set up the top-down validators and their voting power\n @param validators - list of validator addresses\n @param weights - list of validators voting powers" - }, - "functionSelector": "f75bc557", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 33942, - "kind": "modifierInvocation", - "modifierName": { - "id": 33941, - "name": "systemActorOnly", - "nameLocations": [ - "15114:15:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 33192, - "src": "15114:15:25" - }, - "nodeType": "ModifierInvocation", - "src": "15114:15:25" - } - ], - "name": "setMembership", - "nameLocation": "15036:13:25", - "parameters": { - "id": 33940, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33936, - "mutability": "mutable", - "name": "validators", - "nameLocation": "15067:10:25", - "nodeType": "VariableDeclaration", - "scope": 34024, - "src": "15050:27:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 33934, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15050:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 33935, - "nodeType": "ArrayTypeName", - "src": "15050:9:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 33939, - "mutability": "mutable", - "name": "weights", - "nameLocation": "15096:7:25", - "nodeType": "VariableDeclaration", - "scope": 34024, - "src": "15079:24:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 33937, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15079:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33938, - "nodeType": "ArrayTypeName", - "src": "15079:9:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - } - ], - "src": "15049:55:25" - }, - "returnParameters": { - "id": 33943, - "nodeType": "ParameterList", - "parameters": [], - "src": "15130:0:25" - }, - "scope": 35198, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 34147, - "nodeType": "FunctionDefinition", - "src": "17179:1663:25", - "nodes": [], - "body": { - "id": 34146, - "nodeType": "Block", - "src": "17320:1522:25", - "nodes": [], - "statements": [ - { - "assignments": [ - 34038 - ], - "declarations": [ - { - "constant": false, - "id": 34038, - "mutability": "mutable", - "name": "validatorWeight", - "nameLocation": "17338:15:25", - "nodeType": "VariableDeclaration", - "scope": 34146, - "src": "17330:23:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 34037, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17330:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 34045, - "initialValue": { - "baseExpression": { - "baseExpression": { - "id": 34039, - "name": "validatorSet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33045, - "src": "17356:12:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(uint256 => mapping(address => uint256))" - } - }, - "id": 34041, - "indexExpression": { - "id": 34040, - "name": "validatorNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33048, - "src": "17369:14:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17356:28:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 34044, - "indexExpression": { - "expression": { - "id": 34042, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "17385:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 34043, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17389:6:25", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "17385:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17356:40:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17330:66:25" - }, - { - "condition": { - "id": 34047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "17411:12:25", - "subExpression": { - "id": 34046, - "name": "initialized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33069, - "src": "17412:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34052, - "nodeType": "IfStatement", - "src": "17407:66:25", - "trueBody": { - "id": 34051, - "nodeType": "Block", - "src": "17425:48:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 34048, - "name": "NotInitialized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33095, - "src": "17446:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 34049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17446:16:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 34050, - "nodeType": "RevertStatement", - "src": "17439:23:25" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 34055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 34053, - "name": "validatorWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34038, - "src": "17486:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 34054, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17505:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17486:20:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34060, - "nodeType": "IfStatement", - "src": "17482:72:25", - "trueBody": { - "id": 34059, - "nodeType": "Block", - "src": "17508:46:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 34056, - "name": "NotValidator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33097, - "src": "17529:12:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 34057, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17529:14:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 34058, - "nodeType": "RevertStatement", - "src": "17522:21:25" - } - ] - } - }, - { - "condition": { - "id": 34066, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "17567:48:25", - "subExpression": { - "arguments": [ - { - "expression": { - "id": 34063, - "name": "checkpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34028, - "src": "17592:10:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$38944_calldata_ptr", - "typeString": "struct TopDownCheckpoint calldata" - } - }, - "id": 34064, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17603:11:25", - "memberName": "topDownMsgs", - "nodeType": "MemberAccess", - "referencedDeclaration": 38943, - "src": "17592:22:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct CrossMsg calldata[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct CrossMsg calldata[] calldata" - } - ], - "expression": { - "id": 34061, - "name": "CrossMsgHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37840, - "src": "17568:14:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_CrossMsgHelper_$37840_$", - "typeString": "type(library CrossMsgHelper)" - } - }, - "id": 34062, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17583:8:25", - "memberName": "isSorted", - "nodeType": "MemberAccess", - "referencedDeclaration": 37839, - "src": "17568:23:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_struct$_CrossMsg_$38957_memory_ptr_$dyn_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct CrossMsg memory[] memory) pure returns (bool)" - } - }, - "id": 34065, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17568:47:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34071, - "nodeType": "IfStatement", - "src": "17563:105:25", - "trueBody": { - "id": 34070, - "nodeType": "Block", - "src": "17617:51:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 34067, - "name": "MessagesNotSorted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33129, - "src": "17638:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 34068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17638:19:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 34069, - "nodeType": "RevertStatement", - "src": "17631:26:25" - } - ] - } - }, - { - "assignments": [ - 34074 - ], - "declarations": [ - { - "constant": false, - "id": 34074, - "mutability": "mutable", - "name": "voteSubmission", - "nameLocation": "17713:14:25", - "nodeType": "VariableDeclaration", - "scope": 34146, - "src": "17678:49:25", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39005_storage_ptr", - "typeString": "struct EpochVoteTopDownSubmission" - }, - "typeName": { - "id": 34073, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34072, - "name": "EpochVoteTopDownSubmission", - "nameLocations": [ - "17678:26:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39005, - "src": "17678:26:25" - }, - "referencedDeclaration": 39005, - "src": "17678:26:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39005_storage_ptr", - "typeString": "struct EpochVoteTopDownSubmission" - } - }, - "visibility": "internal" - } - ], - "id": 34079, - "initialValue": { - "baseExpression": { - "id": 34075, - "name": "_epochVoteSubmissions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33075, - "src": "17730:21:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_EpochVoteTopDownSubmission_$39005_storage_$", - "typeString": "mapping(uint64 => struct EpochVoteTopDownSubmission storage ref)" - } - }, - "id": 34078, - "indexExpression": { - "expression": { - "id": 34076, - "name": "checkpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34028, - "src": "17752:10:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$38944_calldata_ptr", - "typeString": "struct TopDownCheckpoint calldata" - } - }, - "id": 34077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17763:5:25", - "memberName": "epoch", - "nodeType": "MemberAccess", - "referencedDeclaration": 38939, - "src": "17752:16:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17730:39:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39005_storage", - "typeString": "struct EpochVoteTopDownSubmission storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17678:91:25" - }, - { - "assignments": [ - 34081 - ], - "declarations": [ - { - "constant": false, - "id": 34081, - "mutability": "mutable", - "name": "shouldExecuteVote", - "nameLocation": "17812:17:25", - "nodeType": "VariableDeclaration", - "scope": 34146, - "src": "17807:22:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 34080, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "17807:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "id": 34089, - "initialValue": { - "arguments": [ - { - "id": 34083, - "name": "voteSubmission", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34074, - "src": "17851:14:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39005_storage_ptr", - "typeString": "struct EpochVoteTopDownSubmission storage pointer" - } - }, - { - "id": 34084, - "name": "checkpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34028, - "src": "17867:10:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$38944_calldata_ptr", - "typeString": "struct TopDownCheckpoint calldata" - } - }, - { - "expression": { - "id": 34085, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "17879:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 34086, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17883:6:25", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "17879:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 34087, - "name": "validatorWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34038, - "src": "17891:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39005_storage_ptr", - "typeString": "struct EpochVoteTopDownSubmission storage pointer" - }, - { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$38944_calldata_ptr", - "typeString": "struct TopDownCheckpoint calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 34082, - "name": "_submitTopDownVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34442, - "src": "17832:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_EpochVoteTopDownSubmission_$39005_storage_ptr_$_t_struct$_TopDownCheckpoint_$38944_calldata_ptr_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (struct EpochVoteTopDownSubmission storage pointer,struct TopDownCheckpoint calldata,address,uint256) returns (bool)" - } - }, - "id": 34088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17832:75:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17807:100:25" - }, - { - "assignments": [ - 34094 - ], - "declarations": [ - { - "constant": false, - "id": 34094, - "mutability": "mutable", - "name": "topDownMsgs", - "nameLocation": "17993:11:25", - "nodeType": "VariableDeclaration", - "scope": 34146, - "src": "17975:29:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CrossMsg[]" - }, - "typeName": { - "baseType": { - "id": 34092, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34091, - "name": "CrossMsg", - "nameLocations": [ - "17975:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38957, - "src": "17975:8:25" - }, - "referencedDeclaration": 38957, - "src": "17975:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_storage_ptr", - "typeString": "struct CrossMsg" - } - }, - "id": 34093, - "nodeType": "ArrayTypeName", - "src": "17975:10:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_storage_$dyn_storage_ptr", - "typeString": "struct CrossMsg[]" - } - }, - "visibility": "internal" - } - ], - "id": 34095, - "nodeType": "VariableDeclarationStatement", - "src": "17975:29:25" - }, - { - "condition": { - "id": 34096, - "name": "shouldExecuteVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34081, - "src": "18019:17:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34104, - "nodeType": "IfStatement", - "src": "18015:110:25", - "trueBody": { - "id": 34103, - "nodeType": "Block", - "src": "18038:87:25", - "statements": [ - { - "expression": { - "id": 34101, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 34097, - "name": "topDownMsgs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34094, - "src": "18052:11:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CrossMsg memory[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 34099, - "name": "voteSubmission", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34074, - "src": "18099:14:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39005_storage_ptr", - "typeString": "struct EpochVoteTopDownSubmission storage pointer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39005_storage_ptr", - "typeString": "struct EpochVoteTopDownSubmission storage pointer" - } - ], - "id": 34098, - "name": "_markMostVotedSubmissionExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34390, - "src": "18066:32:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_EpochVoteTopDownSubmission_$39005_storage_ptr_$returns$_t_array$_t_struct$_CrossMsg_$38957_storage_$dyn_storage_ptr_$", - "typeString": "function (struct EpochVoteTopDownSubmission storage pointer) returns (struct CrossMsg storage ref[] storage pointer)" - } - }, - "id": 34100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18066:48:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_storage_$dyn_storage_ptr", - "typeString": "struct CrossMsg storage ref[] storage pointer" - } - }, - "src": "18052:62:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CrossMsg memory[] memory" - } - }, - "id": 34102, - "nodeType": "ExpressionStatement", - "src": "18052:62:25" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 34108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 34105, - "name": "topDownMsgs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34094, - "src": "18286:11:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CrossMsg memory[] memory" - } - }, - "id": 34106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "18298:6:25", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "18286:18:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 34107, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18308:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "18286:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34133, - "nodeType": "IfStatement", - "src": "18282:387:25", - "trueBody": { - "id": 34132, - "nodeType": "Block", - "src": "18311:358:25", - "statements": [ - { - "assignments": [ - 34110, - 34112 - ], - "declarations": [ - { - "constant": false, - "id": 34110, - "mutability": "mutable", - "name": "nextExecutableEpoch", - "nameLocation": "18333:19:25", - "nodeType": "VariableDeclaration", - "scope": 34132, - "src": "18326:26:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 34109, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "18326:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 34112, - "mutability": "mutable", - "name": "isExecutableEpoch", - "nameLocation": "18359:17:25", - "nodeType": "VariableDeclaration", - "scope": 34132, - "src": "18354:22:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 34111, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18354:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "id": 34115, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 34113, - "name": "_getNextExecutableEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36850, - "src": "18380:23:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint64_$_t_bool_$", - "typeString": "function () view returns (uint64,bool)" - } - }, - "id": 34114, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18380:25:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint64_$_t_bool_$", - "typeString": "tuple(uint64,bool)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18325:80:25" - }, - { - "condition": { - "id": 34116, - "name": "isExecutableEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34112, - "src": "18424:17:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34131, - "nodeType": "IfStatement", - "src": "18420:239:25", - "trueBody": { - "id": 34130, - "nodeType": "Block", - "src": "18443:216:25", - "statements": [ - { - "assignments": [ - 34119 - ], - "declarations": [ - { - "constant": false, - "id": 34119, - "mutability": "mutable", - "name": "nextVoteSubmission", - "nameLocation": "18496:18:25", - "nodeType": "VariableDeclaration", - "scope": 34130, - "src": "18461:53:25", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39005_storage_ptr", - "typeString": "struct EpochVoteTopDownSubmission" - }, - "typeName": { - "id": 34118, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34117, - "name": "EpochVoteTopDownSubmission", - "nameLocations": [ - "18461:26:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39005, - "src": "18461:26:25" - }, - "referencedDeclaration": 39005, - "src": "18461:26:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39005_storage_ptr", - "typeString": "struct EpochVoteTopDownSubmission" - } - }, - "visibility": "internal" - } - ], - "id": 34123, - "initialValue": { - "baseExpression": { - "id": 34120, - "name": "_epochVoteSubmissions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33075, - "src": "18517:21:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_EpochVoteTopDownSubmission_$39005_storage_$", - "typeString": "mapping(uint64 => struct EpochVoteTopDownSubmission storage ref)" - } - }, - "id": 34122, - "indexExpression": { - "id": 34121, - "name": "nextExecutableEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34110, - "src": "18539:19:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18517:42:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39005_storage", - "typeString": "struct EpochVoteTopDownSubmission storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18461:98:25" - }, - { - "expression": { - "id": 34128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 34124, - "name": "topDownMsgs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34094, - "src": "18578:11:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CrossMsg memory[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 34126, - "name": "nextVoteSubmission", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34119, - "src": "18625:18:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39005_storage_ptr", - "typeString": "struct EpochVoteTopDownSubmission storage pointer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39005_storage_ptr", - "typeString": "struct EpochVoteTopDownSubmission storage pointer" - } - ], - "id": 34125, - "name": "_markMostVotedSubmissionExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34390, - "src": "18592:32:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_EpochVoteTopDownSubmission_$39005_storage_ptr_$returns$_t_array$_t_struct$_CrossMsg_$38957_storage_$dyn_storage_ptr_$", - "typeString": "function (struct EpochVoteTopDownSubmission storage pointer) returns (struct CrossMsg storage ref[] storage pointer)" - } - }, - "id": 34127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18592:52:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_storage_$dyn_storage_ptr", - "typeString": "struct CrossMsg storage ref[] storage pointer" - } - }, - "src": "18578:66:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CrossMsg memory[] memory" - } - }, - "id": 34129, - "nodeType": "ExpressionStatement", - "src": "18578:66:25" - } - ] - } - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "30", - "id": 34136, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18801:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "arguments": [ - { - "hexValue": "30", - "id": 34140, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18818:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 34139, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "18804:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 34137, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18808:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 34138, - "nodeType": "ArrayTypeName", - "src": "18808:9:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 34141, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18804:16:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - ], - "id": 34135, - "name": "SubnetID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39060, - "src": "18792:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_SubnetID_$39060_storage_ptr_$", - "typeString": "type(struct SubnetID storage pointer)" - } - }, - "id": 34142, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18792:29:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - }, - { - "id": 34143, - "name": "topDownMsgs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34094, - "src": "18823:11:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CrossMsg memory[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - }, - { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CrossMsg memory[] memory" - } - ], - "id": 34134, - "name": "_applyMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35014, - "src": "18777:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_SubnetID_$39060_memory_ptr_$_t_array$_t_struct$_CrossMsg_$38957_memory_ptr_$dyn_memory_ptr_$returns$__$", - "typeString": "function (struct SubnetID memory,struct CrossMsg memory[] memory)" - } - }, - "id": 34144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18777:58:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 34145, - "nodeType": "ExpressionStatement", - "src": "18777:58:25" - } - ] - }, - "baseFunctions": [ - 37148 - ], - "documentation": { - "id": 34025, - "nodeType": "StructuredDocumentation", - "src": "17041:133:25", - "text": "@notice allows a validator to submit a batch of messages in a top-down commitment\n @param checkpoint - top-down checkpoint" - }, - "functionSelector": "986acf38", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 34031, - "kind": "modifierInvocation", - "modifierName": { - "id": 34030, - "name": "signableOnly", - "nameLocations": [ - "17274:12:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 33185, - "src": "17274:12:25" - }, - "nodeType": "ModifierInvocation", - "src": "17274:12:25" - }, - { - "arguments": [ - { - "expression": { - "id": 34033, - "name": "checkpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34028, - "src": "17302:10:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$38944_calldata_ptr", - "typeString": "struct TopDownCheckpoint calldata" - } - }, - "id": 34034, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17313:5:25", - "memberName": "epoch", - "nodeType": "MemberAccess", - "referencedDeclaration": 38939, - "src": "17302:16:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "id": 34035, - "kind": "modifierInvocation", - "modifierName": { - "id": 34032, - "name": "validEpochOnly", - "nameLocations": [ - "17287:14:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 36682, - "src": "17287:14:25" - }, - "nodeType": "ModifierInvocation", - "src": "17287:32:25" - } - ], - "name": "submitTopDownCheckpoint", - "nameLocation": "17188:23:25", - "parameters": { - "id": 34029, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 34028, - "mutability": "mutable", - "name": "checkpoint", - "nameLocation": "17248:10:25", - "nodeType": "VariableDeclaration", - "scope": 34147, - "src": "17221:37:25", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$38944_calldata_ptr", - "typeString": "struct TopDownCheckpoint" - }, - "typeName": { - "id": 34027, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34026, - "name": "TopDownCheckpoint", - "nameLocations": [ - "17221:17:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38944, - "src": "17221:17:25" - }, - "referencedDeclaration": 38944, - "src": "17221:17:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$38944_storage_ptr", - "typeString": "struct TopDownCheckpoint" - } - }, - "visibility": "internal" - } - ], - "src": "17211:53:25" - }, - "returnParameters": { - "id": 34036, - "nodeType": "ParameterList", - "parameters": [], - "src": "17320:0:25" - }, - "scope": 35198, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 34206, - "nodeType": "FunctionDefinition", - "src": "18989:1305:25", - "nodes": [], - "body": { - "id": 34205, - "nodeType": "Block", - "src": "19080:1214:25", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 34163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "expression": { - "id": 34158, - "name": "crossMsg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34151, - "src": "19094:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_calldata_ptr", - "typeString": "struct CrossMsg calldata" - } - }, - "id": 34159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19103:7:25", - "memberName": "message", - "nodeType": "MemberAccess", - "referencedDeclaration": 38954, - "src": "19094:16:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$38972_calldata_ptr", - "typeString": "struct StorableMsg calldata" - } - }, - "id": 34160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19111:5:25", - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": 38965, - "src": "19094:22:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "expression": { - "id": 34161, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "19120:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 34162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19124:5:25", - "memberName": "value", - "nodeType": "MemberAccess", - "src": "19120:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19094:35:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34168, - "nodeType": "IfStatement", - "src": "19090:89:25", - "trueBody": { - "id": 34167, - "nodeType": "Block", - "src": "19131:48:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 34164, - "name": "NotEnoughFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33085, - "src": "19152:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 34165, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19152:16:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 34166, - "nodeType": "RevertStatement", - "src": "19145:23:25" - } - ] - } - }, - { - "condition": { - "id": 34176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "19359:52:25", - "subExpression": { - "arguments": [ - { - "id": 34174, - "name": "_networkName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32992, - "src": "19398:12:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - ], - "expression": { - "expression": { - "expression": { - "expression": { - "id": 34169, - "name": "crossMsg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34151, - "src": "19360:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_calldata_ptr", - "typeString": "struct CrossMsg calldata" - } - }, - "id": 34170, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19369:7:25", - "memberName": "message", - "nodeType": "MemberAccess", - "referencedDeclaration": 38954, - "src": "19360:16:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$38972_calldata_ptr", - "typeString": "struct StorableMsg calldata" - } - }, - "id": 34171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19377:4:25", - "memberName": "from", - "nodeType": "MemberAccess", - "referencedDeclaration": 38960, - "src": "19360:21:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IPCAddress_$39091_calldata_ptr", - "typeString": "struct IPCAddress calldata" - } - }, - "id": 34172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19382:8:25", - "memberName": "subnetId", - "nodeType": "MemberAccess", - "referencedDeclaration": 39087, - "src": "19360:30:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_calldata_ptr", - "typeString": "struct SubnetID calldata" - } - }, - "id": 34173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19391:6:25", - "memberName": "equals", - "nodeType": "MemberAccess", - "referencedDeclaration": 38649, - "src": "19360:37:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39060_memory_ptr_$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$39060_memory_ptr_$", - "typeString": "function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)" - } - }, - "id": 34175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19360:51:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34181, - "nodeType": "IfStatement", - "src": "19355:119:25", - "trueBody": { - "id": 34180, - "nodeType": "Block", - "src": "19413:61:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 34177, - "name": "InvalidCrossMsgFromSubnetId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33121, - "src": "19434:27:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 34178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19434:29:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 34179, - "nodeType": "RevertStatement", - "src": "19427:36:25" - } - ] - } - }, - { - "assignments": [ - 34183, - 34185 - ], - "declarations": [ - { - "constant": false, - "id": 34183, - "mutability": "mutable", - "name": "shouldBurn", - "nameLocation": "19972:10:25", - "nodeType": "VariableDeclaration", - "scope": 34205, - "src": "19967:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 34182, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19967:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 34185, - "mutability": "mutable", - "name": "shouldDistributeRewards", - "nameLocation": "19989:23:25", - "nodeType": "VariableDeclaration", - "scope": 34205, - "src": "19984:28:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 34184, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19984:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "id": 34189, - "initialValue": { - "arguments": [ - { - "id": 34187, - "name": "crossMsg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34151, - "src": "20036:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_calldata_ptr", - "typeString": "struct CrossMsg calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_CrossMsg_$38957_calldata_ptr", - "typeString": "struct CrossMsg calldata" - } - ], - "id": 34186, - "name": "_commitCrossMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34556, - "src": "20016:19:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_CrossMsg_$38957_memory_ptr_$returns$_t_bool_$_t_bool_$", - "typeString": "function (struct CrossMsg memory) returns (bool,bool)" - } - }, - "id": 34188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20016:29:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$", - "typeString": "tuple(bool,bool)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19966:79:25" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "expression": { - "id": 34191, - "name": "crossMsg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34151, - "src": "20090:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_calldata_ptr", - "typeString": "struct CrossMsg calldata" - } - }, - "id": 34192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20099:7:25", - "memberName": "message", - "nodeType": "MemberAccess", - "referencedDeclaration": 38954, - "src": "20090:16:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$38972_calldata_ptr", - "typeString": "struct StorableMsg calldata" - } - }, - "id": 34193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20107:5:25", - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": 38965, - "src": "20090:22:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 34199, - "name": "_networkName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32992, - "src": "20160:12:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - ], - "expression": { - "expression": { - "expression": { - "expression": { - "id": 34194, - "name": "crossMsg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34151, - "src": "20126:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_calldata_ptr", - "typeString": "struct CrossMsg calldata" - } - }, - "id": 34195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20135:7:25", - "memberName": "message", - "nodeType": "MemberAccess", - "referencedDeclaration": 38954, - "src": "20126:16:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$38972_calldata_ptr", - "typeString": "struct StorableMsg calldata" - } - }, - "id": 34196, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20143:2:25", - "memberName": "to", - "nodeType": "MemberAccess", - "referencedDeclaration": 38963, - "src": "20126:19:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IPCAddress_$39091_calldata_ptr", - "typeString": "struct IPCAddress calldata" - } - }, - "id": 34197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20146:8:25", - "memberName": "subnetId", - "nodeType": "MemberAccess", - "referencedDeclaration": 39087, - "src": "20126:28:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_calldata_ptr", - "typeString": "struct SubnetID calldata" - } - }, - "id": 34198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20155:4:25", - "memberName": "down", - "nodeType": "MemberAccess", - "referencedDeclaration": 38891, - "src": "20126:33:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39060_memory_ptr_$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_struct$_SubnetID_$39060_memory_ptr_$attached_to$_t_struct$_SubnetID_$39060_memory_ptr_$", - "typeString": "function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)" - } - }, - "id": 34200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20126:47:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - }, - { - "id": 34201, - "name": "shouldBurn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34183, - "src": "20187:10:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "id": 34202, - "name": "shouldDistributeRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34185, - "src": "20211:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 34190, - "name": "_crossMsgSideEffects", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34591, - "src": "20056:20:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_struct$_SubnetID_$39060_memory_ptr_$_t_bool_$_t_bool_$returns$__$", - "typeString": "function (uint256,struct SubnetID memory,bool,bool)" - } - }, - "id": 34203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20056:188:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 34204, - "nodeType": "ExpressionStatement", - "src": "20056:188:25" - } - ] - }, - "baseFunctions": [ - 37136 - ], - "documentation": { - "id": 34148, - "nodeType": "StructuredDocumentation", - "src": "18848:136:25", - "text": "@notice sends an arbitrary cross message from the current subnet to the destination subnet\n @param crossMsg - message to send" - }, - "functionSelector": "2f757dd1", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 34154, - "kind": "modifierInvocation", - "modifierName": { - "id": 34153, - "name": "signableOnly", - "nameLocations": [ - "19060:12:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 33185, - "src": "19060:12:25" - }, - "nodeType": "ModifierInvocation", - "src": "19060:12:25" - }, - { - "id": 34156, - "kind": "modifierInvocation", - "modifierName": { - "id": 34155, - "name": "hasFee", - "nameLocations": [ - "19073:6:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 33199, - "src": "19073:6:25" - }, - "nodeType": "ModifierInvocation", - "src": "19073:6:25" - } - ], - "name": "sendCrossMessage", - "nameLocation": "18998:16:25", - "parameters": { - "id": 34152, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 34151, - "mutability": "mutable", - "name": "crossMsg", - "nameLocation": "19033:8:25", - "nodeType": "VariableDeclaration", - "scope": 34206, - "src": "19015:26:25", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_calldata_ptr", - "typeString": "struct CrossMsg" - }, - "typeName": { - "id": 34150, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34149, - "name": "CrossMsg", - "nameLocations": [ - "19015:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38957, - "src": "19015:8:25" - }, - "referencedDeclaration": 38957, - "src": "19015:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_storage_ptr", - "typeString": "struct CrossMsg" - } - }, - "visibility": "internal" - } - ], - "src": "19014:28:25" - }, - "returnParameters": { - "id": 34157, - "nodeType": "ParameterList", - "parameters": [], - "src": "19080:0:25" - }, - "scope": 35198, - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "id": 34280, - "nodeType": "FunctionDefinition", - "src": "20434:910:25", - "nodes": [], - "body": { - "id": 34279, - "nodeType": "Block", - "src": "20493:851:25", - "nodes": [], - "statements": [ - { - "assignments": [ - 34216 - ], - "declarations": [ - { - "constant": false, - "id": 34216, - "mutability": "mutable", - "name": "crossMsg", - "nameLocation": "20520:8:25", - "nodeType": "VariableDeclaration", - "scope": 34279, - "src": "20503:25:25", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_storage_ptr", - "typeString": "struct CrossMsg" - }, - "typeName": { - "id": 34215, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34214, - "name": "CrossMsg", - "nameLocations": [ - "20503:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38957, - "src": "20503:8:25" - }, - "referencedDeclaration": 38957, - "src": "20503:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_storage_ptr", - "typeString": "struct CrossMsg" - } - }, - "visibility": "internal" - } - ], - "id": 34220, - "initialValue": { - "baseExpression": { - "id": 34217, - "name": "postbox", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33017, - "src": "20531:7:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$38957_storage_$", - "typeString": "mapping(bytes32 => struct CrossMsg storage ref)" - } - }, - "id": 34219, - "indexExpression": { - "id": 34218, - "name": "msgCid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34209, - "src": "20539:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20531:15:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_storage", - "typeString": "struct CrossMsg storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20503:43:25" - }, - { - "assignments": [ - 34222, - 34224 - ], - "declarations": [ - { - "constant": false, - "id": 34222, - "mutability": "mutable", - "name": "shouldBurn", - "nameLocation": "20563:10:25", - "nodeType": "VariableDeclaration", - "scope": 34279, - "src": "20558:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 34221, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20558:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 34224, - "mutability": "mutable", - "name": "shouldDistributeRewards", - "nameLocation": "20580:23:25", - "nodeType": "VariableDeclaration", - "scope": 34279, - "src": "20575:28:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 34223, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20575:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "id": 34228, - "initialValue": { - "arguments": [ - { - "id": 34226, - "name": "crossMsg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34216, - "src": "20627:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_storage_ptr", - "typeString": "struct CrossMsg storage pointer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_CrossMsg_$38957_storage_ptr", - "typeString": "struct CrossMsg storage pointer" - } - ], - "id": 34225, - "name": "_commitCrossMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34556, - "src": "20607:19:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_CrossMsg_$38957_memory_ptr_$returns$_t_bool_$_t_bool_$", - "typeString": "function (struct CrossMsg memory) returns (bool,bool)" - } - }, - "id": 34227, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20607:29:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$", - "typeString": "tuple(bool,bool)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20557:79:25" - }, - { - "assignments": [ - 34230 - ], - "declarations": [ - { - "constant": false, - "id": 34230, - "mutability": "mutable", - "name": "v", - "nameLocation": "20910:1:25", - "nodeType": "VariableDeclaration", - "scope": 34279, - "src": "20902:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 34229, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20902:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 34234, - "initialValue": { - "expression": { - "expression": { - "id": 34231, - "name": "crossMsg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34216, - "src": "20914:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_storage_ptr", - "typeString": "struct CrossMsg storage pointer" - } - }, - "id": 34232, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20923:7:25", - "memberName": "message", - "nodeType": "MemberAccess", - "referencedDeclaration": 38954, - "src": "20914:16:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$38972_storage", - "typeString": "struct StorableMsg storage ref" - } - }, - "id": 34233, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20931:5:25", - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": 38965, - "src": "20914:22:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20902:34:25" - }, - { - "assignments": [ - 34237 - ], - "declarations": [ - { - "constant": false, - "id": 34237, - "mutability": "mutable", - "name": "toSubnetId", - "nameLocation": "20962:10:25", - "nodeType": "VariableDeclaration", - "scope": 34279, - "src": "20946:26:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID" - }, - "typeName": { - "id": 34236, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34235, - "name": "SubnetID", - "nameLocations": [ - "20946:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39060, - "src": "20946:8:25" - }, - "referencedDeclaration": 39060, - "src": "20946:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage_ptr", - "typeString": "struct SubnetID" - } - }, - "visibility": "internal" - } - ], - "id": 34245, - "initialValue": { - "arguments": [ - { - "id": 34243, - "name": "_networkName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32992, - "src": "21009:12:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - ], - "expression": { - "expression": { - "expression": { - "expression": { - "id": 34238, - "name": "crossMsg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34216, - "src": "20975:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_storage_ptr", - "typeString": "struct CrossMsg storage pointer" - } - }, - "id": 34239, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20984:7:25", - "memberName": "message", - "nodeType": "MemberAccess", - "referencedDeclaration": 38954, - "src": "20975:16:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$38972_storage", - "typeString": "struct StorableMsg storage ref" - } - }, - "id": 34240, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20992:2:25", - "memberName": "to", - "nodeType": "MemberAccess", - "referencedDeclaration": 38963, - "src": "20975:19:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IPCAddress_$39091_storage", - "typeString": "struct IPCAddress storage ref" - } - }, - "id": 34241, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20995:8:25", - "memberName": "subnetId", - "nodeType": "MemberAccess", - "referencedDeclaration": 39087, - "src": "20975:28:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - }, - "id": 34242, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21004:4:25", - "memberName": "down", - "nodeType": "MemberAccess", - "referencedDeclaration": 38891, - "src": "20975:33:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39060_memory_ptr_$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_struct$_SubnetID_$39060_memory_ptr_$attached_to$_t_struct$_SubnetID_$39060_memory_ptr_$", - "typeString": "function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)" - } - }, - "id": 34244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20975:47:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20946:76:25" - }, - { - "expression": { - "id": 34249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "21032:22:25", - "subExpression": { - "baseExpression": { - "id": 34246, - "name": "postbox", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33017, - "src": "21039:7:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$38957_storage_$", - "typeString": "mapping(bytes32 => struct CrossMsg storage ref)" - } - }, - "id": 34248, - "indexExpression": { - "id": 34247, - "name": "msgCid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34209, - "src": "21047:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21039:15:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_storage", - "typeString": "struct CrossMsg storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 34250, - "nodeType": "ExpressionStatement", - "src": "21032:22:25" - }, - { - "expression": { - "arguments": [ - { - "id": 34252, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34230, - "src": "21086:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 34253, - "name": "toSubnetId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34237, - "src": "21089:10:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - }, - { - "id": 34254, - "name": "shouldBurn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34222, - "src": "21101:10:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "id": 34255, - "name": "shouldDistributeRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34224, - "src": "21113:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 34251, - "name": "_crossMsgSideEffects", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34591, - "src": "21065:20:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_struct$_SubnetID_$39060_memory_ptr_$_t_bool_$_t_bool_$returns$__$", - "typeString": "function (uint256,struct SubnetID memory,bool,bool)" - } - }, - "id": 34256, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21065:72:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 34257, - "nodeType": "ExpressionStatement", - "src": "21065:72:25" - }, - { - "assignments": [ - 34259 - ], - "declarations": [ - { - "constant": false, - "id": 34259, - "mutability": "mutable", - "name": "feeRemainder", - "nameLocation": "21156:12:25", - "nodeType": "VariableDeclaration", - "scope": 34279, - "src": "21148:20:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 34258, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21148:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 34264, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 34263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 34260, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "21171:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 34261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21175:5:25", - "memberName": "value", - "nodeType": "MemberAccess", - "src": "21171:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 34262, - "name": "crossMsgFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33035, - "src": "21183:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "21171:23:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "21148:46:25" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 34267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 34265, - "name": "feeRemainder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34259, - "src": "21209:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 34266, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21224:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "21209:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34278, - "nodeType": "IfStatement", - "src": "21205:90:25", - "trueBody": { - "id": 34277, - "nodeType": "Block", - "src": "21227:68:25", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 34274, - "name": "feeRemainder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34259, - "src": "21271:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "expression": { - "id": 34270, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "21249:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 34271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21253:6:25", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "21249:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 34269, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21241:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_payable_$", - "typeString": "type(address payable)" - }, - "typeName": { - "id": 34268, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21241:8:25", - "stateMutability": "payable", - "typeDescriptions": {} - } - }, - "id": 34272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21241:19:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 34273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21261:9:25", - "memberName": "sendValue", - "nodeType": "MemberAccess", - "referencedDeclaration": 290, - "src": "21241:29:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$", - "typeString": "function (address payable,uint256)" - } - }, - "id": 34275, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21241:43:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 34276, - "nodeType": "ExpressionStatement", - "src": "21241:43:25" - } - ] - } - } - ] - }, - "baseFunctions": [ - 37142 - ], - "documentation": { - "id": 34207, - "nodeType": "StructuredDocumentation", - "src": "20300:129:25", - "text": "@notice propagates the populated cross net message for the given cid\n @param msgCid - the cid of the cross-net message" - }, - "functionSelector": "25bf0db6", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 34212, - "kind": "modifierInvocation", - "modifierName": { - "id": 34211, - "name": "hasFee", - "nameLocations": [ - "20486:6:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 33199, - "src": "20486:6:25" - }, - "nodeType": "ModifierInvocation", - "src": "20486:6:25" - } - ], - "name": "propagate", - "nameLocation": "20443:9:25", - "parameters": { - "id": 34210, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 34209, - "mutability": "mutable", - "name": "msgCid", - "nameLocation": "20461:6:25", - "nodeType": "VariableDeclaration", - "scope": 34280, - "src": "20453:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 34208, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "20453:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "20452:16:25" - }, - "returnParameters": { - "id": 34213, - "nodeType": "ParameterList", - "parameters": [], - "src": "20493:0:25" - }, - "scope": 35198, - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "id": 34308, - "nodeType": "FunctionDefinition", - "src": "21532:285:25", - "nodes": [], - "body": { - "id": 34307, - "nodeType": "Block", - "src": "21634:183:25", - "nodes": [], - "statements": [ - { - "assignments": [ - 34292 - ], - "declarations": [ - { - "constant": false, - "id": 34292, - "mutability": "mutable", - "name": "voteSubmission", - "nameLocation": "21679:14:25", - "nodeType": "VariableDeclaration", - "scope": 34307, - "src": "21644:49:25", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39005_storage_ptr", - "typeString": "struct EpochVoteTopDownSubmission" - }, - "typeName": { - "id": 34291, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34290, - "name": "EpochVoteTopDownSubmission", - "nameLocations": [ - "21644:26:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39005, - "src": "21644:26:25" - }, - "referencedDeclaration": 39005, - "src": "21644:26:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39005_storage_ptr", - "typeString": "struct EpochVoteTopDownSubmission" - } - }, - "visibility": "internal" - } - ], - "id": 34296, - "initialValue": { - "baseExpression": { - "id": 34293, - "name": "_epochVoteSubmissions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33075, - "src": "21696:21:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_EpochVoteTopDownSubmission_$39005_storage_$", - "typeString": "mapping(uint64 => struct EpochVoteTopDownSubmission storage ref)" - } - }, - "id": 34295, - "indexExpression": { - "id": 34294, - "name": "epoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34283, - "src": "21718:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21696:28:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39005_storage", - "typeString": "struct EpochVoteTopDownSubmission storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "21644:80:25" - }, - { - "expression": { - "baseExpression": { - "baseExpression": { - "expression": { - "expression": { - "id": 34297, - "name": "voteSubmission", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34292, - "src": "21742:14:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39005_storage_ptr", - "typeString": "struct EpochVoteTopDownSubmission storage pointer" - } - }, - "id": 34298, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21757:4:25", - "memberName": "vote", - "nodeType": "MemberAccess", - "referencedDeclaration": 38999, - "src": "21742:19:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteSubmission_$38996_storage", - "typeString": "struct EpochVoteSubmission storage ref" - } - }, - "id": 34299, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21762:10:25", - "memberName": "submitters", - "nodeType": "MemberAccess", - "referencedDeclaration": 38989, - "src": "21742:30:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(uint256 => mapping(address => bool))" - } - }, - "id": 34303, - "indexExpression": { - "expression": { - "expression": { - "id": 34300, - "name": "voteSubmission", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34292, - "src": "21773:14:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39005_storage_ptr", - "typeString": "struct EpochVoteTopDownSubmission storage pointer" - } - }, - "id": 34301, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21788:4:25", - "memberName": "vote", - "nodeType": "MemberAccess", - "referencedDeclaration": 38999, - "src": "21773:19:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteSubmission_$38996_storage", - "typeString": "struct EpochVoteSubmission storage ref" - } - }, - "id": 34302, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21793:5:25", - "memberName": "nonce", - "nodeType": "MemberAccess", - "referencedDeclaration": 38979, - "src": "21773:25:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21742:57:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 34305, - "indexExpression": { - "id": 34304, - "name": "submitter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34285, - "src": "21800:9:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21742:68:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 34289, - "id": 34306, - "nodeType": "Return", - "src": "21735:75:25" - } - ] - }, - "documentation": { - "id": 34281, - "nodeType": "StructuredDocumentation", - "src": "21350:177:25", - "text": "@notice whether a validator has voted for a checkpoint submission during an epoch\n @param epoch - the epoch to check\n @param submitter - the validator to check" - }, - "functionSelector": "66d7bbbc", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "hasValidatorVotedForSubmission", - "nameLocation": "21541:30:25", - "parameters": { - "id": 34286, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 34283, - "mutability": "mutable", - "name": "epoch", - "nameLocation": "21579:5:25", - "nodeType": "VariableDeclaration", - "scope": 34308, - "src": "21572:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 34282, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "21572:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 34285, - "mutability": "mutable", - "name": "submitter", - "nameLocation": "21594:9:25", - "nodeType": "VariableDeclaration", - "scope": 34308, - "src": "21586:17:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 34284, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21586:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "21571:33:25" - }, - "returnParameters": { - "id": 34289, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 34288, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 34308, - "src": "21628:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 34287, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "21628:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "21627:6:25" - }, - "scope": 35198, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 34334, - "nodeType": "FunctionDefinition", - "src": "22028:238:25", - "nodes": [], - "body": { - "id": 34333, - "nodeType": "Block", - "src": "22163:103:25", - "nodes": [], - "statements": [ - { - "expression": { - "id": 34323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 34319, - "name": "checkpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34317, - "src": "22173:10:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_memory_ptr", - "typeString": "struct BottomUpCheckpoint memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "baseExpression": { - "id": 34320, - "name": "bottomUpCheckpoints", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33026, - "src": "22186:19:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$38937_storage_$", - "typeString": "mapping(uint64 => struct BottomUpCheckpoint storage ref)" - } - }, - "id": 34322, - "indexExpression": { - "id": 34321, - "name": "epoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34311, - "src": "22206:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22186:26:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage", - "typeString": "struct BottomUpCheckpoint storage ref" - } - }, - "src": "22173:39:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_memory_ptr", - "typeString": "struct BottomUpCheckpoint memory" - } - }, - "id": 34324, - "nodeType": "ExpressionStatement", - "src": "22173:39:25" - }, - { - "expression": { - "id": 34331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 34325, - "name": "exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34314, - "src": "22222:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 34330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "22231:28:25", - "subExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "expression": { - "id": 34326, - "name": "checkpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34317, - "src": "22232:10:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_memory_ptr", - "typeString": "struct BottomUpCheckpoint memory" - } - }, - "id": 34327, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22243:6:25", - "memberName": "source", - "nodeType": "MemberAccess", - "referencedDeclaration": 38920, - "src": "22232:17:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - }, - "id": 34328, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22250:7:25", - "memberName": "isEmpty", - "nodeType": "MemberAccess", - "referencedDeclaration": 38911, - "src": "22232:25:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$39060_memory_ptr_$", - "typeString": "function (struct SubnetID memory) pure returns (bool)" - } - }, - "id": 34329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "22232:27:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "22222:37:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34332, - "nodeType": "ExpressionStatement", - "src": "22222:37:25" - } - ] - }, - "documentation": { - "id": 34309, - "nodeType": "StructuredDocumentation", - "src": "21823:200:25", - "text": "@notice returns the current bottom-up checkpoint\n @param epoch - the epoch to check\n @return exists - whether the checkpoint exists\n @return checkpoint - the checkpoint struct" - }, - "functionSelector": "6cb2ecee", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "bottomUpCheckpointAtEpoch", - "nameLocation": "22037:25:25", - "parameters": { - "id": 34312, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 34311, - "mutability": "mutable", - "name": "epoch", - "nameLocation": "22079:5:25", - "nodeType": "VariableDeclaration", - "scope": 34334, - "src": "22072:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 34310, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "22072:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "22062:28:25" - }, - "returnParameters": { - "id": 34318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 34314, - "mutability": "mutable", - "name": "exists", - "nameLocation": "22117:6:25", - "nodeType": "VariableDeclaration", - "scope": 34334, - "src": "22112:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 34313, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "22112:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 34317, - "mutability": "mutable", - "name": "checkpoint", - "nameLocation": "22151:10:25", - "nodeType": "VariableDeclaration", - "scope": 34334, - "src": "22125:36:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_memory_ptr", - "typeString": "struct BottomUpCheckpoint" - }, - "typeName": { - "id": 34316, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34315, - "name": "BottomUpCheckpoint", - "nameLocations": [ - "22125:18:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38937, - "src": "22125:18:25" - }, - "referencedDeclaration": 38937, - "src": "22125:18:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint" - } - }, - "visibility": "internal" - } - ], - "src": "22111:51:25" - }, - "scope": 35198, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "id": 34360, - "nodeType": "FunctionDefinition", - "src": "22484:240:25", - "nodes": [], - "body": { - "id": 34359, - "nodeType": "Block", - "src": "22575:149:25", - "nodes": [], - "statements": [ - { - "assignments": [ - 34345, - 34348 - ], - "declarations": [ - { - "constant": false, - "id": 34345, - "mutability": "mutable", - "name": "exists", - "nameLocation": "22591:6:25", - "nodeType": "VariableDeclaration", - "scope": 34359, - "src": "22586:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 34344, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "22586:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 34348, - "mutability": "mutable", - "name": "checkpoint", - "nameLocation": "22625:10:25", - "nodeType": "VariableDeclaration", - "scope": 34359, - "src": "22599:36:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_memory_ptr", - "typeString": "struct BottomUpCheckpoint" - }, - "typeName": { - "id": 34347, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34346, - "name": "BottomUpCheckpoint", - "nameLocations": [ - "22599:18:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38937, - "src": "22599:18:25" - }, - "referencedDeclaration": 38937, - "src": "22599:18:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint" - } - }, - "visibility": "internal" - } - ], - "id": 34352, - "initialValue": { - "arguments": [ - { - "id": 34350, - "name": "epoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34337, - "src": "22665:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 34349, - "name": "bottomUpCheckpointAtEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34334, - "src": "22639:25:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint64_$returns$_t_bool_$_t_struct$_BottomUpCheckpoint_$38937_memory_ptr_$", - "typeString": "function (uint64) view returns (bool,struct BottomUpCheckpoint memory)" - } - }, - "id": 34351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "22639:32:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_BottomUpCheckpoint_$38937_memory_ptr_$", - "typeString": "tuple(bool,struct BottomUpCheckpoint memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "22585:86:25" - }, - { - "expression": { - "components": [ - { - "id": 34353, - "name": "exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34345, - "src": "22689:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 34354, - "name": "checkpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34348, - "src": "22697:10:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_memory_ptr", - "typeString": "struct BottomUpCheckpoint memory" - } - }, - "id": 34355, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22708:6:25", - "memberName": "toHash", - "nodeType": "MemberAccess", - "referencedDeclaration": 37331, - "src": "22697:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_BottomUpCheckpoint_$38937_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_BottomUpCheckpoint_$38937_memory_ptr_$", - "typeString": "function (struct BottomUpCheckpoint memory) pure returns (bytes32)" - } - }, - "id": 34356, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "22697:19:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 34357, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "22688:29:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$", - "typeString": "tuple(bool,bytes32)" - } - }, - "functionReturnParameters": 34343, - "id": 34358, - "nodeType": "Return", - "src": "22681:36:25" - } - ] - }, - "documentation": { - "id": 34335, - "nodeType": "StructuredDocumentation", - "src": "22272:207:25", - "text": "@notice returns the historical bottom-up checkpoint hash\n @param epoch - the epoch to check\n @return exists - whether the checkpoint exists\n @return hash - the hash of the checkpoint" - }, - "functionSelector": "133f74ea", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "bottomUpCheckpointHashAtEpoch", - "nameLocation": "22493:29:25", - "parameters": { - "id": 34338, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 34337, - "mutability": "mutable", - "name": "epoch", - "nameLocation": "22530:5:25", - "nodeType": "VariableDeclaration", - "scope": 34360, - "src": "22523:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 34336, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "22523:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "22522:14:25" - }, - "returnParameters": { - "id": 34343, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 34340, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 34360, - "src": "22560:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 34339, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "22560:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 34342, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 34360, - "src": "22566:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 34341, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "22566:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "22559:15:25" - }, - "scope": 35198, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 34390, - "nodeType": "FunctionDefinition", - "src": "22939:409:25", - "nodes": [], - "body": { - "id": 34389, - "nodeType": "Block", - "src": "23084:264:25", - "nodes": [], - "statements": [ - { - "assignments": [ - 34373 - ], - "declarations": [ - { - "constant": false, - "id": 34373, - "mutability": "mutable", - "name": "mostVotedSubmission", - "nameLocation": "23120:19:25", - "nodeType": "VariableDeclaration", - "scope": 34389, - "src": "23094:45:25", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$38944_storage_ptr", - "typeString": "struct TopDownCheckpoint" - }, - "typeName": { - "id": 34372, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34371, - "name": "TopDownCheckpoint", - "nameLocations": [ - "23094:17:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38944, - "src": "23094:17:25" - }, - "referencedDeclaration": 38944, - "src": "23094:17:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$38944_storage_ptr", - "typeString": "struct TopDownCheckpoint" - } - }, - "visibility": "internal" - } - ], - "id": 34380, - "initialValue": { - "baseExpression": { - "expression": { - "id": 34374, - "name": "voteSubmission", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34364, - "src": "23142:14:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39005_storage_ptr", - "typeString": "struct EpochVoteTopDownSubmission storage pointer" - } - }, - "id": 34375, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23157:11:25", - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 39004, - "src": "23142:26:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_TopDownCheckpoint_$38944_storage_$", - "typeString": "mapping(bytes32 => struct TopDownCheckpoint storage ref)" - } - }, - "id": 34379, - "indexExpression": { - "expression": { - "expression": { - "id": 34376, - "name": "voteSubmission", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34364, - "src": "23182:14:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39005_storage_ptr", - "typeString": "struct EpochVoteTopDownSubmission storage pointer" - } - }, - "id": 34377, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23197:4:25", - "memberName": "vote", - "nodeType": "MemberAccess", - "referencedDeclaration": 38999, - "src": "23182:19:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteSubmission_$38996_storage", - "typeString": "struct EpochVoteSubmission storage ref" - } - }, - "id": 34378, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23202:19:25", - "memberName": "mostVotedSubmission", - "nodeType": "MemberAccess", - "referencedDeclaration": 38983, - "src": "23182:39:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23142:89:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$38944_storage", - "typeString": "struct TopDownCheckpoint storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23094:137:25" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 34382, - "name": "mostVotedSubmission", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34373, - "src": "23266:19:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$38944_storage_ptr", - "typeString": "struct TopDownCheckpoint storage pointer" - } - }, - "id": 34383, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23286:5:25", - "memberName": "epoch", - "nodeType": "MemberAccess", - "referencedDeclaration": 38939, - "src": "23266:25:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 34381, - "name": "_markSubmissionExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36815, - "src": "23242:23:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint64_$returns$__$", - "typeString": "function (uint64)" - } - }, - "id": 34384, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23242:50:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 34385, - "nodeType": "ExpressionStatement", - "src": "23242:50:25" - }, - { - "expression": { - "expression": { - "id": 34386, - "name": "mostVotedSubmission", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34373, - "src": "23310:19:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$38944_storage_ptr", - "typeString": "struct TopDownCheckpoint storage pointer" - } - }, - "id": 34387, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23330:11:25", - "memberName": "topDownMsgs", - "nodeType": "MemberAccess", - "referencedDeclaration": 38943, - "src": "23310:31:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_storage_$dyn_storage", - "typeString": "struct CrossMsg storage ref[] storage ref" - } - }, - "functionReturnParameters": 34370, - "id": 34388, - "nodeType": "Return", - "src": "23303:38:25" - } - ] - }, - "documentation": { - "id": 34361, - "nodeType": "StructuredDocumentation", - "src": "22730:204:25", - "text": "@notice marks a checkpoint as executed based on the last vote that reached majority\n @notice voteSubmission - the vote submission data\n @return the cross messages that should be executed" - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_markMostVotedSubmissionExecuted", - "nameLocation": "22948:32:25", - "parameters": { - "id": 34365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 34364, - "mutability": "mutable", - "name": "voteSubmission", - "nameLocation": "23025:14:25", - "nodeType": "VariableDeclaration", - "scope": 34390, - "src": "22990:49:25", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39005_storage_ptr", - "typeString": "struct EpochVoteTopDownSubmission" - }, - "typeName": { - "id": 34363, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34362, - "name": "EpochVoteTopDownSubmission", - "nameLocations": [ - "22990:26:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39005, - "src": "22990:26:25" - }, - "referencedDeclaration": 39005, - "src": "22990:26:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39005_storage_ptr", - "typeString": "struct EpochVoteTopDownSubmission" - } - }, - "visibility": "internal" - } - ], - "src": "22980:65:25" - }, - "returnParameters": { - "id": 34370, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 34369, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 34390, - "src": "23064:18:25", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_storage_$dyn_storage_ptr", - "typeString": "struct CrossMsg[]" - }, - "typeName": { - "baseType": { - "id": 34367, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34366, - "name": "CrossMsg", - "nameLocations": [ - "23064:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38957, - "src": "23064:8:25" - }, - "referencedDeclaration": 38957, - "src": "23064:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_storage_ptr", - "typeString": "struct CrossMsg" - } - }, - "id": 34368, - "nodeType": "ArrayTypeName", - "src": "23064:10:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_storage_$dyn_storage_ptr", - "typeString": "struct CrossMsg[]" - } - }, - "visibility": "internal" - } - ], - "src": "23063:20:25" - }, - "scope": 35198, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 34442, - "nodeType": "FunctionDefinition", - "src": "23686:737:25", - "nodes": [], - "body": { - "id": 34441, - "nodeType": "Block", - "src": "23935:488:25", - "nodes": [], - "statements": [ - { - "assignments": [ - 34407 - ], - "declarations": [ - { - "constant": false, - "id": 34407, - "mutability": "mutable", - "name": "submissionHash", - "nameLocation": "23953:14:25", - "nodeType": "VariableDeclaration", - "scope": 34441, - "src": "23945:22:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 34406, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "23945:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 34411, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 34408, - "name": "submission", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34397, - "src": "23970:10:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$38944_calldata_ptr", - "typeString": "struct TopDownCheckpoint calldata" - } - }, - "id": 34409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23981:6:25", - "memberName": "toHash", - "nodeType": "MemberAccess", - "referencedDeclaration": 37347, - "src": "23970:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_TopDownCheckpoint_$38944_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_TopDownCheckpoint_$38944_memory_ptr_$", - "typeString": "function (struct TopDownCheckpoint memory) pure returns (bytes32)" - } - }, - "id": 34410, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23970:19:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23945:44:25" - }, - { - "expression": { - "id": 34423, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 34412, - "name": "shouldExecuteVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34404, - "src": "24000:17:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "expression": { - "id": 34414, - "name": "voteSubmission", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34394, - "src": "24045:14:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39005_storage_ptr", - "typeString": "struct EpochVoteTopDownSubmission storage pointer" - } - }, - "id": 34415, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24060:4:25", - "memberName": "vote", - "nodeType": "MemberAccess", - "referencedDeclaration": 38999, - "src": "24045:19:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteSubmission_$38996_storage", - "typeString": "struct EpochVoteSubmission storage ref" - } - }, - { - "id": 34416, - "name": "submissionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34407, - "src": "24078:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 34417, - "name": "submitterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34399, - "src": "24106:16:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 34418, - "name": "submitterWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34401, - "src": "24136:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 34419, - "name": "submission", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34397, - "src": "24165:10:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$38944_calldata_ptr", - "typeString": "struct TopDownCheckpoint calldata" - } - }, - "id": 34420, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24176:5:25", - "memberName": "epoch", - "nodeType": "MemberAccess", - "referencedDeclaration": 38939, - "src": "24165:16:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "id": 34421, - "name": "totalWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33038, - "src": "24195:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_EpochVoteSubmission_$38996_storage", - "typeString": "struct EpochVoteSubmission storage ref" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 34413, - "name": "_submitVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36983, - "src": "24020:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_EpochVoteSubmission_$38996_storage_ptr_$_t_bytes32_$_t_address_$_t_uint256_$_t_uint64_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (struct EpochVoteSubmission storage pointer,bytes32,address,uint256,uint64,uint256) returns (bool)" - } - }, - "id": 34422, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24020:196:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "24000:216:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34424, - "nodeType": "ExpressionStatement", - "src": "24000:216:25" - }, - { - "condition": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "baseExpression": { - "expression": { - "id": 34425, - "name": "voteSubmission", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34394, - "src": "24283:14:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39005_storage_ptr", - "typeString": "struct EpochVoteTopDownSubmission storage pointer" - } - }, - "id": 34426, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24298:11:25", - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 39004, - "src": "24283:26:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_TopDownCheckpoint_$38944_storage_$", - "typeString": "mapping(bytes32 => struct TopDownCheckpoint storage ref)" - } - }, - "id": 34428, - "indexExpression": { - "id": 34427, - "name": "submissionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34407, - "src": "24310:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "24283:42:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$38944_storage", - "typeString": "struct TopDownCheckpoint storage ref" - } - }, - "id": 34429, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24326:7:25", - "memberName": "isEmpty", - "nodeType": "MemberAccess", - "referencedDeclaration": 37362, - "src": "24283:50:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_TopDownCheckpoint_$38944_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_TopDownCheckpoint_$38944_memory_ptr_$", - "typeString": "function (struct TopDownCheckpoint memory) pure returns (bool)" - } - }, - "id": 34430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24283:52:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34440, - "nodeType": "IfStatement", - "src": "24279:138:25", - "trueBody": { - "id": 34439, - "nodeType": "Block", - "src": "24337:80:25", - "statements": [ - { - "expression": { - "id": 34437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "expression": { - "id": 34431, - "name": "voteSubmission", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34394, - "src": "24351:14:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39005_storage_ptr", - "typeString": "struct EpochVoteTopDownSubmission storage pointer" - } - }, - "id": 34434, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24366:11:25", - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 39004, - "src": "24351:26:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_TopDownCheckpoint_$38944_storage_$", - "typeString": "mapping(bytes32 => struct TopDownCheckpoint storage ref)" - } - }, - "id": 34435, - "indexExpression": { - "id": 34433, - "name": "submissionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34407, - "src": "24378:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "24351:42:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$38944_storage", - "typeString": "struct TopDownCheckpoint storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 34436, - "name": "submission", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34397, - "src": "24396:10:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$38944_calldata_ptr", - "typeString": "struct TopDownCheckpoint calldata" - } - }, - "src": "24351:55:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$38944_storage", - "typeString": "struct TopDownCheckpoint storage ref" - } - }, - "id": 34438, - "nodeType": "ExpressionStatement", - "src": "24351:55:25" - } - ] - } - } - ] - }, - "documentation": { - "id": 34391, - "nodeType": "StructuredDocumentation", - "src": "23354:327:25", - "text": "@notice submits a vote for a checkpoint\n @param voteSubmission - the vote submission data\n @param submitterAddress - the validator that submits the vote\n @param submitterWeight - the weight of the validator\n @return shouldExecuteVote - flag if the checkpoint should be executed based on the vote" - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_submitTopDownVote", - "nameLocation": "23695:18:25", - "parameters": { - "id": 34402, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 34394, - "mutability": "mutable", - "name": "voteSubmission", - "nameLocation": "23758:14:25", - "nodeType": "VariableDeclaration", - "scope": 34442, - "src": "23723:49:25", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39005_storage_ptr", - "typeString": "struct EpochVoteTopDownSubmission" - }, - "typeName": { - "id": 34393, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34392, - "name": "EpochVoteTopDownSubmission", - "nameLocations": [ - "23723:26:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39005, - "src": "23723:26:25" - }, - "referencedDeclaration": 39005, - "src": "23723:26:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39005_storage_ptr", - "typeString": "struct EpochVoteTopDownSubmission" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 34397, - "mutability": "mutable", - "name": "submission", - "nameLocation": "23809:10:25", - "nodeType": "VariableDeclaration", - "scope": 34442, - "src": "23782:37:25", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$38944_calldata_ptr", - "typeString": "struct TopDownCheckpoint" - }, - "typeName": { - "id": 34396, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34395, - "name": "TopDownCheckpoint", - "nameLocations": [ - "23782:17:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38944, - "src": "23782:17:25" - }, - "referencedDeclaration": 38944, - "src": "23782:17:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$38944_storage_ptr", - "typeString": "struct TopDownCheckpoint" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 34399, - "mutability": "mutable", - "name": "submitterAddress", - "nameLocation": "23837:16:25", - "nodeType": "VariableDeclaration", - "scope": 34442, - "src": "23829:24:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 34398, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23829:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 34401, - "mutability": "mutable", - "name": "submitterWeight", - "nameLocation": "23871:15:25", - "nodeType": "VariableDeclaration", - "scope": 34442, - "src": "23863:23:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 34400, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23863:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "23713:179:25" - }, - "returnParameters": { - "id": 34405, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 34404, - "mutability": "mutable", - "name": "shouldExecuteVote", - "nameLocation": "23916:17:25", - "nodeType": "VariableDeclaration", - "scope": 34442, - "src": "23911:22:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 34403, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23911:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "23910:24:25" - }, - "scope": 35198, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 34556, - "nodeType": "FunctionDefinition", - "src": "24772:1281:25", - "nodes": [], - "body": { - "id": 34555, - "nodeType": "Block", - "src": "24910:1143:25", - "nodes": [], - "statements": [ - { - "assignments": [ - 34455 - ], - "declarations": [ - { - "constant": false, - "id": 34455, - "mutability": "mutable", - "name": "to", - "nameLocation": "24936:2:25", - "nodeType": "VariableDeclaration", - "scope": 34555, - "src": "24920:18:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID" - }, - "typeName": { - "id": 34454, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34453, - "name": "SubnetID", - "nameLocations": [ - "24920:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39060, - "src": "24920:8:25" - }, - "referencedDeclaration": 39060, - "src": "24920:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage_ptr", - "typeString": "struct SubnetID" - } - }, - "visibility": "internal" - } - ], - "id": 34460, - "initialValue": { - "expression": { - "expression": { - "expression": { - "id": 34456, - "name": "crossMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34446, - "src": "24941:12:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - }, - "id": 34457, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24954:7:25", - "memberName": "message", - "nodeType": "MemberAccess", - "referencedDeclaration": 38954, - "src": "24941:20:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$38972_memory_ptr", - "typeString": "struct StorableMsg memory" - } - }, - "id": 34458, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24962:2:25", - "memberName": "to", - "nodeType": "MemberAccess", - "referencedDeclaration": 38963, - "src": "24941:23:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IPCAddress_$39091_memory_ptr", - "typeString": "struct IPCAddress memory" - } - }, - "id": 34459, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24965:8:25", - "memberName": "subnetId", - "nodeType": "MemberAccess", - "referencedDeclaration": 39087, - "src": "24941:32:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "24920:53:25" - }, - { - "condition": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 34461, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34455, - "src": "24987:2:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - }, - "id": 34462, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24990:7:25", - "memberName": "isEmpty", - "nodeType": "MemberAccess", - "referencedDeclaration": 38911, - "src": "24987:10:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$39060_memory_ptr_$", - "typeString": "function (struct SubnetID memory) pure returns (bool)" - } - }, - "id": 34463, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24987:12:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34468, - "nodeType": "IfStatement", - "src": "24983:84:25", - "trueBody": { - "id": 34467, - "nodeType": "Block", - "src": "25001:66:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 34464, - "name": "InvalidCrossMsgDestinationSubnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33117, - "src": "25022:32:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 34465, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25022:34:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 34466, - "nodeType": "RevertStatement", - "src": "25015:41:25" - } - ] - } - }, - { - "condition": { - "arguments": [ - { - "id": 34471, - "name": "_networkName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32992, - "src": "25197:12:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - ], - "expression": { - "id": 34469, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34455, - "src": "25187:2:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - }, - "id": 34470, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "25190:6:25", - "memberName": "equals", - "nodeType": "MemberAccess", - "referencedDeclaration": 38649, - "src": "25187:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39060_memory_ptr_$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$39060_memory_ptr_$", - "typeString": "function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)" - } - }, - "id": 34472, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25187:23:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34477, - "nodeType": "IfStatement", - "src": "25183:89:25", - "trueBody": { - "id": 34476, - "nodeType": "Block", - "src": "25212:60:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 34473, - "name": "CannotSendCrossMsgToItself", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33123, - "src": "25233:26:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 34474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25233:28:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 34475, - "nodeType": "RevertStatement", - "src": "25226:35:25" - } - ] - } - }, - { - "assignments": [ - 34480 - ], - "declarations": [ - { - "constant": false, - "id": 34480, - "mutability": "mutable", - "name": "from", - "nameLocation": "25298:4:25", - "nodeType": "VariableDeclaration", - "scope": 34555, - "src": "25282:20:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID" - }, - "typeName": { - "id": 34479, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34478, - "name": "SubnetID", - "nameLocations": [ - "25282:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39060, - "src": "25282:8:25" - }, - "referencedDeclaration": 39060, - "src": "25282:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage_ptr", - "typeString": "struct SubnetID" - } - }, - "visibility": "internal" - } - ], - "id": 34485, - "initialValue": { - "expression": { - "expression": { - "expression": { - "id": 34481, - "name": "crossMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34446, - "src": "25305:12:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - }, - "id": 34482, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "25318:7:25", - "memberName": "message", - "nodeType": "MemberAccess", - "referencedDeclaration": 38954, - "src": "25305:20:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$38972_memory_ptr", - "typeString": "struct StorableMsg memory" - } - }, - "id": 34483, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "25326:4:25", - "memberName": "from", - "nodeType": "MemberAccess", - "referencedDeclaration": 38960, - "src": "25305:25:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IPCAddress_$39091_memory_ptr", - "typeString": "struct IPCAddress memory" - } - }, - "id": 34484, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "25331:8:25", - "memberName": "subnetId", - "nodeType": "MemberAccess", - "referencedDeclaration": 39087, - "src": "25305:34:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "25282:57:25" - }, - { - "assignments": [ - 34488 - ], - "declarations": [ - { - "constant": false, - "id": 34488, - "mutability": "mutable", - "name": "applyType", - "nameLocation": "25360:9:25", - "nodeType": "VariableDeclaration", - "scope": 34555, - "src": "25349:20:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IPCMsgType_$37055", - "typeString": "enum IPCMsgType" - }, - "typeName": { - "id": 34487, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34486, - "name": "IPCMsgType", - "nameLocations": [ - "25349:10:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 37055, - "src": "25349:10:25" - }, - "referencedDeclaration": 37055, - "src": "25349:10:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IPCMsgType_$37055", - "typeString": "enum IPCMsgType" - } - }, - "visibility": "internal" - } - ], - "id": 34494, - "initialValue": { - "arguments": [ - { - "id": 34492, - "name": "_networkName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32992, - "src": "25403:12:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - ], - "expression": { - "expression": { - "id": 34489, - "name": "crossMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34446, - "src": "25372:12:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - }, - "id": 34490, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "25385:7:25", - "memberName": "message", - "nodeType": "MemberAccess", - "referencedDeclaration": 38954, - "src": "25372:20:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$38972_memory_ptr", - "typeString": "struct StorableMsg memory" - } - }, - "id": 34491, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "25393:9:25", - "memberName": "applyType", - "nodeType": "MemberAccess", - "referencedDeclaration": 38301, - "src": "25372:30:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_StorableMsg_$38972_memory_ptr_$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_enum$_IPCMsgType_$37055_$attached_to$_t_struct$_StorableMsg_$38972_memory_ptr_$", - "typeString": "function (struct StorableMsg memory,struct SubnetID memory) pure returns (enum IPCMsgType)" - } - }, - "id": 34493, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25372:44:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_enum$_IPCMsgType_$37055", - "typeString": "enum IPCMsgType" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "25349:67:25" - }, - { - "assignments": [ - 34496 - ], - "declarations": [ - { - "constant": false, - "id": 34496, - "mutability": "mutable", - "name": "shouldCommitBottomUp", - "nameLocation": "25489:20:25", - "nodeType": "VariableDeclaration", - "scope": 34555, - "src": "25484:25:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 34495, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "25484:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "id": 34497, - "nodeType": "VariableDeclarationStatement", - "src": "25484:25:25" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_enum$_IPCMsgType_$37055", - "typeString": "enum IPCMsgType" - }, - "id": 34501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 34498, - "name": "applyType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34488, - "src": "25524:9:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IPCMsgType_$37055", - "typeString": "enum IPCMsgType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 34499, - "name": "IPCMsgType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37055, - "src": "25537:10:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_IPCMsgType_$37055_$", - "typeString": "type(enum IPCMsgType)" - } - }, - "id": 34500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "25548:8:25", - "memberName": "BottomUp", - "nodeType": "MemberAccess", - "referencedDeclaration": 37054, - "src": "25537:19:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IPCMsgType_$37055", - "typeString": "enum IPCMsgType" - } - }, - "src": "25524:32:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34514, - "nodeType": "IfStatement", - "src": "25520:129:25", - "trueBody": { - "id": 34513, - "nodeType": "Block", - "src": "25558:91:25", - "statements": [ - { - "expression": { - "id": 34511, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 34502, - "name": "shouldCommitBottomUp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34496, - "src": "25572:20:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 34510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "25595:43:25", - "subExpression": { - "arguments": [ - { - "id": 34508, - "name": "_networkName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32992, - "src": "25625:12:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - ], - "expression": { - "arguments": [ - { - "id": 34505, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34480, - "src": "25612:4:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - ], - "expression": { - "id": 34503, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34455, - "src": "25596:2:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - }, - "id": 34504, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "25599:12:25", - "memberName": "commonParent", - "nodeType": "MemberAccess", - "referencedDeclaration": 38772, - "src": "25596:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39060_memory_ptr_$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_struct$_SubnetID_$39060_memory_ptr_$attached_to$_t_struct$_SubnetID_$39060_memory_ptr_$", - "typeString": "function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)" - } - }, - "id": 34506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25596:21:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - }, - "id": 34507, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "25618:6:25", - "memberName": "equals", - "nodeType": "MemberAccess", - "referencedDeclaration": 38649, - "src": "25596:28:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39060_memory_ptr_$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$39060_memory_ptr_$", - "typeString": "function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)" - } - }, - "id": 34509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25596:42:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "25572:66:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34512, - "nodeType": "ExpressionStatement", - "src": "25572:66:25" - } - ] - } - }, - { - "condition": { - "id": 34515, - "name": "shouldCommitBottomUp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34496, - "src": "25663:20:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34533, - "nodeType": "IfStatement", - "src": "25659:183:25", - "trueBody": { - "id": 34532, - "nodeType": "Block", - "src": "25685:157:25", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 34517, - "name": "crossMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34446, - "src": "25718:12:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - ], - "id": 34516, - "name": "_commitBottomUpMsg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34833, - "src": "25699:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_CrossMsg_$38957_memory_ptr_$returns$__$", - "typeString": "function (struct CrossMsg memory)" - } - }, - "id": 34518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25699:32:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 34519, - "nodeType": "ExpressionStatement", - "src": "25699:32:25" - }, - { - "expression": { - "components": [ - { - "id": 34526, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 34520, - "name": "shouldBurn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34449, - "src": "25754:10:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 34525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "expression": { - "id": 34521, - "name": "crossMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34446, - "src": "25767:12:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - }, - "id": 34522, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "25780:7:25", - "memberName": "message", - "nodeType": "MemberAccess", - "referencedDeclaration": 38954, - "src": "25767:20:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$38972_memory_ptr", - "typeString": "struct StorableMsg memory" - } - }, - "id": 34523, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "25788:5:25", - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": 38965, - "src": "25767:26:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 34524, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25796:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "25767:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "25754:43:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "id": 34529, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 34527, - "name": "shouldDistributeRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34451, - "src": "25799:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "66616c7365", - "id": 34528, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25825:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "25799:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 34530, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "25753:78:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$", - "typeString": "tuple(bool,bool)" - } - }, - "functionReturnParameters": 34452, - "id": 34531, - "nodeType": "Return", - "src": "25746:85:25" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_enum$_IPCMsgType_$37055", - "typeString": "enum IPCMsgType" - }, - "id": 34537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 34534, - "name": "applyType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34488, - "src": "25856:9:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IPCMsgType_$37055", - "typeString": "enum IPCMsgType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 34535, - "name": "IPCMsgType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37055, - "src": "25869:10:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_IPCMsgType_$37055_$", - "typeString": "type(enum IPCMsgType)" - } - }, - "id": 34536, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "25880:7:25", - "memberName": "TopDown", - "nodeType": "MemberAccess", - "referencedDeclaration": 37053, - "src": "25869:18:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IPCMsgType_$37055", - "typeString": "enum IPCMsgType" - } - }, - "src": "25856:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34542, - "nodeType": "IfStatement", - "src": "25852:83:25", - "trueBody": { - "id": 34541, - "nodeType": "Block", - "src": "25889:46:25", - "statements": [ - { - "expression": { - "id": 34539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "25903:21:25", - "subExpression": { - "id": 34538, - "name": "appliedTopDownNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33032, - "src": "25905:19:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 34540, - "nodeType": "ExpressionStatement", - "src": "25903:21:25" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 34544, - "name": "crossMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34446, - "src": "25963:12:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - ], - "id": 34543, - "name": "_commitTopDownMsg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34657, - "src": "25945:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_CrossMsg_$38957_memory_ptr_$returns$__$", - "typeString": "function (struct CrossMsg memory)" - } - }, - "id": 34545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25945:31:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 34546, - "nodeType": "ExpressionStatement", - "src": "25945:31:25" - }, - { - "expression": { - "components": [ - { - "id": 34549, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 34547, - "name": "shouldBurn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34449, - "src": "25995:10:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "66616c7365", - "id": 34548, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26008:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "25995:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "id": 34552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 34550, - "name": "shouldDistributeRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34451, - "src": "26015:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 34551, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26041:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "26015:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 34553, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "25994:52:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$", - "typeString": "tuple(bool,bool)" - } - }, - "functionReturnParameters": 34452, - "id": 34554, - "nodeType": "Return", - "src": "25987:59:25" - } - ] - }, - "documentation": { - "id": 34443, - "nodeType": "StructuredDocumentation", - "src": "24429:338:25", - "text": "@notice Commit the cross message to storage. It outputs a flag signaling\n if the committed messages was bottom-up and some funds need to be\n burnt or if a top-down message fee needs to be distributed.\n It also validates that destination subnet ID is not empty\n and not equal to the current network." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_commitCrossMessage", - "nameLocation": "24781:19:25", - "parameters": { - "id": 34447, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 34446, - "mutability": "mutable", - "name": "crossMessage", - "nameLocation": "24826:12:25", - "nodeType": "VariableDeclaration", - "scope": 34556, - "src": "24810:28:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg" - }, - "typeName": { - "id": 34445, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34444, - "name": "CrossMsg", - "nameLocations": [ - "24810:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38957, - "src": "24810:8:25" - }, - "referencedDeclaration": 38957, - "src": "24810:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_storage_ptr", - "typeString": "struct CrossMsg" - } - }, - "visibility": "internal" - } - ], - "src": "24800:44:25" - }, - "returnParameters": { - "id": 34452, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 34449, - "mutability": "mutable", - "name": "shouldBurn", - "nameLocation": "24868:10:25", - "nodeType": "VariableDeclaration", - "scope": 34556, - "src": "24863:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 34448, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "24863:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 34451, - "mutability": "mutable", - "name": "shouldDistributeRewards", - "nameLocation": "24885:23:25", - "nodeType": "VariableDeclaration", - "scope": 34556, - "src": "24880:28:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 34450, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "24880:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "24862:47:25" - }, - "scope": 35198, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 34591, - "nodeType": "FunctionDefinition", - "src": "26512:377:25", - "nodes": [], - "body": { - "id": 34590, - "nodeType": "Block", - "src": "26675:214:25", - "nodes": [], - "statements": [ - { - "condition": { - "id": 34569, - "name": "shouldBurn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34564, - "src": "26689:10:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34579, - "nodeType": "IfStatement", - "src": "26685:80:25", - "trueBody": { - "id": 34578, - "nodeType": "Block", - "src": "26701:64:25", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 34575, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34559, - "src": "26752:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "id": 34572, - "name": "BURNT_FUNDS_ACTOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37025, - "src": "26723:17:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 34571, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "26715:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_payable_$", - "typeString": "type(address payable)" - }, - "typeName": { - "id": 34570, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26715:8:25", - "stateMutability": "payable", - "typeDescriptions": {} - } - }, - "id": 34573, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "26715:26:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 34574, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "26742:9:25", - "memberName": "sendValue", - "nodeType": "MemberAccess", - "referencedDeclaration": 290, - "src": "26715:36:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$", - "typeString": "function (address payable,uint256)" - } - }, - "id": 34576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "26715:39:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 34577, - "nodeType": "ExpressionStatement", - "src": "26715:39:25" - } - ] - } - }, - { - "condition": { - "id": 34580, - "name": "shouldDistributeRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34566, - "src": "26779:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34589, - "nodeType": "IfStatement", - "src": "26775:108:25", - "trueBody": { - "id": 34588, - "nodeType": "Block", - "src": "26804:79:25", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 34582, - "name": "toSubnetId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34562, - "src": "26837:10:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - }, - "id": 34583, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "26848:8:25", - "memberName": "getActor", - "nodeType": "MemberAccess", - "referencedDeclaration": 38589, - "src": "26837:19:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$39060_memory_ptr_$", - "typeString": "function (struct SubnetID memory) pure returns (address)" - } - }, - "id": 34584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "26837:21:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 34585, - "name": "crossMsgFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33035, - "src": "26860:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 34581, - "name": "_distributeRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35078, - "src": "26818:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 34586, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "26818:54:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 34587, - "nodeType": "ExpressionStatement", - "src": "26818:54:25" - } - ] - } - } - ] - }, - "documentation": { - "id": 34557, - "nodeType": "StructuredDocumentation", - "src": "26059:448:25", - "text": "@notice transaction side-effects from the commitment of a cross-net message. It burns funds\n and propagates the corresponding rewards.\n @param v - the value of the committed cross-net message\n @param toSubnetId - the destination subnet of the committed cross-net message\n @param shouldBurn - flag if the message should burn funds\n @param shouldDistributeRewards - flag if the message should distribute rewards" - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_crossMsgSideEffects", - "nameLocation": "26521:20:25", - "parameters": { - "id": 34567, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 34559, - "mutability": "mutable", - "name": "v", - "nameLocation": "26559:1:25", - "nodeType": "VariableDeclaration", - "scope": 34591, - "src": "26551:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 34558, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26551:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 34562, - "mutability": "mutable", - "name": "toSubnetId", - "nameLocation": "26586:10:25", - "nodeType": "VariableDeclaration", - "scope": 34591, - "src": "26570:26:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID" - }, - "typeName": { - "id": 34561, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34560, - "name": "SubnetID", - "nameLocations": [ - "26570:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39060, - "src": "26570:8:25" - }, - "referencedDeclaration": 39060, - "src": "26570:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage_ptr", - "typeString": "struct SubnetID" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 34564, - "mutability": "mutable", - "name": "shouldBurn", - "nameLocation": "26611:10:25", - "nodeType": "VariableDeclaration", - "scope": 34591, - "src": "26606:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 34563, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "26606:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 34566, - "mutability": "mutable", - "name": "shouldDistributeRewards", - "nameLocation": "26636:23:25", - "nodeType": "VariableDeclaration", - "scope": 34591, - "src": "26631:28:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 34565, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "26631:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "26541:124:25" - }, - "returnParameters": { - "id": 34568, - "nodeType": "ParameterList", - "parameters": [], - "src": "26675:0:25" - }, - "scope": 35198, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 34657, - "nodeType": "FunctionDefinition", - "src": "27093:512:25", - "nodes": [], - "body": { - "id": 34656, - "nodeType": "Block", - "src": "27159:446:25", - "nodes": [], - "statements": [ - { - "assignments": [ - 34600 - ], - "declarations": [ - { - "constant": false, - "id": 34600, - "mutability": "mutable", - "name": "subnetId", - "nameLocation": "27185:8:25", - "nodeType": "VariableDeclaration", - "scope": 34656, - "src": "27169:24:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID" - }, - "typeName": { - "id": 34599, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34598, - "name": "SubnetID", - "nameLocations": [ - "27169:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39060, - "src": "27169:8:25" - }, - "referencedDeclaration": 39060, - "src": "27169:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage_ptr", - "typeString": "struct SubnetID" - } - }, - "visibility": "internal" - } - ], - "id": 34608, - "initialValue": { - "arguments": [ - { - "id": 34606, - "name": "_networkName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32992, - "src": "27234:12:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - ], - "expression": { - "expression": { - "expression": { - "expression": { - "id": 34601, - "name": "crossMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34595, - "src": "27196:12:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - }, - "id": 34602, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27209:7:25", - "memberName": "message", - "nodeType": "MemberAccess", - "referencedDeclaration": 38954, - "src": "27196:20:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$38972_memory_ptr", - "typeString": "struct StorableMsg memory" - } - }, - "id": 34603, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27217:2:25", - "memberName": "to", - "nodeType": "MemberAccess", - "referencedDeclaration": 38963, - "src": "27196:23:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IPCAddress_$39091_memory_ptr", - "typeString": "struct IPCAddress memory" - } - }, - "id": 34604, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27220:8:25", - "memberName": "subnetId", - "nodeType": "MemberAccess", - "referencedDeclaration": 39087, - "src": "27196:32:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - }, - "id": 34605, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27229:4:25", - "memberName": "down", - "nodeType": "MemberAccess", - "referencedDeclaration": 38891, - "src": "27196:37:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39060_memory_ptr_$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_struct$_SubnetID_$39060_memory_ptr_$attached_to$_t_struct$_SubnetID_$39060_memory_ptr_$", - "typeString": "function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)" - } - }, - "id": 34607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27196:51:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "27169:78:25" - }, - { - "assignments": [ - 34610, - 34613 - ], - "declarations": [ - { - "constant": false, - "id": 34610, - "mutability": "mutable", - "name": "registered", - "nameLocation": "27264:10:25", - "nodeType": "VariableDeclaration", - "scope": 34656, - "src": "27259:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 34609, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "27259:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 34613, - "mutability": "mutable", - "name": "subnet", - "nameLocation": "27291:6:25", - "nodeType": "VariableDeclaration", - "scope": 34656, - "src": "27276:21:25", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - }, - "typeName": { - "id": 34612, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34611, - "name": "Subnet", - "nameLocations": [ - "27276:6:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39084, - "src": "27276:6:25" - }, - "referencedDeclaration": 39084, - "src": "27276:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - } - }, - "visibility": "internal" - } - ], - "id": 34617, - "initialValue": { - "arguments": [ - { - "id": 34615, - "name": "subnetId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34600, - "src": "27312:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - ], - "id": 34614, - "name": "_getSubnet", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 35113, - 35142 - ], - "referencedDeclaration": 35142, - "src": "27301:10:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$39084_storage_ptr_$", - "typeString": "function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)" - } - }, - "id": 34616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27301:20:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$39084_storage_ptr_$", - "typeString": "tuple(bool,struct Subnet storage pointer)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "27258:63:25" - }, - { - "condition": { - "id": 34619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "27336:11:25", - "subExpression": { - "id": 34618, - "name": "registered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34610, - "src": "27337:10:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34624, - "nodeType": "IfStatement", - "src": "27332:70:25", - "trueBody": { - "id": 34623, - "nodeType": "Block", - "src": "27349:53:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 34620, - "name": "NotRegisteredSubnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33101, - "src": "27370:19:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 34621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27370:21:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 34622, - "nodeType": "RevertStatement", - "src": "27363:28:25" - } - ] - } - }, - { - "expression": { - "id": 34632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "expression": { - "id": 34625, - "name": "crossMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34595, - "src": "27412:12:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - }, - "id": 34628, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27425:7:25", - "memberName": "message", - "nodeType": "MemberAccess", - "referencedDeclaration": 38954, - "src": "27412:20:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$38972_memory_ptr", - "typeString": "struct StorableMsg memory" - } - }, - "id": 34629, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "27433:5:25", - "memberName": "nonce", - "nodeType": "MemberAccess", - "referencedDeclaration": 38967, - "src": "27412:26:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 34630, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34613, - "src": "27441:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 34631, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27448:12:25", - "memberName": "topDownNonce", - "nodeType": "MemberAccess", - "referencedDeclaration": 39065, - "src": "27441:19:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "27412:48:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 34633, - "nodeType": "ExpressionStatement", - "src": "27412:48:25" - }, - { - "expression": { - "id": 34638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 34634, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34613, - "src": "27470:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 34636, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "27477:12:25", - "memberName": "topDownNonce", - "nodeType": "MemberAccess", - "referencedDeclaration": 39065, - "src": "27470:19:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "31", - "id": 34637, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27493:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "27470:24:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 34639, - "nodeType": "ExpressionStatement", - "src": "27470:24:25" - }, - { - "expression": { - "id": 34646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 34640, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34613, - "src": "27504:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 34642, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "27511:10:25", - "memberName": "circSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 39073, - "src": "27504:17:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "expression": { - "expression": { - "id": 34643, - "name": "crossMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34595, - "src": "27525:12:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - }, - "id": 34644, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27538:7:25", - "memberName": "message", - "nodeType": "MemberAccess", - "referencedDeclaration": 38954, - "src": "27525:20:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$38972_memory_ptr", - "typeString": "struct StorableMsg memory" - } - }, - "id": 34645, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27546:5:25", - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": 38965, - "src": "27525:26:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27504:47:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 34647, - "nodeType": "ExpressionStatement", - "src": "27504:47:25" - }, - { - "expression": { - "arguments": [ - { - "id": 34653, - "name": "crossMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34595, - "src": "27585:12:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - ], - "expression": { - "expression": { - "id": 34648, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34613, - "src": "27561:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 34651, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27568:11:25", - "memberName": "topDownMsgs", - "nodeType": "MemberAccess", - "referencedDeclaration": 39083, - "src": "27561:18:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_storage_$dyn_storage", - "typeString": "struct CrossMsg storage ref[] storage ref" - } - }, - "id": 34652, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27580:4:25", - "memberName": "push", - "nodeType": "MemberAccess", - "src": "27561:23:25", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_CrossMsg_$38957_storage_$dyn_storage_ptr_$_t_struct$_CrossMsg_$38957_storage_$returns$__$attached_to$_t_array$_t_struct$_CrossMsg_$38957_storage_$dyn_storage_ptr_$", - "typeString": "function (struct CrossMsg storage ref[] storage pointer,struct CrossMsg storage ref)" - } - }, - "id": 34654, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27561:37:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 34655, - "nodeType": "ExpressionStatement", - "src": "27561:37:25" - } - ] - }, - "documentation": { - "id": 34592, - "nodeType": "StructuredDocumentation", - "src": "26895:193:25", - "text": "@notice commit topdown messages for their execution in the subnet. Adds the message to the subnet struct for future execution\n @param crossMessage - the cross message to be committed" - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_commitTopDownMsg", - "nameLocation": "27102:17:25", - "parameters": { - "id": 34596, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 34595, - "mutability": "mutable", - "name": "crossMessage", - "nameLocation": "27136:12:25", - "nodeType": "VariableDeclaration", - "scope": 34657, - "src": "27120:28:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg" - }, - "typeName": { - "id": 34594, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34593, - "name": "CrossMsg", - "nameLocations": [ - "27120:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38957, - "src": "27120:8:25" - }, - "referencedDeclaration": 38957, - "src": "27120:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_storage_ptr", - "typeString": "struct CrossMsg" - } - }, - "visibility": "internal" - } - ], - "src": "27119:30:25" - }, - "returnParameters": { - "id": 34597, - "nodeType": "ParameterList", - "parameters": [], - "src": "27159:0:25" - }, - "scope": 35198, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 34759, - "nodeType": "FunctionDefinition", - "src": "27864:742:25", - "nodes": [], - "body": { - "id": 34758, - "nodeType": "Block", - "src": "27976:630:25", - "nodes": [], - "statements": [ - { - "assignments": [ - 34671, - 34674 - ], - "declarations": [ - { - "constant": false, - "id": 34671, - "mutability": "mutable", - "name": "registered", - "nameLocation": "27992:10:25", - "nodeType": "VariableDeclaration", - "scope": 34758, - "src": "27987:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 34670, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "27987:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 34674, - "mutability": "mutable", - "name": "subnet", - "nameLocation": "28019:6:25", - "nodeType": "VariableDeclaration", - "scope": 34758, - "src": "28004:21:25", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - }, - "typeName": { - "id": 34673, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34672, - "name": "Subnet", - "nameLocations": [ - "28004:6:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39084, - "src": "28004:6:25" - }, - "referencedDeclaration": 39084, - "src": "28004:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - } - }, - "visibility": "internal" - } - ], - "id": 34678, - "initialValue": { - "arguments": [ - { - "id": 34676, - "name": "subnetId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34661, - "src": "28040:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_calldata_ptr", - "typeString": "struct SubnetID calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SubnetID_$39060_calldata_ptr", - "typeString": "struct SubnetID calldata" - } - ], - "id": 34675, - "name": "_getSubnet", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 35113, - 35142 - ], - "referencedDeclaration": 35142, - "src": "28029:10:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$39084_storage_ptr_$", - "typeString": "function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)" - } - }, - "id": 34677, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "28029:20:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$39084_storage_ptr_$", - "typeString": "tuple(bool,struct Subnet storage pointer)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "27986:63:25" - }, - { - "condition": { - "id": 34680, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "28063:11:25", - "subExpression": { - "id": 34679, - "name": "registered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34671, - "src": "28064:10:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34689, - "nodeType": "IfStatement", - "src": "28059:66:25", - "trueBody": { - "id": 34688, - "nodeType": "Block", - "src": "28076:49:25", - "statements": [ - { - "expression": { - "arguments": [ - { - "hexValue": "30", - "id": 34685, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28112:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 34684, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "28097:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$38957_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (struct CrossMsg memory[] memory)" - }, - "typeName": { - "baseType": { - "id": 34682, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34681, - "name": "CrossMsg", - "nameLocations": [ - "28101:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38957, - "src": "28101:8:25" - }, - "referencedDeclaration": 38957, - "src": "28101:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_storage_ptr", - "typeString": "struct CrossMsg" - } - }, - "id": 34683, - "nodeType": "ArrayTypeName", - "src": "28101:10:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_storage_$dyn_storage_ptr", - "typeString": "struct CrossMsg[]" - } - } - }, - "id": 34686, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "28097:17:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CrossMsg memory[] memory" - } - }, - "functionReturnParameters": 34669, - "id": 34687, - "nodeType": "Return", - "src": "28090:24:25" - } - ] - } - }, - { - "assignments": [ - 34691 - ], - "declarations": [ - { - "constant": false, - "id": 34691, - "mutability": "mutable", - "name": "totalLength", - "nameLocation": "28143:11:25", - "nodeType": "VariableDeclaration", - "scope": 34758, - "src": "28135:19:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 34690, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28135:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 34695, - "initialValue": { - "expression": { - "expression": { - "id": 34692, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34674, - "src": "28157:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 34693, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "28164:11:25", - "memberName": "topDownMsgs", - "nodeType": "MemberAccess", - "referencedDeclaration": 39083, - "src": "28157:18:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_storage_$dyn_storage", - "typeString": "struct CrossMsg storage ref[] storage ref" - } - }, - "id": 34694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "28176:6:25", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "28157:25:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "28135:47:25" - }, - { - "assignments": [ - 34697 - ], - "declarations": [ - { - "constant": false, - "id": 34697, - "mutability": "mutable", - "name": "startingNonce", - "nameLocation": "28200:13:25", - "nodeType": "VariableDeclaration", - "scope": 34758, - "src": "28192:21:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 34696, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28192:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 34702, - "initialValue": { - "arguments": [ - { - "id": 34700, - "name": "fromNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34663, - "src": "28224:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 34699, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "28216:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 34698, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28216:7:25", - "typeDescriptions": {} - } - }, - "id": 34701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "28216:18:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "28192:42:25" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 34705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 34703, - "name": "startingNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34697, - "src": "28248:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "id": 34704, - "name": "totalLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34691, - "src": "28265:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "28248:28:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34714, - "nodeType": "IfStatement", - "src": "28244:83:25", - "trueBody": { - "id": 34713, - "nodeType": "Block", - "src": "28278:49:25", - "statements": [ - { - "expression": { - "arguments": [ - { - "hexValue": "30", - "id": 34710, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28314:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 34709, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "28299:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$38957_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (struct CrossMsg memory[] memory)" - }, - "typeName": { - "baseType": { - "id": 34707, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34706, - "name": "CrossMsg", - "nameLocations": [ - "28303:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38957, - "src": "28303:8:25" - }, - "referencedDeclaration": 38957, - "src": "28303:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_storage_ptr", - "typeString": "struct CrossMsg" - } - }, - "id": 34708, - "nodeType": "ArrayTypeName", - "src": "28303:10:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_storage_$dyn_storage_ptr", - "typeString": "struct CrossMsg[]" - } - } - }, - "id": 34711, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "28299:17:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CrossMsg memory[] memory" - } - }, - "functionReturnParameters": 34669, - "id": 34712, - "nodeType": "Return", - "src": "28292:24:25" - } - ] - } - }, - { - "assignments": [ - 34716 - ], - "declarations": [ - { - "constant": false, - "id": 34716, - "mutability": "mutable", - "name": "msgLength", - "nameLocation": "28345:9:25", - "nodeType": "VariableDeclaration", - "scope": 34758, - "src": "28337:17:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 34715, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28337:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 34720, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 34719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 34717, - "name": "totalLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34691, - "src": "28357:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 34718, - "name": "startingNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34697, - "src": "28371:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "28357:27:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "28337:47:25" - }, - { - "assignments": [ - 34725 - ], - "declarations": [ - { - "constant": false, - "id": 34725, - "mutability": "mutable", - "name": "messages", - "nameLocation": "28412:8:25", - "nodeType": "VariableDeclaration", - "scope": 34758, - "src": "28394:26:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CrossMsg[]" - }, - "typeName": { - "baseType": { - "id": 34723, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34722, - "name": "CrossMsg", - "nameLocations": [ - "28394:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38957, - "src": "28394:8:25" - }, - "referencedDeclaration": 38957, - "src": "28394:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_storage_ptr", - "typeString": "struct CrossMsg" - } - }, - "id": 34724, - "nodeType": "ArrayTypeName", - "src": "28394:10:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_storage_$dyn_storage_ptr", - "typeString": "struct CrossMsg[]" - } - }, - "visibility": "internal" - } - ], - "id": 34732, - "initialValue": { - "arguments": [ - { - "id": 34730, - "name": "msgLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34716, - "src": "28438:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 34729, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "28423:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$38957_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (struct CrossMsg memory[] memory)" - }, - "typeName": { - "baseType": { - "id": 34727, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34726, - "name": "CrossMsg", - "nameLocations": [ - "28427:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38957, - "src": "28427:8:25" - }, - "referencedDeclaration": 38957, - "src": "28427:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_storage_ptr", - "typeString": "struct CrossMsg" - } - }, - "id": 34728, - "nodeType": "ArrayTypeName", - "src": "28427:10:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_storage_$dyn_storage_ptr", - "typeString": "struct CrossMsg[]" - } - } - }, - "id": 34731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "28423:25:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CrossMsg memory[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "28394:54:25" - }, - { - "body": { - "id": 34754, - "nodeType": "Block", - "src": "28498:76:25", - "statements": [ - { - "expression": { - "id": 34752, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 34743, - "name": "messages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34725, - "src": "28512:8:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CrossMsg memory[] memory" - } - }, - "id": 34745, - "indexExpression": { - "id": 34744, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34734, - "src": "28521:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "28512:11:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "baseExpression": { - "expression": { - "id": 34746, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34674, - "src": "28526:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 34747, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "28533:11:25", - "memberName": "topDownMsgs", - "nodeType": "MemberAccess", - "referencedDeclaration": 39083, - "src": "28526:18:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_storage_$dyn_storage", - "typeString": "struct CrossMsg storage ref[] storage ref" - } - }, - "id": 34751, - "indexExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 34750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 34748, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34734, - "src": "28545:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 34749, - "name": "startingNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34697, - "src": "28549:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "28545:17:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "28526:37:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_storage", - "typeString": "struct CrossMsg storage ref" - } - }, - "src": "28512:51:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - }, - "id": 34753, - "nodeType": "ExpressionStatement", - "src": "28512:51:25" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 34739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 34737, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34734, - "src": "28478:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 34738, - "name": "msgLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34716, - "src": "28482:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "28478:13:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34755, - "initializationExpression": { - "assignments": [ - 34734 - ], - "declarations": [ - { - "constant": false, - "id": 34734, - "mutability": "mutable", - "name": "i", - "nameLocation": "28471:1:25", - "nodeType": "VariableDeclaration", - "scope": 34755, - "src": "28463:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 34733, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28463:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 34736, - "initialValue": { - "hexValue": "30", - "id": 34735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28475:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "28463:13:25" - }, - "loopExpression": { - "expression": { - "id": 34741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "28493:3:25", - "subExpression": { - "id": 34740, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34734, - "src": "28493:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 34742, - "nodeType": "ExpressionStatement", - "src": "28493:3:25" - }, - "nodeType": "ForStatement", - "src": "28458:116:25" - }, - { - "expression": { - "id": 34756, - "name": "messages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34725, - "src": "28591:8:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CrossMsg memory[] memory" - } - }, - "functionReturnParameters": 34669, - "id": 34757, - "nodeType": "Return", - "src": "28584:15:25" - } - ] - }, - "documentation": { - "id": 34658, - "nodeType": "StructuredDocumentation", - "src": "27611:248:25", - "text": "@notice get the list of top down messages from nonce, we may also consider introducing pagination.\n @param subnetId - The subnet id to fetch messages from\n @param fromNonce - The starting nonce to get top down messages, inclusive." - }, - "functionSelector": "13549315", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getTopDownMsgs", - "nameLocation": "27873:14:25", - "parameters": { - "id": 34664, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 34661, - "mutability": "mutable", - "name": "subnetId", - "nameLocation": "27906:8:25", - "nodeType": "VariableDeclaration", - "scope": 34759, - "src": "27888:26:25", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_calldata_ptr", - "typeString": "struct SubnetID" - }, - "typeName": { - "id": 34660, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34659, - "name": "SubnetID", - "nameLocations": [ - "27888:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39060, - "src": "27888:8:25" - }, - "referencedDeclaration": 39060, - "src": "27888:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage_ptr", - "typeString": "struct SubnetID" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 34663, - "mutability": "mutable", - "name": "fromNonce", - "nameLocation": "27923:9:25", - "nodeType": "VariableDeclaration", - "scope": 34759, - "src": "27916:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 34662, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "27916:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "27887:46:25" - }, - "returnParameters": { - "id": 34669, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 34668, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 34759, - "src": "27957:17:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CrossMsg[]" - }, - "typeName": { - "baseType": { - "id": 34666, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34665, - "name": "CrossMsg", - "nameLocations": [ - "27957:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38957, - "src": "27957:8:25" - }, - "referencedDeclaration": 38957, - "src": "27957:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_storage_ptr", - "typeString": "struct CrossMsg" - } - }, - "id": 34667, - "nodeType": "ArrayTypeName", - "src": "27957:10:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_storage_$dyn_storage_ptr", - "typeString": "struct CrossMsg[]" - } - }, - "visibility": "internal" - } - ], - "src": "27956:19:25" - }, - "scope": 35198, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 34793, - "nodeType": "FunctionDefinition", - "src": "28729:289:25", - "nodes": [], - "body": { - "id": 34792, - "nodeType": "Block", - "src": "28826:192:25", - "nodes": [], - "statements": [ - { - "assignments": [ - 34771, - 34774 - ], - "declarations": [ - { - "constant": false, - "id": 34771, - "mutability": "mutable", - "name": "registered", - "nameLocation": "28842:10:25", - "nodeType": "VariableDeclaration", - "scope": 34792, - "src": "28837:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 34770, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "28837:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 34774, - "mutability": "mutable", - "name": "subnet", - "nameLocation": "28869:6:25", - "nodeType": "VariableDeclaration", - "scope": 34792, - "src": "28854:21:25", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - }, - "typeName": { - "id": 34773, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34772, - "name": "Subnet", - "nameLocations": [ - "28854:6:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39084, - "src": "28854:6:25" - }, - "referencedDeclaration": 39084, - "src": "28854:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - } - }, - "visibility": "internal" - } - ], - "id": 34778, - "initialValue": { - "arguments": [ - { - "id": 34776, - "name": "subnetId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34763, - "src": "28890:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_calldata_ptr", - "typeString": "struct SubnetID calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SubnetID_$39060_calldata_ptr", - "typeString": "struct SubnetID calldata" - } - ], - "id": 34775, - "name": "_getSubnet", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 35113, - 35142 - ], - "referencedDeclaration": 35142, - "src": "28879:10:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$39084_storage_ptr_$", - "typeString": "function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)" - } - }, - "id": 34777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "28879:20:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$39084_storage_ptr_$", - "typeString": "tuple(bool,struct Subnet storage pointer)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "28836:63:25" - }, - { - "condition": { - "id": 34780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "28913:11:25", - "subExpression": { - "id": 34779, - "name": "registered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34771, - "src": "28914:10:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34786, - "nodeType": "IfStatement", - "src": "28909:59:25", - "trueBody": { - "id": 34785, - "nodeType": "Block", - "src": "28926:42:25", - "statements": [ - { - "expression": { - "components": [ - { - "hexValue": "66616c7365", - "id": 34781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28948:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "hexValue": "30", - "id": 34782, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28955:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 34783, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "28947:10:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", - "typeString": "tuple(bool,int_const 0)" - } - }, - "functionReturnParameters": 34769, - "id": 34784, - "nodeType": "Return", - "src": "28940:17:25" - } - ] - } - }, - { - "expression": { - "components": [ - { - "hexValue": "74727565", - "id": 34787, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28985:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "expression": { - "id": 34788, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34774, - "src": "28991:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 34789, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "28998:12:25", - "memberName": "topDownNonce", - "nodeType": "MemberAccess", - "referencedDeclaration": 39065, - "src": "28991:19:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "id": 34790, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "28984:27:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint64_$", - "typeString": "tuple(bool,uint64)" - } - }, - "functionReturnParameters": 34769, - "id": 34791, - "nodeType": "Return", - "src": "28977:34:25" - } - ] - }, - "documentation": { - "id": 34760, - "nodeType": "StructuredDocumentation", - "src": "28612:112:25", - "text": "@notice Get the latest applied top down nonce\n @param subnetId - The subnet id to fetch messages from" - }, - "functionSelector": "9e530b57", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAppliedTopDownNonce", - "nameLocation": "28738:22:25", - "parameters": { - "id": 34764, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 34763, - "mutability": "mutable", - "name": "subnetId", - "nameLocation": "28779:8:25", - "nodeType": "VariableDeclaration", - "scope": 34793, - "src": "28761:26:25", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_calldata_ptr", - "typeString": "struct SubnetID" - }, - "typeName": { - "id": 34762, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34761, - "name": "SubnetID", - "nameLocations": [ - "28761:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39060, - "src": "28761:8:25" - }, - "referencedDeclaration": 39060, - "src": "28761:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage_ptr", - "typeString": "struct SubnetID" - } - }, - "visibility": "internal" - } - ], - "src": "28760:28:25" - }, - "returnParameters": { - "id": 34769, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 34766, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 34793, - "src": "28812:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 34765, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "28812:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 34768, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 34793, - "src": "28818:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 34767, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "28818:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "28811:14:25" - }, - "scope": 35198, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 34833, - "nodeType": "FunctionDefinition", - "src": "29220:331:25", - "nodes": [], - "body": { - "id": 34832, - "nodeType": "Block", - "src": "29287:264:25", - "nodes": [], - "statements": [ - { - "assignments": [ - null, - null, - 34802 - ], - "declarations": [ - null, - null, - { - "constant": false, - "id": 34802, - "mutability": "mutable", - "name": "checkpoint", - "nameLocation": "29329:10:25", - "nodeType": "VariableDeclaration", - "scope": 34832, - "src": "29302:37:25", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint" - }, - "typeName": { - "id": 34801, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34800, - "name": "BottomUpCheckpoint", - "nameLocations": [ - "29302:18:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38937, - "src": "29302:18:25" - }, - "referencedDeclaration": 38937, - "src": "29302:18:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint" - } - }, - "visibility": "internal" - } - ], - "id": 34805, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 34803, - "name": "_getCurrentBottomUpCheckpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35048, - "src": "29343:29:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$_t_uint64_$_t_struct$_BottomUpCheckpoint_$38937_storage_ptr_$", - "typeString": "function () view returns (bool,uint64,struct BottomUpCheckpoint storage pointer)" - } - }, - "id": 34804, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "29343:31:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint64_$_t_struct$_BottomUpCheckpoint_$38937_storage_ptr_$", - "typeString": "tuple(bool,uint64,struct BottomUpCheckpoint storage pointer)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "29297:77:25" - }, - { - "expression": { - "id": 34812, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "expression": { - "id": 34806, - "name": "crossMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34797, - "src": "29385:12:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - }, - "id": 34809, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29398:7:25", - "memberName": "message", - "nodeType": "MemberAccess", - "referencedDeclaration": 38954, - "src": "29385:20:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$38972_memory_ptr", - "typeString": "struct StorableMsg memory" - } - }, - "id": 34810, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "29406:5:25", - "memberName": "nonce", - "nodeType": "MemberAccess", - "referencedDeclaration": 38967, - "src": "29385:26:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 34811, - "name": "bottomUpNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33029, - "src": "29414:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "29385:42:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 34813, - "nodeType": "ExpressionStatement", - "src": "29385:42:25" - }, - { - "expression": { - "id": 34818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 34814, - "name": "checkpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34802, - "src": "29438:10:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint storage pointer" - } - }, - "id": 34816, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "29449:3:25", - "memberName": "fee", - "nodeType": "MemberAccess", - "referencedDeclaration": 38924, - "src": "29438:14:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 34817, - "name": "crossMsgFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33035, - "src": "29456:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29438:29:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 34819, - "nodeType": "ExpressionStatement", - "src": "29438:29:25" - }, - { - "expression": { - "arguments": [ - { - "id": 34825, - "name": "crossMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34797, - "src": "29503:12:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - ], - "expression": { - "expression": { - "id": 34820, - "name": "checkpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34802, - "src": "29477:10:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint storage pointer" - } - }, - "id": 34823, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29488:9:25", - "memberName": "crossMsgs", - "nodeType": "MemberAccess", - "referencedDeclaration": 38928, - "src": "29477:20:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_storage_$dyn_storage", - "typeString": "struct CrossMsg storage ref[] storage ref" - } - }, - "id": 34824, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29498:4:25", - "memberName": "push", - "nodeType": "MemberAccess", - "src": "29477:25:25", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_CrossMsg_$38957_storage_$dyn_storage_ptr_$_t_struct$_CrossMsg_$38957_storage_$returns$__$attached_to$_t_array$_t_struct$_CrossMsg_$38957_storage_$dyn_storage_ptr_$", - "typeString": "function (struct CrossMsg storage ref[] storage pointer,struct CrossMsg storage ref)" - } - }, - "id": 34826, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "29477:39:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 34827, - "nodeType": "ExpressionStatement", - "src": "29477:39:25" - }, - { - "expression": { - "id": 34830, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 34828, - "name": "bottomUpNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33029, - "src": "29526:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "31", - "id": 34829, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29543:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "29526:18:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 34831, - "nodeType": "ExpressionStatement", - "src": "29526:18:25" - } - ] - }, - "documentation": { - "id": 34794, - "nodeType": "StructuredDocumentation", - "src": "29024:191:25", - "text": "@notice commit bottomup messages for their execution in the subnet. Adds the message to the checkpoint for future execution\n @param crossMessage - the cross message to be committed" - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_commitBottomUpMsg", - "nameLocation": "29229:18:25", - "parameters": { - "id": 34798, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 34797, - "mutability": "mutable", - "name": "crossMessage", - "nameLocation": "29264:12:25", - "nodeType": "VariableDeclaration", - "scope": 34833, - "src": "29248:28:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg" - }, - "typeName": { - "id": 34796, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34795, - "name": "CrossMsg", - "nameLocations": [ - "29248:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38957, - "src": "29248:8:25" - }, - "referencedDeclaration": 38957, - "src": "29248:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_storage_ptr", - "typeString": "struct CrossMsg" - } - }, - "visibility": "internal" - } - ], - "src": "29247:30:25" - }, - "returnParameters": { - "id": 34799, - "nodeType": "ParameterList", - "parameters": [], - "src": "29287:0:25" - }, - "scope": 35198, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 34977, - "nodeType": "FunctionDefinition", - "src": "29827:1862:25", - "nodes": [], - "body": { - "id": 34976, - "nodeType": "Block", - "src": "29908:1781:25", - "nodes": [], - "statements": [ - { - "condition": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "expression": { - "expression": { - "expression": { - "id": 34843, - "name": "crossMsg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34840, - "src": "29922:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - }, - "id": 34844, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29931:7:25", - "memberName": "message", - "nodeType": "MemberAccess", - "referencedDeclaration": 38954, - "src": "29922:16:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$38972_memory_ptr", - "typeString": "struct StorableMsg memory" - } - }, - "id": 34845, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29939:2:25", - "memberName": "to", - "nodeType": "MemberAccess", - "referencedDeclaration": 38963, - "src": "29922:19:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IPCAddress_$39091_memory_ptr", - "typeString": "struct IPCAddress memory" - } - }, - "id": 34846, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29942:8:25", - "memberName": "subnetId", - "nodeType": "MemberAccess", - "referencedDeclaration": 39087, - "src": "29922:28:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - }, - "id": 34847, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29951:7:25", - "memberName": "isEmpty", - "nodeType": "MemberAccess", - "referencedDeclaration": 38911, - "src": "29922:36:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$39060_memory_ptr_$", - "typeString": "function (struct SubnetID memory) pure returns (bool)" - } - }, - "id": 34848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "29922:38:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34853, - "nodeType": "IfStatement", - "src": "29918:110:25", - "trueBody": { - "id": 34852, - "nodeType": "Block", - "src": "29962:66:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 34849, - "name": "InvalidCrossMsgDestinationSubnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33117, - "src": "29983:32:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 34850, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "29983:34:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 34851, - "nodeType": "RevertStatement", - "src": "29976:41:25" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 34858, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "expression": { - "id": 34854, - "name": "crossMsg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34840, - "src": "30041:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - }, - "id": 34855, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30050:7:25", - "memberName": "message", - "nodeType": "MemberAccess", - "referencedDeclaration": 38954, - "src": "30041:16:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$38972_memory_ptr", - "typeString": "struct StorableMsg memory" - } - }, - "id": 34856, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30058:6:25", - "memberName": "method", - "nodeType": "MemberAccess", - "referencedDeclaration": 38969, - "src": "30041:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 34857, - "name": "METHOD_SEND", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37046, - "src": "30068:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "30041:38:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34874, - "nodeType": "IfStatement", - "src": "30037:178:25", - "trueBody": { - "id": 34873, - "nodeType": "Block", - "src": "30081:134:25", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 34867, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "expression": { - "id": 34859, - "name": "crossMsg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34840, - "src": "30099:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - }, - "id": 34860, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30108:7:25", - "memberName": "message", - "nodeType": "MemberAccess", - "referencedDeclaration": 38954, - "src": "30099:16:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$38972_memory_ptr", - "typeString": "struct StorableMsg memory" - } - }, - "id": 34861, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30116:5:25", - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": 38965, - "src": "30099:22:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 34864, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "30132:4:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Gateway_$35198", - "typeString": "contract Gateway" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Gateway_$35198", - "typeString": "contract Gateway" - } - ], - "id": 34863, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "30124:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 34862, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30124:7:25", - "typeDescriptions": {} - } - }, - "id": 34865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "30124:13:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 34866, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30138:7:25", - "memberName": "balance", - "nodeType": "MemberAccess", - "src": "30124:21:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30099:46:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34872, - "nodeType": "IfStatement", - "src": "30095:110:25", - "trueBody": { - "id": 34871, - "nodeType": "Block", - "src": "30147:58:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 34868, - "name": "NotEnoughBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33093, - "src": "30172:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 34869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "30172:18:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 34870, - "nodeType": "RevertStatement", - "src": "30165:25:25" - } - ] - } - } - ] - } - }, - { - "assignments": [ - 34877 - ], - "declarations": [ - { - "constant": false, - "id": 34877, - "mutability": "mutable", - "name": "applyType", - "nameLocation": "30236:9:25", - "nodeType": "VariableDeclaration", - "scope": 34976, - "src": "30225:20:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IPCMsgType_$37055", - "typeString": "enum IPCMsgType" - }, - "typeName": { - "id": 34876, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34875, - "name": "IPCMsgType", - "nameLocations": [ - "30225:10:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 37055, - "src": "30225:10:25" - }, - "referencedDeclaration": 37055, - "src": "30225:10:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IPCMsgType_$37055", - "typeString": "enum IPCMsgType" - } - }, - "visibility": "internal" - } - ], - "id": 34883, - "initialValue": { - "arguments": [ - { - "id": 34881, - "name": "_networkName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32992, - "src": "30275:12:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - ], - "expression": { - "expression": { - "id": 34878, - "name": "crossMsg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34840, - "src": "30248:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - }, - "id": 34879, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30257:7:25", - "memberName": "message", - "nodeType": "MemberAccess", - "referencedDeclaration": 38954, - "src": "30248:16:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$38972_memory_ptr", - "typeString": "struct StorableMsg memory" - } - }, - "id": 34880, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30265:9:25", - "memberName": "applyType", - "nodeType": "MemberAccess", - "referencedDeclaration": 38301, - "src": "30248:26:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_StorableMsg_$38972_memory_ptr_$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_enum$_IPCMsgType_$37055_$attached_to$_t_struct$_StorableMsg_$38972_memory_ptr_$", - "typeString": "function (struct StorableMsg memory,struct SubnetID memory) pure returns (enum IPCMsgType)" - } - }, - "id": 34882, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "30248:40:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_enum$_IPCMsgType_$37055", - "typeString": "enum IPCMsgType" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "30225:63:25" - }, - { - "condition": { - "arguments": [ - { - "id": 34889, - "name": "_networkName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32992, - "src": "30407:12:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - ], - "expression": { - "expression": { - "expression": { - "expression": { - "id": 34884, - "name": "crossMsg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34840, - "src": "30371:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - }, - "id": 34885, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30380:7:25", - "memberName": "message", - "nodeType": "MemberAccess", - "referencedDeclaration": 38954, - "src": "30371:16:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$38972_memory_ptr", - "typeString": "struct StorableMsg memory" - } - }, - "id": 34886, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30388:2:25", - "memberName": "to", - "nodeType": "MemberAccess", - "referencedDeclaration": 38963, - "src": "30371:19:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IPCAddress_$39091_memory_ptr", - "typeString": "struct IPCAddress memory" - } - }, - "id": 34887, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30391:8:25", - "memberName": "subnetId", - "nodeType": "MemberAccess", - "referencedDeclaration": 39087, - "src": "30371:28:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - }, - "id": 34888, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30400:6:25", - "memberName": "equals", - "nodeType": "MemberAccess", - "referencedDeclaration": 38649, - "src": "30371:35:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39060_memory_ptr_$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$39060_memory_ptr_$", - "typeString": "function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)" - } - }, - "id": 34890, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "30371:49:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34963, - "nodeType": "IfStatement", - "src": "30367:1132:25", - "trueBody": { - "id": 34962, - "nodeType": "Block", - "src": "30422:1077:25", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_enum$_IPCMsgType_$37055", - "typeString": "enum IPCMsgType" - }, - "id": 34894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 34891, - "name": "applyType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34877, - "src": "30610:9:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IPCMsgType_$37055", - "typeString": "enum IPCMsgType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 34892, - "name": "IPCMsgType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37055, - "src": "30623:10:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_IPCMsgType_$37055_$", - "typeString": "type(enum IPCMsgType)" - } - }, - "id": 34893, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "30634:8:25", - "memberName": "BottomUp", - "nodeType": "MemberAccess", - "referencedDeclaration": 37054, - "src": "30623:19:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IPCMsgType_$37055", - "typeString": "enum IPCMsgType" - } - }, - "src": "30610:32:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34935, - "nodeType": "IfStatement", - "src": "30606:529:25", - "trueBody": { - "id": 34934, - "nodeType": "Block", - "src": "30644:491:25", - "statements": [ - { - "condition": { - "id": 34898, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "30666:20:25", - "subExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 34895, - "name": "forwarder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34837, - "src": "30667:9:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - }, - "id": 34896, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30677:7:25", - "memberName": "isEmpty", - "nodeType": "MemberAccess", - "referencedDeclaration": 38911, - "src": "30667:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$39060_memory_ptr_$", - "typeString": "function (struct SubnetID memory) pure returns (bool)" - } - }, - "id": 34897, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "30667:19:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34933, - "nodeType": "IfStatement", - "src": "30662:459:25", - "trueBody": { - "id": 34932, - "nodeType": "Block", - "src": "30688:433:25", - "statements": [ - { - "assignments": [ - 34900, - 34903 - ], - "declarations": [ - { - "constant": false, - "id": 34900, - "mutability": "mutable", - "name": "registered", - "nameLocation": "30716:10:25", - "nodeType": "VariableDeclaration", - "scope": 34932, - "src": "30711:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 34899, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "30711:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 34903, - "mutability": "mutable", - "name": "subnet", - "nameLocation": "30743:6:25", - "nodeType": "VariableDeclaration", - "scope": 34932, - "src": "30728:21:25", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - }, - "typeName": { - "id": 34902, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34901, - "name": "Subnet", - "nameLocations": [ - "30728:6:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39084, - "src": "30728:6:25" - }, - "referencedDeclaration": 39084, - "src": "30728:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - } - }, - "visibility": "internal" - } - ], - "id": 34907, - "initialValue": { - "arguments": [ - { - "id": 34905, - "name": "forwarder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34837, - "src": "30764:9:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - ], - "id": 34904, - "name": "_getSubnet", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 35113, - 35142 - ], - "referencedDeclaration": 35142, - "src": "30753:10:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$39084_storage_ptr_$", - "typeString": "function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)" - } - }, - "id": 34906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "30753:21:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$39084_storage_ptr_$", - "typeString": "tuple(bool,struct Subnet storage pointer)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "30710:64:25" - }, - { - "condition": { - "id": 34909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "30800:11:25", - "subExpression": { - "id": 34908, - "name": "registered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34900, - "src": "30801:10:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34914, - "nodeType": "IfStatement", - "src": "30796:94:25", - "trueBody": { - "id": 34913, - "nodeType": "Block", - "src": "30813:77:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 34910, - "name": "NotRegisteredSubnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33101, - "src": "30846:19:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 34911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "30846:21:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 34912, - "nodeType": "RevertStatement", - "src": "30839:28:25" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 34920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 34915, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34903, - "src": "30915:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 34916, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30922:20:25", - "memberName": "appliedBottomUpNonce", - "nodeType": "MemberAccess", - "referencedDeclaration": 39067, - "src": "30915:27:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "expression": { - "expression": { - "id": 34917, - "name": "crossMsg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34840, - "src": "30946:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - }, - "id": 34918, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30955:7:25", - "memberName": "message", - "nodeType": "MemberAccess", - "referencedDeclaration": 38954, - "src": "30946:16:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$38972_memory_ptr", - "typeString": "struct StorableMsg memory" - } - }, - "id": 34919, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30963:5:25", - "memberName": "nonce", - "nodeType": "MemberAccess", - "referencedDeclaration": 38967, - "src": "30946:22:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "30915:53:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34925, - "nodeType": "IfStatement", - "src": "30911:137:25", - "trueBody": { - "id": 34924, - "nodeType": "Block", - "src": "30970:78:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 34921, - "name": "InvalidCrossMsgNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33115, - "src": "31003:20:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 34922, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "31003:22:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 34923, - "nodeType": "RevertStatement", - "src": "30996:29:25" - } - ] - } - }, - { - "expression": { - "id": 34930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 34926, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34903, - "src": "31070:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 34928, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "31077:20:25", - "memberName": "appliedBottomUpNonce", - "nodeType": "MemberAccess", - "referencedDeclaration": 39067, - "src": "31070:27:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "31", - "id": 34929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31101:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "31070:32:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 34931, - "nodeType": "ExpressionStatement", - "src": "31070:32:25" - } - ] - } - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_enum$_IPCMsgType_$37055", - "typeString": "enum IPCMsgType" - }, - "id": 34939, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 34936, - "name": "applyType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34877, - "src": "31153:9:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IPCMsgType_$37055", - "typeString": "enum IPCMsgType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 34937, - "name": "IPCMsgType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37055, - "src": "31166:10:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_IPCMsgType_$37055_$", - "typeString": "type(enum IPCMsgType)" - } - }, - "id": 34938, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "31177:7:25", - "memberName": "TopDown", - "nodeType": "MemberAccess", - "referencedDeclaration": 37053, - "src": "31166:18:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IPCMsgType_$37055", - "typeString": "enum IPCMsgType" - } - }, - "src": "31153:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34955, - "nodeType": "IfStatement", - "src": "31149:232:25", - "trueBody": { - "id": 34954, - "nodeType": "Block", - "src": "31186:195:25", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 34944, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 34940, - "name": "appliedTopDownNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33032, - "src": "31208:19:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "expression": { - "expression": { - "id": 34941, - "name": "crossMsg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34840, - "src": "31231:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - }, - "id": 34942, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "31240:7:25", - "memberName": "message", - "nodeType": "MemberAccess", - "referencedDeclaration": 38954, - "src": "31231:16:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$38972_memory_ptr", - "typeString": "struct StorableMsg memory" - } - }, - "id": 34943, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "31248:5:25", - "memberName": "nonce", - "nodeType": "MemberAccess", - "referencedDeclaration": 38967, - "src": "31231:22:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "31208:45:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 34949, - "nodeType": "IfStatement", - "src": "31204:121:25", - "trueBody": { - "id": 34948, - "nodeType": "Block", - "src": "31255:70:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 34945, - "name": "InvalidCrossMsgNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33115, - "src": "31284:20:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 34946, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "31284:22:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 34947, - "nodeType": "RevertStatement", - "src": "31277:29:25" - } - ] - } - }, - { - "expression": { - "id": 34952, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 34950, - "name": "appliedTopDownNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33032, - "src": "31342:19:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "31", - "id": 34951, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31365:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "31342:24:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 34953, - "nodeType": "ExpressionStatement", - "src": "31342:24:25" - } - ] - } - }, - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 34956, - "name": "crossMsg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34840, - "src": "31450:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - }, - "id": 34958, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "31459:7:25", - "memberName": "execute", - "nodeType": "MemberAccess", - "referencedDeclaration": 37781, - "src": "31450:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_CrossMsg_$38957_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_struct$_CrossMsg_$38957_memory_ptr_$", - "typeString": "function (struct CrossMsg memory) returns (bytes memory)" - } - }, - "id": 34959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "31450:18:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 34960, - "nodeType": "ExpressionStatement", - "src": "31450:18:25" - }, - { - "functionReturnParameters": 34842, - "id": 34961, - "nodeType": "Return", - "src": "31482:7:25" - } - ] - } - }, - { - "assignments": [ - 34965 - ], - "declarations": [ - { - "constant": false, - "id": 34965, - "mutability": "mutable", - "name": "cid", - "nameLocation": "31625:3:25", - "nodeType": "VariableDeclaration", - "scope": 34976, - "src": "31617:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 34964, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "31617:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 34969, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 34966, - "name": "crossMsg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34840, - "src": "31631:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - }, - "id": 34967, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "31640:6:25", - "memberName": "toHash", - "nodeType": "MemberAccess", - "referencedDeclaration": 37643, - "src": "31631:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_CrossMsg_$38957_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_CrossMsg_$38957_memory_ptr_$", - "typeString": "function (struct CrossMsg memory) pure returns (bytes32)" - } - }, - "id": 34968, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "31631:17:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31617:31:25" - }, - { - "expression": { - "id": 34974, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 34970, - "name": "postbox", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33017, - "src": "31659:7:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$38957_storage_$", - "typeString": "mapping(bytes32 => struct CrossMsg storage ref)" - } - }, - "id": 34972, - "indexExpression": { - "id": 34971, - "name": "cid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34965, - "src": "31667:3:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31659:12:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_storage", - "typeString": "struct CrossMsg storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 34973, - "name": "crossMsg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34840, - "src": "31674:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - }, - "src": "31659:23:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_storage", - "typeString": "struct CrossMsg storage ref" - } - }, - "id": 34975, - "nodeType": "ExpressionStatement", - "src": "31659:23:25" - } - ] - }, - "documentation": { - "id": 34834, - "nodeType": "StructuredDocumentation", - "src": "29557:265:25", - "text": "@notice executes a cross message if its destination is the current network, otherwise adds it to the postbox to be propagated further\n @param forwarder - the subnet that handles the cross message\n @param crossMsg - the cross message to be executed" - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_applyMsg", - "nameLocation": "29836:9:25", - "parameters": { - "id": 34841, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 34837, - "mutability": "mutable", - "name": "forwarder", - "nameLocation": "29862:9:25", - "nodeType": "VariableDeclaration", - "scope": 34977, - "src": "29846:25:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID" - }, - "typeName": { - "id": 34836, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34835, - "name": "SubnetID", - "nameLocations": [ - "29846:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39060, - "src": "29846:8:25" - }, - "referencedDeclaration": 39060, - "src": "29846:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage_ptr", - "typeString": "struct SubnetID" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 34840, - "mutability": "mutable", - "name": "crossMsg", - "nameLocation": "29889:8:25", - "nodeType": "VariableDeclaration", - "scope": 34977, - "src": "29873:24:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg" - }, - "typeName": { - "id": 34839, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34838, - "name": "CrossMsg", - "nameLocations": [ - "29873:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38957, - "src": "29873:8:25" - }, - "referencedDeclaration": 38957, - "src": "29873:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_storage_ptr", - "typeString": "struct CrossMsg" - } - }, - "visibility": "internal" - } - ], - "src": "29845:53:25" - }, - "returnParameters": { - "id": 34842, - "nodeType": "ParameterList", - "parameters": [], - "src": "29908:0:25" - }, - "scope": 35198, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 35014, - "nodeType": "FunctionDefinition", - "src": "32030:318:25", - "nodes": [], - "body": { - "id": 35013, - "nodeType": "Block", - "src": "32119:229:25", - "nodes": [], - "statements": [ - { - "assignments": [ - 34989 - ], - "declarations": [ - { - "constant": false, - "id": 34989, - "mutability": "mutable", - "name": "crossMsgsLength", - "nameLocation": "32137:15:25", - "nodeType": "VariableDeclaration", - "scope": 35013, - "src": "32129:23:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 34988, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32129:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 34992, - "initialValue": { - "expression": { - "id": 34990, - "name": "crossMsgs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34985, - "src": "32155:9:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CrossMsg memory[] memory" - } - }, - "id": 34991, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "32165:6:25", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "32155:16:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32129:42:25" - }, - { - "body": { - "id": 35011, - "nodeType": "Block", - "src": "32224:118:25", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 35001, - "name": "forwarder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34981, - "src": "32248:9:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - }, - { - "baseExpression": { - "id": 35002, - "name": "crossMsgs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34985, - "src": "32259:9:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CrossMsg memory[] memory" - } - }, - "id": 35004, - "indexExpression": { - "id": 35003, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34994, - "src": "32269:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32259:12:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - }, - { - "typeIdentifier": "t_struct$_CrossMsg_$38957_memory_ptr", - "typeString": "struct CrossMsg memory" - } - ], - "id": 35000, - "name": "_applyMsg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34977, - "src": "32238:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_SubnetID_$39060_memory_ptr_$_t_struct$_CrossMsg_$38957_memory_ptr_$returns$__$", - "typeString": "function (struct SubnetID memory,struct CrossMsg memory)" - } - }, - "id": 35005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "32238:34:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 35006, - "nodeType": "ExpressionStatement", - "src": "32238:34:25" - }, - { - "id": 35010, - "nodeType": "UncheckedBlock", - "src": "32286:46:25", - "statements": [ - { - "expression": { - "id": 35008, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "32314:3:25", - "subExpression": { - "id": 35007, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34994, - "src": "32316:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 35009, - "nodeType": "ExpressionStatement", - "src": "32314:3:25" - } - ] - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 34999, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 34997, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34994, - "src": "32201:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 34998, - "name": "crossMsgsLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34989, - "src": "32205:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32201:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 35012, - "initializationExpression": { - "assignments": [ - 34994 - ], - "declarations": [ - { - "constant": false, - "id": 34994, - "mutability": "mutable", - "name": "i", - "nameLocation": "32194:1:25", - "nodeType": "VariableDeclaration", - "scope": 35012, - "src": "32186:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 34993, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32186:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 34996, - "initialValue": { - "hexValue": "30", - "id": 34995, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32198:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "32186:13:25" - }, - "nodeType": "ForStatement", - "src": "32181:161:25" - } - ] - }, - "documentation": { - "id": 34978, - "nodeType": "StructuredDocumentation", - "src": "31695:330:25", - "text": "@notice applies a cross-net messages coming from some other subnet.\n The forwarder argument determines the previous subnet that submitted the checkpoint triggering the cross-net message execution.\n @param forwarder - the subnet that handles the messages\n @param crossMsgs - the cross-net messages to apply" - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_applyMessages", - "nameLocation": "32039:14:25", - "parameters": { - "id": 34986, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 34981, - "mutability": "mutable", - "name": "forwarder", - "nameLocation": "32070:9:25", - "nodeType": "VariableDeclaration", - "scope": 35014, - "src": "32054:25:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID" - }, - "typeName": { - "id": 34980, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34979, - "name": "SubnetID", - "nameLocations": [ - "32054:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39060, - "src": "32054:8:25" - }, - "referencedDeclaration": 39060, - "src": "32054:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage_ptr", - "typeString": "struct SubnetID" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 34985, - "mutability": "mutable", - "name": "crossMsgs", - "nameLocation": "32099:9:25", - "nodeType": "VariableDeclaration", - "scope": 35014, - "src": "32081:27:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CrossMsg[]" - }, - "typeName": { - "baseType": { - "id": 34983, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 34982, - "name": "CrossMsg", - "nameLocations": [ - "32081:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38957, - "src": "32081:8:25" - }, - "referencedDeclaration": 38957, - "src": "32081:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_storage_ptr", - "typeString": "struct CrossMsg" - } - }, - "id": 34984, - "nodeType": "ArrayTypeName", - "src": "32081:10:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_storage_$dyn_storage_ptr", - "typeString": "struct CrossMsg[]" - } - }, - "visibility": "internal" - } - ], - "src": "32053:56:25" - }, - "returnParameters": { - "id": 34987, - "nodeType": "ParameterList", - "parameters": [], - "src": "32119:0:25" - }, - "scope": 35198, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 35048, - "nodeType": "FunctionDefinition", - "src": "32569:327:25", - "nodes": [], - "body": { - "id": 35047, - "nodeType": "Block", - "src": "32727:169:25", - "nodes": [], - "statements": [ - { - "expression": { - "id": 35031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 35025, - "name": "epoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35020, - "src": "32737:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "expression": { - "id": 35027, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "32759:5:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 35028, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "32765:6:25", - "memberName": "number", - "nodeType": "MemberAccess", - "src": "32759:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 35029, - "name": "bottomUpCheckPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33011, - "src": "32773:19:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 35026, - "name": "_getNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37007, - "src": "32745:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint64_$returns$_t_uint64_$", - "typeString": "function (uint256,uint64) pure returns (uint64)" - } - }, - "id": 35030, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "32745:48:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "32737:56:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 35032, - "nodeType": "ExpressionStatement", - "src": "32737:56:25" - }, - { - "expression": { - "id": 35037, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 35033, - "name": "checkpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35023, - "src": "32803:10:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint storage pointer" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "baseExpression": { - "id": 35034, - "name": "bottomUpCheckpoints", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33026, - "src": "32816:19:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$38937_storage_$", - "typeString": "mapping(uint64 => struct BottomUpCheckpoint storage ref)" - } - }, - "id": 35036, - "indexExpression": { - "id": 35035, - "name": "epoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35020, - "src": "32836:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32816:26:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage", - "typeString": "struct BottomUpCheckpoint storage ref" - } - }, - "src": "32803:39:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint storage pointer" - } - }, - "id": 35038, - "nodeType": "ExpressionStatement", - "src": "32803:39:25" - }, - { - "expression": { - "id": 35045, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 35039, - "name": "exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35018, - "src": "32852:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 35044, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "32861:28:25", - "subExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "expression": { - "id": 35040, - "name": "checkpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35023, - "src": "32862:10:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint storage pointer" - } - }, - "id": 35041, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "32873:6:25", - "memberName": "source", - "nodeType": "MemberAccess", - "referencedDeclaration": 38920, - "src": "32862:17:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - }, - "id": 35042, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "32880:7:25", - "memberName": "isEmpty", - "nodeType": "MemberAccess", - "referencedDeclaration": 38911, - "src": "32862:25:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$39060_memory_ptr_$", - "typeString": "function (struct SubnetID memory) pure returns (bool)" - } - }, - "id": 35043, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "32862:27:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "32852:37:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 35046, - "nodeType": "ExpressionStatement", - "src": "32852:37:25" - } - ] - }, - "documentation": { - "id": 35015, - "nodeType": "StructuredDocumentation", - "src": "32354:210:25", - "text": "@notice returns the current bottom-up checkpoint\n @return exists - whether the checkpoint exists\n @return epoch - the epoch of the checkpoint\n @return checkpoint - the checkpoint struct" - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_getCurrentBottomUpCheckpoint", - "nameLocation": "32578:29:25", - "parameters": { - "id": 35016, - "nodeType": "ParameterList", - "parameters": [], - "src": "32607:2:25" - }, - "returnParameters": { - "id": 35024, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 35018, - "mutability": "mutable", - "name": "exists", - "nameLocation": "32662:6:25", - "nodeType": "VariableDeclaration", - "scope": 35048, - "src": "32657:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 35017, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "32657:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 35020, - "mutability": "mutable", - "name": "epoch", - "nameLocation": "32677:5:25", - "nodeType": "VariableDeclaration", - "scope": 35048, - "src": "32670:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 35019, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "32670:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 35023, - "mutability": "mutable", - "name": "checkpoint", - "nameLocation": "32711:10:25", - "nodeType": "VariableDeclaration", - "scope": 35048, - "src": "32684:37:25", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint" - }, - "typeName": { - "id": 35022, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 35021, - "name": "BottomUpCheckpoint", - "nameLocations": [ - "32684:18:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38937, - "src": "32684:18:25" - }, - "referencedDeclaration": 38937, - "src": "32684:18:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint" - } - }, - "visibility": "internal" - } - ], - "src": "32656:66:25" - }, - "scope": 35198, - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "id": 35078, - "nodeType": "FunctionDefinition", - "src": "33089:288:25", - "nodes": [], - "body": { - "id": 35077, - "nodeType": "Block", - "src": "33154:223:25", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 35058, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 35056, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35053, - "src": "33168:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 35057, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33178:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33168:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 35061, - "nodeType": "IfStatement", - "src": "33164:48:25", - "trueBody": { - "id": 35060, - "nodeType": "Block", - "src": "33181:31:25", - "statements": [ - { - "functionReturnParameters": 35055, - "id": 35059, - "nodeType": "Return", - "src": "33195:7:25" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 35065, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35051, - "src": "33293:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 35066, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "33296:9:25", - "memberName": "normalize", - "nodeType": "MemberAccess", - "referencedDeclaration": 90, - "src": "33293:12:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_address_$attached_to$_t_address_$", - "typeString": "function (address) view returns (address)" - } - }, - "id": 35067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "33293:14:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "expression": { - "expression": { - "id": 35070, - "name": "ISubnetActor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37196, - "src": "33332:12:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISubnetActor_$37196_$", - "typeString": "type(contract ISubnetActor)" - } - }, - "id": 35071, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "33345:6:25", - "memberName": "reward", - "nodeType": "MemberAccess", - "referencedDeclaration": 37195, - "src": "33332:19:25", - "typeDescriptions": { - "typeIdentifier": "t_function_declaration_nonpayable$_t_uint256_$returns$__$", - "typeString": "function ISubnetActor.reward(uint256)" - } - }, - "id": 35072, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "33352:8:25", - "memberName": "selector", - "nodeType": "MemberAccess", - "src": "33332:28:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "id": 35073, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35053, - "src": "33362:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 35068, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "33309:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 35069, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "33313:18:25", - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "src": "33309:22:25", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 35074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "33309:60:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 35062, - "name": "Address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 29810, - "src": "33272:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Address_$29810_$", - "typeString": "type(library Address)" - } - }, - "id": 35064, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "33280:12:25", - "memberName": "functionCall", - "nodeType": "MemberAccess", - "referencedDeclaration": 29550, - "src": "33272:20:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address,bytes memory) returns (bytes memory)" - } - }, - "id": 35075, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "33272:98:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 35076, - "nodeType": "ExpressionStatement", - "src": "33272:98:25" - } - ] - }, - "documentation": { - "id": 35049, - "nodeType": "StructuredDocumentation", - "src": "32902:182:25", - "text": "@notice distribute rewards to validators in child subnet\n @param to - the address of the target subnet contract\n @param amount - the amount of rewards to distribute" - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_distributeRewards", - "nameLocation": "33098:18:25", - "parameters": { - "id": 35054, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 35051, - "mutability": "mutable", - "name": "to", - "nameLocation": "33125:2:25", - "nodeType": "VariableDeclaration", - "scope": 35078, - "src": "33117:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 35050, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "33117:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 35053, - "mutability": "mutable", - "name": "amount", - "nameLocation": "33137:6:25", - "nodeType": "VariableDeclaration", - "scope": 35078, - "src": "33129:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 35052, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33129:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "33116:28:25" - }, - "returnParameters": { - "id": 35055, - "nodeType": "ParameterList", - "parameters": [], - "src": "33154:0:25" - }, - "scope": 35198, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 35113, - "nodeType": "FunctionDefinition", - "src": "33592:296:25", - "nodes": [], - "body": { - "id": 35112, - "nodeType": "Block", - "src": "33685:203:25", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 35094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 35089, - "name": "actor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35081, - "src": "33699:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 35092, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33716:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 35091, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "33708:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 35090, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "33708:7:25", - "typeDescriptions": {} - } - }, - "id": 35093, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "33708:10:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "33699:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 35099, - "nodeType": "IfStatement", - "src": "33695:78:25", - "trueBody": { - "id": 35098, - "nodeType": "Block", - "src": "33720:53:25", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 35095, - "name": "InvalidActorAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33109, - "src": "33741:19:25", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 35096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "33741:21:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 35097, - "nodeType": "RevertStatement", - "src": "33734:28:25" - } - ] - } - }, - { - "assignments": [ - 35102 - ], - "declarations": [ - { - "constant": false, - "id": 35102, - "mutability": "mutable", - "name": "subnetId", - "nameLocation": "33798:8:25", - "nodeType": "VariableDeclaration", - "scope": 35112, - "src": "33782:24:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID" - }, - "typeName": { - "id": 35101, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 35100, - "name": "SubnetID", - "nameLocations": [ - "33782:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39060, - "src": "33782:8:25" - }, - "referencedDeclaration": 39060, - "src": "33782:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage_ptr", - "typeString": "struct SubnetID" - } - }, - "visibility": "internal" - } - ], - "id": 35107, - "initialValue": { - "arguments": [ - { - "id": 35105, - "name": "actor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35081, - "src": "33837:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 35103, - "name": "_networkName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32992, - "src": "33809:12:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - }, - "id": 35104, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "33822:14:25", - "memberName": "createSubnetId", - "nodeType": "MemberAccess", - "referencedDeclaration": 38559, - "src": "33809:27:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39060_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$39060_memory_ptr_$attached_to$_t_struct$_SubnetID_$39060_memory_ptr_$", - "typeString": "function (struct SubnetID memory,address) pure returns (struct SubnetID memory)" - } - }, - "id": 35106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "33809:34:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "33782:61:25" - }, - { - "expression": { - "arguments": [ - { - "id": 35109, - "name": "subnetId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35102, - "src": "33872:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - ], - "id": 35108, - "name": "_getSubnet", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 35113, - 35142 - ], - "referencedDeclaration": 35142, - "src": "33861:10:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$39084_storage_ptr_$", - "typeString": "function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)" - } - }, - "id": 35110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "33861:20:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$39084_storage_ptr_$", - "typeString": "tuple(bool,struct Subnet storage pointer)" - } - }, - "functionReturnParameters": 35088, - "id": 35111, - "nodeType": "Return", - "src": "33854:27:25" - } - ] - }, - "documentation": { - "id": 35079, - "nodeType": "StructuredDocumentation", - "src": "33383:204:25", - "text": "@notice returns the subnet created by a validator\n @param actor the validator that created the subnet\n @return found whether the subnet exists\n @return subnet - the subnet struct" - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_getSubnet", - "nameLocation": "33601:10:25", - "parameters": { - "id": 35082, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 35081, - "mutability": "mutable", - "name": "actor", - "nameLocation": "33620:5:25", - "nodeType": "VariableDeclaration", - "scope": 35113, - "src": "33612:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 35080, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "33612:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "33611:15:25" - }, - "returnParameters": { - "id": 35088, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 35084, - "mutability": "mutable", - "name": "found", - "nameLocation": "33655:5:25", - "nodeType": "VariableDeclaration", - "scope": 35113, - "src": "33650:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 35083, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "33650:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 35087, - "mutability": "mutable", - "name": "subnet", - "nameLocation": "33677:6:25", - "nodeType": "VariableDeclaration", - "scope": 35113, - "src": "33662:21:25", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - }, - "typeName": { - "id": 35086, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 35085, - "name": "Subnet", - "nameLocations": [ - "33662:6:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39084, - "src": "33662:6:25" - }, - "referencedDeclaration": 39084, - "src": "33662:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - } - }, - "visibility": "internal" - } - ], - "src": "33649:35:25" - }, - "scope": 35198, - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "id": 35142, - "nodeType": "FunctionDefinition", - "src": "34084:194:25", - "nodes": [], - "body": { - "id": 35141, - "nodeType": "Block", - "src": "34188:90:25", - "nodes": [], - "statements": [ - { - "expression": { - "id": 35131, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 35125, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35123, - "src": "34198:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "baseExpression": { - "id": 35126, - "name": "subnets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33004, - "src": "34207:7:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Subnet_$39084_storage_$", - "typeString": "mapping(bytes32 => struct Subnet storage ref)" - } - }, - "id": 35130, - "indexExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 35127, - "name": "subnetId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35117, - "src": "34215:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - }, - "id": 35128, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "34224:6:25", - "memberName": "toHash", - "nodeType": "MemberAccess", - "referencedDeclaration": 38484, - "src": "34215:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$39060_memory_ptr_$", - "typeString": "function (struct SubnetID memory) pure returns (bytes32)" - } - }, - "id": 35129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "34215:17:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "34207:26:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage", - "typeString": "struct Subnet storage ref" - } - }, - "src": "34198:35:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 35132, - "nodeType": "ExpressionStatement", - "src": "34198:35:25" - }, - { - "expression": { - "id": 35139, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 35133, - "name": "found", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35120, - "src": "34243:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 35138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "34251:20:25", - "subExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "expression": { - "id": 35134, - "name": "subnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35123, - "src": "34252:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet storage pointer" - } - }, - "id": 35135, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "34259:2:25", - "memberName": "id", - "nodeType": "MemberAccess", - "referencedDeclaration": 39076, - "src": "34252:9:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - }, - "id": 35136, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "34262:7:25", - "memberName": "isEmpty", - "nodeType": "MemberAccess", - "referencedDeclaration": 38911, - "src": "34252:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$39060_memory_ptr_$", - "typeString": "function (struct SubnetID memory) pure returns (bool)" - } - }, - "id": 35137, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "34252:19:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "34243:28:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 35140, - "nodeType": "ExpressionStatement", - "src": "34243:28:25" - } - ] - }, - "documentation": { - "id": 35114, - "nodeType": "StructuredDocumentation", - "src": "33894:185:25", - "text": "@notice returns the subnet with the given id\n @param subnetId the id of the subnet\n @return found whether the subnet exists\n @return subnet - the subnet struct" - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_getSubnet", - "nameLocation": "34093:10:25", - "parameters": { - "id": 35118, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 35117, - "mutability": "mutable", - "name": "subnetId", - "nameLocation": "34120:8:25", - "nodeType": "VariableDeclaration", - "scope": 35142, - "src": "34104:24:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID" - }, - "typeName": { - "id": 35116, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 35115, - "name": "SubnetID", - "nameLocations": [ - "34104:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39060, - "src": "34104:8:25" - }, - "referencedDeclaration": 39060, - "src": "34104:8:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage_ptr", - "typeString": "struct SubnetID" - } - }, - "visibility": "internal" - } - ], - "src": "34103:26:25" - }, - "returnParameters": { - "id": 35124, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 35120, - "mutability": "mutable", - "name": "found", - "nameLocation": "34158:5:25", - "nodeType": "VariableDeclaration", - "scope": 35142, - "src": "34153:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 35119, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "34153:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 35123, - "mutability": "mutable", - "name": "subnet", - "nameLocation": "34180:6:25", - "nodeType": "VariableDeclaration", - "scope": 35142, - "src": "34165:21:25", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - }, - "typeName": { - "id": 35122, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 35121, - "name": "Subnet", - "nameLocations": [ - "34165:6:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39084, - "src": "34165:6:25" - }, - "referencedDeclaration": 39084, - "src": "34165:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - } - }, - "visibility": "internal" - } - ], - "src": "34152:35:25" - }, - "scope": 35198, - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "id": 35197, - "nodeType": "FunctionDefinition", - "src": "34391:369:25", - "nodes": [], - "body": { - "id": 35196, - "nodeType": "Block", - "src": "34454:306:25", - "nodes": [], - "statements": [ - { - "assignments": [ - 35151 - ], - "declarations": [ - { - "constant": false, - "id": 35151, - "mutability": "mutable", - "name": "size", - "nameLocation": "34472:4:25", - "nodeType": "VariableDeclaration", - "scope": 35196, - "src": "34464:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 35150, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34464:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 35154, - "initialValue": { - "expression": { - "id": 35152, - "name": "subnetKeys", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33008, - "src": "34479:10:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", - "typeString": "bytes32[] storage ref" - } - }, - "id": 35153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "34490:6:25", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "34479:17:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "34464:32:25" - }, - { - "assignments": [ - 35159 - ], - "declarations": [ - { - "constant": false, - "id": 35159, - "mutability": "mutable", - "name": "out", - "nameLocation": "34522:3:25", - "nodeType": "VariableDeclaration", - "scope": 35196, - "src": "34506:19:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Subnet_$39084_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Subnet[]" - }, - "typeName": { - "baseType": { - "id": 35157, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 35156, - "name": "Subnet", - "nameLocations": [ - "34506:6:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39084, - "src": "34506:6:25" - }, - "referencedDeclaration": 39084, - "src": "34506:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - } - }, - "id": 35158, - "nodeType": "ArrayTypeName", - "src": "34506:8:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Subnet_$39084_storage_$dyn_storage_ptr", - "typeString": "struct Subnet[]" - } - }, - "visibility": "internal" - } - ], - "id": 35166, - "initialValue": { - "arguments": [ - { - "id": 35164, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35151, - "src": "34541:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 35163, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "34528:12:25", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Subnet_$39084_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (struct Subnet memory[] memory)" - }, - "typeName": { - "baseType": { - "id": 35161, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 35160, - "name": "Subnet", - "nameLocations": [ - "34532:6:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39084, - "src": "34532:6:25" - }, - "referencedDeclaration": 39084, - "src": "34532:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - } - }, - "id": 35162, - "nodeType": "ArrayTypeName", - "src": "34532:8:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Subnet_$39084_storage_$dyn_storage_ptr", - "typeString": "struct Subnet[]" - } - } - }, - "id": 35165, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "34528:18:25", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Subnet_$39084_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Subnet memory[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "34506:40:25" - }, - { - "body": { - "id": 35192, - "nodeType": "Block", - "src": "34588:146:25", - "statements": [ - { - "assignments": [ - 35175 - ], - "declarations": [ - { - "constant": false, - "id": 35175, - "mutability": "mutable", - "name": "key", - "nameLocation": "34610:3:25", - "nodeType": "VariableDeclaration", - "scope": 35192, - "src": "34602:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 35174, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "34602:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 35179, - "initialValue": { - "baseExpression": { - "id": 35176, - "name": "subnetKeys", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33008, - "src": "34616:10:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", - "typeString": "bytes32[] storage ref" - } - }, - "id": 35178, - "indexExpression": { - "id": 35177, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35168, - "src": "34627:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "34616:13:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "34602:27:25" - }, - { - "expression": { - "id": 35186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 35180, - "name": "out", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35159, - "src": "34643:3:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Subnet_$39084_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Subnet memory[] memory" - } - }, - "id": 35182, - "indexExpression": { - "id": 35181, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35168, - "src": "34647:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "34643:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_memory_ptr", - "typeString": "struct Subnet memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "baseExpression": { - "id": 35183, - "name": "subnets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33004, - "src": "34652:7:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Subnet_$39084_storage_$", - "typeString": "mapping(bytes32 => struct Subnet storage ref)" - } - }, - "id": 35185, - "indexExpression": { - "id": 35184, - "name": "key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35175, - "src": "34660:3:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "34652:12:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage", - "typeString": "struct Subnet storage ref" - } - }, - "src": "34643:21:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_memory_ptr", - "typeString": "struct Subnet memory" - } - }, - "id": 35187, - "nodeType": "ExpressionStatement", - "src": "34643:21:25" - }, - { - "id": 35191, - "nodeType": "UncheckedBlock", - "src": "34678:46:25", - "statements": [ - { - "expression": { - "id": 35189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "34706:3:25", - "subExpression": { - "id": 35188, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35168, - "src": "34708:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 35190, - "nodeType": "ExpressionStatement", - "src": "34706:3:25" - } - ] - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 35173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 35171, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35168, - "src": "34576:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 35172, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35151, - "src": "34580:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "34576:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 35193, - "initializationExpression": { - "assignments": [ - 35168 - ], - "declarations": [ - { - "constant": false, - "id": 35168, - "mutability": "mutable", - "name": "i", - "nameLocation": "34569:1:25", - "nodeType": "VariableDeclaration", - "scope": 35193, - "src": "34561:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 35167, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34561:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 35170, - "initialValue": { - "hexValue": "30", - "id": 35169, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34573:1:25", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "34561:13:25" - }, - "nodeType": "ForStatement", - "src": "34556:178:25" - }, - { - "expression": { - "id": 35194, - "name": "out", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35159, - "src": "34750:3:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Subnet_$39084_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Subnet memory[] memory" - } - }, - "functionReturnParameters": 35149, - "id": 35195, - "nodeType": "Return", - "src": "34743:10:25" - } - ] - }, - "documentation": { - "id": 35143, - "nodeType": "StructuredDocumentation", - "src": "34284:102:25", - "text": "@notice returns the list of registered subnets in IPC\n @return subnet - the list of subnets" - }, - "functionSelector": "5d029685", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "listSubnets", - "nameLocation": "34400:11:25", - "parameters": { - "id": 35144, - "nodeType": "ParameterList", - "parameters": [], - "src": "34411:2:25" - }, - "returnParameters": { - "id": 35149, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 35148, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 35197, - "src": "34437:15:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Subnet_$39084_memory_ptr_$dyn_memory_ptr", - "typeString": "struct Subnet[]" - }, - "typeName": { - "baseType": { - "id": 35146, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 35145, - "name": "Subnet", - "nameLocations": [ - "34437:6:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39084, - "src": "34437:6:25" - }, - "referencedDeclaration": 39084, - "src": "34437:6:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39084_storage_ptr", - "typeString": "struct Subnet" - } - }, - "id": 35147, - "nodeType": "ArrayTypeName", - "src": "34437:8:25", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Subnet_$39084_storage_$dyn_storage_ptr", - "typeString": "struct Subnet[]" - } - }, - "visibility": "internal" - } - ], - "src": "34436:17:25" - }, - "scope": 35198, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 32939, - "name": "IGateway", - "nameLocations": [ - "1705:8:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 37158, - "src": "1705:8:25" - }, - "id": 32940, - "nodeType": "InheritanceSpecifier", - "src": "1705:8:25" - }, - { - "baseName": { - "id": 32941, - "name": "ReentrancyGuard", - "nameLocations": [ - "1715:15:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 29480, - "src": "1715:15:25" - }, - "id": 32942, - "nodeType": "InheritanceSpecifier", - "src": "1715:15:25" - }, - { - "baseName": { - "id": 32943, - "name": "Voting", - "nameLocations": [ - "1732:6:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 37017, - "src": "1732:6:25" - }, - "id": 32944, - "nodeType": "InheritanceSpecifier", - "src": "1732:6:25" - } - ], - "canonicalName": "Gateway", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 32938, - "nodeType": "StructuredDocumentation", - "src": "1630:55:25", - "text": "@title Gateway Contract\n @author LimeChain team" - }, - "fullyImplemented": true, - "linearizedBaseContracts": [ - 35198, - 37017, - 29480, - 37158 - ], - "name": "Gateway", - "nameLocation": "1694:7:25", - "scope": 35199, - "usedErrors": [ - 4, - 8, - 33077, - 33079, - 33081, - 33083, - 33085, - 33087, - 33089, - 33091, - 33093, - 33095, - 33097, - 33099, - 33101, - 33103, - 33105, - 33107, - 33109, - 33111, - 33113, - 33115, - 33117, - 33119, - 33121, - 33123, - 33125, - 33127, - 33129, - 33131, - 33133, - 33135, - 33137, - 36631, - 36633, - 36635, - 36637 - ] - } - ], - "license": "UNLICENSED" - }, - "id": 25 -} \ No newline at end of file diff --git a/contracts/SubnetActor.json b/contracts/SubnetActor.json deleted file mode 100644 index 445b6381..00000000 --- a/contracts/SubnetActor.json +++ /dev/null @@ -1,17869 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "parentId", - "type": "tuple" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "ipcGatewayAddr", - "type": "address" - }, - { - "internalType": "enum ConsensusType", - "name": "consensus", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "minActivationCollateral", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "minValidators", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "bottomUpCheckPeriod", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "topDownCheckPeriod", - "type": "uint64" - }, - { - "internalType": "uint8", - "name": "majorityPercentage", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "genesis", - "type": "bytes" - } - ], - "internalType": "struct SubnetActor.ConstructParams", - "name": "params", - "type": "tuple" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "CallerHasNoStake", - "type": "error" - }, - { - "inputs": [], - "name": "CheckpointNotChained", - "type": "error" - }, - { - "inputs": [], - "name": "CollateralIsZero", - "type": "error" - }, - { - "inputs": [], - "name": "CollateralStillLockedInSubnet", - "type": "error" - }, - { - "inputs": [], - "name": "EpochAlreadyExecuted", - "type": "error" - }, - { - "inputs": [], - "name": "EpochNotVotable", - "type": "error" - }, - { - "inputs": [], - "name": "GatewayCannotBeZero", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidMajorityPercentage", - "type": "error" - }, - { - "inputs": [], - "name": "MessagesNotSorted", - "type": "error" - }, - { - "inputs": [], - "name": "NoRewardToWithdraw", - "type": "error" - }, - { - "inputs": [], - "name": "NoValidatorsInSubnet", - "type": "error" - }, - { - "inputs": [], - "name": "NotAccount", - "type": "error" - }, - { - "inputs": [], - "name": "NotAllValidatorsHaveLeft", - "type": "error" - }, - { - "inputs": [], - "name": "NotEnoughBalanceForRewards", - "type": "error" - }, - { - "inputs": [], - "name": "NotGateway", - "type": "error" - }, - { - "inputs": [], - "name": "NotValidator", - "type": "error" - }, - { - "inputs": [], - "name": "SubnetAlreadyKilled", - "type": "error" - }, - { - "inputs": [], - "name": "SubnetNotActive", - "type": "error" - }, - { - "inputs": [], - "name": "ValidatorAlreadyVoted", - "type": "error" - }, - { - "inputs": [], - "name": "WorkerAddressInvalid", - "type": "error" - }, - { - "inputs": [], - "name": "WrongCheckpointSource", - "type": "error" - }, - { - "inputs": [], - "name": "MIN_CHECKPOINT_PERIOD", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MIN_COLLATERAL_AMOUNT", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "accumulatedRewards", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "bottomUpCheckPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "epoch", - "type": "uint64" - } - ], - "name": "bottomUpCheckpointAtEpoch", - "outputs": [ - { - "internalType": "bool", - "name": "exists", - "type": "bool" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "source", - "type": "tuple" - }, - { - "internalType": "uint64", - "name": "epoch", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "components": [ - { - "components": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple" - } - ], - "internalType": "struct IPCAddress", - "name": "from", - "type": "tuple" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple" - } - ], - "internalType": "struct IPCAddress", - "name": "to", - "type": "tuple" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "internalType": "bytes4", - "name": "method", - "type": "bytes4" - }, - { - "internalType": "bytes", - "name": "params", - "type": "bytes" - } - ], - "internalType": "struct StorableMsg", - "name": "message", - "type": "tuple" - }, - { - "internalType": "bool", - "name": "wrapped", - "type": "bool" - } - ], - "internalType": "struct CrossMsg[]", - "name": "crossMsgs", - "type": "tuple[]" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "source", - "type": "tuple" - }, - { - "internalType": "bytes32[]", - "name": "checks", - "type": "bytes32[]" - } - ], - "internalType": "struct ChildCheck[]", - "name": "children", - "type": "tuple[]" - }, - { - "internalType": "bytes32", - "name": "prevHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "proof", - "type": "bytes" - } - ], - "internalType": "struct BottomUpCheckpoint", - "name": "checkpoint", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "epoch", - "type": "uint64" - } - ], - "name": "bottomUpCheckpointHashAtEpoch", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "name": "committedCheckpoints", - "outputs": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "source", - "type": "tuple" - }, - { - "internalType": "uint64", - "name": "epoch", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "prevHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "proof", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "configurationNumber", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "consensus", - "outputs": [ - { - "internalType": "enum ConsensusType", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "currentSubnetHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "executableQueue", - "outputs": [ - { - "internalType": "uint64", - "name": "period", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "first", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "last", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "genesis", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getGenesisEpoch", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getParent", - "outputs": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getValidatorSet", - "outputs": [ - { - "components": [ - { - "components": [ - { - "internalType": "address", - "name": "addr", - "type": "address" - }, - { - "internalType": "uint256", - "name": "weight", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "internalType": "struct FvmAddress", - "name": "workerAddr", - "type": "tuple" - }, - { - "internalType": "string", - "name": "netAddresses", - "type": "string" - } - ], - "internalType": "struct SubnetActor.ValidatorInfo[]", - "name": "validators", - "type": "tuple[]" - }, - { - "internalType": "uint64", - "name": "configurationNumber", - "type": "uint64" - } - ], - "internalType": "struct SubnetActor.ValidatorSet", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getValidators", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "epoch", - "type": "uint64" - }, - { - "internalType": "address", - "name": "submitter", - "type": "address" - } - ], - "name": "hasValidatorVotedForSubmission", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "ipcGatewayAddr", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "netAddr", - "type": "string" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "internalType": "struct FvmAddress", - "name": "workerAddr", - "type": "tuple" - } - ], - "name": "join", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "kill", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "lastVotingExecutedEpoch", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "leave", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "majorityPercentage", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minActivationCollateral", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minValidators", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "prevExecutedCheckpointHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "reward", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "stake", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "status", - "outputs": [ - { - "internalType": "enum Status", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "submissionPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "source", - "type": "tuple" - }, - { - "internalType": "uint64", - "name": "epoch", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "components": [ - { - "components": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple" - } - ], - "internalType": "struct IPCAddress", - "name": "from", - "type": "tuple" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple" - } - ], - "internalType": "struct IPCAddress", - "name": "to", - "type": "tuple" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "internalType": "bytes4", - "name": "method", - "type": "bytes4" - }, - { - "internalType": "bytes", - "name": "params", - "type": "bytes" - } - ], - "internalType": "struct StorableMsg", - "name": "message", - "type": "tuple" - }, - { - "internalType": "bool", - "name": "wrapped", - "type": "bool" - } - ], - "internalType": "struct CrossMsg[]", - "name": "crossMsgs", - "type": "tuple[]" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ], - "internalType": "struct SubnetID", - "name": "source", - "type": "tuple" - }, - { - "internalType": "bytes32[]", - "name": "checks", - "type": "bytes32[]" - } - ], - "internalType": "struct ChildCheck[]", - "name": "children", - "type": "tuple[]" - }, - { - "internalType": "bytes32", - "name": "prevHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "proof", - "type": "bytes" - } - ], - "internalType": "struct BottomUpCheckpoint", - "name": "checkpoint", - "type": "tuple" - } - ], - "name": "submitCheckpoint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "topDownCheckPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalStake", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "name": "validatorAt", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "validatorCount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "validatorNetAddresses", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "validatorWorkerAddresses", - "outputs": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "bytecode": { - "object": "0x6101c06040523480156200001257600080fd5b5060405162006fca38038062006fca833981016040819052620000359162000682565b61010081015160c08201516001600055606460ff831611156200006b576040516375c3b42760e01b815260040160405180910390fd5b60ff8216608052600a6001600160401b038216106200008b57806200008e565b600a5b6001600160401b0390811660a0819052600280546001600160401b0319908116909217905584518051600f80549190941692169190911782556020808201518051929550929350620000e692601092910190620003a9565b50505060208101516101805260408101516001600160a01b03166200011e57604051638b3ddc3360e01b815260040160405180910390fd5b60408101516001600160a01b03166101405260608101518015620001465762000146620007a9565b6101608180156200015b576200015b620007a9565b81525050670de0b6b3a76400008160800151106200017e57806080015162000188565b670de0b6b3a76400005b60c05260a08101516001600160401b039081166101205260e0820151600a911610620001b9578060e00151620001bc565b600a5b6001600160401b0390811660e05260a05116610100526005805460ff60401b191668050000000000000000179055610120810151601190620001ff90826200084e565b50604080518082018252600f80546001600160401b031682526010805484516020828102820181019096528181529394929383860193909291908301828280156200027457602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831162000255575b50505091909252505060405163aa5106cb60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263aa5106cb9250620002b791309060040162000983565b600060405180830381865af4158015620002d5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620002ff9190810190620009af565b6040516390ba52cf60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__916390ba52cf91620003379190600401620009ef565b602060405180830381865af415801562000355573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037b919062000a0b565b6101a0525060018054600160401b600160801b0319169055600580546001600160401b031916905562000a25565b82805482825590600052602060002090810192821562000401579160200282015b828111156200040157825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190620003ca565b506200040f92915062000413565b5090565b5b808211156200040f576000815560010162000414565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156200046557620004656200042a565b60405290565b60405161014081016001600160401b03811182821017156200046557620004656200042a565b604051601f8201601f191681016001600160401b0381118282101715620004bc57620004bc6200042a565b604052919050565b80516001600160401b0381168114620004dc57600080fd5b919050565b80516001600160a01b0381168114620004dc57600080fd5b6000604082840312156200050c57600080fd5b6200051662000440565b90506200052382620004c4565b81526020828101516001600160401b03808211156200054157600080fd5b818501915085601f8301126200055657600080fd5b8151818111156200056b576200056b6200042a565b8060051b91506200057e84830162000491565b81815291830184019184810190888411156200059957600080fd5b938501935b83851015620005c257620005b285620004e1565b825293850193908501906200059e565b808688015250505050505092915050565b805160018110620004dc57600080fd5b805160ff81168114620004dc57600080fd5b600082601f8301126200060757600080fd5b81516001600160401b038111156200062357620006236200042a565b602062000639601f8301601f1916820162000491565b82815285828487010111156200064e57600080fd5b60005b838110156200066e57858101830151828201840152820162000651565b506000928101909101919091529392505050565b6000602082840312156200069557600080fd5b81516001600160401b0380821115620006ad57600080fd5b908301906101408286031215620006c357600080fd5b620006cd6200046b565b825182811115620006dd57600080fd5b620006eb87828601620004f9565b825250602083015160208201526200070660408401620004e1565b60408201526200071960608401620005d3565b6060820152608083015160808201526200073660a08401620004c4565b60a08201526200074960c08401620004c4565b60c08201526200075c60e08401620004c4565b60e082015261010062000771818501620005e3565b9082015261012083810151838111156200078a57600080fd5b6200079888828701620005f5565b918301919091525095945050505050565b634e487b7160e01b600052602160045260246000fd5b600181811c90821680620007d457607f821691505b602082108103620007f557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200084957600081815260208120601f850160051c81016020861015620008245750805b601f850160051c820191505b81811015620008455782815560010162000830565b5050505b505050565b81516001600160401b038111156200086a576200086a6200042a565b62000882816200087b8454620007bf565b84620007fb565b602080601f831160018114620008ba5760008415620008a15750858301515b600019600386901b1c1916600185901b17855562000845565b600085815260208120601f198616915b82811015620008eb57888601518255948401946001909101908401620008ca565b50858210156200090a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80516001600160401b03168252602080820151604082850181905281519085018190526000929182019190839060608701905b80831015620009785784516001600160a01b031682529383019360019290920191908301906200094d565b509695505050505050565b6040815260006200099860408301856200091a565b905060018060a01b03831660208301529392505050565b600060208284031215620009c257600080fd5b81516001600160401b03811115620009d957600080fd5b620009e784828501620004f9565b949350505050565b60208152600062000a0460208301846200091a565b9392505050565b60006020828403121562000a1e57600080fd5b5051919050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516164c062000b0a600039600081816107720152611e870152600061025b015260006106240152600081816107fc0152818161088c01528181610a8c01528181610b5a015281816114590152818161153701528181611d8201526134c0015260006107a601526000610227015260006105b80152600081816106b20152818161136601528181611416015281816114fa0152611d30015260008181610349015281816123c30152613a410152600081816104810152613a9601526164c06000f3fe6080604052600436106101c45760003560e01c806304fda3d4146101d857806306c468531461021557806306fdde03146102495780630f43a6771461028b57806310d500e1146102a0578063133f74ea14610300578063185fde7e14610337578063200d2ed21461036b57806323a357051461039957806326476204146103c657806332e0aa1f146103f35780633ccfd60b1461042057806341c0e1b51461043557806351392fc01461044a578063599c7bd11461046f5780635f832dbf146104b557806366d7bbbc146104cb5780636cb2ecee146105385780636cf6970a1461056657806373f273fc146105795780637d9740f4146105a657806380f76021146105da5780638b0e9f3f146105fc5780638ef3f7611461061257806391be4d4114610653578063989037481461066f5780639e33bd02146106a0578063a1ada303146106d4578063a7f0b3de146106e9578063a9fb763c146106fe578063ad81e2441461071e578063b7ab4db51461073e578063c18f64aa14610760578063c5ab224114610794578063cf331250146107c8578063cfca2824146107ea578063d4e25bab1461081e578063d66d9e191461084c578063f6fd83811461086157600080fd5b366101d3576101d1610881565b005b600080fd5b3480156101e457600080fd5b506005546101f8906001600160401b031681565b6040516001600160401b0390911681526020015b60405180910390f35b34801561022157600080fd5b506101f87f000000000000000000000000000000000000000000000000000000000000000081565b34801561025557600080fd5b5061027d7f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161020c565b34801561029757600080fd5b5061027d6108cc565b3480156102ac57600080fd5b506002546102d6906001600160401b0380821691600160401b8104821691600160801b9091041683565b604080516001600160401b039485168152928416602084015292169181019190915260600161020c565b34801561030c57600080fd5b5061032061031b36600461405a565b6108dd565b60408051921515835260208301919091520161020c565b34801561034357600080fd5b506101f87f000000000000000000000000000000000000000000000000000000000000000081565b34801561037757600080fd5b5060055461038c90600160401b900460ff1681565b60405161020c919061408d565b3480156103a557600080fd5b506103b96103b43660046140bc565b610976565b60405161020c919061411f565b3480156103d257600080fd5b5061027d6103e13660046140bc565b600b6020526000908152604090205481565b3480156103ff57600080fd5b5061041361040e366004614132565b610a10565b60405161020c919061414b565b34801561042c57600080fd5b506101d1610a23565b34801561044157600080fd5b506101d1610af8565b34801561045657600080fd5b50600154600160401b90046001600160401b03166101f8565b34801561047b57600080fd5b506104a37f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200161020c565b3480156104c157600080fd5b5061027d60065481565b3480156104d757600080fd5b506105286104e636600461415f565b6001600160401b0382166000908152600a602090815260408083208054845260030182528083206001600160a01b038516845290915290205460ff1692915050565b604051901515815260200161020c565b34801561054457600080fd5b5061055861055336600461405a565b610bcd565b60405161020c9291906143f8565b6101d16105743660046144a7565b6112d1565b34801561058557600080fd5b5061027d6105943660046140bc565b600c6020526000908152604090205481565b3480156105b257600080fd5b506101f87f000000000000000000000000000000000000000000000000000000000000000081565b3480156105e657600080fd5b506105ef6115b1565b60405161020c9190614541565b34801561060857600080fd5b5061027d60045481565b34801561061e57600080fd5b506106467f000000000000000000000000000000000000000000000000000000000000000081565b60405161020c9190614554565b34801561065f57600080fd5b5061027d670de0b6b3a764000081565b34801561067b57600080fd5b5061068f61068a36600461405a565b611639565b60405161020c959493929190614568565b3480156106ac57600080fd5b5061027d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156106e057600080fd5b506104a3600a81565b3480156106f557600080fd5b506103b9611776565b34801561070a57600080fd5b506101d1610719366004614132565b611783565b34801561072a57600080fd5b506001546101f8906001600160401b031681565b34801561074a57600080fd5b50610753611840565b60405161020c91906145b6565b34801561076c57600080fd5b5061027d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156107a057600080fd5b506101f87f000000000000000000000000000000000000000000000000000000000000000081565b3480156107d457600080fd5b506107dd6118e5565b60405161020c91906145c9565b3480156107f657600080fd5b506104137f000000000000000000000000000000000000000000000000000000000000000081565b34801561082a57600080fd5b5061083e6108393660046140bc565b611be1565b60405161020c929190614689565b34801561085857600080fd5b506101d1611c8a565b34801561086d57600080fd5b506101d161087c3660046146a5565b611dfe565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108ca5760405163e7e601db60e01b815260040160405180910390fd5b565b60006108d860086120b0565b905090565b6000806000806108ec85610bcd565b6040516339aa47fb60e01b81529193509150829073__$1cd67d4dc9e627f0bec7928aa480e7d951$__906339aa47fb9061092a908590600401614905565b602060405180830381865af4158015610947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096b91906149a1565b935093505050915091565b600d602052600090815260409020805461098f906149ba565b80601f01602080910402602001604051908101604052809291908181526020018280546109bb906149ba565b8015610a085780601f106109dd57610100808354040283529160200191610a08565b820191906000526020600020905b8154815290600101906020018083116109eb57829003601f168201915b505050505081565b6000610a1d6008836120ba565b92915050565b610a2b6120cd565b336000908152600c602052604081205490819003610a5c576040516367300f9160e11b815260040160405180910390fd5b336000908152600c60205260408082209190915551631f0e077760e31b8152600481018290526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f8703bb890602401600060405180830381600087803b158015610ad057600080fd5b505af1158015610ae4573d6000803e3d6000fd5b50610af59250339150839050612162565b50565b610b006120cd565b610b08612282565b610b1260086120b0565b151580610b20575060045415155b15610b3e57604051636b62255160e11b815260040160405180910390fd5b600580546003919060ff60401b1916600160401b8302179055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341c0e1b56040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610bb357600080fd5b505af1158015610bc7573d6000803e3d6000fd5b50505050565b6000610bd7613b9f565b6001600160401b03808416600090815260076020908152604091829020825161012081018452815490941660e0850190815260018201805485518186028101860190965280865292948694929386936101008701939190830182828015610c6757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610c49575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156110715760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015610d7857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d5a575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610db2906149ba565b80601f0160208091040260200160405190810160405280929190818152602001828054610dde906149ba565b8015610e2b5780601f10610e0057610100808354040283529160200191610e2b565b820191906000526020600020905b815481529060010190602001808311610e0e57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015610ebc57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e9e575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610ef6906149ba565b80601f0160208091040260200160405190810160405280929190818152602001828054610f22906149ba565b8015610f6f5780601f10610f4457610100808354040283529160200191610f6f565b820191906000526020600020905b815481529060010190602001808311610f5257829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191610fca906149ba565b80601f0160208091040260200160405190810160405280929190818152602001828054610ff6906149ba565b80156110435780601f1061101857610100808354040283529160200191611043565b820191906000526020600020905b81548152906001019060200180831161102657829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101610cd2565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b828210156111a8576000848152602090819020604080516080810182526003860290920180546001600160401b03168383019081526001820180548451818802810188019095528085529495929486949293869360608701939092909183018282801561113457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611116575b50505050508152505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561119057602002820191906000526020600020905b81548152602001906001019080831161117c575b5050505050815250508152602001906001019061109e565b505050508152602001600682015481526020016007820180546111ca906149ba565b80601f01602080910402602001604051908101604052809291908181526020018280546111f6906149ba565b80156112435780601f1061121857610100808354040283529160200191611243565b820191906000526020600020905b81548152906001019060200180831161122657829003601f168201915b5050509190925250508151604051630c133d1360e31b815292935073__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e898925061128891906004016149f4565b602060405180830381865af41580156112a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c99190614a15565b159150915091565b6112d96120cd565b6112e1612282565b3433600082900361130557604051635a78c58160e11b815260040160405180910390fd5b6001600160a01b0381166000908152600b60205260408120805484929061132d908490614a48565b9250508190555081600460008282546113469190614a48565b90915550506001600160a01b0381166000908152600b60205260409020547f0000000000000000000000000000000000000000000000000000000000000000116113f0576113956008826122c0565b6113f0576113a46008826122d5565b506001600160a01b0381166000908152600d602052604090206113c8858783614ae4565b506001600160a01b0381166000908152600e6020526040902083906113ed8282614bf8565b50505b6005808054600160401b900460ff169081111561140f5761140f614077565b036114d3577f0000000000000000000000000000000000000000000000000000000000000000600454106114ce57600580546001919060ff60401b1916600160401b8302179055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631aa3a0086004546040518263ffffffff1660e01b81526004016000604051808303818588803b1580156114b457600080fd5b505af11580156114c8573d6000803e3d6000fd5b50505050505b6115aa565b600260058054600160401b900460ff16908111156114f3576114f3614077565b03611535577f000000000000000000000000000000000000000000000000000000000000000060045410611535576005805460ff60401b1916600160401b1790555b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635a627dbc836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561159057600080fd5b505af11580156115a4573d6000803e3d6000fd5b50505050505b5050505050565b6115b9613bee565b604080518082018252600f80546001600160401b0316825260108054845160208281028201810190965281815293949293838601939092919083018282801561162b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161160d575b505050505081525050905090565b6007602090815260009182526040918290208251808401845281546001600160401b031681526001820180548551818602810186019096528086529294919385938582019392918301828280156116b957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161169b575b5050509190925250505060028201546003830154600684015460078501805494956001600160401b0390941694929391926116f3906149ba565b80601f016020809104026020016040519081016040528092919081815260200182805461171f906149ba565b801561176c5780601f106117415761010080835404028352916020019161176c565b820191906000526020600020905b81548152906001019060200180831161174f57829003601f168201915b5050505050905085565b6011805461098f906149ba565b61178b610881565b600061179760086120b0565b9050806000036117ba5760405163efa9c8f160e01b815260040160405180910390fd5b808210156117db57604051633074cabf60e11b815260040160405180910390fd5b60006117e78284614cf2565b905060005b82811015610bc75781600c60006118046008856120ba565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546118339190614a48565b90915550506001016117ec565b6060600061184e60086120b0565b90506000816001600160401b0381111561186a5761186a614a5b565b604051908082528060200260200182016040528015611893578160200160208202803683370190505b50905060005b828110156118de576118ac6008826120ba565b8282815181106118be576118be614d06565b6001600160a01b0390921660209283029190910190910152600101611899565b5092915050565b604080518082019091526060815260006020820152600061190660086120b0565b90506000816001600160401b0381111561192257611922614a5b565b60405190808252806020026020018201604052801561198757816020015b604080516080810182526000808252602080830182905283518085018552918252606090820181905292820152818101919091528152602001906001900390816119405790505b50905060005b82811015611bbc576040805160808101909152806119ac6008846120ba565b6001600160a01b03168152602001600b60006119c96008866120ba565b6001600160a01b03166001600160a01b03168152602001908152602001600020548152602001600e6000611a078560086120ba90919063ffffffff16565b6001600160a01b0316815260208082019290925260409081016000208151808301909252805460ff1682526001810180549293919291840191611a49906149ba565b80601f0160208091040260200160405190810160405280929190818152602001828054611a75906149ba565b8015611ac25780601f10611a9757610100808354040283529160200191611ac2565b820191906000526020600020905b815481529060010190602001808311611aa557829003601f168201915b505050919092525050508152602001600d6000611ae06008866120ba565b6001600160a01b03166001600160a01b031681526020019081526020016000208054611b0b906149ba565b80601f0160208091040260200160405190810160405280929190818152602001828054611b37906149ba565b8015611b845780601f10611b5957610100808354040283529160200191611b84565b820191906000526020600020905b815481529060010190602001808311611b6757829003601f168201915b5050505050815250828281518110611b9e57611b9e614d06565b60200260200101819052508080611bb490614d1c565b91505061198d565b50604080518082019091529081526005546001600160401b0316602082015292915050565b600e602052600090815260409020805460018201805460ff9092169291611c07906149ba565b80601f0160208091040260200160405190810160405280929190818152602001828054611c33906149ba565b8015611c805780601f10611c5557610100808354040283529160200191611c80565b820191906000526020600020905b815481529060010190602001808311611c6357829003601f168201915b5050505050905082565b611c926122ea565b611c9a6120cd565b611ca2612282565b336000908152600b602052604081205490819003611cd357604051632ec5b44960e01b815260040160405180910390fd5b336000908152600b6020526040812081905560048054839290611cf7908490614d35565b90915550611d089050600833612343565b50600160058054600160401b900460ff1690811115611d2957611d29614077565b03611d6c577f00000000000000000000000000000000000000000000000000000000000000006004541015611d6c576005805460ff60401b1916600160411b1790555b6040516345f5448560e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906345f5448590602401600060405180830381600087803b158015611dce57600080fd5b505af1158015611de2573d6000803e3d6000fd5b50611df39250339150839050612162565b506108ca6001600055565b611e066120cd565b611e16604082016020830161405a565b611e1f81612358565b600160058054600160401b900460ff1690811115611e3f57611e3f614077565b14611e5d5760405163c18316bf60e01b815260040160405180910390fd5b611e686008336122c0565b611e8557604051632ec5b44960e01b815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000611eb08380614d48565b611eb990614ee4565b6040516390ba52cf60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__916390ba52cf91611eef91906004016149f4565b602060405180830381865af4158015611f0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3091906149a1565b14611f4e576040516375ecc72d60e01b815260040160405180910390fd5b73__$33b79814e84bf6cf5e47244090b19ce5f8$__6389841475611f756060850185614ef0565b6040518363ffffffff1660e01b8152600401611f92929190615109565b602060405180830381865af4158015611faf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd39190614a15565b611ff057604051630bd9169f60e01b815260040160405180910390fd5b6000600a81612005604086016020870161405a565b6001600160401b03166001600160401b031681526020019081526020016000209050600061205a828533600b6000336001600160a01b03166001600160a01b031681526020019081526020016000205461242e565b905080156120705761206b82612bee565b610bc7565b60008061207b613523565b9150915080156120a8576001600160401b0382166000908152600a602052604090206120a681612bee565b505b505050505050565b6000610a1d825490565b60006120c68383613547565b9392505050565b604051630972932760e21b815273__$e800e3908cdbb6b1b5bd452383a17b18f7$__906325ca4c9c9061210490339060040161414b565b602060405180830381865af4158015612121573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121459190614a15565b6108ca5760405163b7150de560e01b815260040160405180910390fd5b804710156121b75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064015b60405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612204576040519150601f19603f3d011682016040523d82523d6000602084013e612209565b606091505b505090508061227d5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c20726044820152791958da5c1a595b9d081b585e481a185d99481c995d995c9d195960321b60648201526084016121ae565b505050565b600360058054600160401b900460ff16908111156122a2576122a2614077565b036108ca5760405163248c8efb60e11b815260040160405180910390fd5b60006120c6836001600160a01b038416613571565b60006120c6836001600160a01b038416613589565b60026000540361233c5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016121ae565b6002600055565b60006120c6836001600160a01b0384166135d3565b6001546001600160401b039081169082161161238757604051631f30cc6360e21b815260040160405180910390fd5b6001546001600160401b03600160401b909104811690821610156123be5760405163b4f68f9760e01b815260040160405180910390fd5b6001547f0000000000000000000000000000000000000000000000000000000000000000906123fd90600160401b90046001600160401b03168361524e565b612407919061526e565b6001600160401b031615610af55760405163b4f68f9760e01b815260040160405180910390fd5b60008061243a85615666565b6040516339aa47fb60e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__916339aa47fb916124709190600401614905565b602060405180830381865af415801561248d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b191906149a1565b90506124d2868286866124ca60408b0160208c0161405a565b6004546136c6565b600082815260058801602090815260409182902082516101208101845281546001600160401b031660e082019081526001830180548651818702810187019097528087529698509195929486949193869361010087019390919083018282801561256557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612547575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b8282101561296f5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561267657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612658575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906126b0906149ba565b80601f01602080910402602001604051908101604052809291908181526020018280546126dc906149ba565b80156127295780601f106126fe57610100808354040283529160200191612729565b820191906000526020600020905b81548152906001019060200180831161270c57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156127ba57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161279c575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906127f4906149ba565b80601f0160208091040260200160405190810160405280929190818152602001828054612820906149ba565b801561286d5780601f106128425761010080835404028352916020019161286d565b820191906000526020600020905b81548152906001019060200180831161285057829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916128c8906149ba565b80601f01602080910402602001604051908101604052809291908181526020018280546128f4906149ba565b80156129415780601f1061291657610100808354040283529160200191612941565b820191906000526020600020905b81548152906001019060200180831161292457829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016125d0565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015612aa6576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015612a3257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612a14575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015612a8e57602002820191906000526020600020905b815481526020019060010190808311612a7a575b5050505050815250508152602001906001019061299c565b50505050815260200160068201548152602001600782018054612ac8906149ba565b80601f0160208091040260200160405190810160405280929190818152602001828054612af4906149ba565b8015612b415780601f10612b1657610100808354040283529160200191612b41565b820191906000526020600020905b815481529060010190602001808311612b2457829003601f168201915b5050509190925250506040516322ea8d8960e11b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__926345d51b129250612b8091600401614905565b602060405180830381865af4158015612b9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bc19190614a15565b15612be557600081815260058701602052604090208590612be28282615f36565b50505b50949350505050565b600281015460009081526005820160205260409020600680820154905414612ce657604051635a27a53960e11b81526004810183905273__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063b44f4a729060240160006040518083038186803b158015612c5b57600080fd5b505af4158015612c6f573d6000803e3d6000fd5b505050506002818101546040516394ecccfd60e01b815273__$b7b8687e33476c74e3b4e0a64c4768a343$__926394ecccfd92612cba926001600160401b039091169060040161603e565b60006040518083038186803b158015612cd257600080fd5b505af41580156120a8573d6000803e3d6000fd5b6002810154612cfd906001600160401b03166138f9565b60028101546001600160401b039081166000908152600760205260409020825481546001600160401b03191692169190911781556001808301805484939284928492612d4c9284019190613c06565b50505060028281015490820180546001600160401b0319166001600160401b039092169190911790556003808301549082015560048083018054612d939284019190613c56565b5060058281018054612da89284019190613e17565b506006820154816006015560078201816007019081612dc79190616055565b5050604080516101208101825283546001600160401b031660e0820190815260018501805484516020828102820181019096528181529395508694869486936101008701939192909190830182828015612e4a57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612e2c575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156132545760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015612f5b57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f3d575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190612f95906149ba565b80601f0160208091040260200160405190810160405280929190818152602001828054612fc1906149ba565b801561300e5780601f10612fe35761010080835404028352916020019161300e565b820191906000526020600020905b815481529060010190602001808311612ff157829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561309f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613081575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906130d9906149ba565b80601f0160208091040260200160405190810160405280929190818152602001828054613105906149ba565b80156131525780601f1061312757610100808354040283529160200191613152565b820191906000526020600020905b81548152906001019060200180831161313557829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916131ad906149ba565b80601f01602080910402602001604051908101604052809291908181526020018280546131d9906149ba565b80156132265780601f106131fb57610100808354040283529160200191613226565b820191906000526020600020905b81548152906001019060200180831161320957829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101612eb5565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b8282101561338b576000848152602090819020604080516080810182526003860290920180546001600160401b03168383019081526001820180548451818802810188019095528085529495929486949293869360608701939092909183018282801561331757602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116132f9575b50505050508152505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561337357602002820191906000526020600020905b81548152602001906001019080831161335f575b50505050508152505081526020019060010190613281565b505050508152602001600682015481526020016007820180546133ad906149ba565b80601f01602080910402602001604051908101604052809291908181526020018280546133d9906149ba565b80156134265780601f106133fb57610100808354040283529160200191613426565b820191906000526020600020905b81548152906001019060200180831161340957829003601f168201915b5050509190925250506040516339aa47fb60e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__926339aa47fb925061346591600401614905565b602060405180830381865af4158015613482573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134a691906149a1565b600655604051631a9c293560e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d4e149a8906134f59084906004016163c4565b600060405180830381600087803b15801561350f57600080fd5b505af11580156120a8573d6000803e3d6000fd5b600254600160401b90046001600160401b0316600061354182613a35565b90509091565b600082600001828154811061355e5761355e614d06565b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b60006135958383613571565b6135cb57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610a1d565b506000610a1d565b600081815260018301602052604081205480156136bc5760006135f7600183614d35565b855490915060009061360b90600190614d35565b905081811461367057600086600001828154811061362b5761362b614d06565b906000526020600020015490508087600001848154811061364e5761364e614d06565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061368157613681616454565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610a1d565b6000915050610a1d565b8554600081815260038801602090815260408083206001600160a01b038916845290915281205490919060ff1615613711576040516337138f5f60e11b815260040160405180910390fd5b600081815260038901602090815260408083206001600160a01b038a1684529091528120805460ff1916600190811790915589018054879290613755908490614a48565b9091555050600081815260048901602090815260408083208a845290915281208054879290613785908490614a48565b90915550506000818152600489016020908152604080832060028c0154845290915280822054898352912054808210156137c15760028a018990555b60006137cd8b87613a8a565b905060038160038111156137e3576137e3614077565b0361386e576137f187613a35565b156137ff57600194506138eb565b60405163199b9ca560e01b815273__$b7b8687e33476c74e3b4e0a64c4768a343$__9063199b9ca590613839906002908b9060040161603e565b60006040518083038186803b15801561385157600080fd5b505af4158015613865573d6000803e3d6000fd5b505050506138eb565b600281600381111561388257613882614077565b036138eb57604051635a27a53960e11b8152600481018c905273__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063b44f4a729060240160006040518083038186803b1580156138d257600080fd5b505af41580156138e6573d6000803e3d6000fd5b505050505b505050509695505050505050565b61390281613a35565b6139095750565b604051634953836d60e11b815273__$b7b8687e33476c74e3b4e0a64c4768a343$__906392a706da9061394390600290859060040161603e565b602060405180830381865af4158015613960573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139849190614a15565b156139a8576002546001600160401b03828116600160401b90920416146139a85750565b6040516394ecccfd60e01b815273__$b7b8687e33476c74e3b4e0a64c4768a343$__906394ecccfd906139e290600290859060040161603e565b60006040518083038186803b1580156139fa57600080fd5b505af4158015613a0e573d6000803e3d6000fd5b5050600180546001600160401b0319166001600160401b0394909416939093179092555050565b600154600090613a6f907f0000000000000000000000000000000000000000000000000000000000000000906001600160401b031661646a565b6001600160401b0316826001600160401b0316149050919050565b6000806064613abc60ff7f0000000000000000000000000000000000000000000000000000000000000000168561576e565b613ac69190614cf2565b604051637d2ef4e560e11b81526004810186905290915060009073__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063fa5de9ca90602401602060405180830381865af4158015613b1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b4091906149a1565b905081856001015411613b5857600092505050610a1d565b81811115613b6b57600392505050610a1d565b6001850154613b7a9085614d35565b613b848284614d35565b10613b9457600292505050610a1d565b506001949350505050565b6040518060e00160405280613bb2613bee565b815260200160006001600160401b0316815260200160008152602001606081526020016060815260200160008019168152602001606081525090565b60408051808201909152600081526060602082015290565b828054828255906000526020600020908101928215613c465760005260206000209182015b82811115613c46578254825591600101919060010190613c2b565b50613c52929150613eb7565b5090565b82805482825590600052602060002090600c028101928215613e0b57600052602060002091600c0282015b82811115613e0b57825482546001600160401b0319166001600160401b039091161782556001808401805485928592849284928492849284928492613cc99291840191613c06565b50505060028281018054918301805460ff191660ff90931692909217825590600380840190613cfa90860182616055565b505050506004838101805491840180546001600160401b0319166001600160401b039093169290921782556005808601805492945084928492613d409290880191613c06565b50505060028281018054918301805460ff191660ff90931692909217825590600380840190613d7190860182616055565b5050505060088381015490830155506009808301805491830180546001600160401b031981166001600160401b039094169384178255915463ffffffff600160401b9182900416026001600160601b0319909216909217179055600a80820190613ddd90840182616055565b505050600b918201549101805460ff191660ff9092161515919091179055600c928301929190910190613c81565b50613c52929150613ecc565b828054828255906000526020600020906003028101928215613eab5760005260206000209160030282015b82811115613eab57825482546001600160401b0319166001600160401b03909116178255600180840180548592859284928492613e829290840191613c06565b50505060028281018054613e999284019190613c06565b50505091600301919060030190613e42565b50613c52929150613f9c565b5b80821115613c525760008155600101613eb8565b80821115613c525780546001600160401b03191681556000818181818181613ef76001830182613fdd565b505060028201805460ff191681556000613f146003850182613ffb565b505050506004820180546001600160401b031916815560008181613f3b6005870182613fdd565b505060028201805460ff191681556000613f586003850182613ffb565b50506000600885018190556009850180546001600160601b0319169055613f859250600a85019150613ffb565b505050600b8101805460ff19169055600c01613ecc565b80821115613c525780546001600160401b031916815560008181613fc36001830182613fdd565b50613fd49050600283016000613fdd565b50600301613f9c565b5080546000825590600052602060002090810190610af59190613eb7565b508054614007906149ba565b6000825580601f10614017575050565b601f016020900490600052602060002090810190610af59190613eb7565b6001600160401b0381168114610af557600080fd5b803561405581614035565b919050565b60006020828403121561406c57600080fd5b81356120c681614035565b634e487b7160e01b600052602160045260246000fd5b60208101600683106140a1576140a1614077565b91905290565b6001600160a01b0381168114610af557600080fd5b6000602082840312156140ce57600080fd5b81356120c6816140a7565b6000815180845260005b818110156140ff576020818501810151868301820152016140e3565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006120c660208301846140d9565b60006020828403121561414457600080fd5b5035919050565b6001600160a01b0391909116815260200190565b6000806040838503121561417257600080fd5b823561417d81614035565b9150602083013561418d816140a7565b809150509250929050565b600081518084526020808501945080840160005b838110156141d15781516001600160a01b0316875295820195908201906001016141ac565b509495945050505050565b60018060401b03815116825260006020820151604060208501526142036040850182614198565b949350505050565b60ff8151168252600060208201516040602085015261420360408501826140d9565b600081516040845261424260408501826141dc565b90506020830151848203602086015261425b828261420b565b95945050505050565b600081518084526020808501808196508360051b8101915082860160005b8581101561434b578284038952815160408151818752805160c080848a01526142af6101008a018361422d565b915089830151603f196060818c860301818d01526142cd858461422d565b9686015160808d810191909152908601516001600160401b031660a0808e0191909152908601516001600160e01b031916938c0193909352918401518a860390920160e08b01525092905061432281846140d9565b93890151801515898b0152939250614338915050565b9986019994505090840190600101614282565b5091979650505050505050565b600081518084526020808501808196508360051b810191508286016000805b868110156143ea578385038a52825160408151818852614399828901826141dc565b92890151888403898b01528051808552908a01938693508a0191505b808310156143d557835182529289019260019290920191908901906143b5565b509b88019b9650505091850191600101614377565b509298975050505050505050565b8215158152604060208201526000825160e0604084015261441d6101208401826141dc565b905060018060401b036020850151166060840152604084015160808401526060840151603f19808584030160a08601526144578383614264565b925060808601519150808584030160c08601526144748383614358565b925060a086015160e086015260c0860151915080858403016101008601525061449d82826140d9565b9695505050505050565b6000806000604084860312156144bc57600080fd5b83356001600160401b03808211156144d357600080fd5b818601915086601f8301126144e757600080fd5b8135818111156144f657600080fd5b87602082850101111561450857600080fd5b60209283019550935090850135908082111561452357600080fd5b5084016040818703121561453657600080fd5b809150509250925092565b6020815260006120c660208301846141dc565b60208101600183106140a1576140a1614077565b60a08152600061457b60a08301886141dc565b6001600160401b0387166020840152604083018690526060830185905282810360808401526145aa81856140d9565b98975050505050505050565b6020815260006120c66020830184614198565b600060208083526060808401855160408085880152828251808552608094508489019150848160051b8a0101878501945060005b82811015614667578a8203607f19018452855180516001600160a01b03168352898101518a8401528581015186840189905261463b8985018261420b565b918a0151848303858c015291905061465381836140d9565b978b0197958b0195935050506001016145fd565b50968a01516001600160401b038116848b0152969a9950505050505050505050565b60ff8316815260406020820152600061420360408301846140d9565b6000602082840312156146b757600080fd5b81356001600160401b038111156146cd57600080fd5b820160e081850312156120c657600080fd5b80516001600160401b03168252602080820151604082850181905281519085018190526000929182019190839060608701905b8083101561473b5784516001600160a01b03168252938301936001929092019190830190614712565b509695505050505050565b600081516040845261475b60408501826146df565b90506020830151848203602086015260ff8151168252602081015190506040602083015261425b60408301826140d9565b600081518084526020808501808196508360051b8101915082860160005b8581101561434b578284038952815160408151818752805160c080848a01526147d76101008a0183614746565b915089830151603f196060818c860301818d01526147f58584614746565b9686015160808d810191909152908601516001600160401b031660a0808e0191909152908601516001600160e01b031916938c0193909352918401518a860390920160e08b01525092905061484a81846140d9565b93890151801515898b0152939250614860915050565b99860199945050908401906001016147aa565b600081518084526020808501808196508360051b810191508286016000805b868110156143ea578385038a528251604081518188526148b4828901826146df565b92890151888403898b01528051808552908a01938693508a0191505b808310156148f057835182529289019260019290920191908901906148d0565b509b88019b9650505091850191600101614892565b602081526000825160e060208401526149226101008401826146df565b905060018060401b036020850151166040840152604084015160608401526060840151601f198085840301608086015261495c838361478c565b925060808601519150808584030160a08601526149798383614873565b925060a086015160c086015260c08601519150808584030160e08601525061425b82826140d9565b6000602082840312156149b357600080fd5b5051919050565b600181811c908216806149ce57607f821691505b6020821081036149ee57634e487b7160e01b600052602260045260246000fd5b50919050565b6020815260006120c660208301846146df565b8015158114610af557600080fd5b600060208284031215614a2757600080fd5b81516120c681614a07565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a1d57610a1d614a32565b634e487b7160e01b600052604160045260246000fd5b60009081526020902090565b5b81811015614a925760008155600101614a7e565b5050565b601f82111561227d57806000526020600020601f840160051c81016020851015614abd5750805b6115aa601f850160051c830182614a7d565b600019600383901b1c191660019190911b1790565b6001600160401b03831115614afb57614afb614a5b565b614b0f83614b0983546149ba565b83614a96565b6000601f841160018114614b3d5760008515614b2b5750838201355b614b358682614acf565b8455506115aa565b601f198516614b4b84614a71565b835b82811015614b6d5786850135825560209485019460019092019101614b4d565b5086821015614b8a5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60ff81168114610af557600080fd5b6000808335601e19843603018112614bc257600080fd5b8301803591506001600160401b03821115614bdc57600080fd5b602001915036819003821315614bf157600080fd5b9250929050565b8135614c0381614b9c565b60ff811660ff198354161782555060018082016020614c2481860186614bab565b6001600160401b03811115614c3b57614c3b614a5b565b614c4f81614c4986546149ba565b86614a96565b6000601f821160018114614c7d5760008315614c6b5750838201355b614c758482614acf565b875550614cd1565b601f198316614c8b87614a71565b835b82811015614caa5786850135825593870193908901908701614c8d565b5084821015614cc75760001960f88660031b161c19848701351681555b50508683881b0186555b505050505050505050565b634e487b7160e01b600052601260045260246000fd5b600082614d0157614d01614cdc565b500490565b634e487b7160e01b600052603260045260246000fd5b600060018201614d2e57614d2e614a32565b5060010190565b81810381811115610a1d57610a1d614a32565b60008235603e19833603018112614d5e57600080fd5b9190910192915050565b604080519081016001600160401b0381118282101715614d8a57614d8a614a5b565b60405290565b60405160c081016001600160401b0381118282101715614d8a57614d8a614a5b565b60405160e081016001600160401b0381118282101715614d8a57614d8a614a5b565b604051601f8201601f191681016001600160401b0381118282101715614dfc57614dfc614a5b565b604052919050565b60006001600160401b03821115614e1d57614e1d614a5b565b5060051b60200190565b600060408284031215614e3957600080fd5b614e41614d68565b90508135614e4e81614035565b81526020828101356001600160401b03811115614e6a57600080fd5b8301601f81018513614e7b57600080fd5b8035614e8e614e8982614e04565b614dd4565b81815260059190911b82018301908381019087831115614ead57600080fd5b928401925b82841015614ed4578335614ec5816140a7565b82529284019290840190614eb2565b8085870152505050505092915050565b6000610a1d3683614e27565b6000808335601e19843603018112614f0757600080fd5b8301803591506001600160401b03821115614f2157600080fd5b6020019150600581901b3603821315614bf157600080fd5b60008235603e19833603018112614f4f57600080fd5b90910192915050565b6000808335601e19843603018112614f6f57600080fd5b83016020810192503590506001600160401b03811115614f8e57600080fd5b803603821315614bf157600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008135614fd381614b9c565b60ff168352614fe56020830183614f58565b6040602086015261425b604086018284614f9d565b60006150068283614f39565b6040845260808401813561501981614035565b6001600160401b0390811660408701526020908382013536859003601e1901811261504357600080fd5b9093018181019390358181111561505957600080fd5b8060051b360385131561506b57600080fd5b60406060890152928390525060009160a08701905b808410156150b2578435615093816140a7565b6001600160a01b03168252938201936001939093019290820190615080565b506150bf82870187614f39565b9350868103828801526150d28185614fc6565b979650505050505050565b6001600160e01b031981168114610af557600080fd5b8035614055816150dd565b803561405581614a07565b60208082528181018390526000906040808401600586901b850182018785805b8981101561523f57603f19808a8603018652615145848d614f39565b803560be19823603018112615158578485fd5b88875281016151678180614f39565b60c0808b8a015261517c6101008a0183614ffa565b915061518a8c840184614f39565b6060868b850301818c015261519f8483614ffa565b9350608091508c850135828c01528085013590506151bc81614035565b6001600160401b03811660a08c81019190915291850135916151dd836150dd565b6001600160e01b031983168c8501526151f886820187614f58565b96509350505050848983030160e08a0152615214828483614f9d565b94505050506152248982016150fe565b15159589019590955294870194935091860191600101615129565b50919998505050505050505050565b6001600160401b038281168282160390808211156118de576118de614a32565b60006001600160401b038381168061528857615288614cdc565b92169190910692915050565b600082601f8301126152a557600080fd5b81356001600160401b038111156152be576152be614a5b565b6152d1601f8201601f1916602001614dd4565b8181528460208386010111156152e657600080fd5b816020850160208301376000918101602001919091529392505050565b60006040828403121561531557600080fd5b61531d614d68565b905081356001600160401b038082111561533657600080fd5b61534285838601614e27565b8352602084013591508082111561535857600080fd5b908301906040828603121561536c57600080fd5b615374614d68565b823561537f81614b9c565b815260208301358281111561539357600080fd5b61539f87828601615294565b60208301525080602085015250505092915050565b600082601f8301126153c557600080fd5b813560206153d5614e8983614e04565b82815260059290921b840181019181810190868411156153f457600080fd5b8286015b8481101561473b5780356001600160401b038082111561541757600080fd5b90880190601f196040838c038201121561543057600080fd5b615438614d68565b878401358381111561544957600080fd5b840160c0818e038401121561545d57600080fd5b615465614d90565b9250888101358481111561547857600080fd5b6154868e8b83850101615303565b84525060408101358481111561549b57600080fd5b6154a98e8b83850101615303565b8a85015250606081013560408401526154c46080820161404a565b60608401526154d560a082016150f3565b608084015260c0810135848111156154ec57600080fd5b6154fa8e8b83850101615294565b60a08501525050818152615510604085016150fe565b8189015286525050509183019183016153f8565b600082601f83011261553557600080fd5b81356020615545614e8983614e04565b828152600592831b850182019282820191908785111561556457600080fd5b8387015b858110156156595780356001600160401b03808211156155885760008081fd5b908901906040828c03601f19018113156155a25760008081fd5b6155aa614d68565b88840135838111156155bc5760008081fd5b6155ca8e8b83880101614e27565b82525081840135838111156155df5760008081fd5b8085019450508c603f8501126155f757600092508283fd5b888401359250615609614e8984614e04565b83815292861b8401820192898101908e8511156156265760008081fd5b948301945b848610156156445785358252948a0194908a019061562b565b828b0152508752505050928401928401615568565b5090979650505050505050565b600060e0823603121561567857600080fd5b615680614db2565b82356001600160401b038082111561569757600080fd5b6156a336838701614e27565b83526156b16020860161404a565b60208401526040850135604084015260608501359150808211156156d457600080fd5b6156e0368387016153b4565b606084015260808501359150808211156156f957600080fd5b61570536838701615524565b608084015260a085013560a084015260c085013591508082111561572857600080fd5b5061573536828601615294565b60c08301525092915050565b60008135610a1d81614035565b80546001600160401b0319166001600160401b0392909216919091179055565b8082028115828204841417610a1d57610a1d614a32565b8054600082558015614a925781600052602060002061227d82820182614a7d565b600160401b8211156157ba576157ba614a5b565b80548282558083101561227d57816000526020600020610bc7828201858301614a7d565b60008155610af560018201615785565b6157f881546149ba565b8015614a9257601f81116001811461581257505060009055565b826000526020600020615830601f840160051c820160018301614a7d565b60008085559055505050565b6000815561584c60018201615785565b60006002820155610af5600382016157ee565b6158698283614d48565b803561587481614035565b61587e818461574e565b506001808301602061589281850185614ef0565b94506001600160401b03808611156158ac576158ac614a5b565b6158b686856157a6565b600093845282842093805b878110156158e35783356158d4816140a7565b868201559284019286016158c1565b506002880196506158f6848a018a614d48565b94508435925061590583614b9c565b865460ff191660ff841617909655600387019561592485850186614bab565b955092508185111561593857615938614a5b565b61594c8561594689546149ba565b89614a96565b809150601f85116001811461597a578186156159685750838301355b6159728782614acf565b8955506115a4565b601f19861661598889614a71565b835b828110156159a7578686013582559487019490890190870161598a565b50878210156159c45760001960f88960031b161c19858701351681555b505050505091831b90920190925550505050565b60008135610a1d816150dd565b60008135610a1d81614a07565b813560be19833603018112615a0657600080fd5b8201615a128180614d48565b615a1c8182614d48565b8035615a2781614035565b615a31818661574e565b5060018085016020615a4581850185614ef0565b94506001600160401b0380861115615a5f57615a5f614a5b565b615a6986856157a6565b600093845282842093805b87811015615a96578335615a87816140a7565b86820155928401928601615a74565b5060028a019650615aa984890189614d48565b975087359450615ab885614b9c565b865460ff191660ff8616179096556003890195615ad788850189614bab565b9850945081881115615aeb57615aeb614a5b565b615af98861594689546149ba565b809250601f881160018114615b29578192508815615b18578386013592505b615b228984614acf565b8855615b7e565b601f1989169250615b3988614a71565b825b84811015615b585787860135825594860194908801908601615b3b565b5089841015615b755760001960f88b60031b161c19858801351681555b508689881b0188555b50505050615b9a615b9182880188614d48565b6004890161585f565b60408601356008880155600987019450615bbf615bb960608801615741565b8661574e565b615bf2615bce608088016159d8565b86805463ffffffff60401b191660a09290921c63ffffffff60401b16919091179055565b615bff60a0870187614bab565b96509450615c118686600a8a01614ae4565b615c38615c1f828a016159e5565b600b890160ff1981541660ff8315151681178255505050565b5050505050505050565b600160401b831115615c5657615c56614a5b565b805483825580841015615cea57600c8181028181048314615c7957615c79614a32565b8582028281048714615c8d57615c8d614a32565b6000858152602081209283019291909101905b82821015615ce557615cb18261583c565b615cbd6004830161583c565b806008830155806009830155615cd5600a83016157ee565b80600b8301558382019150615ca0565b505050505b5081615cf582614a71565b60005b858110156120a857615d13615d0d8487614d48565b836159f2565b60209290920191600c9190910190600101615cf8565b80546000808355811561227d57828152602081208281015b808210156115aa57828255600182019150615d41565b600160401b821115615d6b57615d6b614a5b565b80548282558083101561227d576000828152602081208481019083015b808210156120a857828255600182019150615d88565b615da88283614d48565b8035615db381614035565b615dbd818461574e565b5060018083016020615dd181850185614ef0565b94506001600160401b0380861115615deb57615deb614a5b565b615df586856157a6565b600093845282842093805b87811015615e22578335615e13816140a7565b86820155928401928601615e00565b50600288019650615e35848a018a614ef0565b9550925081851115615e4957615e49614a5b565b615e538588615d57565b95865250818520945b83811015615c3857813586820155908201908401615e5c565b600160401b831115615e8957615e89614a5b565b805483825580841015615ef75760038181028181048314615eac57615eac614a32565b8582028281048714615ec057615ec0614a32565b60008581526020902091820191015b81811015615ef357615ee0816157de565b615eec60028201615d29565b8201615ecf565b5050505b5081615f0282614a71565b60005b858110156120a857615f20615f1a8487614d48565b83615d9e565b6020929092019160039190910190600101615f05565b615f408283614d48565b8035615f4b81614035565b615f55818461574e565b5060018083016020615f6981850185614ef0565b94506001600160401b03851115615f8257615f82614a5b565b615f8c85846157a6565b6000928352818320925b85811015615fb8578135615fa9816140a7565b84820155908201908401615f96565b5050615fd1615fc8828801615741565b6002870161574e565b5050505060408201356003820155615fec6060830183614ef0565b615ffa818360048601615c42565b50506160096080830183614ef0565b616017818360058601615e75565b505060a0820135600682015561603060c0830183614bab565b610bc7818360078601614ae4565b9182526001600160401b0316602082015260400190565b818103616060575050565b61606a82546149ba565b6001600160401b0381111561608157616081614a5b565b6160958161608f84546149ba565b84614a96565b6000601f8211600181146160c357600083156160b15750848201545b6160bb8482614acf565b8555506115aa565b601f1983166160d186614a71565b6160da86614a71565b845b838110156160fc57828601548255600195860195909101906020016160dc565b508583101561611a5781850154600019600388901b60f8161c191681555b5050505050600190811b01905550565b80546001600160401b031682526040602080840182905260018381018054938601849052600090815282812090939092849160608801905b808410156161885785546001600160a01b03168252948401949284019290820190616162565b50979650505050505050565b600081546161a1816149ba565b8085526020600183811680156161be57600181146161d857616206565b60ff1985168884015283151560051b880183019550616206565b866000528260002060005b858110156161fe5781548a82018601529083019084016161e3565b890184019650505b505050505092915050565b604082526000616224604084018361612a565b838103602085015260ff6002840154168152604060208201526142036040820160038501616194565b600082825480855260208086019550808260051b840101856000528160002060005b8481101561565957601f19868403018952604080845260c0808286015261629a610100860185616211565b9150603f19808684030160608701526162b68360048701616211565b6008860154608088015260098601546001600160401b03811660a0808a01919091521b6001600160e01b031916928701929092528582030160e0860152905061630281600a8501616194565b9050616312600b84015460ff1690565b15159385019390935297830197600c919091019060010161626f565b600081548084526020808501808196508360051b810191506000868152838120815b868110156143ea578385038a52604080865261636e8187018461612a565b86810388880152600284018054808352908652888620925085918901905b808310156163ac578354825260019384019392909201919089019061638c565b509b88019b9650505060039190910190600101616350565b6020815260e0602082015260006163df61010083018461612a565b60028401546001600160401b0316604084015260038401546060840152828103601f199081016080850152616417826004870161624d565b9150808483030160a0850152616430826005870161632e565b9150600685015460c0850152808483030160e0850152506142038160078601616194565b634e487b7160e01b600052603160045260246000fd5b6001600160401b038181168382160190808211156118de576118de614a3256fea264697066735822122013ed668dd1aa47118596cca50f18178d3d8413fde2f18c0db9399b6670b8bce164736f6c63430008130033", - "sourceMap": "1493:16146:26:-:0;;;6269:1281;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6319:25;;;;6346:26;;;;1716:1:18;1821:7;:22;2103:3:28;2081:25;;;;2077:90;;;2129:27;;-1:-1:-1;;;2129:27:28;;;;;;;;;;;2077:90;2177:40;;;;;680:2;-1:-1:-1;;;;;2246:41:28;;;:85;;2314:17;2246:85;;;680:2;2246:85;-1:-1:-1;;;;;2227:104:28;;;;;;;2342:15;:41;;-1:-1:-1;;;;;;2342:41:28;;;;;;;;6396:15:26;;6384:27;;:9:::1;:27:::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;6396:15;;-1:-1:-1;6384:9:26;;-1:-1:-1;6384:27:26::1;::::0;;;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;;;6428:11:26::1;::::0;::::1;::::0;6421:18:::1;::::0;6453:21:::1;::::0;::::1;::::0;-1:-1:-1;;;;;6453:35:26::1;6449:94;;6511:21;;-1:-1:-1::0;;;6511:21:26::1;;;;;;;;;;;6449:94;6569:21;::::0;::::1;::::0;-1:-1:-1;;;;;6552:38:26::1;;::::0;6612:16:::1;::::0;::::1;::::0;6600:28;;::::1;;;;:::i;:::-;;::::0;;;::::1;;;;:::i;:::-;;;::::0;::::1;2176:7;6664:6;:30;;;:54;:135;;6769:6;:30;;;6664:135;;;2176:7;6664:135;6638:161;::::0;6825:20:::1;::::0;::::1;::::0;-1:-1:-1;;;;;6809:36:26;;::::1;;::::0;6876:25:::1;::::0;::::1;::::0;680:2:28::1;6876:49:26::0;::::1;;:125;;6976:6;:25;;;6876:125;;;680:2:28;6876:125:26;-1:-1:-1::0;;;;;6855:146:26;;::::1;;::::0;7033:16:::1;::::0;7011:38:::1;;::::0;7068:19:::1;7059:28:::0;;-1:-1:-1;;;;7059:28:26::1;::::0;::::1;::::0;;7107:14:::1;::::0;::::1;::::0;7097:7:::1;::::0;:24:::1;::::0;:7;:24:::1;:::i;:::-;-1:-1:-1::0;7151:24:26::1;::::0;;;;::::1;::::0;;:9:::1;:24:::0;;-1:-1:-1;;;;;7151:24:26::1;::::0;;;;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;;;:9;;:24;;::::1;::::0;;;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;7151:24:26::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;;;7151:24:26;;;;-1:-1:-1;;7151:39:26::1;::::0;-1:-1:-1;;;7151:39:26;;:24:::1;::::0;::::1;::::0;-1:-1:-1;7151:39:26::1;::::0;7184:4:::1;::::0;7151:39:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;7151:39:26::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;:48;::::0;-1:-1:-1;;;7151:48:26;;:46:::1;::::0;::::1;::::0;:48:::1;::::0;:46;:48:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7131:68;::::0;-1:-1:-1;7493:13:26::1;:17:::0;;-1:-1:-1;;;;;;;;7493:17:26::1;::::0;;7520:19:::1;:23:::0;;-1:-1:-1;;;;;;7520:23:26::1;::::0;;1493:16146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1493:16146:26;-1:-1:-1;;;;;1493:16146:26;;;;;;;;;;;-1:-1:-1;1493:16146:26;;;;;;;-1:-1:-1;1493:16146:26;;;-1:-1:-1;1493:16146:26;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:127:60;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:257;218:4;212:11;;;250:17;;-1:-1:-1;;;;;282:34:60;;318:22;;;279:62;276:88;;;344:18;;:::i;:::-;380:4;373:24;146:257;:::o;408:255::-;480:2;474:9;522:6;510:19;;-1:-1:-1;;;;;544:34:60;;580:22;;;541:62;538:88;;;606:18;;:::i;668:275::-;739:2;733:9;804:2;785:13;;-1:-1:-1;;781:27:60;769:40;;-1:-1:-1;;;;;824:34:60;;860:22;;;821:62;818:88;;;886:18;;:::i;:::-;922:2;915:22;668:275;;-1:-1:-1;668:275:60:o;948:175::-;1026:13;;-1:-1:-1;;;;;1068:30:60;;1058:41;;1048:69;;1113:1;1110;1103:12;1048:69;948:175;;;:::o;1128:177::-;1207:13;;-1:-1:-1;;;;;1249:31:60;;1239:42;;1229:70;;1295:1;1292;1285:12;1310:1046;1376:5;1424:4;1412:9;1407:3;1403:19;1399:30;1396:50;;;1442:1;1439;1432:12;1396:50;1464:22;;:::i;:::-;1455:31;;1509:39;1538:9;1509:39;:::i;:::-;1495:54;;1568:2;1599:18;;;1593:25;-1:-1:-1;;;;;1667:14:60;;;1664:34;;;1694:1;1691;1684:12;1664:34;1732:6;1721:9;1717:22;1707:32;;1777:3;1770:4;1766:2;1762:13;1758:23;1748:51;;1795:1;1792;1785:12;1748:51;1824:2;1818:9;1846:2;1842;1839:10;1836:36;;;1852:18;;:::i;:::-;1898:2;1895:1;1891:10;1881:20;;1921:28;1945:2;1941;1937:11;1921:28;:::i;:::-;1983:15;;;2053:11;;;2049:20;;;2014:12;;;;2081:15;;;2078:35;;;2109:1;2106;2099:12;2078:35;2133:11;;;;2153:159;2169:6;2164:3;2161:15;2153:159;;;2235:34;2265:3;2235:34;:::i;:::-;2223:47;;2186:12;;;;2290;;;;2153:159;;;2344:5;2339:2;2332:5;2328:14;2321:29;;;;;;;1310:1046;;;;:::o;2361:158::-;2451:13;;2493:1;2483:12;;2473:40;;2509:1;2506;2499:12;2524:160;2601:13;;2654:4;2643:16;;2633:27;;2623:55;;2674:1;2671;2664:12;2689:649;2742:5;2795:3;2788:4;2780:6;2776:17;2772:27;2762:55;;2813:1;2810;2803:12;2762:55;2836:13;;-1:-1:-1;;;;;2861:26:60;;2858:52;;;2890:18;;:::i;:::-;2929:4;2957:53;3000:2;2981:13;;-1:-1:-1;;2977:27:60;2973:36;;2957:53;:::i;:::-;3035:2;3026:7;3019:19;3079:3;3074:2;3069;3061:6;3057:15;3053:24;3050:33;3047:53;;;3096:1;3093;3086:12;3047:53;3118:1;3128:134;3142:2;3139:1;3136:9;3128:134;;;3231:14;;;3227:23;;3221:30;3199:15;;;3195:24;;3188:64;3153:10;;3128:134;;;-1:-1:-1;3305:1:60;3282:16;;;3278:25;;;3271:36;;;;3286:7;2689:649;-1:-1:-1;;;2689:649:60:o;3343:1423::-;3447:6;3500:2;3488:9;3479:7;3475:23;3471:32;3468:52;;;3516:1;3513;3506:12;3468:52;3543:16;;-1:-1:-1;;;;;3608:14:60;;;3605:34;;;3635:1;3632;3625:12;3605:34;3658:22;;;;3714:6;3696:16;;;3692:29;3689:49;;;3734:1;3731;3724:12;3689:49;3760:22;;:::i;:::-;3813:2;3807:9;3841:2;3831:8;3828:16;3825:36;;;3857:1;3854;3847:12;3825:36;3884:65;3941:7;3930:8;3926:2;3922:17;3884:65;:::i;:::-;3877:5;3870:80;;3996:2;3992;3988:11;3982:18;3977:2;3970:5;3966:14;3959:42;4033;4071:2;4067;4063:11;4033:42;:::i;:::-;4028:2;4021:5;4017:14;4010:66;4108:53;4157:2;4153;4149:11;4108:53;:::i;:::-;4103:2;4096:5;4092:14;4085:77;4209:3;4205:2;4201:12;4195:19;4189:3;4182:5;4178:15;4171:44;4248:42;4285:3;4281:2;4277:12;4248:42;:::i;:::-;4242:3;4235:5;4231:15;4224:67;4324:42;4361:3;4357:2;4353:12;4324:42;:::i;:::-;4318:3;4311:5;4307:15;4300:67;4400:42;4437:3;4433:2;4429:12;4400:42;:::i;:::-;4394:3;4387:5;4383:15;4376:67;4462:3;4497:40;4533:2;4529;4525:11;4497:40;:::i;:::-;4481:14;;;4474:64;4557:3;4591:11;;;4585:18;4615:16;;;4612:36;;;4644:1;4641;4634:12;4612:36;4680:55;4727:7;4716:8;4712:2;4708:17;4680:55;:::i;:::-;4664:14;;;4657:79;;;;-1:-1:-1;4668:5:60;3343:1423;-1:-1:-1;;;;;3343:1423:60:o;4771:127::-;4832:10;4827:3;4823:20;4820:1;4813:31;4863:4;4860:1;4853:15;4887:4;4884:1;4877:15;4903:380;4982:1;4978:12;;;;5025;;;5046:61;;5100:4;5092:6;5088:17;5078:27;;5046:61;5153:2;5145:6;5142:14;5122:18;5119:38;5116:161;;5199:10;5194:3;5190:20;5187:1;5180:31;5234:4;5231:1;5224:15;5262:4;5259:1;5252:15;5116:161;;4903:380;;;:::o;5413:544::-;5514:2;5509:3;5506:11;5503:448;;;5550:1;5575:5;5571:2;5564:17;5620:4;5616:2;5606:19;5690:2;5678:10;5674:19;5671:1;5667:27;5661:4;5657:38;5726:4;5714:10;5711:20;5708:47;;;-1:-1:-1;5749:4:60;5708:47;5804:2;5799:3;5795:12;5792:1;5788:20;5782:4;5778:31;5768:41;;5859:82;5877:2;5870:5;5867:13;5859:82;;;5922:17;;;5903:1;5892:13;5859:82;;;5863:3;;;5503:448;5413:544;;;:::o;6133:1348::-;6251:10;;-1:-1:-1;;;;;6273:30:60;;6270:56;;;6306:18;;:::i;:::-;6335:96;6424:6;6384:38;6416:4;6410:11;6384:38;:::i;:::-;6378:4;6335:96;:::i;:::-;6486:4;;6550:2;6539:14;;6567:1;6562:662;;;;7268:1;7285:6;7282:89;;;-1:-1:-1;7337:19:60;;;7331:26;7282:89;-1:-1:-1;;6090:1:60;6086:11;;;6082:24;6078:29;6068:40;6114:1;6110:11;;;6065:57;7384:81;;6532:943;;6562:662;5360:1;5353:14;;;5397:4;5384:18;;-1:-1:-1;;6598:20:60;;;6715:236;6729:7;6726:1;6723:14;6715:236;;;6818:19;;;6812:26;6797:42;;6910:27;;;;6878:1;6866:14;;;;6745:19;;6715:236;;;6719:3;6979:6;6970:7;6967:19;6964:201;;;7040:19;;;7034:26;-1:-1:-1;;7123:1:60;7119:14;;;7135:3;7115:24;7111:37;7107:42;7092:58;7077:74;;6964:201;-1:-1:-1;;;;;7211:1:60;7195:14;;;7191:22;7178:36;;-1:-1:-1;6133:1348:60:o;7486:689::-;7606:12;;-1:-1:-1;;;;;7602:37:60;7590:50;;7659:4;7698:14;;;7692:21;7576:4;7729:12;;;7722:26;;;7797:19;;7567:14;;;7825:20;;;7537:3;;7898:21;;;;7659:4;7537:3;;7872:2;7863:12;;;7947:201;7961:6;7958:1;7955:13;7947:201;;;8028:13;;-1:-1:-1;;;;;8024:39:60;8010:54;;8123:15;;;;8060:1;7976:9;;;;;8086:14;;;;7947:201;;;-1:-1:-1;8164:5:60;7486:689;-1:-1:-1;;;;;;7486:689:60:o;8180:368::-;8399:2;8388:9;8381:21;8362:4;8419:54;8469:2;8458:9;8454:18;8446:6;8419:54;:::i;:::-;8411:62;;8538:1;8534;8529:3;8525:11;8521:19;8513:6;8509:32;8504:2;8493:9;8489:18;8482:60;8180:368;;;;;:::o;8553:363::-;8650:6;8703:2;8691:9;8682:7;8678:23;8674:32;8671:52;;;8719:1;8716;8709:12;8671:52;8746:16;;-1:-1:-1;;;;;8774:30:60;;8771:50;;;8817:1;8814;8807:12;8771:50;8840:70;8902:7;8893:6;8882:9;8878:22;8840:70;:::i;:::-;8830:80;8553:363;-1:-1:-1;;;;8553:363:60:o;8921:271::-;9112:2;9101:9;9094:21;9075:4;9132:54;9182:2;9171:9;9167:18;9159:6;9132:54;:::i;:::-;9124:62;8921:271;-1:-1:-1;;;8921:271:60:o;9197:184::-;9267:6;9320:2;9308:9;9299:7;9295:23;9291:32;9288:52;;;9336:1;9333;9326:12;9288:52;-1:-1:-1;9359:16:60;;9197:184;-1:-1:-1;9197:184:60:o;:::-;1493:16146:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", - "linkReferences": { - "src/lib/AccountHelper.sol": { - "AccountHelper": [ - { - "start": 11238, - "length": 20 - } - ] - }, - "src/lib/CheckpointHelper.sol": { - "CheckpointHelper": [ - { - "start": 5132, - "length": 20 - }, - { - "start": 12115, - "length": 20 - }, - { - "start": 13923, - "length": 20 - }, - { - "start": 16200, - "length": 20 - } - ] - }, - "src/lib/CrossMsgHelper.sol": { - "CrossMsgHelper": [ - { - "start": 10842, - "length": 20 - } - ] - }, - "src/lib/EpochVoteSubmissionHelper.sol": { - "EpochVoteSubmissionHelper": [ - { - "start": 14128, - "length": 20 - }, - { - "start": 17319, - "length": 20 - }, - { - "start": 17900, - "length": 20 - } - ] - }, - "src/lib/ExecutableQueueHelper.sol": { - "ExecutableQueueHelper": [ - { - "start": 14226, - "length": 20 - }, - { - "start": 17176, - "length": 20 - }, - { - "start": 17442, - "length": 20 - }, - { - "start": 17601, - "length": 20 - } - ] - }, - "src/lib/SubnetIDHelper.sol": { - "SubnetIDHelper": [ - { - "start": 652, - "length": 20 - }, - { - "start": 782, - "length": 20 - }, - { - "start": 7530, - "length": 20 - }, - { - "start": 10706, - "length": 20 - } - ] - } - } - }, - "deployedBytecode": { - "object": "0x6080604052600436106101c45760003560e01c806304fda3d4146101d857806306c468531461021557806306fdde03146102495780630f43a6771461028b57806310d500e1146102a0578063133f74ea14610300578063185fde7e14610337578063200d2ed21461036b57806323a357051461039957806326476204146103c657806332e0aa1f146103f35780633ccfd60b1461042057806341c0e1b51461043557806351392fc01461044a578063599c7bd11461046f5780635f832dbf146104b557806366d7bbbc146104cb5780636cb2ecee146105385780636cf6970a1461056657806373f273fc146105795780637d9740f4146105a657806380f76021146105da5780638b0e9f3f146105fc5780638ef3f7611461061257806391be4d4114610653578063989037481461066f5780639e33bd02146106a0578063a1ada303146106d4578063a7f0b3de146106e9578063a9fb763c146106fe578063ad81e2441461071e578063b7ab4db51461073e578063c18f64aa14610760578063c5ab224114610794578063cf331250146107c8578063cfca2824146107ea578063d4e25bab1461081e578063d66d9e191461084c578063f6fd83811461086157600080fd5b366101d3576101d1610881565b005b600080fd5b3480156101e457600080fd5b506005546101f8906001600160401b031681565b6040516001600160401b0390911681526020015b60405180910390f35b34801561022157600080fd5b506101f87f000000000000000000000000000000000000000000000000000000000000000081565b34801561025557600080fd5b5061027d7f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161020c565b34801561029757600080fd5b5061027d6108cc565b3480156102ac57600080fd5b506002546102d6906001600160401b0380821691600160401b8104821691600160801b9091041683565b604080516001600160401b039485168152928416602084015292169181019190915260600161020c565b34801561030c57600080fd5b5061032061031b36600461405a565b6108dd565b60408051921515835260208301919091520161020c565b34801561034357600080fd5b506101f87f000000000000000000000000000000000000000000000000000000000000000081565b34801561037757600080fd5b5060055461038c90600160401b900460ff1681565b60405161020c919061408d565b3480156103a557600080fd5b506103b96103b43660046140bc565b610976565b60405161020c919061411f565b3480156103d257600080fd5b5061027d6103e13660046140bc565b600b6020526000908152604090205481565b3480156103ff57600080fd5b5061041361040e366004614132565b610a10565b60405161020c919061414b565b34801561042c57600080fd5b506101d1610a23565b34801561044157600080fd5b506101d1610af8565b34801561045657600080fd5b50600154600160401b90046001600160401b03166101f8565b34801561047b57600080fd5b506104a37f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200161020c565b3480156104c157600080fd5b5061027d60065481565b3480156104d757600080fd5b506105286104e636600461415f565b6001600160401b0382166000908152600a602090815260408083208054845260030182528083206001600160a01b038516845290915290205460ff1692915050565b604051901515815260200161020c565b34801561054457600080fd5b5061055861055336600461405a565b610bcd565b60405161020c9291906143f8565b6101d16105743660046144a7565b6112d1565b34801561058557600080fd5b5061027d6105943660046140bc565b600c6020526000908152604090205481565b3480156105b257600080fd5b506101f87f000000000000000000000000000000000000000000000000000000000000000081565b3480156105e657600080fd5b506105ef6115b1565b60405161020c9190614541565b34801561060857600080fd5b5061027d60045481565b34801561061e57600080fd5b506106467f000000000000000000000000000000000000000000000000000000000000000081565b60405161020c9190614554565b34801561065f57600080fd5b5061027d670de0b6b3a764000081565b34801561067b57600080fd5b5061068f61068a36600461405a565b611639565b60405161020c959493929190614568565b3480156106ac57600080fd5b5061027d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156106e057600080fd5b506104a3600a81565b3480156106f557600080fd5b506103b9611776565b34801561070a57600080fd5b506101d1610719366004614132565b611783565b34801561072a57600080fd5b506001546101f8906001600160401b031681565b34801561074a57600080fd5b50610753611840565b60405161020c91906145b6565b34801561076c57600080fd5b5061027d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156107a057600080fd5b506101f87f000000000000000000000000000000000000000000000000000000000000000081565b3480156107d457600080fd5b506107dd6118e5565b60405161020c91906145c9565b3480156107f657600080fd5b506104137f000000000000000000000000000000000000000000000000000000000000000081565b34801561082a57600080fd5b5061083e6108393660046140bc565b611be1565b60405161020c929190614689565b34801561085857600080fd5b506101d1611c8a565b34801561086d57600080fd5b506101d161087c3660046146a5565b611dfe565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108ca5760405163e7e601db60e01b815260040160405180910390fd5b565b60006108d860086120b0565b905090565b6000806000806108ec85610bcd565b6040516339aa47fb60e01b81529193509150829073__$1cd67d4dc9e627f0bec7928aa480e7d951$__906339aa47fb9061092a908590600401614905565b602060405180830381865af4158015610947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096b91906149a1565b935093505050915091565b600d602052600090815260409020805461098f906149ba565b80601f01602080910402602001604051908101604052809291908181526020018280546109bb906149ba565b8015610a085780601f106109dd57610100808354040283529160200191610a08565b820191906000526020600020905b8154815290600101906020018083116109eb57829003601f168201915b505050505081565b6000610a1d6008836120ba565b92915050565b610a2b6120cd565b336000908152600c602052604081205490819003610a5c576040516367300f9160e11b815260040160405180910390fd5b336000908152600c60205260408082209190915551631f0e077760e31b8152600481018290526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f8703bb890602401600060405180830381600087803b158015610ad057600080fd5b505af1158015610ae4573d6000803e3d6000fd5b50610af59250339150839050612162565b50565b610b006120cd565b610b08612282565b610b1260086120b0565b151580610b20575060045415155b15610b3e57604051636b62255160e11b815260040160405180910390fd5b600580546003919060ff60401b1916600160401b8302179055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166341c0e1b56040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610bb357600080fd5b505af1158015610bc7573d6000803e3d6000fd5b50505050565b6000610bd7613b9f565b6001600160401b03808416600090815260076020908152604091829020825161012081018452815490941660e0850190815260018201805485518186028101860190965280865292948694929386936101008701939190830182828015610c6757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610c49575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156110715760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015610d7857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d5a575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610db2906149ba565b80601f0160208091040260200160405190810160405280929190818152602001828054610dde906149ba565b8015610e2b5780601f10610e0057610100808354040283529160200191610e2b565b820191906000526020600020905b815481529060010190602001808311610e0e57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015610ebc57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e9e575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610ef6906149ba565b80601f0160208091040260200160405190810160405280929190818152602001828054610f22906149ba565b8015610f6f5780601f10610f4457610100808354040283529160200191610f6f565b820191906000526020600020905b815481529060010190602001808311610f5257829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191610fca906149ba565b80601f0160208091040260200160405190810160405280929190818152602001828054610ff6906149ba565b80156110435780601f1061101857610100808354040283529160200191611043565b820191906000526020600020905b81548152906001019060200180831161102657829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101610cd2565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b828210156111a8576000848152602090819020604080516080810182526003860290920180546001600160401b03168383019081526001820180548451818802810188019095528085529495929486949293869360608701939092909183018282801561113457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611116575b50505050508152505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561119057602002820191906000526020600020905b81548152602001906001019080831161117c575b5050505050815250508152602001906001019061109e565b505050508152602001600682015481526020016007820180546111ca906149ba565b80601f01602080910402602001604051908101604052809291908181526020018280546111f6906149ba565b80156112435780601f1061121857610100808354040283529160200191611243565b820191906000526020600020905b81548152906001019060200180831161122657829003601f168201915b5050509190925250508151604051630c133d1360e31b815292935073__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e898925061128891906004016149f4565b602060405180830381865af41580156112a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c99190614a15565b159150915091565b6112d96120cd565b6112e1612282565b3433600082900361130557604051635a78c58160e11b815260040160405180910390fd5b6001600160a01b0381166000908152600b60205260408120805484929061132d908490614a48565b9250508190555081600460008282546113469190614a48565b90915550506001600160a01b0381166000908152600b60205260409020547f0000000000000000000000000000000000000000000000000000000000000000116113f0576113956008826122c0565b6113f0576113a46008826122d5565b506001600160a01b0381166000908152600d602052604090206113c8858783614ae4565b506001600160a01b0381166000908152600e6020526040902083906113ed8282614bf8565b50505b6005808054600160401b900460ff169081111561140f5761140f614077565b036114d3577f0000000000000000000000000000000000000000000000000000000000000000600454106114ce57600580546001919060ff60401b1916600160401b8302179055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631aa3a0086004546040518263ffffffff1660e01b81526004016000604051808303818588803b1580156114b457600080fd5b505af11580156114c8573d6000803e3d6000fd5b50505050505b6115aa565b600260058054600160401b900460ff16908111156114f3576114f3614077565b03611535577f000000000000000000000000000000000000000000000000000000000000000060045410611535576005805460ff60401b1916600160401b1790555b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635a627dbc836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561159057600080fd5b505af11580156115a4573d6000803e3d6000fd5b50505050505b5050505050565b6115b9613bee565b604080518082018252600f80546001600160401b0316825260108054845160208281028201810190965281815293949293838601939092919083018282801561162b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161160d575b505050505081525050905090565b6007602090815260009182526040918290208251808401845281546001600160401b031681526001820180548551818602810186019096528086529294919385938582019392918301828280156116b957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161169b575b5050509190925250505060028201546003830154600684015460078501805494956001600160401b0390941694929391926116f3906149ba565b80601f016020809104026020016040519081016040528092919081815260200182805461171f906149ba565b801561176c5780601f106117415761010080835404028352916020019161176c565b820191906000526020600020905b81548152906001019060200180831161174f57829003601f168201915b5050505050905085565b6011805461098f906149ba565b61178b610881565b600061179760086120b0565b9050806000036117ba5760405163efa9c8f160e01b815260040160405180910390fd5b808210156117db57604051633074cabf60e11b815260040160405180910390fd5b60006117e78284614cf2565b905060005b82811015610bc75781600c60006118046008856120ba565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546118339190614a48565b90915550506001016117ec565b6060600061184e60086120b0565b90506000816001600160401b0381111561186a5761186a614a5b565b604051908082528060200260200182016040528015611893578160200160208202803683370190505b50905060005b828110156118de576118ac6008826120ba565b8282815181106118be576118be614d06565b6001600160a01b0390921660209283029190910190910152600101611899565b5092915050565b604080518082019091526060815260006020820152600061190660086120b0565b90506000816001600160401b0381111561192257611922614a5b565b60405190808252806020026020018201604052801561198757816020015b604080516080810182526000808252602080830182905283518085018552918252606090820181905292820152818101919091528152602001906001900390816119405790505b50905060005b82811015611bbc576040805160808101909152806119ac6008846120ba565b6001600160a01b03168152602001600b60006119c96008866120ba565b6001600160a01b03166001600160a01b03168152602001908152602001600020548152602001600e6000611a078560086120ba90919063ffffffff16565b6001600160a01b0316815260208082019290925260409081016000208151808301909252805460ff1682526001810180549293919291840191611a49906149ba565b80601f0160208091040260200160405190810160405280929190818152602001828054611a75906149ba565b8015611ac25780601f10611a9757610100808354040283529160200191611ac2565b820191906000526020600020905b815481529060010190602001808311611aa557829003601f168201915b505050919092525050508152602001600d6000611ae06008866120ba565b6001600160a01b03166001600160a01b031681526020019081526020016000208054611b0b906149ba565b80601f0160208091040260200160405190810160405280929190818152602001828054611b37906149ba565b8015611b845780601f10611b5957610100808354040283529160200191611b84565b820191906000526020600020905b815481529060010190602001808311611b6757829003601f168201915b5050505050815250828281518110611b9e57611b9e614d06565b60200260200101819052508080611bb490614d1c565b91505061198d565b50604080518082019091529081526005546001600160401b0316602082015292915050565b600e602052600090815260409020805460018201805460ff9092169291611c07906149ba565b80601f0160208091040260200160405190810160405280929190818152602001828054611c33906149ba565b8015611c805780601f10611c5557610100808354040283529160200191611c80565b820191906000526020600020905b815481529060010190602001808311611c6357829003601f168201915b5050505050905082565b611c926122ea565b611c9a6120cd565b611ca2612282565b336000908152600b602052604081205490819003611cd357604051632ec5b44960e01b815260040160405180910390fd5b336000908152600b6020526040812081905560048054839290611cf7908490614d35565b90915550611d089050600833612343565b50600160058054600160401b900460ff1690811115611d2957611d29614077565b03611d6c577f00000000000000000000000000000000000000000000000000000000000000006004541015611d6c576005805460ff60401b1916600160411b1790555b6040516345f5448560e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906345f5448590602401600060405180830381600087803b158015611dce57600080fd5b505af1158015611de2573d6000803e3d6000fd5b50611df39250339150839050612162565b506108ca6001600055565b611e066120cd565b611e16604082016020830161405a565b611e1f81612358565b600160058054600160401b900460ff1690811115611e3f57611e3f614077565b14611e5d5760405163c18316bf60e01b815260040160405180910390fd5b611e686008336122c0565b611e8557604051632ec5b44960e01b815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000611eb08380614d48565b611eb990614ee4565b6040516390ba52cf60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__916390ba52cf91611eef91906004016149f4565b602060405180830381865af4158015611f0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3091906149a1565b14611f4e576040516375ecc72d60e01b815260040160405180910390fd5b73__$33b79814e84bf6cf5e47244090b19ce5f8$__6389841475611f756060850185614ef0565b6040518363ffffffff1660e01b8152600401611f92929190615109565b602060405180830381865af4158015611faf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd39190614a15565b611ff057604051630bd9169f60e01b815260040160405180910390fd5b6000600a81612005604086016020870161405a565b6001600160401b03166001600160401b031681526020019081526020016000209050600061205a828533600b6000336001600160a01b03166001600160a01b031681526020019081526020016000205461242e565b905080156120705761206b82612bee565b610bc7565b60008061207b613523565b9150915080156120a8576001600160401b0382166000908152600a602052604090206120a681612bee565b505b505050505050565b6000610a1d825490565b60006120c68383613547565b9392505050565b604051630972932760e21b815273__$e800e3908cdbb6b1b5bd452383a17b18f7$__906325ca4c9c9061210490339060040161414b565b602060405180830381865af4158015612121573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121459190614a15565b6108ca5760405163b7150de560e01b815260040160405180910390fd5b804710156121b75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064015b60405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612204576040519150601f19603f3d011682016040523d82523d6000602084013e612209565b606091505b505090508061227d5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c20726044820152791958da5c1a595b9d081b585e481a185d99481c995d995c9d195960321b60648201526084016121ae565b505050565b600360058054600160401b900460ff16908111156122a2576122a2614077565b036108ca5760405163248c8efb60e11b815260040160405180910390fd5b60006120c6836001600160a01b038416613571565b60006120c6836001600160a01b038416613589565b60026000540361233c5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016121ae565b6002600055565b60006120c6836001600160a01b0384166135d3565b6001546001600160401b039081169082161161238757604051631f30cc6360e21b815260040160405180910390fd5b6001546001600160401b03600160401b909104811690821610156123be5760405163b4f68f9760e01b815260040160405180910390fd5b6001547f0000000000000000000000000000000000000000000000000000000000000000906123fd90600160401b90046001600160401b03168361524e565b612407919061526e565b6001600160401b031615610af55760405163b4f68f9760e01b815260040160405180910390fd5b60008061243a85615666565b6040516339aa47fb60e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__916339aa47fb916124709190600401614905565b602060405180830381865af415801561248d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b191906149a1565b90506124d2868286866124ca60408b0160208c0161405a565b6004546136c6565b600082815260058801602090815260409182902082516101208101845281546001600160401b031660e082019081526001830180548651818702810187019097528087529698509195929486949193869361010087019390919083018282801561256557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612547575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b8282101561296f5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561267657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612658575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906126b0906149ba565b80601f01602080910402602001604051908101604052809291908181526020018280546126dc906149ba565b80156127295780601f106126fe57610100808354040283529160200191612729565b820191906000526020600020905b81548152906001019060200180831161270c57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156127ba57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161279c575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906127f4906149ba565b80601f0160208091040260200160405190810160405280929190818152602001828054612820906149ba565b801561286d5780601f106128425761010080835404028352916020019161286d565b820191906000526020600020905b81548152906001019060200180831161285057829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916128c8906149ba565b80601f01602080910402602001604051908101604052809291908181526020018280546128f4906149ba565b80156129415780601f1061291657610100808354040283529160200191612941565b820191906000526020600020905b81548152906001019060200180831161292457829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016125d0565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015612aa6576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015612a3257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612a14575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015612a8e57602002820191906000526020600020905b815481526020019060010190808311612a7a575b5050505050815250508152602001906001019061299c565b50505050815260200160068201548152602001600782018054612ac8906149ba565b80601f0160208091040260200160405190810160405280929190818152602001828054612af4906149ba565b8015612b415780601f10612b1657610100808354040283529160200191612b41565b820191906000526020600020905b815481529060010190602001808311612b2457829003601f168201915b5050509190925250506040516322ea8d8960e11b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__926345d51b129250612b8091600401614905565b602060405180830381865af4158015612b9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bc19190614a15565b15612be557600081815260058701602052604090208590612be28282615f36565b50505b50949350505050565b600281015460009081526005820160205260409020600680820154905414612ce657604051635a27a53960e11b81526004810183905273__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063b44f4a729060240160006040518083038186803b158015612c5b57600080fd5b505af4158015612c6f573d6000803e3d6000fd5b505050506002818101546040516394ecccfd60e01b815273__$b7b8687e33476c74e3b4e0a64c4768a343$__926394ecccfd92612cba926001600160401b039091169060040161603e565b60006040518083038186803b158015612cd257600080fd5b505af41580156120a8573d6000803e3d6000fd5b6002810154612cfd906001600160401b03166138f9565b60028101546001600160401b039081166000908152600760205260409020825481546001600160401b03191692169190911781556001808301805484939284928492612d4c9284019190613c06565b50505060028281015490820180546001600160401b0319166001600160401b039092169190911790556003808301549082015560048083018054612d939284019190613c56565b5060058281018054612da89284019190613e17565b506006820154816006015560078201816007019081612dc79190616055565b5050604080516101208101825283546001600160401b031660e0820190815260018501805484516020828102820181019096528181529395508694869486936101008701939192909190830182828015612e4a57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612e2c575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156132545760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015612f5b57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f3d575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190612f95906149ba565b80601f0160208091040260200160405190810160405280929190818152602001828054612fc1906149ba565b801561300e5780601f10612fe35761010080835404028352916020019161300e565b820191906000526020600020905b815481529060010190602001808311612ff157829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561309f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613081575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906130d9906149ba565b80601f0160208091040260200160405190810160405280929190818152602001828054613105906149ba565b80156131525780601f1061312757610100808354040283529160200191613152565b820191906000526020600020905b81548152906001019060200180831161313557829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916131ad906149ba565b80601f01602080910402602001604051908101604052809291908181526020018280546131d9906149ba565b80156132265780601f106131fb57610100808354040283529160200191613226565b820191906000526020600020905b81548152906001019060200180831161320957829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101612eb5565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b8282101561338b576000848152602090819020604080516080810182526003860290920180546001600160401b03168383019081526001820180548451818802810188019095528085529495929486949293869360608701939092909183018282801561331757602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116132f9575b50505050508152505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561337357602002820191906000526020600020905b81548152602001906001019080831161335f575b50505050508152505081526020019060010190613281565b505050508152602001600682015481526020016007820180546133ad906149ba565b80601f01602080910402602001604051908101604052809291908181526020018280546133d9906149ba565b80156134265780601f106133fb57610100808354040283529160200191613426565b820191906000526020600020905b81548152906001019060200180831161340957829003601f168201915b5050509190925250506040516339aa47fb60e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__926339aa47fb925061346591600401614905565b602060405180830381865af4158015613482573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134a691906149a1565b600655604051631a9c293560e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d4e149a8906134f59084906004016163c4565b600060405180830381600087803b15801561350f57600080fd5b505af11580156120a8573d6000803e3d6000fd5b600254600160401b90046001600160401b0316600061354182613a35565b90509091565b600082600001828154811061355e5761355e614d06565b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b60006135958383613571565b6135cb57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610a1d565b506000610a1d565b600081815260018301602052604081205480156136bc5760006135f7600183614d35565b855490915060009061360b90600190614d35565b905081811461367057600086600001828154811061362b5761362b614d06565b906000526020600020015490508087600001848154811061364e5761364e614d06565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061368157613681616454565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610a1d565b6000915050610a1d565b8554600081815260038801602090815260408083206001600160a01b038916845290915281205490919060ff1615613711576040516337138f5f60e11b815260040160405180910390fd5b600081815260038901602090815260408083206001600160a01b038a1684529091528120805460ff1916600190811790915589018054879290613755908490614a48565b9091555050600081815260048901602090815260408083208a845290915281208054879290613785908490614a48565b90915550506000818152600489016020908152604080832060028c0154845290915280822054898352912054808210156137c15760028a018990555b60006137cd8b87613a8a565b905060038160038111156137e3576137e3614077565b0361386e576137f187613a35565b156137ff57600194506138eb565b60405163199b9ca560e01b815273__$b7b8687e33476c74e3b4e0a64c4768a343$__9063199b9ca590613839906002908b9060040161603e565b60006040518083038186803b15801561385157600080fd5b505af4158015613865573d6000803e3d6000fd5b505050506138eb565b600281600381111561388257613882614077565b036138eb57604051635a27a53960e11b8152600481018c905273__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063b44f4a729060240160006040518083038186803b1580156138d257600080fd5b505af41580156138e6573d6000803e3d6000fd5b505050505b505050509695505050505050565b61390281613a35565b6139095750565b604051634953836d60e11b815273__$b7b8687e33476c74e3b4e0a64c4768a343$__906392a706da9061394390600290859060040161603e565b602060405180830381865af4158015613960573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139849190614a15565b156139a8576002546001600160401b03828116600160401b90920416146139a85750565b6040516394ecccfd60e01b815273__$b7b8687e33476c74e3b4e0a64c4768a343$__906394ecccfd906139e290600290859060040161603e565b60006040518083038186803b1580156139fa57600080fd5b505af4158015613a0e573d6000803e3d6000fd5b5050600180546001600160401b0319166001600160401b0394909416939093179092555050565b600154600090613a6f907f0000000000000000000000000000000000000000000000000000000000000000906001600160401b031661646a565b6001600160401b0316826001600160401b0316149050919050565b6000806064613abc60ff7f0000000000000000000000000000000000000000000000000000000000000000168561576e565b613ac69190614cf2565b604051637d2ef4e560e11b81526004810186905290915060009073__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063fa5de9ca90602401602060405180830381865af4158015613b1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b4091906149a1565b905081856001015411613b5857600092505050610a1d565b81811115613b6b57600392505050610a1d565b6001850154613b7a9085614d35565b613b848284614d35565b10613b9457600292505050610a1d565b506001949350505050565b6040518060e00160405280613bb2613bee565b815260200160006001600160401b0316815260200160008152602001606081526020016060815260200160008019168152602001606081525090565b60408051808201909152600081526060602082015290565b828054828255906000526020600020908101928215613c465760005260206000209182015b82811115613c46578254825591600101919060010190613c2b565b50613c52929150613eb7565b5090565b82805482825590600052602060002090600c028101928215613e0b57600052602060002091600c0282015b82811115613e0b57825482546001600160401b0319166001600160401b039091161782556001808401805485928592849284928492849284928492613cc99291840191613c06565b50505060028281018054918301805460ff191660ff90931692909217825590600380840190613cfa90860182616055565b505050506004838101805491840180546001600160401b0319166001600160401b039093169290921782556005808601805492945084928492613d409290880191613c06565b50505060028281018054918301805460ff191660ff90931692909217825590600380840190613d7190860182616055565b5050505060088381015490830155506009808301805491830180546001600160401b031981166001600160401b039094169384178255915463ffffffff600160401b9182900416026001600160601b0319909216909217179055600a80820190613ddd90840182616055565b505050600b918201549101805460ff191660ff9092161515919091179055600c928301929190910190613c81565b50613c52929150613ecc565b828054828255906000526020600020906003028101928215613eab5760005260206000209160030282015b82811115613eab57825482546001600160401b0319166001600160401b03909116178255600180840180548592859284928492613e829290840191613c06565b50505060028281018054613e999284019190613c06565b50505091600301919060030190613e42565b50613c52929150613f9c565b5b80821115613c525760008155600101613eb8565b80821115613c525780546001600160401b03191681556000818181818181613ef76001830182613fdd565b505060028201805460ff191681556000613f146003850182613ffb565b505050506004820180546001600160401b031916815560008181613f3b6005870182613fdd565b505060028201805460ff191681556000613f586003850182613ffb565b50506000600885018190556009850180546001600160601b0319169055613f859250600a85019150613ffb565b505050600b8101805460ff19169055600c01613ecc565b80821115613c525780546001600160401b031916815560008181613fc36001830182613fdd565b50613fd49050600283016000613fdd565b50600301613f9c565b5080546000825590600052602060002090810190610af59190613eb7565b508054614007906149ba565b6000825580601f10614017575050565b601f016020900490600052602060002090810190610af59190613eb7565b6001600160401b0381168114610af557600080fd5b803561405581614035565b919050565b60006020828403121561406c57600080fd5b81356120c681614035565b634e487b7160e01b600052602160045260246000fd5b60208101600683106140a1576140a1614077565b91905290565b6001600160a01b0381168114610af557600080fd5b6000602082840312156140ce57600080fd5b81356120c6816140a7565b6000815180845260005b818110156140ff576020818501810151868301820152016140e3565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006120c660208301846140d9565b60006020828403121561414457600080fd5b5035919050565b6001600160a01b0391909116815260200190565b6000806040838503121561417257600080fd5b823561417d81614035565b9150602083013561418d816140a7565b809150509250929050565b600081518084526020808501945080840160005b838110156141d15781516001600160a01b0316875295820195908201906001016141ac565b509495945050505050565b60018060401b03815116825260006020820151604060208501526142036040850182614198565b949350505050565b60ff8151168252600060208201516040602085015261420360408501826140d9565b600081516040845261424260408501826141dc565b90506020830151848203602086015261425b828261420b565b95945050505050565b600081518084526020808501808196508360051b8101915082860160005b8581101561434b578284038952815160408151818752805160c080848a01526142af6101008a018361422d565b915089830151603f196060818c860301818d01526142cd858461422d565b9686015160808d810191909152908601516001600160401b031660a0808e0191909152908601516001600160e01b031916938c0193909352918401518a860390920160e08b01525092905061432281846140d9565b93890151801515898b0152939250614338915050565b9986019994505090840190600101614282565b5091979650505050505050565b600081518084526020808501808196508360051b810191508286016000805b868110156143ea578385038a52825160408151818852614399828901826141dc565b92890151888403898b01528051808552908a01938693508a0191505b808310156143d557835182529289019260019290920191908901906143b5565b509b88019b9650505091850191600101614377565b509298975050505050505050565b8215158152604060208201526000825160e0604084015261441d6101208401826141dc565b905060018060401b036020850151166060840152604084015160808401526060840151603f19808584030160a08601526144578383614264565b925060808601519150808584030160c08601526144748383614358565b925060a086015160e086015260c0860151915080858403016101008601525061449d82826140d9565b9695505050505050565b6000806000604084860312156144bc57600080fd5b83356001600160401b03808211156144d357600080fd5b818601915086601f8301126144e757600080fd5b8135818111156144f657600080fd5b87602082850101111561450857600080fd5b60209283019550935090850135908082111561452357600080fd5b5084016040818703121561453657600080fd5b809150509250925092565b6020815260006120c660208301846141dc565b60208101600183106140a1576140a1614077565b60a08152600061457b60a08301886141dc565b6001600160401b0387166020840152604083018690526060830185905282810360808401526145aa81856140d9565b98975050505050505050565b6020815260006120c66020830184614198565b600060208083526060808401855160408085880152828251808552608094508489019150848160051b8a0101878501945060005b82811015614667578a8203607f19018452855180516001600160a01b03168352898101518a8401528581015186840189905261463b8985018261420b565b918a0151848303858c015291905061465381836140d9565b978b0197958b0195935050506001016145fd565b50968a01516001600160401b038116848b0152969a9950505050505050505050565b60ff8316815260406020820152600061420360408301846140d9565b6000602082840312156146b757600080fd5b81356001600160401b038111156146cd57600080fd5b820160e081850312156120c657600080fd5b80516001600160401b03168252602080820151604082850181905281519085018190526000929182019190839060608701905b8083101561473b5784516001600160a01b03168252938301936001929092019190830190614712565b509695505050505050565b600081516040845261475b60408501826146df565b90506020830151848203602086015260ff8151168252602081015190506040602083015261425b60408301826140d9565b600081518084526020808501808196508360051b8101915082860160005b8581101561434b578284038952815160408151818752805160c080848a01526147d76101008a0183614746565b915089830151603f196060818c860301818d01526147f58584614746565b9686015160808d810191909152908601516001600160401b031660a0808e0191909152908601516001600160e01b031916938c0193909352918401518a860390920160e08b01525092905061484a81846140d9565b93890151801515898b0152939250614860915050565b99860199945050908401906001016147aa565b600081518084526020808501808196508360051b810191508286016000805b868110156143ea578385038a528251604081518188526148b4828901826146df565b92890151888403898b01528051808552908a01938693508a0191505b808310156148f057835182529289019260019290920191908901906148d0565b509b88019b9650505091850191600101614892565b602081526000825160e060208401526149226101008401826146df565b905060018060401b036020850151166040840152604084015160608401526060840151601f198085840301608086015261495c838361478c565b925060808601519150808584030160a08601526149798383614873565b925060a086015160c086015260c08601519150808584030160e08601525061425b82826140d9565b6000602082840312156149b357600080fd5b5051919050565b600181811c908216806149ce57607f821691505b6020821081036149ee57634e487b7160e01b600052602260045260246000fd5b50919050565b6020815260006120c660208301846146df565b8015158114610af557600080fd5b600060208284031215614a2757600080fd5b81516120c681614a07565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a1d57610a1d614a32565b634e487b7160e01b600052604160045260246000fd5b60009081526020902090565b5b81811015614a925760008155600101614a7e565b5050565b601f82111561227d57806000526020600020601f840160051c81016020851015614abd5750805b6115aa601f850160051c830182614a7d565b600019600383901b1c191660019190911b1790565b6001600160401b03831115614afb57614afb614a5b565b614b0f83614b0983546149ba565b83614a96565b6000601f841160018114614b3d5760008515614b2b5750838201355b614b358682614acf565b8455506115aa565b601f198516614b4b84614a71565b835b82811015614b6d5786850135825560209485019460019092019101614b4d565b5086821015614b8a5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60ff81168114610af557600080fd5b6000808335601e19843603018112614bc257600080fd5b8301803591506001600160401b03821115614bdc57600080fd5b602001915036819003821315614bf157600080fd5b9250929050565b8135614c0381614b9c565b60ff811660ff198354161782555060018082016020614c2481860186614bab565b6001600160401b03811115614c3b57614c3b614a5b565b614c4f81614c4986546149ba565b86614a96565b6000601f821160018114614c7d5760008315614c6b5750838201355b614c758482614acf565b875550614cd1565b601f198316614c8b87614a71565b835b82811015614caa5786850135825593870193908901908701614c8d565b5084821015614cc75760001960f88660031b161c19848701351681555b50508683881b0186555b505050505050505050565b634e487b7160e01b600052601260045260246000fd5b600082614d0157614d01614cdc565b500490565b634e487b7160e01b600052603260045260246000fd5b600060018201614d2e57614d2e614a32565b5060010190565b81810381811115610a1d57610a1d614a32565b60008235603e19833603018112614d5e57600080fd5b9190910192915050565b604080519081016001600160401b0381118282101715614d8a57614d8a614a5b565b60405290565b60405160c081016001600160401b0381118282101715614d8a57614d8a614a5b565b60405160e081016001600160401b0381118282101715614d8a57614d8a614a5b565b604051601f8201601f191681016001600160401b0381118282101715614dfc57614dfc614a5b565b604052919050565b60006001600160401b03821115614e1d57614e1d614a5b565b5060051b60200190565b600060408284031215614e3957600080fd5b614e41614d68565b90508135614e4e81614035565b81526020828101356001600160401b03811115614e6a57600080fd5b8301601f81018513614e7b57600080fd5b8035614e8e614e8982614e04565b614dd4565b81815260059190911b82018301908381019087831115614ead57600080fd5b928401925b82841015614ed4578335614ec5816140a7565b82529284019290840190614eb2565b8085870152505050505092915050565b6000610a1d3683614e27565b6000808335601e19843603018112614f0757600080fd5b8301803591506001600160401b03821115614f2157600080fd5b6020019150600581901b3603821315614bf157600080fd5b60008235603e19833603018112614f4f57600080fd5b90910192915050565b6000808335601e19843603018112614f6f57600080fd5b83016020810192503590506001600160401b03811115614f8e57600080fd5b803603821315614bf157600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008135614fd381614b9c565b60ff168352614fe56020830183614f58565b6040602086015261425b604086018284614f9d565b60006150068283614f39565b6040845260808401813561501981614035565b6001600160401b0390811660408701526020908382013536859003601e1901811261504357600080fd5b9093018181019390358181111561505957600080fd5b8060051b360385131561506b57600080fd5b60406060890152928390525060009160a08701905b808410156150b2578435615093816140a7565b6001600160a01b03168252938201936001939093019290820190615080565b506150bf82870187614f39565b9350868103828801526150d28185614fc6565b979650505050505050565b6001600160e01b031981168114610af557600080fd5b8035614055816150dd565b803561405581614a07565b60208082528181018390526000906040808401600586901b850182018785805b8981101561523f57603f19808a8603018652615145848d614f39565b803560be19823603018112615158578485fd5b88875281016151678180614f39565b60c0808b8a015261517c6101008a0183614ffa565b915061518a8c840184614f39565b6060868b850301818c015261519f8483614ffa565b9350608091508c850135828c01528085013590506151bc81614035565b6001600160401b03811660a08c81019190915291850135916151dd836150dd565b6001600160e01b031983168c8501526151f886820187614f58565b96509350505050848983030160e08a0152615214828483614f9d565b94505050506152248982016150fe565b15159589019590955294870194935091860191600101615129565b50919998505050505050505050565b6001600160401b038281168282160390808211156118de576118de614a32565b60006001600160401b038381168061528857615288614cdc565b92169190910692915050565b600082601f8301126152a557600080fd5b81356001600160401b038111156152be576152be614a5b565b6152d1601f8201601f1916602001614dd4565b8181528460208386010111156152e657600080fd5b816020850160208301376000918101602001919091529392505050565b60006040828403121561531557600080fd5b61531d614d68565b905081356001600160401b038082111561533657600080fd5b61534285838601614e27565b8352602084013591508082111561535857600080fd5b908301906040828603121561536c57600080fd5b615374614d68565b823561537f81614b9c565b815260208301358281111561539357600080fd5b61539f87828601615294565b60208301525080602085015250505092915050565b600082601f8301126153c557600080fd5b813560206153d5614e8983614e04565b82815260059290921b840181019181810190868411156153f457600080fd5b8286015b8481101561473b5780356001600160401b038082111561541757600080fd5b90880190601f196040838c038201121561543057600080fd5b615438614d68565b878401358381111561544957600080fd5b840160c0818e038401121561545d57600080fd5b615465614d90565b9250888101358481111561547857600080fd5b6154868e8b83850101615303565b84525060408101358481111561549b57600080fd5b6154a98e8b83850101615303565b8a85015250606081013560408401526154c46080820161404a565b60608401526154d560a082016150f3565b608084015260c0810135848111156154ec57600080fd5b6154fa8e8b83850101615294565b60a08501525050818152615510604085016150fe565b8189015286525050509183019183016153f8565b600082601f83011261553557600080fd5b81356020615545614e8983614e04565b828152600592831b850182019282820191908785111561556457600080fd5b8387015b858110156156595780356001600160401b03808211156155885760008081fd5b908901906040828c03601f19018113156155a25760008081fd5b6155aa614d68565b88840135838111156155bc5760008081fd5b6155ca8e8b83880101614e27565b82525081840135838111156155df5760008081fd5b8085019450508c603f8501126155f757600092508283fd5b888401359250615609614e8984614e04565b83815292861b8401820192898101908e8511156156265760008081fd5b948301945b848610156156445785358252948a0194908a019061562b565b828b0152508752505050928401928401615568565b5090979650505050505050565b600060e0823603121561567857600080fd5b615680614db2565b82356001600160401b038082111561569757600080fd5b6156a336838701614e27565b83526156b16020860161404a565b60208401526040850135604084015260608501359150808211156156d457600080fd5b6156e0368387016153b4565b606084015260808501359150808211156156f957600080fd5b61570536838701615524565b608084015260a085013560a084015260c085013591508082111561572857600080fd5b5061573536828601615294565b60c08301525092915050565b60008135610a1d81614035565b80546001600160401b0319166001600160401b0392909216919091179055565b8082028115828204841417610a1d57610a1d614a32565b8054600082558015614a925781600052602060002061227d82820182614a7d565b600160401b8211156157ba576157ba614a5b565b80548282558083101561227d57816000526020600020610bc7828201858301614a7d565b60008155610af560018201615785565b6157f881546149ba565b8015614a9257601f81116001811461581257505060009055565b826000526020600020615830601f840160051c820160018301614a7d565b60008085559055505050565b6000815561584c60018201615785565b60006002820155610af5600382016157ee565b6158698283614d48565b803561587481614035565b61587e818461574e565b506001808301602061589281850185614ef0565b94506001600160401b03808611156158ac576158ac614a5b565b6158b686856157a6565b600093845282842093805b878110156158e35783356158d4816140a7565b868201559284019286016158c1565b506002880196506158f6848a018a614d48565b94508435925061590583614b9c565b865460ff191660ff841617909655600387019561592485850186614bab565b955092508185111561593857615938614a5b565b61594c8561594689546149ba565b89614a96565b809150601f85116001811461597a578186156159685750838301355b6159728782614acf565b8955506115a4565b601f19861661598889614a71565b835b828110156159a7578686013582559487019490890190870161598a565b50878210156159c45760001960f88960031b161c19858701351681555b505050505091831b90920190925550505050565b60008135610a1d816150dd565b60008135610a1d81614a07565b813560be19833603018112615a0657600080fd5b8201615a128180614d48565b615a1c8182614d48565b8035615a2781614035565b615a31818661574e565b5060018085016020615a4581850185614ef0565b94506001600160401b0380861115615a5f57615a5f614a5b565b615a6986856157a6565b600093845282842093805b87811015615a96578335615a87816140a7565b86820155928401928601615a74565b5060028a019650615aa984890189614d48565b975087359450615ab885614b9c565b865460ff191660ff8616179096556003890195615ad788850189614bab565b9850945081881115615aeb57615aeb614a5b565b615af98861594689546149ba565b809250601f881160018114615b29578192508815615b18578386013592505b615b228984614acf565b8855615b7e565b601f1989169250615b3988614a71565b825b84811015615b585787860135825594860194908801908601615b3b565b5089841015615b755760001960f88b60031b161c19858801351681555b508689881b0188555b50505050615b9a615b9182880188614d48565b6004890161585f565b60408601356008880155600987019450615bbf615bb960608801615741565b8661574e565b615bf2615bce608088016159d8565b86805463ffffffff60401b191660a09290921c63ffffffff60401b16919091179055565b615bff60a0870187614bab565b96509450615c118686600a8a01614ae4565b615c38615c1f828a016159e5565b600b890160ff1981541660ff8315151681178255505050565b5050505050505050565b600160401b831115615c5657615c56614a5b565b805483825580841015615cea57600c8181028181048314615c7957615c79614a32565b8582028281048714615c8d57615c8d614a32565b6000858152602081209283019291909101905b82821015615ce557615cb18261583c565b615cbd6004830161583c565b806008830155806009830155615cd5600a83016157ee565b80600b8301558382019150615ca0565b505050505b5081615cf582614a71565b60005b858110156120a857615d13615d0d8487614d48565b836159f2565b60209290920191600c9190910190600101615cf8565b80546000808355811561227d57828152602081208281015b808210156115aa57828255600182019150615d41565b600160401b821115615d6b57615d6b614a5b565b80548282558083101561227d576000828152602081208481019083015b808210156120a857828255600182019150615d88565b615da88283614d48565b8035615db381614035565b615dbd818461574e565b5060018083016020615dd181850185614ef0565b94506001600160401b0380861115615deb57615deb614a5b565b615df586856157a6565b600093845282842093805b87811015615e22578335615e13816140a7565b86820155928401928601615e00565b50600288019650615e35848a018a614ef0565b9550925081851115615e4957615e49614a5b565b615e538588615d57565b95865250818520945b83811015615c3857813586820155908201908401615e5c565b600160401b831115615e8957615e89614a5b565b805483825580841015615ef75760038181028181048314615eac57615eac614a32565b8582028281048714615ec057615ec0614a32565b60008581526020902091820191015b81811015615ef357615ee0816157de565b615eec60028201615d29565b8201615ecf565b5050505b5081615f0282614a71565b60005b858110156120a857615f20615f1a8487614d48565b83615d9e565b6020929092019160039190910190600101615f05565b615f408283614d48565b8035615f4b81614035565b615f55818461574e565b5060018083016020615f6981850185614ef0565b94506001600160401b03851115615f8257615f82614a5b565b615f8c85846157a6565b6000928352818320925b85811015615fb8578135615fa9816140a7565b84820155908201908401615f96565b5050615fd1615fc8828801615741565b6002870161574e565b5050505060408201356003820155615fec6060830183614ef0565b615ffa818360048601615c42565b50506160096080830183614ef0565b616017818360058601615e75565b505060a0820135600682015561603060c0830183614bab565b610bc7818360078601614ae4565b9182526001600160401b0316602082015260400190565b818103616060575050565b61606a82546149ba565b6001600160401b0381111561608157616081614a5b565b6160958161608f84546149ba565b84614a96565b6000601f8211600181146160c357600083156160b15750848201545b6160bb8482614acf565b8555506115aa565b601f1983166160d186614a71565b6160da86614a71565b845b838110156160fc57828601548255600195860195909101906020016160dc565b508583101561611a5781850154600019600388901b60f8161c191681555b5050505050600190811b01905550565b80546001600160401b031682526040602080840182905260018381018054938601849052600090815282812090939092849160608801905b808410156161885785546001600160a01b03168252948401949284019290820190616162565b50979650505050505050565b600081546161a1816149ba565b8085526020600183811680156161be57600181146161d857616206565b60ff1985168884015283151560051b880183019550616206565b866000528260002060005b858110156161fe5781548a82018601529083019084016161e3565b890184019650505b505050505092915050565b604082526000616224604084018361612a565b838103602085015260ff6002840154168152604060208201526142036040820160038501616194565b600082825480855260208086019550808260051b840101856000528160002060005b8481101561565957601f19868403018952604080845260c0808286015261629a610100860185616211565b9150603f19808684030160608701526162b68360048701616211565b6008860154608088015260098601546001600160401b03811660a0808a01919091521b6001600160e01b031916928701929092528582030160e0860152905061630281600a8501616194565b9050616312600b84015460ff1690565b15159385019390935297830197600c919091019060010161626f565b600081548084526020808501808196508360051b810191506000868152838120815b868110156143ea578385038a52604080865261636e8187018461612a565b86810388880152600284018054808352908652888620925085918901905b808310156163ac578354825260019384019392909201919089019061638c565b509b88019b9650505060039190910190600101616350565b6020815260e0602082015260006163df61010083018461612a565b60028401546001600160401b0316604084015260038401546060840152828103601f199081016080850152616417826004870161624d565b9150808483030160a0850152616430826005870161632e565b9150600685015460c0850152808483030160e0850152506142038160078601616194565b634e487b7160e01b600052603160045260246000fd5b6001600160401b038181168382160190808211156118de576118de614a3256fea264697066735822122013ed668dd1aa47118596cca50f18178d3d8413fde2f18c0db9399b6670b8bce164736f6c63430008130033", - "sourceMap": "1493:16146:26:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5497:14;:12;:14::i;:::-;1493:16146;;;;;2865:33;;;;;;;;;;-1:-1:-1;2865:33:26;;;;-1:-1:-1;;;;;2865:33:26;;;;;;-1:-1:-1;;;;;283:31:60;;;265:50;;253:2;238:18;2865:33:26;;;;;;;;2593:43;;;;;;;;;;;;;;;3331:29;;;;;;;;;;;;;;;;;;472:25:60;;;460:2;445:18;3331:29:26;326:177:60;12839:102:26;;;;;;;;;;;;;:::i;1363:38:28:-;;;;;;;;;;-1:-1:-1;1363:38:28;;;;-1:-1:-1;;;;;1363:38:28;;;;-1:-1:-1;;;1363:38:28;;;;;-1:-1:-1;;;1363:38:28;;;;;;;;;;-1:-1:-1;;;;;941:15:60;;;923:34;;993:15;;;988:2;973:18;;966:43;1045:15;;1025:18;;;1018:43;;;;874:2;859:18;1363:38:28;690:377:60;15514:240:26;;;;;;;;;;-1:-1:-1;15514:240:26;;;;;:::i;:::-;;:::i;:::-;;;;1882:14:60;;1875:22;1857:41;;1929:2;1914:18;;1907:34;;;;1830:18;15514:240:26;1689:258:60;865:40:28;;;;;;;;;;;;;;;3054:20:26;;;;;;;;;;-1:-1:-1;3054:20:26;;;;-1:-1:-1;;;3054:20:26;;;;;;;;;;;;;:::i;4181:55::-;;;;;;;;;;-1:-1:-1;4181:55:26;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3958:40::-;;;;;;;;;;-1:-1:-1;3958:40:26;;;;;:::i;:::-;;;;;;;;;;;;;;13040:113;;;;;;;;;;-1:-1:-1;13040:113:26;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;12320:336::-;;;;;;;;;;;;;:::i;9828:247::-;;;;;;;;;;;;;:::i;8284:93:28:-;;;;;;;;;;-1:-1:-1;8357:13:28;;-1:-1:-1;;;8357:13:28;;-1:-1:-1;;;;;8357:13:28;8284:93;;749:41;;;;;;;;;;;;;;;;;;3938:4:60;3926:17;;;3908:36;;3896:2;3881:18;749:41:28;3766:184:60;3232:41:26;;;;;;;;;;;;;;;;14530:286;;;;;;;;;;-1:-1:-1;14530:286:26;;;;;:::i;:::-;-1:-1:-1;;;;;14695:28:26;;14626:4;14695:28;;;:21;:28;;;;;;;;14772:25;;14741:57;;:30;;:57;;;;;-1:-1:-1;;;;;14741:68:26;;;;;;;;;;;;14530:286;;;;;;;;4511:14:60;;4504:22;4486:41;;4474:2;4459:18;14530:286:26;4346:187:60;15047:239:26;;;;;;;;;;-1:-1:-1;15047:239:26;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;7815:1244::-;;;;;;:::i;:::-;;:::i;4062:53::-;;;;;;;;;;-1:-1:-1;4062:53:26;;;;;:::i;:::-;;;;;;;;;;;;;;2490:42;;;;;;;;;;;;;;;12703:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;2405:25::-;;;;;;;;;;;;;;;;3126:40;;;;;;;;;;;;;;;;;;;;;;:::i;2128:55::-;;;;;;;;;;;;2176:7;2128:55;;3539:65;;;;;;;;;;-1:-1:-1;3539:65:26;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;2271:48::-;;;;;;;;;;;;;;;634::28;;;;;;;;;;;;680:2;634:48;;4477:20:26;;;;;;;;;;;;;:::i;11646:558::-;;;;;;;;;;-1:-1:-1;11646:558:26;;;;;:::i;:::-;;:::i;961:37:28:-;;;;;;;;;;-1:-1:-1;961:37:28;;;;-1:-1:-1;;;;;961:37:28;;;13255:358:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3412:42::-;;;;;;;;;;;;;;;2747:37;;;;;;;;;;;;;;;13701:641;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;2963:39::-;;;;;;;;;;;;;;;4305:62;;;;;;;;;;-1:-1:-1;4305:62:26;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;9132:604::-;;;;;;;;;;;;;:::i;10268:1290::-;;;;;;;;;;-1:-1:-1;10268:1290:26;;;;;:::i;:::-;;:::i;5188:131::-;5239:10;-1:-1:-1;;;;;5253:14:26;5239:28;;5235:78;;5290:12;;-1:-1:-1;;;5290:12:26;;;;;;;;;;;5235:78;5188:131::o;12839:102::-;12888:7;12914:20;:11;:18;:20::i;:::-;12907:27;;12839:102;:::o;15514:240::-;15590:4;15596:7;15616:11;15629:36;15669:32;15695:5;15669:25;:32::i;:::-;15727:19;;-1:-1:-1;;;15727:19:26;;15615:86;;-1:-1:-1;15615:86:26;-1:-1:-1;15615:86:26;;15727:17;;;;:19;;15615:86;;15727:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15711:36;;;;;;15514:240;;;:::o;4181:55::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13040:113::-;13099:7;13125:21;:11;13140:5;13125:14;:21::i;:::-;13118:28;13040:113;-1:-1:-1;;13040:113:26:o;12320:336::-;5569:15;:13;:15::i;:::-;12408:10:::1;12372:14;12389:30:::0;;;:18:::1;:30;::::0;;;;;;12434:11;;;12430:69:::1;;12468:20;;-1:-1:-1::0;;;12468:20:26::1;;;;;;;;;;;12430:69;12528:10;12542:1;12509:30:::0;;;:18:::1;:30;::::0;;;;;:34;;;;12554:47;-1:-1:-1;;;12554:47:26;;::::1;::::0;::::1;472:25:60::0;;;-1:-1:-1;;;;;12563:14:26::1;12554:39;::::0;::::1;::::0;445:18:60;;12554:47:26::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;12612:37:26::1;::::0;-1:-1:-1;12620:10:26::1;::::0;-1:-1:-1;12642:6:26;;-1:-1:-1;12612:29:26::1;:37::i;:::-;12362:294;12320:336::o:0;9828:247::-;5569:15;:13;:15::i;:::-;5639:12:::1;:10;:12::i;:::-;9890:20:::2;:11;:18;:20::i;:::-;:25:::0;::::2;::::0;:44:::2;;-1:-1:-1::0;9919:10:26::2;::::0;:15;::::2;9890:44;9886:108;;;9957:26;;-1:-1:-1::0;;;9957:26:26::2;;;;;;;;;;;9886:108;10004:6;:22:::0;;10013:13:::2;::::0;10004:6;-1:-1:-1;;;;10004:22:26::2;-1:-1:-1::0;;;10013:13:26;10004:22:::2;;;;;10046:14;-1:-1:-1::0;;;;;10037:29:26::2;;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;9828:247::o:0;15047:239::-;15131:11;15144:36;;:::i;:::-;-1:-1:-1;;;;;15205:27:26;;;;;;;:20;:27;;;;;;;;;15192:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15205:27;;15192:40;;;;15205:27;;15192:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15192:40:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15192:40:26;-1:-1:-1;;;;;15192:40:26;-1:-1:-1;;;;;15192:40:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15192:40:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15192:40:26;;;;;;;;;;;;;;;;-1:-1:-1;;;15192:40:26;;;;-1:-1:-1;;;15192:40:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;15192:40:26;;;;-1:-1:-1;;;15192:40:26;;-1:-1:-1;15192:40:26;;;;;;;;;;;;;;;-1:-1:-1;;;;;15192:40:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15192:40:26;;;;;;;;;;;;;;;;-1:-1:-1;;;15192:40:26;;;;-1:-1:-1;;;15192:40:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;15192:40:26;;;;-1:-1:-1;;;15192:40:26;;-1:-1:-1;15192:40:26;;;;;;;;;;;;;;-1:-1:-1;;;;;15192:40:26;;;;;;-1:-1:-1;;;15192:40:26;;;;-1:-1:-1;;;;;;15192:40:26;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;15192:40:26;;;;-1:-1:-1;;;15192:40:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15192:40:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15192:40:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;15192:40:26;;;;-1:-1:-1;;15252:17:26;;:27;;-1:-1:-1;;;15252:27:26;;15192:40;;-1:-1:-1;15252:25:26;;;;-1:-1:-1;15252:27:26;;:17;:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15251:28;15242:37;;15047:239;;;:::o;7815:1244::-;5569:15;:13;:15::i;:::-;5639:12:::1;:10;:12::i;:::-;7961:9:::2;8000:10;7936:22;8024:19:::0;;;8020:75:::2;;8066:18;;-1:-1:-1::0;;;8066:18:26::2;;;;;;;;;;;8020:75;-1:-1:-1::0;;;;;8105:16:26;::::2;;::::0;;;:5:::2;:16;::::0;;;;:34;;8125:14;;8105:16;:34:::2;::::0;8125:14;;8105:34:::2;:::i;:::-;;;;;;;;8163:14;8149:10;;:28;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;8192:16:26;::::2;;::::0;;;:5:::2;:16;::::0;;;;;8212:23:::2;-1:-1:-1::0;8188:355:26::2;;8256:31;:11;8277:9:::0;8256:20:::2;:31::i;:::-;8251:282;;8366:26;:11;8382:9:::0;8366:15:::2;:26::i;:::-;-1:-1:-1::0;;;;;;8410:32:26;::::2;;::::0;;;:21:::2;:32;::::0;;;;:42:::2;8445:7:::0;;8410:32;:42:::2;:::i;:::-;-1:-1:-1::0;;;;;;8470:35:26;::::2;;::::0;;;:24:::2;:35;::::0;;;;8508:10;;8470:48:::2;8508:10:::0;8470:35;:48:::2;:::i;:::-;-1:-1:-1::0;;8251:282:26::2;8567:19;8557:6:::0;;;-1:-1:-1;;;8557:6:26;::::2;;;::::0;:29;::::2;;;;;;:::i;:::-;::::0;8553:500:::2;;8620:23;8606:10;;:37;8602:170;;8663:6;:22:::0;;8672:13:::2;::::0;8663:6;-1:-1:-1;;;;8663:22:26::2;-1:-1:-1::0;;;8672:13:26;8663:22:::2;;;;;8712:14;-1:-1:-1::0;;;;;8703:33:26::2;;8744:10;;8703:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;8602:170;8553:500;;;8816:15;8806:6;::::0;;-1:-1:-1;;;8806:6:26;::::2;;;::::0;:25;::::2;;;;;;:::i;:::-;::::0;8802:169:::2;;8869:23;8855:10;;:37;8851:106;;8916:6;:22:::0;;-1:-1:-1;;;;8916:22:26::2;-1:-1:-1::0;;;8916:22:26::2;::::0;;8851:106:::2;8993:14;-1:-1:-1::0;;;;;8984:33:26::2;;9025:14;8984:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;8553:500;7926:1133;;7815:1244:::0;;;:::o;12703:94::-;12747:15;;:::i;:::-;12774:16;;;;;;;;12781:9;12774:16;;-1:-1:-1;;;;;12774:16:26;;;;;;;;;;;;;;;;;;;;;;;;12781:9;;12774:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12774:16:26;;;;;;;;;;;;;;;;;;;;;;;;;;;12703:94;:::o;3539:65::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3539:65:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3539:65:26;;;;;;;;;;;;;;;;-1:-1:-1;;;3539:65:26;;;;-1:-1:-1;;;3539:65:26;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3539:65:26;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4477:20::-;;;;;;;:::i;11646:558::-;5497:14;:12;:14::i;:::-;11709:24:::1;11736:20;:11;:18;:20::i;:::-;11709:47;;11771:16;11791:1;11771:21:::0;11767:81:::1;;11815:22;;-1:-1:-1::0;;;11815:22:26::1;;;;;;;;;;;11767:81;11870:16;11861:6;:25;11857:91;;;11909:28;;-1:-1:-1::0;;;11909:28:26::1;;;;;;;;;;;11857:91;11958:20;11981:25;11990:16:::0;11981:6;:25:::1;:::i;:::-;11958:48;;12022:9;12017:181;12041:16;12037:1;:20;12017:181;;;12116:12:::0;12075:18:::1;:37;12094:17;:11;12109:1:::0;12094:14:::1;:17::i;:::-;-1:-1:-1::0;;;;;12075:37:26::1;-1:-1:-1::0;;;;;12075:37:26::1;;;;;;;;;;;;;:53;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;12170:3:26::1;;12017:181;;13255:358:::0;13303:16;13331:14;13348:20;:11;:18;:20::i;:::-;13331:37;;13378:23;13418:6;-1:-1:-1;;;;;13404:21:26;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13404:21:26;;13378:47;;13441:9;13436:147;13460:6;13456:1;:10;13436:147;;;13496:17;:11;13511:1;13496:14;:17::i;:::-;13484:6;13491:1;13484:9;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13484:29:26;;;:9;;;;;;;;;;;:29;13555:3;;13436:147;;;-1:-1:-1;13600:6:26;13255:358;-1:-1:-1;;13255:358:26:o;13701:641::-;-1:-1:-1;;;;;;;;;;;;;;;;;13782:14:26;13799:20;:11;:18;:20::i;:::-;13782:37;;13830:30;13883:6;-1:-1:-1;;;;;13863:27:26;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13863:27:26;;;;;;;;;;;;;;;;13830:60;;13906:9;13901:340;13925:6;13921:1;:10;13901:340;;;13965:265;;;;;;;;;;14003:17;:11;14018:1;14003:14;:17::i;:::-;-1:-1:-1;;;;;13965:265:26;;;;;14046:5;:24;14052:17;:11;14067:1;14052:14;:17::i;:::-;-1:-1:-1;;;;;14046:24:26;-1:-1:-1;;;;;14046:24:26;;;;;;;;;;;;;13965:265;;;;14100:24;:43;14125:17;14140:1;14125:11;:14;;:17;;;;:::i;:::-;-1:-1:-1;;;;;14100:43:26;;;;;;;;;;;;;;;-1:-1:-1;14100:43:26;13965:265;;;;;;;;;;;;;;;;;;;;;14100:43;;13965:265;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;13965:265:26;;;;-1:-1:-1;;;13965:265:26;;;;14175:21;:40;14197:17;:11;14212:1;14197:14;:17::i;:::-;-1:-1:-1;;;;;14175:40:26;-1:-1:-1;;;;;14175:40:26;;;;;;;;;;;;13965:265;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13952:7;13960:1;13952:10;;;;;;;;:::i;:::-;;;;;;:278;;;;13933:3;;;;;:::i;:::-;;;;13901:340;;;-1:-1:-1;14258:77:26;;;;;;;;;;;;14314:19;;-1:-1:-1;;;;;14314:19:26;14258:77;;;;;13701:641;-1:-1:-1;;13701:641:26:o;4305:62::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9132:604::-;2261:21:18;:19;:21::i;:::-;5569:15:26::1;:13;:15::i;:::-;5639:12:::2;:10;:12::i;:::-;9227:10:::3;9204:14;9221:17:::0;;;:5:::3;:17;::::0;;;;;;9253:11;;;9249:63:::3;;9287:14;;-1:-1:-1::0;;;9287:14:26::3;;;;;;;;;;;9249:63;9328:10;9342:1;9322:17:::0;;;:5:::3;:17;::::0;;;;:21;;;9353:10:::3;:20:::0;;9367:6;;9342:1;9353:20:::3;::::0;9367:6;;9353:20:::3;:::i;:::-;::::0;;;-1:-1:-1;9434:30:26::3;::::0;-1:-1:-1;9434:11:26::3;9453:10;9434:18;:30::i;:::-;-1:-1:-1::0;9488:13:26::3;9478:6;::::0;;-1:-1:-1;;;9478:6:26;::::3;;;::::0;:23;::::3;;;;;;:::i;:::-;::::0;9474:152:::3;;9534:23;9521:10;;:36;9517:99;;;9577:6;:24:::0;;-1:-1:-1;;;;9577:24:26::3;-1:-1:-1::0;;;9577:24:26::3;::::0;;9517:99:::3;9636:45;::::0;-1:-1:-1;;;9636:45:26;;::::3;::::0;::::3;472:25:60::0;;;9645:14:26::3;-1:-1:-1::0;;;;;9636:37:26::3;::::0;::::3;::::0;445:18:60;;9636:45:26::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;::::0;::::3;;;;;-1:-1:-1::0;9692:37:26::3;::::0;-1:-1:-1;9700:10:26::3;::::0;-1:-1:-1;9722:6:26;;-1:-1:-1;9692:29:26::3;:37::i;:::-;9194:542;2303:20:18::0;1716:1;2809:7;:22;2629:209;10268:1290:26;5569:15;:13;:15::i;:::-;10385:16:::1;::::0;;;::::1;::::0;::::1;;:::i;:::-;1956:22:28;1972:5;1956:15;:22::i;:::-;10427:13:26::2;10417:6;::::0;;-1:-1:-1;;;10417:6:26;::::2;;;::::0;:23;::::2;;;;;;:::i;:::-;;10413:78;;10463:17;;-1:-1:-1::0;;;10463:17:26::2;;;;;;;;;;;10413:78;10505:32;:11;10526:10;10505:20;:32::i;:::-;10500:85;;10560:14;;-1:-1:-1::0;;;10560:14:26::2;;;;;;;;;;;10500:85;10628:17;10598;:10:::0;;:17:::2;:::i;:::-;:24;;;:::i;:::-;:26;::::0;-1:-1:-1;;;10598:26:26;;:24:::2;::::0;::::2;::::0;:26:::2;::::0;:24;:26:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:47;10594:108;;10668:23;;-1:-1:-1::0;;;10668:23:26::2;;;;;;;;;;;10594:108;10716:14;:23;10740:20;;::::0;::::2;:10:::0;:20:::2;:::i;:::-;10716:45;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10711:103;;10784:19;;-1:-1:-1::0;;;10784:19:26::2;;;;;;;;;;;10711:103;10824:50;10877:21;10824:50:::0;10899:16:::2;::::0;;;::::2;::::0;::::2;;:::i;:::-;-1:-1:-1::0;;;;;10877:39:26::2;-1:-1:-1::0;;;;;10877:39:26::2;;;;;;;;;;;;10824:92;;10954:22;10979:78;10999:14;11015:10;11027;11039:5;:17;11045:10;-1:-1:-1::0;;;;;11039:17:26::2;-1:-1:-1::0;;;;;11039:17:26::2;;;;;;;;;;;;;10979:19;:78::i;:::-;10954:103;;11072:17;11068:484;;;11105:33;11123:14;11105:17;:33::i;:::-;11068:484;;;11237:26;11265:22:::0;11291:25:::2;:23;:25::i;:::-;11236:80;;;;11335:17;11331:211;;;-1:-1:-1::0;;;;;11429:42:26;::::2;11372:54;11429:42:::0;;;:21:::2;:42;::::0;;;;11490:37:::2;11429:42:::0;11490:17:::2;:37::i;:::-;11354:188;11331:211;11155:397;;10403:1155;;5594:1:::1;10268:1290:::0;:::o;9106:115:24:-;9169:7;9195:19;9203:3;4545:18;;4463:107;9563:156;9637:7;9687:22;9691:3;9703:5;9687:3;:22::i;:::-;9679:31;9563:156;-1:-1:-1;;;9563:156:24:o;5055:127:26:-;5108:22;;-1:-1:-1;;;5108:22:26;;:20;;;;:22;;:10;;:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5103:73;;5153:12;;-1:-1:-1;;;5153:12:26;;;;;;;;;;;2648:312:19;2762:6;2737:21;:31;;2729:73;;;;-1:-1:-1;;;2729:73:19;;39093:2:60;2729:73:19;;;39075:21:60;39132:2;39112:18;;;39105:30;39171:31;39151:18;;;39144:59;39220:18;;2729:73:19;;;;;;;;;2814:12;2832:9;-1:-1:-1;;;;;2832:14:19;2854:6;2832:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2813:52;;;2883:7;2875:78;;;;-1:-1:-1;;;2875:78:19;;39661:2:60;2875:78:19;;;39643:21:60;39700:2;39680:18;;;39673:30;39739:34;39719:18;;;39712:62;-1:-1:-1;;;39790:18:60;;;39783:56;39856:19;;2875:78:19;39459:422:60;2875:78:19;2719:241;2648:312;;:::o;5325:133:26:-;5384:13;5374:6;;;-1:-1:-1;;;5374:6:26;;;;;:23;;;;;;;:::i;:::-;;5370:82;;5420:21;;-1:-1:-1;;;5420:21:26;;;;;;;;;;;8860:165:24;8940:4;8963:55;8973:3;-1:-1:-1;;;;;8993:23:24;;8963:9;:55::i;8305:150::-;8375:4;8398:50;8403:3;-1:-1:-1;;;;;8423:23:24;;8398:4;:50::i;2336:287:18:-;1759:1;2468:7;;:19;2460:63;;;;-1:-1:-1;;;2460:63:18;;40088:2:60;2460:63:18;;;40070:21:60;40127:2;40107:18;;;40100:30;40166:33;40146:18;;;40139:61;40217:18;;2460:63:18;39886:355:60;2460:63:18;1759:1;2598:7;:18;2336:287::o;8623:156:24:-;8696:4;8719:53;8727:3;-1:-1:-1;;;;;8747:23:24;;8719:7;:53::i;1546:356:28:-;1621:23;;-1:-1:-1;;;;;1621:23:28;;;1612:32;;;;1608:92;;1667:22;;-1:-1:-1;;;1667:22:28;;;;;;;;;;;1608:92;1721:13;;-1:-1:-1;;;;;;;;1721:13:28;;;;;1713:21;;;;1709:76;;;1757:17;;-1:-1:-1;;;1757:17:28;;;;;;;;;;;1709:76;1807:13;;1824:16;;1799:21;;-1:-1:-1;;;1807:13:28;;-1:-1:-1;;;;;1807:13:28;1799:5;:21;:::i;:::-;1798:42;;;;:::i;:::-;-1:-1:-1;;;;;1798:47:28;;1794:102;;1868:17;;-1:-1:-1;;;1868:17:28;;;;;;;;;;;15996:739:26;16224:22;;16283:17;:10;:17;:::i;:::-;:19;;-1:-1:-1;;;16283:19:26;;:17;;;;:19;;:17;:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16258:44;-1:-1:-1;16333:195:26;16358:14;16258:44;16419:16;16449:15;16478:16;;;;;;;;:::i;:::-;16508:10;;16333:11;:195::i;:::-;16595:42;;;;:26;;;:42;;;;;;;;;:50;;;;;;;;;-1:-1:-1;;;;;16595:50:26;;;;;;;;;;;;;;;;;;;;;;;;;;;16313:215;;-1:-1:-1;16595:50:26;;:42;;:50;;;;:42;;:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16595:50:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16595:50:26;-1:-1:-1;;;;;16595:50:26;-1:-1:-1;;;;;16595:50:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16595:50:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16595:50:26;;;;;;;;;;;;;;;;-1:-1:-1;;;16595:50:26;;;;-1:-1:-1;;;16595:50:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16595:50:26;;;;-1:-1:-1;;;16595:50:26;;-1:-1:-1;16595:50:26;;;;;;;;;;;;;;;-1:-1:-1;;;;;16595:50:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16595:50:26;;;;;;;;;;;;;;;;-1:-1:-1;;;16595:50:26;;;;-1:-1:-1;;;16595:50:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16595:50:26;;;;-1:-1:-1;;;16595:50:26;;-1:-1:-1;16595:50:26;;;;;;;;;;;;;;-1:-1:-1;;;;;16595:50:26;;;;;;-1:-1:-1;;;16595:50:26;;;;-1:-1:-1;;;;;;16595:50:26;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16595:50:26;;;;-1:-1:-1;;;16595:50:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16595:50:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16595:50:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16595:50:26;;;;-1:-1:-1;;16595:52:26;;-1:-1:-1;;;16595:52:26;;:50;;;;-1:-1:-1;16595:52:26;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16591:138;;;16663:42;;;;:26;;;:42;;;;;16708:10;;16663:55;16708:10;16663:42;:55;:::i;:::-;-1:-1:-1;;16591:138:26;16248:487;15996:739;;;;;;:::o;16904:733::-;17069:39;;;;17002:37;17042:67;;;:26;;;:67;;;;;17248:19;;;;;17218:26;;:49;17214:181;;17283:27;;-1:-1:-1;;;17283:27:26;;;;;472:25:60;;;17283::26;;;;445:18:60;;17283:27:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;17324:15:26;17347:16;;;;17324:40;;-1:-1:-1;;;17324:40:26;;:22;;;;:40;;-1:-1:-1;;;;;17347:16:26;;;;17324:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17214:181;17429:16;;;;17405:41;;-1:-1:-1;;;;;17429:16:26;17405:23;:41::i;:::-;17478:16;;;;-1:-1:-1;;;;;17478:16:26;;;17457:38;;;;:20;:38;;;;;:51;;;;-1:-1:-1;;;;;;17457:51:26;;;;;;;;;17478:16;17457:51;;;;;17498:10;;17457:38;17498:10;;17457:38;;:51;;;;;;;:::i;:::-;-1:-1:-1;;;17457:51:26;;;;;;;;;;-1:-1:-1;;;;;;17457:51:26;-1:-1:-1;;;;;17457:51:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;17457:51:26;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;17547:17:26;;;;;;;;;;-1:-1:-1;;;;;17547:17:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17547:10:26;;:17;;:10;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17547:17:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17547:17:26;-1:-1:-1;;;;;17547:17:26;-1:-1:-1;;;;;17547:17:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17547:17:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17547:17:26;;;;;;;;;;;;;;;;-1:-1:-1;;;17547:17:26;;;;-1:-1:-1;;;17547:17:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;17547:17:26;;;;-1:-1:-1;;;17547:17:26;;-1:-1:-1;17547:17:26;;;;;;;;;;;;;;;-1:-1:-1;;;;;17547:17:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17547:17:26;;;;;;;;;;;;;;;;-1:-1:-1;;;17547:17:26;;;;-1:-1:-1;;;17547:17:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;17547:17:26;;;;-1:-1:-1;;;17547:17:26;;-1:-1:-1;17547:17:26;;;;;;;;;;;;;;-1:-1:-1;;;;;17547:17:26;;;;;;-1:-1:-1;;;17547:17:26;;;;-1:-1:-1;;;;;;17547:17:26;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;17547:17:26;;;;-1:-1:-1;;;17547:17:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17547:17:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17547:17:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;17547:17:26;;;;-1:-1:-1;;17547:19:26;;-1:-1:-1;;;17547:19:26;;:17;;;;-1:-1:-1;17547:19:26;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17518:26;:48;17577:53;;-1:-1:-1;;;17577:53:26;;-1:-1:-1;;;;;17586:14:26;17577:41;;;;:53;;17619:10;;17577:53;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5657:203:28;5774:15;:21;-1:-1:-1;;;5774:21:28;;-1:-1:-1;;;;;5774:21:28;5715:16;5820:33;5774:21;5820:22;:33::i;:::-;5805:48;;5657:203;;:::o;4912:118:24:-;4979:7;5005:3;:11;;5017:5;5005:18;;;;;;;;:::i;:::-;;;;;;;;;4998:25;;4912:118;;;;:::o;4255:127::-;4328:4;4351:19;;;:12;;;;;:19;;;;;;:24;;;4255:127::o;2214:404::-;2277:4;2298:21;2308:3;2313:5;2298:9;:21::i;:::-;2293:319;;-1:-1:-1;2335:23:24;;;;;;;;:11;:23;;;;;;;;;;;;;2515:18;;2493:19;;;:12;;;:19;;;;;;:40;;;;2547:11;;2293:319;-1:-1:-1;2596:5:24;2589:12;;2786:1388;2852:4;2989:19;;;:12;;;:19;;;;;;3023:15;;3019:1149;;3392:21;3416:14;3429:1;3416:10;:14;:::i;:::-;3464:18;;3392:38;;-1:-1:-1;3444:17:24;;3464:22;;3485:1;;3464:22;:::i;:::-;3444:42;;3518:13;3505:9;:26;3501:398;;3551:17;3571:3;:11;;3583:9;3571:22;;;;;;;;:::i;:::-;;;;;;;;;3551:42;;3722:9;3693:3;:11;;3705:13;3693:26;;;;;;;;:::i;:::-;;;;;;;;;;;;:38;;;;3805:23;;;:12;;;:23;;;;;:36;;;3501:398;3977:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4069:3;:12;;:19;4082:5;4069:19;;;;;;;;;;;4062:26;;;4110:4;4103:11;;;;;;;3019:1149;4152:5;4145:12;;;;;6350:1478:28;6637:10;;6587:22;6661;;;:15;;;:22;;;;;;;;-1:-1:-1;;;;;6661:40:28;;;;;;;;;;6587:22;;6637:10;6661:40;;6657:101;;;6724:23;;-1:-1:-1;;;6724:23:28;;;;;;;;;;;6657:101;6768:22;;;;:15;;;:22;;;;;;;;-1:-1:-1;;;;;6768:40:28;;;;;;;;;:47;;-1:-1:-1;;6768:47:28;6811:4;6768:47;;;;;;6825:26;;:45;;6855:15;;6768:22;6825:45;;6855:15;;6825:45;:::i;:::-;;;;-1:-1:-1;;6880:29:28;;;;:22;;;:29;;;;;;;;:45;;;;;;;;:64;;6929:15;;6880:29;:64;;6929:15;;6880:64;:::i;:::-;;;;-1:-1:-1;;6955:23:28;6981:29;;;:22;;;:29;;;;;;;;7011:24;;;;6981:55;;;;;;;;;7072:45;;;;;;7132:33;;;7128:105;;;7181:24;;;:41;;;7128:105;7243:26;7272:41;7295:4;7301:11;7272:22;:41::i;:::-;7243:70;-1:-1:-1;7338:36:28;7328:6;:46;;;;;;;;:::i;:::-;;7324:498;;7394:29;7417:5;7394:22;:29::i;:::-;7390:263;;;7463:4;7443:24;;7324:498;;7390:263;7611:27;;-1:-1:-1;;;7611:27:28;;:20;;;;:27;;:15;;7632:5;;7611:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7324:498;;;7683:30;7673:6;:40;;;;;;;;:::i;:::-;;7669:153;;7799:12;;-1:-1:-1;;;7799:12:28;;;;;472:25:60;;;7799:10:28;;;;445:18:60;;7799:12:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7669:153;6611:1217;;;;6350:1478;;;;;;;;:::o;4555:562::-;4673:29;4696:5;4673:22;:29::i;:::-;4668:67;;4555:562;:::o;4668:67::-;4809:31;;-1:-1:-1;;;4809:31:28;;:24;;;;:31;;:15;;4834:5;;4809:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4805:136;;;4860:15;:21;-1:-1:-1;;;;;4860:30:28;;;-1:-1:-1;;;4860:21:28;;;;:30;4856:75;;4555:562;:::o;4856:75::-;4997:29;;-1:-1:-1;;;4997:29:28;;:22;;;;:29;;:15;;5020:5;;4997:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5079:23:28;:31;;-1:-1:-1;;;;;;5079:31:28;-1:-1:-1;;;;;5079:31:28;;;;;;;;;;;-1:-1:-1;;4555:562:28:o;5317:150::-;5418:23;;5386:4;;5418:42;;5444:16;;-1:-1:-1;;;;;5418:23:28;:42;:::i;:::-;-1:-1:-1;;;;;5409:51:28;:5;-1:-1:-1;;;;;5409:51:28;;5402:58;;5317:150;;;:::o;2603:1828::-;2735:19;;2823:3;2787:32;;2801:18;2787:32;:11;:32;:::i;:::-;2786:40;;;;:::i;:::-;2862:25;;-1:-1:-1;;;2862:25:28;;;;;472::60;;;2766:60:28;;-1:-1:-1;2836:23:28;;2862;;;;445:18:60;;2862:25:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2836:51;;3025:9;2995:4;:26;;;:39;2991:116;;3057:39;3050:46;;;;;;2991:116;3168:9;3150:15;:27;3146:101;;;3200:36;3193:43;;;;;;3146:101;4227:26;;;;4213:40;;:11;:40;:::i;:::-;4182:27;4194:15;4182:9;:27;:::i;:::-;:71;4178:139;;4276:30;4269:37;;;;;;4178:139;-1:-1:-1;4387:37:28;;2603:1828;-1:-1:-1;;;;2603:1828:28:o;-1:-1:-1:-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;1072:129:60:-;-1:-1:-1;;;;;1146:30:60;;1136:41;;1126:69;;1191:1;1188;1181:12;1206:132;1273:20;;1302:30;1273:20;1302:30;:::i;:::-;1206:132;;;:::o;1343:245::-;1401:6;1454:2;1442:9;1433:7;1429:23;1425:32;1422:52;;;1470:1;1467;1460:12;1422:52;1509:9;1496:23;1528:30;1552:5;1528:30;:::i;1952:127::-;2013:10;2008:3;2004:20;2001:1;1994:31;2044:4;2041:1;2034:15;2068:4;2065:1;2058:15;2084:243;2228:2;2213:18;;2261:1;2250:13;;2240:47;;2267:18;;:::i;:::-;2296:25;;;2084:243;:::o;2332:131::-;-1:-1:-1;;;;;2407:31:60;;2397:42;;2387:70;;2453:1;2450;2443:12;2468:247;2527:6;2580:2;2568:9;2559:7;2555:23;2551:32;2548:52;;;2596:1;2593;2586:12;2548:52;2635:9;2622:23;2654:31;2679:5;2654:31;:::i;2720:423::-;2762:3;2800:5;2794:12;2827:6;2822:3;2815:19;2852:1;2862:162;2876:6;2873:1;2870:13;2862:162;;;2938:4;2994:13;;;2990:22;;2984:29;2966:11;;;2962:20;;2955:59;2891:12;2862:162;;;2866:3;3069:1;3062:4;3053:6;3048:3;3044:16;3040:27;3033:38;3132:4;3125:2;3121:7;3116:2;3108:6;3104:15;3100:29;3095:3;3091:39;3087:50;3080:57;;;2720:423;;;;:::o;3148:220::-;3297:2;3286:9;3279:21;3260:4;3317:45;3358:2;3347:9;3343:18;3335:6;3317:45;:::i;3373:180::-;3432:6;3485:2;3473:9;3464:7;3460:23;3456:32;3453:52;;;3501:1;3498;3491:12;3453:52;-1:-1:-1;3524:23:60;;3373:180;-1:-1:-1;3373:180:60:o;3558:203::-;-1:-1:-1;;;;;3722:32:60;;;;3704:51;;3692:2;3677:18;;3558:203::o;3955:386::-;4022:6;4030;4083:2;4071:9;4062:7;4058:23;4054:32;4051:52;;;4099:1;4096;4089:12;4051:52;4138:9;4125:23;4157:30;4181:5;4157:30;:::i;:::-;4206:5;-1:-1:-1;4263:2:60;4248:18;;4235:32;4276:33;4235:32;4276:33;:::i;:::-;4328:7;4318:17;;;3955:386;;;;;:::o;4538:461::-;4591:3;4629:5;4623:12;4656:6;4651:3;4644:19;4682:4;4711:2;4706:3;4702:12;4695:19;;4748:2;4741:5;4737:14;4769:1;4779:195;4793:6;4790:1;4787:13;4779:195;;;4858:13;;-1:-1:-1;;;;;4854:39:60;4842:52;;4914:12;;;;4949:15;;;;4890:1;4808:9;4779:195;;;-1:-1:-1;4990:3:60;;4538:461;-1:-1:-1;;;;;4538:461:60:o;5004:307::-;5138:1;5134;5130:2;5126:10;5122:18;5114:5;5108:12;5104:37;5099:3;5092:50;5074:3;5188:4;5181:5;5177:16;5171:23;5226:4;5219;5214:3;5210:14;5203:28;5247:58;5299:4;5294:3;5290:14;5276:12;5247:58;:::i;:::-;5240:65;5004:307;-1:-1:-1;;;;5004:307:60:o;5316:265::-;5417:4;5409:5;5403:12;5399:23;5394:3;5387:36;5369:3;5469:4;5462:5;5458:16;5452:23;5507:4;5500;5495:3;5491:14;5484:28;5528:47;5569:4;5564:3;5560:14;5546:12;5528:47;:::i;5586:409::-;5650:3;5694:5;5688:12;5721:4;5716:3;5709:17;5747:75;5816:4;5811:3;5807:14;5793:12;5747:75;:::i;:::-;5735:87;;5870:4;5863:5;5859:16;5853:23;5918:3;5912:4;5908:14;5901:4;5896:3;5892:14;5885:38;5939:50;5984:4;5968:14;5939:50;:::i;:::-;5932:57;5586:409;-1:-1:-1;;;;;5586:409:60:o;6000:1910::-;6083:3;6121:5;6115:12;6148:6;6143:3;6136:19;6174:4;6215:2;6210:3;6206:12;6240:11;6267;6260:18;;6317:6;6314:1;6310:14;6303:5;6299:26;6287:38;;6359:2;6352:5;6348:14;6380:1;6390:1494;6404:6;6401:1;6398:13;6390:1494;;;6475:5;6469:4;6465:16;6460:3;6453:29;6511:6;6505:13;6541:4;6584:2;6578:9;6613:2;6607:4;6600:16;6657:12;6651:19;6693:4;6732:2;6727;6721:4;6717:13;6710:25;6762:71;6828:3;6822:4;6818:14;6802;6762:71;:::i;:::-;6748:85;;6892:2;6878:12;6874:21;6868:28;6923:2;6919:7;6949:2;7009;7002:4;6994:6;6990:17;6986:26;6981:2;6975:4;6971:13;6964:49;7040:63;7096:6;7080:14;7040:63;:::i;:::-;7132:21;;;7126:28;7177:3;7200:13;;;7193:25;;;;7259:21;;;7253:28;-1:-1:-1;;;;;7342:39:60;7304:3;7327:13;;;7320:62;;;;7427:21;;;7421:28;-1:-1:-1;;;;;;7417:55:60;7402:13;;;7395:78;;;;7514:21;;;7508:28;7576:17;;;7572:26;;;7455:3;7556:14;;7549:50;-1:-1:-1;7508:28:60;7026:77;-1:-1:-1;7625:41:60;7026:77;7508:28;7625:41;:::i;:::-;7707:11;;;7701:18;1663:13;;1656:21;7764:13;;;1644:34;7701:18;7612:54;-1:-1:-1;7732:46:60;;-1:-1:-1;;1593:91:60;7732:46;7862:12;;;;7799:5;-1:-1:-1;;7827:15:60;;;;6426:1;6419:9;6390:1494;;;-1:-1:-1;7900:4:60;;6000:1910;-1:-1:-1;;;;;;;6000:1910:60:o;7915:1417::-;7978:3;8016:5;8010:12;8043:6;8038:3;8031:19;8069:4;8110:2;8105:3;8101:12;8135:11;8162;8155:18;;8212:6;8209:1;8205:14;8198:5;8194:26;8182:38;;8254:2;8247:5;8243:14;8275:1;8296;8306:1000;8322:6;8317:3;8314:15;8306:1000;;;8397:5;8391:4;8387:16;8382:3;8375:29;8433:6;8427:13;8463:4;8506:2;8500:9;8535:2;8529:4;8522:16;8565:74;8635:2;8629:4;8625:13;8611:12;8565:74;:::i;:::-;8680:11;;;8674:18;8727:17;;;8712:13;;;8705:40;8806:21;;8840:24;;;8930:23;;;;8977:1;;-1:-1:-1;8886:15:60;;;-1:-1:-1;8991:209:60;9007:8;9002:3;8999:17;8991:209;;;9084:15;;9070:30;;9169:17;;;;9035:1;9026:11;;;;;9126:14;;;;8991:209;;;-1:-1:-1;9284:12:60;;;;9221:5;-1:-1:-1;;;9249:15:60;;;;8348:1;8339:11;8306:1000;;;-1:-1:-1;9322:4:60;;7915:1417;-1:-1:-1;;;;;;;;7915:1417:60:o;9337:1327::-;9576:6;9569:14;9562:22;9551:9;9544:41;9621:2;9616;9605:9;9601:18;9594:30;9525:4;9659:6;9653:13;9702:4;9697:2;9686:9;9682:18;9675:32;9730:80;9805:3;9794:9;9790:19;9776:12;9730:80;:::i;:::-;9716:94;;9890:1;9886;9882:2;9878:10;9874:18;9868:2;9860:6;9856:15;9850:22;9846:47;9841:2;9830:9;9826:18;9819:75;9949:2;9941:6;9937:15;9931:22;9925:3;9914:9;9910:19;9903:51;10003:2;9995:6;9991:15;9985:22;10030:2;10026:7;10098:2;10086:9;10078:6;10074:22;10070:31;10064:3;10053:9;10049:19;10042:60;10125:82;10200:6;10184:14;10125:82;:::i;:::-;10111:96;;10256:3;10248:6;10244:16;10238:23;10216:45;;10326:2;10314:9;10306:6;10302:22;10298:31;10292:3;10281:9;10277:19;10270:60;10353:62;10408:6;10392:14;10353:62;:::i;:::-;10339:76;;10471:3;10463:6;10459:16;10453:23;10446:4;10435:9;10431:20;10424:53;10526:3;10518:6;10514:16;10508:23;10486:45;;10596:2;10584:9;10576:6;10572:22;10568:31;10562:3;10551:9;10547:19;10540:60;;10617:41;10651:6;10635:14;10617:41;:::i;:::-;10609:49;9337:1327;-1:-1:-1;;;;;;9337:1327:60:o;10669:866::-;10780:6;10788;10796;10849:2;10837:9;10828:7;10824:23;10820:32;10817:52;;;10865:1;10862;10855:12;10817:52;10892:23;;-1:-1:-1;;;;;10964:14:60;;;10961:34;;;10991:1;10988;10981:12;10961:34;11029:6;11018:9;11014:22;11004:32;;11074:7;11067:4;11063:2;11059:13;11055:27;11045:55;;11096:1;11093;11086:12;11045:55;11136:2;11123:16;11162:2;11154:6;11151:14;11148:34;;;11178:1;11175;11168:12;11148:34;11225:7;11218:4;11209:6;11205:2;11201:15;11197:26;11194:39;11191:59;;;11246:1;11243;11236:12;11191:59;11277:4;11269:13;;;;-1:-1:-1;11301:6:60;-1:-1:-1;11345:20:60;;;11332:34;;11378:16;;;11375:36;;;11407:1;11404;11397:12;11375:36;-1:-1:-1;11430:24:60;;11488:2;11470:16;;;11466:25;11463:45;;;11504:1;11501;11494:12;11463:45;11527:2;11517:12;;;10669:866;;;;;:::o;11540:282::-;11723:2;11712:9;11705:21;11686:4;11743:73;11812:2;11801:9;11797:18;11789:6;11743:73;:::i;11827:250::-;11978:2;11963:18;;12011:1;12000:13;;11990:47;;12017:18;;:::i;12082:682::-;12393:3;12382:9;12375:22;12356:4;12420:74;12489:3;12478:9;12474:19;12466:6;12420:74;:::i;:::-;-1:-1:-1;;;;;12530:31:60;;12525:2;12510:18;;12503:59;12550:2;12578:18;;12571:34;;;12636:2;12621:18;;12614:34;;;12685:22;;;12679:3;12664:19;;12657:51;12725:33;12689:6;12743;12725:33;:::i;:::-;12717:41;12082:682;-1:-1:-1;;;;;;;;12082:682:60:o;12992:261::-;13171:2;13160:9;13153:21;13134:4;13191:56;13243:2;13232:9;13228:18;13220:6;13191:56;:::i;13258:1518::-;13412:4;13441:2;13470;13459:9;13452:21;13492:2;13532;13521:9;13517:18;13570:6;13564:13;13596:4;13636:2;13631;13620:9;13616:18;13609:30;13659:6;13694:12;13688:19;13731:6;13723;13716:22;13757:3;13747:13;;13791:2;13780:9;13776:18;13769:25;;13853:2;13843:6;13840:1;13836:14;13825:9;13821:30;13817:39;13897:2;13883:12;13879:21;13865:35;;13918:1;13928:704;13942:6;13939:1;13936:13;13928:704;;;14007:22;;;-1:-1:-1;;14003:37:60;13991:50;;14064:13;;14109:9;;-1:-1:-1;;;;;14105:35:60;14090:51;;14184:11;;;14178:18;14161:15;;;14154:43;14238:11;;;14232:18;14270:15;;;14263:27;;;14317:61;14362:15;;;14232:18;14317:61;:::i;:::-;14419:11;;;14413:18;14468:19;;;14451:15;;;14444:44;14413:18;14303:75;-1:-1:-1;14511:41:60;14303:75;14413:18;14511:41;:::i;:::-;14575:15;;;;14610:12;;;;14501:51;-1:-1:-1;;;13964:1:60;13957:9;13928:704;;;-1:-1:-1;14669:15:60;;;14663:22;-1:-1:-1;;;;;79:30:60;;14728:18;;;67:43;14663:22;14764:6;13258:1518;-1:-1:-1;;;;;;;;;;13258:1518:60:o;14781:296::-;14964:4;14956:6;14952:17;14941:9;14934:36;15006:2;15001;14990:9;14986:18;14979:30;14915:4;15026:45;15067:2;15056:9;15052:18;15044:6;15026:45;:::i;15082:399::-;15180:6;15233:2;15221:9;15212:7;15208:23;15204:32;15201:52;;;15249:1;15246;15239:12;15201:52;15276:23;;-1:-1:-1;;;;;15311:30:60;;15308:50;;;15354:1;15351;15344:12;15308:50;15377:22;;15433:3;15415:16;;;15411:26;15408:46;;;15450:1;15447;15440:12;15486:689;15606:12;;-1:-1:-1;;;;;15602:37:60;15590:50;;15659:4;15698:14;;;15692:21;15576:4;15729:12;;;15722:26;;;15797:19;;15567:14;;;15825:20;;;15537:3;;15898:21;;;;15659:4;15537:3;;15872:2;15863:12;;;15947:201;15961:6;15958:1;15955:13;15947:201;;;16028:13;;-1:-1:-1;;;;;16024:39:60;16010:54;;16123:15;;;;16060:1;15976:9;;;;;16086:14;;;;15947:201;;;-1:-1:-1;16164:5:60;15486:689;-1:-1:-1;;;;;;15486:689:60:o;16180:535::-;16233:3;16277:5;16271:12;16304:4;16299:3;16292:17;16330:56;16380:4;16375:3;16371:14;16357:12;16330:56;:::i;:::-;16318:68;;16434:4;16427:5;16423:16;16417:23;16482:3;16476:4;16472:14;16465:4;16460:3;16456:14;16449:38;16536:4;16519:14;16513:21;16509:32;16503:4;16496:46;16599:4;16583:14;16579:25;16573:32;16551:54;;16638:4;16631;16625;16621:15;16614:29;16659:50;16703:4;16697;16693:15;16677:14;16659:50;:::i;16720:1866::-;16781:3;16819:5;16813:12;16846:6;16841:3;16834:19;16872:4;16913:2;16908:3;16904:12;16938:11;16965;16958:18;;17015:6;17012:1;17008:14;17001:5;16997:26;16985:38;;17057:2;17050:5;17046:14;17078:1;17088:1472;17102:6;17099:1;17096:13;17088:1472;;;17173:5;17167:4;17163:16;17158:3;17151:29;17209:6;17203:13;17239:4;17282:2;17276:9;17311:2;17305:4;17298:16;17355:12;17349:19;17391:4;17430:2;17425;17419:4;17415:13;17408:25;17460:60;17515:3;17509:4;17505:14;17489;17460:60;:::i;:::-;17446:74;;17579:2;17565:12;17561:21;17555:28;17610:2;17606:7;17636:2;17696;17689:4;17681:6;17677:17;17673:26;17668:2;17662:4;17658:13;17651:49;17727:52;17772:6;17756:14;17727:52;:::i;:::-;17808:21;;;17802:28;17853:3;17876:13;;;17869:25;;;;17935:21;;;17929:28;-1:-1:-1;;;;;18018:39:60;17980:3;18003:13;;;17996:62;;;;18103:21;;;18097:28;-1:-1:-1;;;;;;18093:55:60;18078:13;;;18071:78;;;;18190:21;;;18184:28;18252:17;;;18248:26;;;18131:3;18232:14;;18225:50;-1:-1:-1;18184:28:60;17713:66;-1:-1:-1;18301:41:60;17713:66;18184:28;18301:41;:::i;:::-;18383:11;;;18377:18;1663:13;;1656:21;18440:13;;;1644:34;18377:18;18288:54;-1:-1:-1;18408:46:60;;-1:-1:-1;;1593:91:60;18408:46;18538:12;;;;18475:5;-1:-1:-1;;18503:15:60;;;;17124:1;17117:9;17088:1472;;18591:1420;18676:3;18714:5;18708:12;18741:6;18736:3;18729:19;18767:4;18808:2;18803:3;18799:12;18833:11;18860;18853:18;;18910:6;18907:1;18903:14;18896:5;18892:26;18880:38;;18952:2;18945:5;18941:14;18973:1;18994;19004:981;19020:6;19015:3;19012:15;19004:981;;;19095:5;19089:4;19085:16;19080:3;19073:29;19131:6;19125:13;19161:4;19204:2;19198:9;19233:2;19227:4;19220:16;19263:55;19314:2;19308:4;19304:13;19290:12;19263:55;:::i;:::-;19359:11;;;19353:18;19406:17;;;19391:13;;;19384:40;19485:21;;19519:24;;;19609:23;;;;19656:1;;-1:-1:-1;19565:15:60;;;-1:-1:-1;19670:209:60;19686:8;19681:3;19678:17;19670:209;;;19763:15;;19749:30;;19848:17;;;;19714:1;19705:11;;;;;19805:14;;;;19670:209;;;-1:-1:-1;19963:12:60;;;;19900:5;-1:-1:-1;;;19928:15:60;;;;19046:1;19037:11;19004:981;;20016:1234;20227:2;20216:9;20209:21;20190:4;20265:6;20259:13;20308:4;20303:2;20292:9;20288:18;20281:32;20336:61;20392:3;20381:9;20377:19;20363:12;20336:61;:::i;:::-;20322:75;;20477:1;20473;20469:2;20465:10;20461:18;20455:2;20447:6;20443:15;20437:22;20433:47;20428:2;20417:9;20413:18;20406:75;20535:2;20527:6;20523:15;20517:22;20512:2;20501:9;20497:18;20490:50;20589:2;20581:6;20577:15;20571:22;20616:2;20612:7;20684:2;20672:9;20664:6;20660:22;20656:31;20650:3;20639:9;20635:19;20628:60;20711;20764:6;20748:14;20711:60;:::i;:::-;20697:74;;20820:3;20812:6;20808:16;20802:23;20780:45;;20890:2;20878:9;20870:6;20866:22;20862:31;20856:3;20845:9;20841:19;20834:60;20917:84;20994:6;20978:14;20917:84;:::i;:::-;20903:98;;21056:3;21048:6;21044:16;21038:23;21032:3;21021:9;21017:19;21010:52;21111:3;21103:6;21099:16;21093:23;21071:45;;21182:2;21170:9;21162:6;21158:22;21154:31;21147:4;21136:9;21132:20;21125:61;;21203:41;21237:6;21221:14;21203:41;:::i;21255:184::-;21325:6;21378:2;21366:9;21357:7;21353:23;21349:32;21346:52;;;21394:1;21391;21384:12;21346:52;-1:-1:-1;21417:16:60;;21255:184;-1:-1:-1;21255:184:60:o;21444:380::-;21523:1;21519:12;;;;21566;;;21587:61;;21641:4;21633:6;21629:17;21619:27;;21587:61;21694:2;21686:6;21683:14;21663:18;21660:38;21657:161;;21740:10;21735:3;21731:20;21728:1;21721:31;21775:4;21772:1;21765:15;21803:4;21800:1;21793:15;21657:161;;21444:380;;;:::o;21829:271::-;22020:2;22009:9;22002:21;21983:4;22040:54;22090:2;22079:9;22075:18;22067:6;22040:54;:::i;22105:118::-;22191:5;22184:13;22177:21;22170:5;22167:32;22157:60;;22213:1;22210;22203:12;22228:245;22295:6;22348:2;22336:9;22327:7;22323:23;22319:32;22316:52;;;22364:1;22361;22354:12;22316:52;22396:9;22390:16;22415:28;22437:5;22415:28;:::i;22478:127::-;22539:10;22534:3;22530:20;22527:1;22520:31;22570:4;22567:1;22560:15;22594:4;22591:1;22584:15;22610:125;22675:9;;;22696:10;;;22693:36;;;22709:18;;:::i;22740:127::-;22801:10;22796:3;22792:20;22789:1;22782:31;22832:4;22829:1;22822:15;22856:4;22853:1;22846:15;22872:121;22945:1;22938:14;;;22982:4;22969:18;;;22872:121::o;22998:146::-;23060:78;23078:3;23071:5;23068:14;23060:78;;;23134:1;23120:16;;23105:1;23094:13;23060:78;;;22998:146;;:::o;23149:418::-;23251:2;23246:3;23243:11;23240:321;;;23287:5;23284:1;23277:16;23331:4;23328:1;23318:18;23401:2;23389:10;23385:19;23382:1;23378:27;23372:4;23368:38;23437:4;23425:10;23422:20;23419:47;;;-1:-1:-1;23460:4:60;23419:47;23479:72;23545:2;23540:3;23536:12;23533:1;23529:20;23523:4;23519:31;23506:11;23479:72;:::i;23572:166::-;-1:-1:-1;;23700:1:60;23696:11;;;23692:24;23688:29;23678:40;23724:1;23720:11;;;;23675:57;;23572:166::o;23743:1206::-;-1:-1:-1;;;;;23859:27:60;;23856:53;;;23889:18;;:::i;:::-;23918:94;24008:3;23968:38;24000:4;23994:11;23968:38;:::i;:::-;23962:4;23918:94;:::i;:::-;24038:1;24063:2;24058:3;24055:11;24080:1;24075:616;;;;24735:1;24752:3;24749:93;;;-1:-1:-1;24808:19:60;;;24795:33;24749:93;24868:64;24928:3;24921:5;24868:64;:::i;:::-;24862:4;24855:78;;24048:895;;24075:616;-1:-1:-1;;24111:17:60;;24155:35;24185:4;24155:35;:::i;:::-;24212:9;24234:229;24248:7;24245:1;24242:14;24234:229;;;24337:19;;;24324:33;24309:49;;24444:4;24429:20;;;;24397:1;24385:14;;;;24264:12;24234:229;;;24238:3;24491;24482:7;24479:16;24476:159;;;24615:1;24611:6;24605:3;24599;24596:1;24592:11;24588:21;24584:34;24580:39;24567:9;24562:3;24558:19;24545:33;24541:79;24533:6;24526:95;24476:159;;;24678:1;24672:3;24669:1;24665:11;24661:19;24655:4;24648:33;24048:895;;23743:1206;;;:::o;24954:114::-;25038:4;25031:5;25027:16;25020:5;25017:27;25007:55;;25058:1;25055;25048:12;25073:515;25144:4;25150:6;25210:11;25197:25;25304:2;25300:7;25289:8;25273:14;25269:29;25265:43;25245:18;25241:68;25231:96;;25323:1;25320;25313:12;25231:96;25350:33;;25402:20;;;-1:-1:-1;;;;;;25434:30:60;;25431:50;;;25477:1;25474;25467:12;25431:50;25510:4;25498:17;;-1:-1:-1;25541:14:60;25537:27;;;25527:38;;25524:58;;;25578:1;25575;25568:12;25524:58;25073:515;;;;;:::o;26786:1725::-;26959:5;26946:19;26974:31;26997:7;26974:31;:::i;:::-;27071:4;27062:7;27058:18;27051:3;27047:8;27040:4;27034:11;27030:26;27027:50;27021:4;27014:64;;27097:1;27135:2;27129:4;27125:13;27157:2;27202:58;27256:2;27249:5;27245:14;27238:5;27202:58;:::i;:::-;-1:-1:-1;;;;;27272:37:60;;27269:63;;;27312:18;;:::i;:::-;27341:116;27443:13;27397:44;27429:10;27423:17;27397:44;:::i;:::-;27385:10;27341:116;:::i;:::-;27483:1;27518:2;27503:13;27500:21;27535:1;27530:683;;;;28259:1;28276:13;28273:113;;;-1:-1:-1;28344:27:60;;;28331:41;28273:113;28418:76;28480:13;28471:7;28418:76;:::i;:::-;28406:10;28399:96;;27493:1012;;27530:683;-1:-1:-1;;27566:27:60;;27620:41;27650:10;27620:41;:::i;:::-;27683:9;27705:234;27719:7;27716:1;27713:14;27705:234;;;27806:27;;;27793:41;27778:57;;27907:18;;;;27862:15;;;;27735:10;;27705:234;;;27709:3;27967:13;27958:7;27955:26;27952:187;;;28119:1;28115:6;28109:3;28093:13;28090:1;28086:21;28082:31;28078:44;28074:49;28061:9;28048:11;28044:27;28031:41;28027:97;28019:6;28012:113;27952:187;;;28199:2;28183:13;28179:2;28175:22;28171:31;28159:10;28152:51;27493:1012;;;;;;;;26786:1725;;:::o;28516:127::-;28577:10;28572:3;28568:20;28565:1;28558:31;28608:4;28605:1;28598:15;28632:4;28629:1;28622:15;28648:120;28688:1;28714;28704:35;;28719:18;;:::i;:::-;-1:-1:-1;28753:9:60;;28648:120::o;28773:127::-;28834:10;28829:3;28825:20;28822:1;28815:31;28865:4;28862:1;28855:15;28889:4;28886:1;28879:15;28905:135;28944:3;28965:17;;;28962:43;;28985:18;;:::i;:::-;-1:-1:-1;29032:1:60;29021:13;;28905:135::o;29045:128::-;29112:9;;;29133:11;;;29130:37;;;29147:18;;:::i;29178:326::-;29273:4;29331:11;29318:25;29425:2;29421:7;29410:8;29394:14;29390:29;29386:43;29366:18;29362:68;29352:96;;29444:1;29441;29434:12;29352:96;29465:33;;;;;29178:326;-1:-1:-1;;29178:326:60:o;29509:258::-;29582:4;29576:11;;;29614:17;;-1:-1:-1;;;;;29646:34:60;;29682:22;;;29643:62;29640:88;;;29708:18;;:::i;:::-;29744:4;29737:24;29509:258;:::o;29772:254::-;29845:2;29839:9;29887:4;29875:17;;-1:-1:-1;;;;;29907:34:60;;29943:22;;;29904:62;29901:88;;;29969:18;;:::i;30031:254::-;30104:2;30098:9;30146:4;30134:17;;-1:-1:-1;;;;;30166:34:60;;30202:22;;;30163:62;30160:88;;;30228:18;;:::i;30290:275::-;30361:2;30355:9;30426:2;30407:13;;-1:-1:-1;;30403:27:60;30391:40;;-1:-1:-1;;;;;30446:34:60;;30482:22;;;30443:62;30440:88;;;30508:18;;:::i;:::-;30544:2;30537:22;30290:275;;-1:-1:-1;30290:275:60:o;30570:183::-;30630:4;-1:-1:-1;;;;;30652:30:60;;30649:56;;;30685:18;;:::i;:::-;-1:-1:-1;30730:1:60;30726:14;30742:4;30722:25;;30570:183::o;30758:1115::-;30813:5;30861:4;30849:9;30844:3;30840:19;30836:30;30833:50;;;30879:1;30876;30869:12;30833:50;30901:23;;:::i;:::-;30892:32;;30961:9;30948:23;30980:32;31004:7;30980:32;:::i;:::-;31021:22;;31062:2;31100:18;;;31087:32;-1:-1:-1;;;;;31131:30:60;;31128:50;;;31174:1;31171;31164:12;31128:50;31197:22;;31250:4;31242:13;;31238:23;-1:-1:-1;31228:51:60;;31275:1;31272;31265:12;31228:51;31311:2;31298:16;31334:60;31350:43;31390:2;31350:43;:::i;:::-;31334:60;:::i;:::-;31428:15;;;31510:1;31506:10;;;;31498:19;;31494:28;;;31459:12;;;;31534:15;;;31531:35;;;31562:1;31559;31552:12;31531:35;31586:11;;;;31606:223;31622:6;31617:3;31614:15;31606:223;;;31704:3;31691:17;31721:33;31746:7;31721:33;:::i;:::-;31767:20;;31639:12;;;;31807;;;;31606:223;;;31861:5;31856:2;31849:5;31845:14;31838:29;;;;;;30758:1115;;;;:::o;31878:198::-;31984:9;32021:49;32055:14;32048:5;32021:49;:::i;32081:574::-;32203:4;32209:6;32269:11;32256:25;32363:2;32359:7;32348:8;32332:14;32328:29;32324:43;32304:18;32300:68;32290:96;;32382:1;32379;32372:12;32290:96;32409:33;;32461:20;;;-1:-1:-1;;;;;;32493:30:60;;32490:50;;;32536:1;32533;32526:12;32490:50;32569:4;32557:17;;-1:-1:-1;32620:1:60;32616:14;;;32600;32596:35;32586:46;;32583:66;;;32645:1;32642;32635:12;32660:295;32730:5;32789:3;32776:17;32875:2;32871:7;32860:8;32844:14;32840:29;32836:43;32816:18;32812:68;32802:96;;32894:1;32891;32884:12;32802:96;32916:33;;;;32660:295;-1:-1:-1;;32660:295:60:o;32960:500::-;33018:5;33025:6;33085:3;33072:17;33171:2;33167:7;33156:8;33140:14;33136:29;33132:43;33112:18;33108:68;33098:96;;33190:1;33187;33180:12;33098:96;33218:33;;33322:4;33309:18;;;-1:-1:-1;33270:21:60;;-1:-1:-1;;;;;;33339:30:60;;33336:50;;;33382:1;33379;33372:12;33336:50;33429:6;33413:14;33409:27;33402:5;33398:39;33395:59;;;33450:1;33447;33440:12;33465:266;33553:6;33548:3;33541:19;33605:6;33598:5;33591:4;33586:3;33582:14;33569:43;-1:-1:-1;33657:1:60;33632:16;;;33650:4;33628:27;;;33621:38;;;;33713:2;33692:15;;;-1:-1:-1;;33688:29:60;33679:39;;;33675:50;;33465:266::o;33736:420::-;33798:3;33844:5;33831:19;33859:31;33882:7;33859:31;:::i;:::-;33924:4;33911:18;33899:31;;33973:55;34022:4;34011:16;;34015:5;33973:55;:::i;:::-;34060:4;34053;34048:3;34044:14;34037:28;34081:69;34144:4;34139:3;34135:14;34121:12;34107;34081:69;:::i;34161:1553::-;34223:3;34261:56;34311:5;34304;34261:56;:::i;:::-;34338:4;34333:3;34326:17;34373:3;34368;34364:13;34414:12;34401:26;34436:32;34460:7;34436:32;:::i;:::-;-1:-1:-1;;;;;34537:16:60;;;34495:2;34521:14;;34514:40;34573:4;;34625:21;;;34612:35;34698:14;34694:33;;;-1:-1:-1;;34690:47:60;34666:72;;34656:100;;34752:1;34749;34742:12;34656:100;34780:37;;;34885:16;;;;34924:2;34840:21;34913:14;;;34910:34;;;34940:1;34937;34930:12;34910:34;34996:6;34993:1;34989:14;34973;34969:35;34960:7;34956:49;34953:69;;;35018:1;35015;35008:12;34953:69;35052:4;35047:2;35038:12;;35031:26;35092:20;;;;-1:-1:-1;35191:1:60;;35139:3;35130:13;;;35201:289;35215:6;35212:1;35209:13;35201:289;;;35292:6;35279:20;35312:33;35337:7;35312:33;:::i;:::-;-1:-1:-1;;;;;35372:33:60;35358:48;;35465:15;;;;35402:1;35230:9;;;;;35428:14;;;;35201:289;;;35205:3;35521:65;35582:2;35575:5;35571:14;35564:5;35521:65;:::i;:::-;35499:87;;35627:3;35620:5;35616:15;35611:2;35606:3;35602:12;35595:37;35648:60;35702:5;35686:14;35648:60;:::i;:::-;35641:67;34161:1553;-1:-1:-1;;;;;;;34161:1553:60:o;35719:131::-;-1:-1:-1;;;;;;35793:32:60;;35783:43;;35773:71;;35840:1;35837;35830:12;35855:132;35922:20;;35951:30;35922:20;35951:30;:::i;35992:128::-;36057:20;;36086:28;36057:20;36086:28;:::i;36125:2545::-;36370:2;36422:21;;;36395:18;;;36478:22;;;36341:4;;36519:2;36537:18;;;36601:1;36597:14;;;36582:30;;36578:39;;36640:6;36341:4;;36695:1946;36711:6;36706:3;36703:15;36695:1946;;;36778:2;36774:7;36834:2;36822:9;36814:6;36810:22;36806:31;36801:3;36794:44;36861:58;36912:6;36904;36861:58;:::i;:::-;36971:2;36958:16;37054:3;37050:8;37045:2;37029:14;37025:23;37021:38;37001:18;36997:63;36987:91;;37074:1;37071;37064:12;36987:91;37144:18;;;37104:27;;37195:56;37104:27;;37195:56;:::i;:::-;37274:4;37315:2;37310;37302:6;37298:15;37291:27;37345:69;37409:3;37401:6;37397:16;37383:12;37345:69;:::i;:::-;37331:83;;37449:65;37510:2;37503:5;37499:14;37492:5;37449:65;:::i;:::-;37537:2;37601;37592:6;37584;37580:19;37576:28;37571:2;37563:6;37559:15;37552:53;37632:61;37686:6;37670:14;37632:61;:::i;:::-;37618:75;;37716:3;37706:13;;37780:2;37773:5;37769:14;37756:28;37751:2;37743:6;37739:15;37732:53;37837:2;37830:5;37826:14;37813:28;37798:43;;37854:32;37878:7;37854:32;:::i;:::-;-1:-1:-1;;;;;37949:32:60;;37909:3;37932:15;;;37925:57;;;;38023:14;;;38010:28;;38051:32;38010:28;38051:32;:::i;:::-;-1:-1:-1;;;;;;38120:34:60;;38103:15;;;38096:59;38204:53;38242:14;;;38246:5;38204:53;:::i;:::-;38168:89;;;;;;;38320:2;38311:6;38303;38299:19;38295:28;38289:3;38281:6;38277:16;38270:54;38348:63;38404:6;38390:12;38374:14;38348:63;:::i;:::-;38337:74;;;;;38446:28;38470:2;38466;38462:11;38446:28;:::i;:::-;1663:13;1656:21;38519:15;;;1644:34;;;;38619:12;;;;;-1:-1:-1;38584:15:60;;;;36737:1;36728:11;36695:1946;;;-1:-1:-1;38658:6:60;;36125:2545;-1:-1:-1;;;;;;;;;36125:2545:60:o;40246:183::-;-1:-1:-1;;;;;40365:10:60;;;40353;;;40349:27;;40388:12;;;40385:38;;;40403:18;;:::i;40434:191::-;40465:1;-1:-1:-1;;;;;40529:10:60;;;;40548:37;;40565:18;;:::i;:::-;40603:10;;40599:20;;;;;40434:191;-1:-1:-1;;40434:191:60:o;40630:530::-;40672:5;40725:3;40718:4;40710:6;40706:17;40702:27;40692:55;;40743:1;40740;40733:12;40692:55;40766:20;;-1:-1:-1;;;;;40798:26:60;;40795:52;;;40827:18;;:::i;:::-;40871:55;40914:2;40895:13;;-1:-1:-1;;40891:27:60;40920:4;40887:38;40871:55;:::i;:::-;40951:2;40942:7;40935:19;40997:3;40990:4;40985:2;40977:6;40973:15;40969:26;40966:35;40963:55;;;41014:1;41011;41004:12;40963:55;41079:2;41072:4;41064:6;41060:17;41053:4;41044:7;41040:18;41027:55;41127:1;41102:16;;;41120:4;41098:27;41091:38;;;;41106:7;40630:530;-1:-1:-1;;;40630:530:60:o;41165:946::-;41222:5;41270:4;41258:9;41253:3;41249:19;41245:30;41242:50;;;41288:1;41285;41278:12;41242:50;41310:23;;:::i;:::-;41301:32;-1:-1:-1;41356:23:60;;-1:-1:-1;;;;;41428:14:60;;;41425:34;;;41455:1;41452;41445:12;41425:34;41482:55;41533:3;41524:6;41513:9;41509:22;41482:55;:::i;:::-;41475:5;41468:70;41591:2;41580:9;41576:18;41563:32;41547:48;;41620:2;41610:8;41607:16;41604:36;;;41636:1;41633;41626:12;41604:36;41659:24;;;;41713:4;41699:12;;;41695:23;41692:43;;;41731:1;41728;41721:12;41692:43;41759:23;;:::i;:::-;41819:2;41806:16;41831:31;41854:7;41831:31;:::i;:::-;41871:24;;41941:2;41933:11;;41920:25;41957:16;;;41954:36;;;41986:1;41983;41976:12;41954:36;42024:40;42060:3;42049:8;42045:2;42041:17;42024:40;:::i;:::-;42019:2;42010:7;42006:16;41999:66;;42097:7;42092:2;42085:5;42081:14;42074:31;;;;41165:946;;;;:::o;42116:2152::-;42178:5;42231:3;42224:4;42216:6;42212:17;42208:27;42198:55;;42249:1;42246;42239:12;42198:55;42285:6;42272:20;42311:4;42335:60;42351:43;42391:2;42351:43;:::i;42335:60::-;42429:15;;;42515:1;42511:10;;;;42499:23;;42495:32;;;42460:12;;;;42539:15;;;42536:35;;;42567:1;42564;42557:12;42536:35;42603:2;42595:6;42591:15;42615:1624;42631:6;42626:3;42623:15;42615:1624;;;42704:17;;-1:-1:-1;;;;;42778:19:60;;;42775:39;;;42810:1;42807;42800:12;42775:39;42837:24;;;;-1:-1:-1;;42934:4:60;42915:12;;;42911:21;;42907:32;42904:52;;;42952:1;42949;42942:12;42904:52;42982:23;;:::i;:::-;43055:2;43051;43047:11;43034:25;43088:2;43078:8;43075:16;43072:36;;;43104:1;43101;43094:12;43072:36;43131:17;;43191:4;43172:12;;;43168:21;;43164:32;43161:52;;;43209:1;43206;43199:12;43161:52;43241:23;;:::i;:::-;43226:38;;43314:2;43310;43306:11;43293:25;43347:2;43337:8;43334:16;43331:36;;;43363:1;43360;43353:12;43331:36;43396:61;43453:3;43448:2;43437:8;43433:2;43429:17;43425:26;43396:61;:::i;:::-;43387:7;43380:78;;43508:4;43504:2;43500:13;43487:27;43543:2;43533:8;43530:16;43527:36;;;43559:1;43556;43549:12;43527:36;43601:61;43658:3;43653:2;43642:8;43638:2;43634:17;43630:26;43601:61;:::i;:::-;43596:2;43587:7;43583:16;43576:87;;43724:2;43720;43716:11;43703:25;43696:4;43687:7;43683:18;43676:53;43767:31;43793:3;43789:2;43785:12;43767:31;:::i;:::-;43762:2;43753:7;43749:16;43742:57;43838:31;43864:3;43860:2;43856:12;43838:31;:::i;:::-;43832:3;43823:7;43819:17;43812:58;43920:4;43916:2;43912:13;43899:27;43955:2;43945:8;43942:16;43939:36;;;43971:1;43968;43961:12;43939:36;44014:49;44059:3;44054:2;44043:8;44039:2;44035:17;44031:26;44014:49;:::i;:::-;44008:3;43999:7;43995:17;43988:76;;;44091:7;44084:5;44077:22;44135:30;44159:4;44155:2;44151:13;44135:30;:::i;:::-;44119:14;;;44112:54;44179:18;;-1:-1:-1;;;44217:12:60;;;;42648;;42615:1624;;44273:2452;44337:5;44390:3;44383:4;44375:6;44371:17;44367:27;44357:55;;44408:1;44405;44398:12;44357:55;44444:6;44431:20;44470:4;44494:60;44510:43;44550:2;44510:43;:::i;44494:60::-;44588:15;;;44650:1;44690:11;;;44678:24;;44674:33;;;44619:12;;;;44576:3;44719:15;;;44716:35;;;44747:1;44744;44737:12;44716:35;44783:2;44775:6;44771:15;44795:1901;44811:6;44806:3;44803:15;44795:1901;;;44884:17;;-1:-1:-1;;;;;44958:19:60;;;44955:109;;;45018:1;45047:2;45043;45036:14;44955:109;45087:24;;;;45134:4;45162:12;;;-1:-1:-1;;45158:26:60;45154:35;-1:-1:-1;45151:125:60;;;45230:1;45259:2;45255;45248:14;45151:125;45302:23;;:::i;:::-;45375:2;45371;45367:11;45354:25;45408:2;45398:8;45395:16;45392:106;;;45452:1;45481:2;45477;45470:14;45392:106;45525:59;45580:3;45575:2;45564:8;45560:2;45556:17;45552:26;45525:59;:::i;:::-;45518:5;45511:74;;45635:2;45631;45627:11;45614:25;45668:2;45658:8;45655:16;45652:109;;;45713:1;45743:3;45738;45731:16;45652:109;45793:8;45789:2;45785:17;45774:28;;;45843:3;45838:2;45833:3;45829:12;45825:22;45815:123;;45890:1;45879:12;;45920:3;45915;45908:16;45815:123;45984:2;45979:3;45975:12;45962:26;45951:37;;46014:61;46030:44;46070:3;46030:44;:::i;46014:61::-;46119:18;;;46215:12;;;46206:22;;46202:31;;;46159:14;;;;46249:17;;;46246:110;;;46308:1;46338:3;46333;46326:16;46246:110;46382:12;;;;46407:174;46425:8;46418:5;46415:19;46407:174;;;46507:19;;46493:34;;46446:14;;;;46553;;;;46407:174;;;46601:14;;;46594:29;-1:-1:-1;46636:18:60;;-1:-1:-1;;;46674:12:60;;;;44828;;44795:1901;;;-1:-1:-1;46714:5:60;;44273:2452;-1:-1:-1;;;;;;;44273:2452:60:o;46730:1302::-;46856:9;46915:4;46907:5;46891:14;46887:26;46883:37;46880:57;;;46933:1;46930;46923:12;46880:57;46961:23;;:::i;:::-;47007:19;;-1:-1:-1;;;;;47075:14:60;;;47072:34;;;47102:1;47099;47092:12;47072:34;47131:62;47178:14;47169:6;47162:5;47158:18;47131:62;:::i;:::-;47122:7;47115:79;47228:33;47257:2;47250:5;47246:14;47228:33;:::i;:::-;47223:2;47214:7;47210:16;47203:59;47320:2;47313:5;47309:14;47296:28;47291:2;47282:7;47278:16;47271:54;47374:2;47367:5;47363:14;47350:28;47334:44;;47403:2;47393:8;47390:16;47387:36;;;47419:1;47416;47409:12;47387:36;47457:74;47516:14;47505:8;47498:5;47494:20;47457:74;:::i;:::-;47452:2;47443:7;47439:16;47432:100;47581:3;47574:5;47570:15;47557:29;47541:45;;47611:2;47601:8;47598:16;47595:36;;;47627:1;47624;47617:12;47595:36;47666:76;47727:14;47716:8;47709:5;47705:20;47666:76;:::i;:::-;47660:3;47651:7;47647:17;47640:103;47802:3;47795:5;47791:15;47778:29;47772:3;47763:7;47759:17;47752:56;47857:3;47850:5;47846:15;47833:29;47817:45;;47887:2;47877:8;47874:16;47871:36;;;47903:1;47900;47893:12;47871:36;;47942:54;47981:14;47970:8;47963:5;47959:20;47942:54;:::i;:::-;47936:3;47923:17;;47916:81;-1:-1:-1;47927:7:60;46730:1302;-1:-1:-1;;46730:1302:60:o;48037:174::-;48081:11;48133:3;48120:17;48146:30;48170:5;48146:30;:::i;48216:179::-;48318:11;;-1:-1:-1;;;;;;48314:41:60;-1:-1:-1;;;;;48357:30:60;;;;48311:77;;;;48298:91;;48216:179::o;48400:168::-;48473:9;;;48504;;48521:15;;;48515:22;;48501:37;48491:71;;48542:18;;:::i;48573:322::-;48668:5;48662:12;48697:1;48690:5;48683:16;48725:6;48718:14;48708:181;;48766:5;48763:1;48756:16;48810:4;48807:1;48797:18;48828:51;48871:6;48865:4;48861:17;48855:4;48828:51;:::i;48900:395::-;-1:-1:-1;;;48980:22:60;;48977:48;;;49005:18;;:::i;:::-;49054:5;49048:12;49083:6;49076:5;49069:21;49113:6;49105;49102:18;49099:190;;;49153:5;49150:1;49143:16;49197:4;49194:1;49184:18;49215:64;49271:6;49265:4;49261:17;49252:6;49246:4;49242:17;49215:64;:::i;49300:153::-;49378:1;49372:4;49365:15;49389:58;49444:1;49438:4;49434:12;49389:58;:::i;49458:512::-;49527:38;49559:4;49553:11;49527:38;:::i;:::-;49591:6;49584:14;49574:390;;49640:2;49632:6;49629:14;49661:1;49656:258;;;;-1:-1:-1;;49950:1:60;49937:15;;2648:312:19:o;49656:258:60:-;49691:4;49688:1;49681:15;49738:4;49735:1;49725:18;49760:76;49830:2;49822:6;49818:15;49815:1;49811:23;49805:4;49801:34;49797:1;49791:4;49787:12;49760:76;:::i;:::-;49866:1;49853:15;;;49885;;49622:332;49574:390;49458:512;:::o;49975:235::-;50055:1;50049:4;50042:15;50066:58;50121:1;50115:4;50111:12;50066:58;:::i;:::-;50154:1;50150;50144:4;50140:12;50133:23;50165:39;50201:1;50195:4;50191:12;50165:39;:::i;50215:2836::-;50337:73;50404:5;50397;50337:73;:::i;:::-;50447:2;50434:16;50459:32;50483:7;50459:32;:::i;:::-;50500:60;50552:7;50546:4;50500:60;:::i;:::-;;50579:1;50617:2;50611:4;50607:13;50639:2;50684:103;50783:2;50779;50775:11;50771:2;50684:103;:::i;:::-;50650:137;-1:-1:-1;;;;;;50836:21:60;;;50833:47;;;50860:18;;:::i;:::-;50889:65;50940:13;50928:10;50889:65;:::i;:::-;51007:1;51017:22;;;51060:17;;;;51007:1;51106:242;51120:13;51117:1;51114:20;51106:242;;;51205:6;51192:20;51225:33;51250:7;51225:33;:::i;:::-;51316:12;;;51309:29;51281:15;;;;51142:10;;51106:242;;;51110:3;51387:1;51381:4;51377:12;51357:32;;51408:82;51486:2;51479:5;51475:14;51468:5;51408:82;:::i;:::-;51398:92;;51527:2;51514:16;51499:31;;51539;51562:7;51539:31;:::i;:::-;51607:19;;-1:-1:-1;;51603:34:60;51652:4;51639:18;;51600:58;51579:80;;;51698:1;51688:12;;;51745:52;51785:11;;;51789:2;51745:52;:::i;:::-;51709:88;;;;51827:2;51812:13;51809:21;51806:47;;;51833:18;;:::i;:::-;51862:120;51968:13;51920:46;51952:12;51946:19;51920:46;:::i;:::-;51906:12;51862:120;:::i;:::-;52008:2;51991:19;;52044:2;52029:13;52026:21;52061:1;52056:692;;;;52794:2;52812:13;52809:115;;;-1:-1:-1;52880:29:60;;;52867:43;52809:115;52958:76;53020:13;53011:7;52958:76;:::i;:::-;52944:12;52937:98;;52019:1026;;52056:692;-1:-1:-1;;52092:27:60;;52146:43;52176:12;52146:43;:::i;:::-;52213:2;52228:242;52244:7;52239:3;52236:16;52228:242;;;52335:29;;;52322:43;52307:59;;52438:18;;;;52393:15;;;;52262:12;;52228:242;;;52232:3;52498:13;52489:7;52486:26;52483:189;;;52652:1;52648:6;52642:3;52626:13;52623:1;52619:21;52615:31;52611:44;52607:49;52594:9;52579:13;52575:29;52562:43;52558:99;52550:6;52543:115;52483:189;-1:-1:-1;;;;;52710:22:60;;;52706:31;;;52685:53;;;-1:-1:-1;;;;50215:2836:60:o;53056:174::-;53100:11;53152:3;53139:17;53165:30;53189:5;53165:30;:::i;53452:170::-;53494:11;53546:3;53533:17;53559:28;53581:5;53559:28;:::i;53824:3938::-;53971:5;53958:19;54056:3;54052:8;54044:5;54028:14;54024:26;54020:41;54000:18;53996:66;53986:94;;54076:1;54073;54066:12;53986:94;54101:30;;54150:71;54101:30;;54150:71;:::i;:::-;54240:67;54304:2;54300;54240:67;:::i;:::-;54344:2;54331:16;54356:32;54380:7;54356:32;:::i;:::-;54397:60;54449:7;54443:4;54397:60;:::i;:::-;;54476:1;54514:2;54508:4;54504:13;54536:2;54581:103;54680:2;54676;54672:11;54668:2;54581:103;:::i;:::-;54547:137;-1:-1:-1;;;;;;54733:21:60;;;54730:47;;;54757:18;;:::i;:::-;54786:65;54837:13;54825:10;54786:65;:::i;:::-;54904:1;54914:22;;;54957:17;;;;54904:1;55003:242;55017:13;55014:1;55011:20;55003:242;;;55102:6;55089:20;55122:33;55147:7;55122:33;:::i;:::-;55213:12;;;55206:29;55178:15;;;;55039:10;;55003:242;;;55007:3;55284:1;55278:4;55274:12;55254:32;;55305:76;55377:2;55373;55369:11;55365:2;55305:76;:::i;:::-;55295:86;;55418:2;55405:16;55390:31;;55430;55453:7;55430:31;:::i;:::-;55498:19;;-1:-1:-1;;55494:34:60;55543:4;55530:18;;55491:58;55470:80;;;55589:1;55579:12;;;55636:52;55676:11;;;55680:2;55636:52;:::i;:::-;55600:88;;;;55718:2;55703:13;55700:21;55697:47;;;55724:18;;:::i;:::-;55753:120;55859:13;55811:46;55843:12;55837:19;55811:46;:::i;55753:120::-;55899:2;55882:19;;55935:2;55920:13;55917:21;55952:1;55947:692;;;;56685:2;56670:17;;56703:13;56700:115;;;56790:9;56775:13;56771:29;56758:43;56747:54;;56700:115;56849:76;56911:13;56902:7;56849:76;:::i;:::-;56835:12;56828:98;55910:1026;;55947:692;-1:-1:-1;;55983:27:60;;;-1:-1:-1;56037:43:60;56067:12;56037:43;:::i;:::-;56104:2;56119:242;56135:7;56130:3;56127:16;56119:242;;;56226:29;;;56213:43;56198:59;;56329:18;;;;56284:15;;;;56153:12;;56119:242;;;56123:3;56389:13;56380:7;56377:26;56374:189;;;56543:1;56539:6;56533:3;56517:13;56514:1;56510:21;56506:31;56502:44;56498:49;56485:9;56470:13;56466:29;56453:43;56449:99;56441:6;56434:115;56374:189;;56625:2;56609:13;56605:2;56601:22;56597:31;56583:12;56576:53;55910:1026;;;;;56945:171;57035:80;57111:2;57105:4;57101:13;57095:4;57035:80;:::i;:::-;57031:1;57025:4;57021:12;56945:171;:::i;:::-;57169:2;57163:4;57159:13;57146:27;57142:1;57136:4;57132:12;57125:49;57213:1;57207:4;57203:12;57183:32;;57224:102;57284:41;57321:2;57315:4;57311:13;57284:41;:::i;:::-;57270:12;57224:102;:::i;:::-;57335:103;57395:42;57432:3;57426:4;57422:14;57395:42;:::i;:::-;57381:12;53327:11;;-1:-1:-1;;;;53363:33:60;53406:3;53402:15;;;;-1:-1:-1;;;53398:41:60;53360:80;;;;53347:94;;53235:212;57335:103;57483:57;57535:3;57529:4;57525:14;57519:4;57483:57;:::i;:::-;57447:93;;;;57549:100;57635:13;57620;57615:2;57609:4;57605:13;57549:100;:::i;:::-;57658:98;57715:40;57751:2;57744:5;57740:14;57715:40;:::i;:::-;57710:2;57704:4;57700:13;53741:3;53737:8;53730:4;53724:11;53720:26;53807:3;53798:5;53791:13;53784:21;53780:31;53771:7;53768:44;53762:4;53755:58;;53627:192;;;57658:98;;;;;;;53824:3938;;:::o;57767:1583::-;-1:-1:-1;;;57912:19:60;;57909:45;;;57934:18;;:::i;:::-;57983:4;57977:11;58010:3;58004:4;57997:17;58034:6;58029:3;58026:15;58023:886;;;58074:2;58112:6;58108:2;58104:15;58166:2;58157:7;58153:16;58145:6;58142:28;58132:62;;58174:18;;:::i;:::-;58232:3;58228:2;58224:12;58282:2;58271:9;58267:18;58262:3;58259:27;58249:61;;58290:18;;:::i;:::-;58333:1;58347:16;;;58402:4;58388:19;;58430:18;;;;58474:20;;;;;58507:392;58525:2;58518:5;58515:13;58507:392;;;58587:44;58625:5;58587:44;:::i;:::-;58648:52;58697:1;58690:5;58686:13;58648:52;:::i;:::-;58739:2;58735:1;58728:5;58724:13;58717:25;58781:2;58777:1;58770:5;58766:13;58759:25;58801:41;58838:2;58831:5;58827:14;58801:41;:::i;:::-;58882:2;58877;58870:5;58866:14;58859:26;58551:2;58544:5;58540:14;58531:23;;58507:392;;;58511:3;;;;58023:886;;58932:5;58965:35;58995:4;58965:35;:::i;:::-;59018:1;59028:316;59042:3;59039:1;59036:10;59028:316;;;59088:160;59173:74;59240:6;59233:5;59173:74;:::i;:::-;59160:11;59088:160;:::i;:::-;59283:2;59271:15;;;;;59331:2;59314:20;;;;;59061:1;59054:9;59028:316;;59355:446;59450:5;59444:12;59475:1;59499:2;59492:5;59485:17;59528:6;59521:14;59511:284;;59570:5;59566:2;59559:17;59615:4;59611:2;59601:19;59653:6;59647:4;59643:17;59703:82;59721:2;59714:5;59711:13;59703:82;;;59780:2;59773:5;59766:17;59747:1;59740:5;59736:13;59727:22;;59703:82;;59806:522;-1:-1:-1;;;59886:22:60;;59883:48;;;59911:18;;:::i;:::-;59960:5;59954:12;59989:6;59982:5;59975:21;60019:6;60011;60008:18;60005:317;;;60059:1;60073:17;;;60129:4;60115:19;;60200:17;;;;60157;;60230:82;60248:2;60241:5;60238:13;60230:82;;;60307:2;60300:5;60293:17;60274:1;60267:5;60263:13;60254:22;;60230:82;;60333:1810;60455:73;60522:5;60515;60455:73;:::i;:::-;60565:2;60552:16;60577:32;60601:7;60577:32;:::i;:::-;60618:60;60670:7;60664:4;60618:60;:::i;:::-;;60697:1;60735:2;60729:4;60725:13;60757:2;60802:103;60901:2;60897;60893:11;60889:2;60802:103;:::i;:::-;60768:137;-1:-1:-1;;;;;;60954:21:60;;;60951:47;;;60978:18;;:::i;:::-;61007:65;61058:13;61046:10;61007:65;:::i;:::-;61125:1;61135:22;;;61178:17;;;;61125:1;61224:242;61238:13;61235:1;61232:20;61224:242;;;61323:6;61310:20;61343:33;61368:7;61343:33;:::i;:::-;61434:12;;;61427:29;61399:15;;;;61260:10;;61224:242;;;61228:3;61505:1;61499:4;61495:12;61475:32;;61552:109;61657:2;61650:5;61646:14;61639:5;61552:109;:::i;:::-;61516:145;;;;61691:2;61676:13;61673:21;61670:47;;;61697:18;;:::i;:::-;61726:67;61779:13;61765:12;61726:67;:::i;:::-;61840:24;;;-1:-1:-1;61887:17:60;;;;61935:202;61951:13;61946:3;61943:22;61935:202;;;62022:22;;62106:16;;;62099:28;62069:17;;;;61975:12;;61935:202;;62148:1383;-1:-1:-1;;;62297:19:60;;62294:45;;;62319:18;;:::i;:::-;62368:4;62362:11;62395:3;62389:4;62382:17;62419:6;62414:3;62411:15;62408:679;;;62459:1;62496:6;62492:2;62488:15;62550:2;62541:7;62537:16;62529:6;62526:28;62516:62;;62558:18;;:::i;:::-;62616:3;62612:2;62608:12;62666:2;62655:9;62651:18;62646:3;62643:27;62633:61;;62674:18;;:::i;:::-;62714:1;62707:15;;;62760:4;62747:18;;62788;;;;62832:20;62865:212;62883:2;62876:5;62873:13;62865:212;;;62945:42;62981:5;62945:42;:::i;:::-;63004:59;63060:1;63053:5;63049:13;63004:59;:::i;:::-;62898:14;;62865:212;;;62869:3;;;62408:679;;63110:5;63143:35;63173:4;63143:35;:::i;:::-;63196:1;63206:319;63220:3;63217:1;63214:10;63206:319;;;63266:164;63355:74;63422:6;63415:5;63355:74;:::i;:::-;63342:11;63266:164;:::i;:::-;63465:2;63453:15;;;;;63513:1;63496:19;;;;;63239:1;63232:9;63206:319;;63536:2245;63707:73;63774:5;63767;63707:73;:::i;:::-;63817:2;63804:16;63829:32;63853:7;63829:32;:::i;:::-;63870:60;63922:7;63916:4;63870:60;:::i;:::-;;63949:1;63987:2;63981:4;63977:13;64009:2;64054:103;64153:2;64149;64145:11;64141:2;64054:103;:::i;:::-;64020:137;-1:-1:-1;;;;;;64169:37:60;;64166:63;;;64209:18;;:::i;:::-;64238:65;64289:13;64277:10;64238:65;:::i;:::-;64353:1;64346:21;;;64388:16;;;;64432:281;64446:13;64443:1;64440:20;64432:281;;;64531:6;64518:20;64551:33;64576:7;64551:33;:::i;:::-;64679:12;;;64672:31;64644:15;;;;64468:10;;64432:281;;;64436:3;;64722:103;64782:42;64820:2;64813:5;64809:14;64782:42;:::i;:::-;64778:1;64772:4;64768:12;64722:103;:::i;:::-;;;;;64879:2;64872:5;64868:14;64855:28;64851:1;64845:4;64841:12;64834:50;64929:109;65034:2;65027:5;65023:14;65016:5;64929:109;:::i;:::-;65047:144;65177:13;65162;65158:1;65152:4;65148:12;65047:144;:::i;:::-;;;65236:110;65341:3;65334:5;65330:15;65323:5;65236:110;:::i;:::-;65355:148;65489:13;65474;65470:1;65464:4;65460:12;65355:148;:::i;:::-;;;65557:3;65550:5;65546:15;65533:29;65529:1;65523:4;65519:12;65512:51;65608:59;65662:3;65655:5;65651:15;65644:5;65608:59;:::i;:::-;65676:99;65761:13;65746;65742:1;65736:4;65732:12;65676:99;:::i;66015:314::-;66230:25;;;-1:-1:-1;;;;;66291:31:60;66286:2;66271:18;;66264:59;66218:2;66203:18;;66015:314::o;66334:1429::-;66447:3;66441:4;66438:13;66435:26;;66454:5;;66334:1429::o;66435:26::-;66484:37;66516:3;66510:10;66484:37;:::i;:::-;-1:-1:-1;;;;;66533:30:60;;66530:56;;;66566:18;;:::i;:::-;66595:97;66685:6;66645:38;66677:4;66671:11;66645:38;:::i;:::-;66639:4;66595:97;:::i;:::-;66718:1;66746:2;66738:6;66735:14;66763:1;66758:748;;;;67550:1;67567:6;67564:89;;;-1:-1:-1;67619:19:60;;;67613:26;67564:89;67679:67;67739:6;67732:5;67679:67;:::i;:::-;67673:4;67666:81;;66728:1029;;66758:748;-1:-1:-1;;66794:20:60;;66840:34;66870:3;66840:34;:::i;:::-;66901:35;66931:4;66901:35;:::i;:::-;66958:9;66980:251;66994:7;66991:1;66988:14;66980:251;;;67076:21;;;67070:28;67055:44;;67126:1;67199:18;;;;67154:15;;;;67017:4;67010:12;66980:251;;;66984:3;67259:6;67250:7;67247:19;67244:203;;;67320:21;;;67314:28;-1:-1:-1;;67405:1:60;67401:14;;;67417:3;67397:24;67393:37;67389:42;67374:58;67359:74;;67244:203;-1:-1:-1;;;;;67493:1:60;67477:14;;;67473:22;67460:36;;-1:-1:-1;66334:1429:60:o;67909:741::-;68037:12;;-1:-1:-1;;;;;68033:37:60;68021:50;;68007:4;68156;68176:12;;;68169:26;;;68067:1;68123:14;;;68244:19;;67998:14;;;68272:20;;;67968:3;68331:23;;;68377:16;;;67968:3;;68377:16;;67968:3;;68319:2;68310:12;;;68421:202;68435:6;68432:1;68429:13;68421:202;;;68503:13;;-1:-1:-1;;;;;68499:39:60;68485:54;;68598:15;;;;68450:10;;;;68561:14;;;;68421:202;;;-1:-1:-1;68639:5:60;67909:741;-1:-1:-1;;;;;;;67909:741:60:o;68781:771::-;68830:3;68871:5;68865:12;68900:36;68926:9;68900:36;:::i;:::-;68945:19;;;68983:4;69006:1;69023:18;;;69050:146;;;;69210:1;69205:341;;;;69016:530;;69050:146;-1:-1:-1;;69092:24:60;;69078:12;;;69071:46;69164:14;;69157:22;69154:1;69150:30;69141:40;;69137:49;;;-1:-1:-1;69050:146:60;;69205:341;69236:5;69233:1;69226:16;69283:2;69280:1;69270:16;69308:1;69322:174;69336:6;69333:1;69330:13;69322:174;;;69423:14;;69405:11;;;69401:20;;69394:44;69466:16;;;;69351:10;;69322:174;;;69520:11;;69516:20;;;-1:-1:-1;;69016:530:60;;;;;;68781:771;;;;:::o;69557:394::-;69648:4;69643:3;69636:17;69618:3;69674:57;69725:4;69720:3;69716:14;69709:5;69674:57;:::i;:::-;69773:3;69767:4;69763:14;69756:4;69751:3;69747:14;69740:38;69829:4;69821;69814:5;69810:16;69804:23;69800:34;69794:4;69787:48;69868:4;69861;69855;69851:15;69844:29;69889:56;69939:4;69933;69929:15;69925:1;69918:5;69914:13;69889:56;:::i;69956:1583::-;70025:3;70056;70088:5;70082:12;70115:6;70110:3;70103:19;70141:4;70170:2;70165:3;70161:12;70154:19;;70226:2;70216:6;70213:1;70209:14;70202:5;70198:26;70194:35;70248:5;70245:1;70238:16;70290:2;70287:1;70277:16;70311:1;70321:1192;70335:6;70332:1;70329:13;70321:1192;;;70422:2;70418:7;70410:5;70404:4;70400:16;70396:30;70391:3;70384:43;70450:4;70480:2;70474:4;70467:16;70506:4;70545:2;70540;70534:4;70530:13;70523:25;70575:60;70630:3;70624:4;70620:14;70612:6;70575:60;:::i;:::-;70561:74;;70662:2;70658:7;70723:2;70716:4;70708:6;70704:17;70700:26;70695:2;70689:4;70685:13;70678:49;70754:63;70810:6;70803:4;70795:6;70791:17;70754:63;:::i;:::-;70871:4;70859:17;;70853:24;70847:3;70837:14;;70830:48;70926:4;70914:17;;70908:24;-1:-1:-1;;;;;70993:34:60;;70955:3;70978:13;;;70971:57;;;;71067:18;-1:-1:-1;;;;;;71063:45:60;71048:13;;;71041:68;;;;71149:17;;;71145:26;71091:3;71129:14;;71122:50;70740:77;-1:-1:-1;71198:51:60;70740:77;71235:4;71223:17;;71198:51;:::i;:::-;71185:64;;71282:66;71341:4;71333:6;71329:17;71323:24;68765:4;68749:21;;68655:121;71282:66;1663:13;1656:21;71391:13;;;1644:34;;;;71491:12;;;;71466:4;71454:17;;;;;70357:1;70350:9;70321:1192;;71544:1381;71615:3;71653:5;71647:12;71680:6;71675:3;71668:19;71706:4;71747:2;71742:3;71738:12;71772:11;71799;71792:18;;71849:6;71846:1;71842:14;71835:5;71831:26;71819:38;;71876:1;71897:5;71893:2;71886:17;71940:2;71936;71926:17;71961:2;71972:927;71986:6;71983:1;71980:13;71972:927;;;72057:5;72051:4;72047:16;72042:3;72035:29;72087:4;72117:2;72111:4;72104:16;72147:57;72200:2;72194:4;72190:13;72182:6;72147:57;:::i;:::-;72289:17;;;72274:13;;;72267:40;72249:4;72237:17;;72368:19;;72400:24;;;72474;;;72527:17;;;;-1:-1:-1;72481:2:60;;72446:15;;;72583:208;72599:8;72594:3;72591:17;72583:208;;;72676:15;;72662:30;;72775:1;72761:16;;;;72618:11;;;;;72718:14;;;;72583:208;;;-1:-1:-1;72877:12:60;;;;72812:5;-1:-1:-1;;;72852:4:60;72840:17;;;;;72008:1;72001:9;71972:927;;72930:1111;73134:2;73123:9;73116:21;73173:4;73168:2;73157:9;73153:18;73146:32;73097:4;73201:63;73259:3;73248:9;73244:19;73236:6;73201:63;:::i;:::-;73353:4;73341:17;;73335:24;-1:-1:-1;;;;;67863:35:60;73416:2;73401:18;;67:43;73474:4;73462:17;;73456:24;73451:2;73436:18;;73429:52;73548:22;;;-1:-1:-1;;73544:31:60;;;73538:3;73523:19;;73516:60;73599:71;73552:6;73656:4;73644:17;;73599:71;:::i;:::-;73585:85;;73735:2;73723:9;73715:6;73711:22;73707:31;73701:3;73690:9;73686:19;73679:60;73762:73;73828:6;73821:4;73813:6;73809:17;73762:73;:::i;:::-;73748:87;;73890:4;73882:6;73878:17;73872:24;73866:3;73855:9;73851:19;73844:53;73963:2;73951:9;73943:6;73939:22;73935:31;73928:4;73917:9;73913:20;73906:61;;73984:51;74028:6;74021:4;74013:6;74009:17;73984:51;:::i;74046:127::-;74107:10;74102:3;74098:20;74095:1;74088:31;74138:4;74135:1;74128:15;74162:4;74159:1;74152:15;74178:180;-1:-1:-1;;;;;74283:10:60;;;74295;;;74279:27;;74318:11;;;74315:37;;;74332:18;;:::i", - "linkReferences": { - "src/lib/AccountHelper.sol": { - "AccountHelper": [ - { - "start": 8412, - "length": 20 - } - ] - }, - "src/lib/CheckpointHelper.sol": { - "CheckpointHelper": [ - { - "start": 2306, - "length": 20 - }, - { - "start": 9289, - "length": 20 - }, - { - "start": 11097, - "length": 20 - }, - { - "start": 13374, - "length": 20 - } - ] - }, - "src/lib/CrossMsgHelper.sol": { - "CrossMsgHelper": [ - { - "start": 8016, - "length": 20 - } - ] - }, - "src/lib/EpochVoteSubmissionHelper.sol": { - "EpochVoteSubmissionHelper": [ - { - "start": 11302, - "length": 20 - }, - { - "start": 14493, - "length": 20 - }, - { - "start": 15074, - "length": 20 - } - ] - }, - "src/lib/ExecutableQueueHelper.sol": { - "ExecutableQueueHelper": [ - { - "start": 11400, - "length": 20 - }, - { - "start": 14350, - "length": 20 - }, - { - "start": 14616, - "length": 20 - }, - { - "start": 14775, - "length": 20 - } - ] - }, - "src/lib/SubnetIDHelper.sol": { - "SubnetIDHelper": [ - { - "start": 4704, - "length": 20 - }, - { - "start": 7880, - "length": 20 - } - ] - } - }, - "immutableReferences": { - "35296": [ - { - "start": 1714, - "length": 32 - }, - { - "start": 4966, - "length": 32 - }, - { - "start": 5142, - "length": 32 - }, - { - "start": 5370, - "length": 32 - }, - { - "start": 7472, - "length": 32 - } - ], - "35302": [ - { - "start": 1464, - "length": 32 - } - ], - "35305": [ - { - "start": 551, - "length": 32 - } - ], - "35308": [ - { - "start": 1958, - "length": 32 - } - ], - "35314": [ - { - "start": 2044, - "length": 32 - }, - { - "start": 2188, - "length": 32 - }, - { - "start": 2700, - "length": 32 - }, - { - "start": 2906, - "length": 32 - }, - { - "start": 5209, - "length": 32 - }, - { - "start": 5431, - "length": 32 - }, - { - "start": 7554, - "length": 32 - }, - { - "start": 13504, - "length": 32 - } - ], - "35322": [ - { - "start": 1572, - "length": 32 - } - ], - "35328": [ - { - "start": 603, - "length": 32 - } - ], - "35330": [ - { - "start": 1906, - "length": 32 - }, - { - "start": 7815, - "length": 32 - } - ], - "36616": [ - { - "start": 1153, - "length": 32 - }, - { - "start": 14998, - "length": 32 - } - ], - "36619": [ - { - "start": 841, - "length": 32 - }, - { - "start": 9155, - "length": 32 - }, - { - "start": 14913, - "length": 32 - } - ] - } - }, - "methodIdentifiers": { - "MIN_CHECKPOINT_PERIOD()": "a1ada303", - "MIN_COLLATERAL_AMOUNT()": "91be4d41", - "accumulatedRewards(address)": "73f273fc", - "bottomUpCheckPeriod()": "06c46853", - "bottomUpCheckpointAtEpoch(uint64)": "6cb2ecee", - "bottomUpCheckpointHashAtEpoch(uint64)": "133f74ea", - "committedCheckpoints(uint64)": "98903748", - "configurationNumber()": "04fda3d4", - "consensus()": "8ef3f761", - "currentSubnetHash()": "c18f64aa", - "executableQueue()": "10d500e1", - "genesis()": "a7f0b3de", - "getGenesisEpoch()": "51392fc0", - "getParent()": "80f76021", - "getValidatorSet()": "cf331250", - "getValidators()": "b7ab4db5", - "hasValidatorVotedForSubmission(uint64,address)": "66d7bbbc", - "ipcGatewayAddr()": "cfca2824", - "join(string,(uint8,bytes))": "6cf6970a", - "kill()": "41c0e1b5", - "lastVotingExecutedEpoch()": "ad81e244", - "leave()": "d66d9e19", - "majorityPercentage()": "599c7bd1", - "minActivationCollateral()": "9e33bd02", - "minValidators()": "c5ab2241", - "name()": "06fdde03", - "prevExecutedCheckpointHash()": "5f832dbf", - "reward(uint256)": "a9fb763c", - "stake(address)": "26476204", - "status()": "200d2ed2", - "submissionPeriod()": "185fde7e", - "submitCheckpoint(((uint64,address[]),uint64,uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[],((uint64,address[]),bytes32[])[],bytes32,bytes))": "f6fd8381", - "topDownCheckPeriod()": "7d9740f4", - "totalStake()": "8b0e9f3f", - "validatorAt(uint256)": "32e0aa1f", - "validatorCount()": "0f43a677", - "validatorNetAddresses(address)": "23a35705", - "validatorWorkerAddresses(address)": "d4e25bab", - "withdraw()": "3ccfd60b" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"parentId\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"ipcGatewayAddr\",\"type\":\"address\"},{\"internalType\":\"enum ConsensusType\",\"name\":\"consensus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"minActivationCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"bottomUpCheckPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"topDownCheckPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"majorityPercentage\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"genesis\",\"type\":\"bytes\"}],\"internalType\":\"struct SubnetActor.ConstructParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CallerHasNoStake\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointNotChained\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CollateralIsZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CollateralStillLockedInSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EpochAlreadyExecuted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EpochNotVotable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GatewayCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidMajorityPercentage\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MessagesNotSorted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoRewardToWithdraw\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoValidatorsInSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotAllValidatorsHaveLeft\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughBalanceForRewards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotGateway\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetAlreadyKilled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetNotActive\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorAlreadyVoted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WorkerAddressInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongCheckpointSource\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MIN_CHECKPOINT_PERIOD\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_COLLATERAL_AMOUNT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"accumulatedRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpCheckPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"}],\"name\":\"bottomUpCheckpointAtEpoch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"checks\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ChildCheck[]\",\"name\":\"children\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"}],\"name\":\"bottomUpCheckpointHashAtEpoch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"committedCheckpoints\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"configurationNumber\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"consensus\",\"outputs\":[{\"internalType\":\"enum ConsensusType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentSubnetHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executableQueue\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"period\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"first\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"last\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesis\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGenesisEpoch\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getParent\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getValidatorSet\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"workerAddr\",\"type\":\"tuple\"},{\"internalType\":\"string\",\"name\":\"netAddresses\",\"type\":\"string\"}],\"internalType\":\"struct SubnetActor.ValidatorInfo[]\",\"name\":\"validators\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"configurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct SubnetActor.ValidatorSet\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getValidators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"hasValidatorVotedForSubmission\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ipcGatewayAddr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"netAddr\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"workerAddr\",\"type\":\"tuple\"}],\"name\":\"join\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastVotingExecutedEpoch\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"leave\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"majorityPercentage\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minActivationCollateral\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minValidators\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"prevExecutedCheckpointHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"reward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"status\",\"outputs\":[{\"internalType\":\"enum Status\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"submissionPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"checks\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ChildCheck[]\",\"name\":\"children\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"}],\"name\":\"submitCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"topDownCheckPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"validatorAt\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"validatorNetAddresses\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"validatorWorkerAddresses\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"LimeChain team\",\"kind\":\"dev\",\"methods\":{\"bottomUpCheckpointAtEpoch(uint64)\":{\"params\":{\"epoch\":\"- the epoch to check\"},\"returns\":{\"checkpoint\":\"- the checkpoint struct\",\"exists\":\"- whether the checkpoint exists\"}},\"bottomUpCheckpointHashAtEpoch(uint64)\":{\"params\":{\"epoch\":\"- the epoch to check\"},\"returns\":{\"_0\":\"exists - whether the checkpoint exists\",\"_1\":\"hash - the hash of the checkpoint\"}},\"getGenesisEpoch()\":{\"returns\":{\"_0\":\"epoch - the genesis epoch\"}},\"hasValidatorVotedForSubmission(uint64,address)\":{\"params\":{\"epoch\":\"- the epoch to check\",\"submitter\":\"- the validator to check\"}},\"join(string,(uint8,bytes))\":{\"params\":{\"netAddr\":\"- the network address of the validator\"}},\"submitCheckpoint(((uint64,address[]),uint64,uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[],((uint64,address[]),bytes32[])[],bytes32,bytes))\":{\"params\":{\"checkpoint\":\"- the batch messages data\"}},\"validatorAt(uint256)\":{\"params\":{\"index\":\"- the index of the validator set\"}}},\"title\":\"Subnet Actor Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"MIN_CHECKPOINT_PERIOD()\":{\"notice\":\"minimum checkpoint period. Values get clamped to this\"},\"MIN_COLLATERAL_AMOUNT()\":{\"notice\":\"minimum collateral validators need to stake in order to join the subnet. Values get clamped to this\"},\"accumulatedRewards(address)\":{\"notice\":\"validator address to accumulated rewards\"},\"bottomUpCheckPeriod()\":{\"notice\":\"number of blocks in a bottom-up epoch\"},\"bottomUpCheckpointAtEpoch(uint64)\":{\"notice\":\"returns the committed bottom-up checkpoint at specific epoch\"},\"bottomUpCheckpointHashAtEpoch(uint64)\":{\"notice\":\"returns the historical committed bottom-up checkpoint hash\"},\"committedCheckpoints(uint64)\":{\"notice\":\"contains all committed bottom-up checkpoint at specific epoch\"},\"configurationNumber()\":{\"notice\":\"Sequence number that uniquely identifies a validator set.\"},\"consensus()\":{\"notice\":\"Type of consensus algorithm.\"},\"executableQueue()\":{\"notice\":\"Contains the executable epochs that are ready to be executed, but has yet to be executed. This usually happens when previous submission epoch has not executed, but the next submission epoch is ready to be executed. Most of the time this should be empty\"},\"genesis()\":{\"notice\":\"genesis block\"},\"getGenesisEpoch()\":{\"notice\":\"method that returns the genesis epoch\"},\"getParent()\":{\"notice\":\"get the parent subnet id\"},\"getValidatorSet()\":{\"notice\":\"get the full details of the validators, not just their addresses.\"},\"getValidators()\":{\"notice\":\"get all the validators in the subnet. TODO: we can introduce pagination\"},\"hasValidatorVotedForSubmission(uint64,address)\":{\"notice\":\"whether a validator has voted for a checkpoint submission during an epoch\"},\"ipcGatewayAddr()\":{\"notice\":\"Address of the IPC gateway for the subnet\"},\"join(string,(uint8,bytes))\":{\"notice\":\"method that allows a validator to join the subnet\"},\"kill()\":{\"notice\":\"method that allows the subnet no be killed after all validators leave\"},\"lastVotingExecutedEpoch()\":{\"notice\":\"last executed epoch after voting\"},\"leave()\":{\"notice\":\"method that allows a validator to leave the subnet\"},\"majorityPercentage()\":{\"notice\":\"percent approvals needed to reach consensus\"},\"minActivationCollateral()\":{\"notice\":\"The minimum collateral required to be a validator in this subnet\"},\"minValidators()\":{\"notice\":\"Minimal number of validators required for the subnet to be able to validate new blocks.\"},\"name()\":{\"notice\":\"Human-readable name of the subnet.\"},\"prevExecutedCheckpointHash()\":{\"notice\":\"contains the last executed checkpoint hash\"},\"reward(uint256)\":{\"notice\":\"method that distributes the rewards for the subnet to validators.\"},\"stake(address)\":{\"notice\":\"validator address to stake amount\"},\"status()\":{\"notice\":\"current status of the subnet\"},\"submissionPeriod()\":{\"notice\":\"number of blocks between two checkpoint submissions\"},\"submitCheckpoint(((uint64,address[]),uint64,uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[],((uint64,address[]),bytes32[])[],bytes32,bytes))\":{\"notice\":\"methods that allows a validator to submit a checkpoint (batch of messages) and vote for it with it's own voting power.\"},\"topDownCheckPeriod()\":{\"notice\":\"number of blocks in a top-down epoch\"},\"totalStake()\":{\"notice\":\"Total collateral currently deposited in the GW from the subnet\"},\"validatorAt(uint256)\":{\"notice\":\"get validator at index\"},\"validatorCount()\":{\"notice\":\"get validator count\"},\"validatorNetAddresses(address)\":{\"notice\":\"validator address to validator net address\"},\"validatorWorkerAddresses(address)\":{\"notice\":\"validator address to validator worker address\"},\"withdraw()\":{\"notice\":\"method that allows a validator to withdraw it's accumulated rewards using pull-based transfer\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/SubnetActor.sol\":\"SubnetActor\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0xbe176ce3d98aadbda895fde9c771534f511235689f34cfe93c97794221826a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6f045631220f84768b8cb7087a5fe85e0e536b759f440031ee1b74e77984c74\",\"dweb:/ipfs/QmR7b6FcDAK672BWanKGWE19pcEG7i7S4jqNnzCs4AYSCD\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x03a26b0ce85afee2c16f3232bd123286b849ca576778781cf6e8bbf51cb7570a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://13a4f5cec214760f14abaedfc0a1860d80c2267386fa62dc77e8eee51ec84d71\",\"dweb:/ipfs/QmWmEKeofHqLnNEeCivhzTepo1k5xZZqzMxyyyzNBYiYBW\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x2e53602b96c1bf97c731ed3e2a981b4f85e23a9410a5ebd36e549a4cc93340dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://523f47b3ecc6d4e47b4b998d3356199988eef8a42a10dff5a3660d5f9e76cc71\",\"dweb:/ipfs/QmRLH8CNvDsuLzNCjsbpLM3RHD9he5ESXroYoDT3tpaTCA\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x2626d8ab3dfdad0fad630c212ad146d59473d0f48b771784c61a7c1dbbea1f3f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7c144532f1e7c76ac95fb6a8f617c1f740d7a73442a907eb60910e99dfa1fbf\",\"dweb:/ipfs/QmZsGyooD6emxB8JCuugRjnRYS2MPZEL586uuV7dgC8Jng\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3546b156d97633f7f8cad536d5454c81d1d604687c02b2eb105fdc33cb962b41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc373869014f80e7ad928ae44bb7678a2d7aacf213fb0ce36bcbbb3166845903\",\"dweb:/ipfs/QmUaRPa2Nm2WfKeCq8yRCR94JZFCnfr4xw9LJADWxhTcwt\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xacbaaa9be521944f83d2852379e1f40b28ada61a256493474f6cdc9b59620598\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15aa625baf68ba948a074361f38f7cf0e6198ba67d1d808c43865409296f1e72\",\"dweb:/ipfs/Qmbcae8x18H5Uzp2DsQcfZH3PMxokhhVCcwks22CDqVsPQ\"]},\"src/SubnetActor.sol\":{\"keccak256\":\"0xf37cf03206def09255ddd5cf678907839692ed626b19fbcbafedce95de8cc336\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8f293756e675ef0a538d34e91c4a743930de0c4572238d9cad3d12761d5dc9bd\",\"dweb:/ipfs/QmPfiW2GFT1R1LbG7CDCjHgU7z7oDZgwmGRBoeGpDnY9dJ\"]},\"src/Voting.sol\":{\"keccak256\":\"0xea28372fddefe2b3981d6e06c171d92523b39ac9aa5ba60c74a088f35505421d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0466daf1fae11d37574bc9793172f5f116f906e46478dde17c72725519c5f645\",\"dweb:/ipfs/Qmbt85ktcuSddaHFfxT98hgKRG9r1dNDkzSjbAVnZMFdjB\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x8a925dea568a61a38de9615aae7bb462d9eb6f8eb2c6ca409f1e740519077ab8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b7e2f836581694867c09bb9c80ff2ab6ae039ece2ff3bbf4d1bc2026449fa551\",\"dweb:/ipfs/QmVMvaQSCRBHZudSV8AzimYre76tJVm4UrHYnrT89zcjho\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xf6fd4f824e7dd9fe651bd11596f3045f32e67be595f91078c2b326e45aec4ce4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a674b1a6824a75749bb0a71b4791ff329907083ffb028b04634e94ddbcc2b2f3\",\"dweb:/ipfs/QmTkoSu2mRktfadkjhdgisBaWoZxb8iC3bacUwqCt44PNQ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0xf29c18f694b5acc919b7cada2875ca3bd2c52ddd7ef86ee747aab0faeb50ac8b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d8fb92f533cc119c578da73b06efe76b0efaa612af7c77178eb903952fcf53df\",\"dweb:/ipfs/QmdosRgUmvwXRnxq5TmoJoFMs7TULduTFpMUNyYXQNGfQD\"]},\"src/enums/VoteExecutionStatus.sol\":{\"keccak256\":\"0x56d1db8abf83feb0f1d69f1919fbd5bd79c6f3c5bf3c149950d307b9d62b6455\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb2ec0f87a9091eab463ac6a776d5737189e0239f412b36b975bb0be1fcb4ad8\",\"dweb:/ipfs/QmWiXwab54Ag2f1kyGjqT3brh5JrV5Lc7cqod9VPaS5ey6\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x57865785239b076bc429cd989bc5cb2a2e68050c7293a5a537d8cdeded170294\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://28285703560a0bbfa247c894c9f14f2a14e02e430e7dedb0a05b58c53aed3763\",\"dweb:/ipfs/QmcrNx18jZYJ7dRduWu1do3th74cHy7zn9Zx8x13WsCLj5\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0xe3f7371c7c7af8dfa71daa6c4171f6853c9ab1fdd619c09eb12c11ff18d17d91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6a09ea45ed335eada22e7cf3643c17d1c59750ed2156cc29c0960a8e8b53e394\",\"dweb:/ipfs/QmSYTNGqP9wEJnPDXmvghfL8zL8BrHGnixhbsimA9oydLG\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x86bf44c7e35907c1b0ed2fd55a6a8a277b46e6ee52b6933610504bc1d2de3b12\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb47357cd7342f951e5d08b1960e9ab7d458463e71ce08ff61b900bbb04118f0\",\"dweb:/ipfs/QmTKHhnYs1xKZUwCmSRPmSi5utfGrosYV57fSoGF7bGnJs\"]},\"src/lib/CheckpointHelper.sol\":{\"keccak256\":\"0x25d67ccc67b6b537df920c92dc3c704dc097e000c444149d3732e1d20848a269\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5823e88c38b5c4e90ee5700cee5a5fd8d982015dab7ea1cbe2f26d62a359ae76\",\"dweb:/ipfs/QmT9Ves86HoEqQciunzEwvDsyv2dgQwF8uPUjNuGsycHuF\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0xe7aacc0bc5eb10763685d6766524f6db05b151b37de4ccbd2b04649e54b9af36\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d6fae33fe9dc258efc3e0c484c6e69ff8314af266c78fd9b3d20c5bf8f251865\",\"dweb:/ipfs/QmYYpC6GnJNRvAg3MCSHKHk47cas888N3HzmMrmiRT4bnJ\"]},\"src/lib/EpochVoteSubmissionHelper.sol\":{\"keccak256\":\"0x1eaf867ddfc3e83d5a2ca50a81809e1529ea2436a8d2697d868bc8653b8c6c9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://65eb6a69fdb0fd8bfc1cd3d5044791225ff9fa8887dda49fd530e7c46e6e5366\",\"dweb:/ipfs/QmepF17eiqGqiNJRfeCohdeVw2aJxgkFS1AyFSM78v16nC\"]},\"src/lib/ExecutableQueueHelper.sol\":{\"keccak256\":\"0x66b7ba58bb9ba987789f22dcc5e44f1720876a79a52a9630d886490d48f80ece\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8b388b9f63b4f86ac03f24089a1f110e482ae89b1eb628fc78aeead1d6f50869\",\"dweb:/ipfs/QmVGVh9r2GBgXRn7Z13sMKmnn3xjfHm9tM3mnLUH1UwjQX\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x80d7d30532305664e31ad114d702904287e6f93954b420315f660ddf30791ac6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0b108070a13f76614f36e46f0af85d12aa53209ff9bb9c32ee1945be3e0a1fe1\",\"dweb:/ipfs/QmcyMuCZB4Z3qFUUjvcoVeSePJXU5F9hN4Zhy94U2qqcPq\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0xf82021571aa9a7b021b2d24b2c0eb80c5796b9f28ebb6a1c239146c0c0168817\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b546fc429093a558b9382e28886d1f09e7f308e55f6398989583bc420a630326\",\"dweb:/ipfs/QmSmQPQbMBX8N8r8nGboBWdzJjUaK7ACaFUf8XosZVZPT8\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0xcddaa4630a6f68c59a819bafee579a8979cc9fd7b00d5b49f99eeefb9ce0c02c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9713f988a5709dea3ee0fb204a2d0b64b0dc115912ed9eb128f479156d97a949\",\"dweb:/ipfs/QmUjTAvd2eAYQFqgfZUf5R67daeC7eUKrL6WrFb8oEWB9j\"]},\"src/structs/EpochVoteSubmission.sol\":{\"keccak256\":\"0x4cc52a36cac1a063bf1f996b91ea81ce118b7ce8923e62cec6e5bf08b689e96a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb33236d8c7a40e17c416a21e9f0df268d6a7f4d6ba1df86ab0c2dbf444702e9\",\"dweb:/ipfs/QmXEbdkweqL1f4Q71YPiuxwhQooh1oim9oBybAbr9Jd3A2\"]},\"src/structs/ExecutableQueue.sol\":{\"keccak256\":\"0xfacfd91786edac0462f4bba34d3a3766c8785925ae96301b68b76fba78c5cab4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb421106bc9158e8a12dd7054d265113dd890337937e73acb03f03e33a13eb18\",\"dweb:/ipfs/Qmdxs4akDWuzwf5nYsCaNuYNZ5sTrMCzdgVMuSpKCjFyaP\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xbaae3da91048d76b5bab0404eebf7dc41ed273a8cd1f4143ea1b3403d89f77c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5a69d76f5022d2e19f69ef0d70d4c5e3a3e7ae8e02fcfdb2682c901ac2f3a707\",\"dweb:/ipfs/QmYEWyPz9UqVssUpU42VTv6DhzRNAfaHKt9ZsNCAvtLjTr\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0xb37b12df0c9ff47c2e88f9612b624bb44e6de5dfb8030dfd83582997dcd6aa83\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a321a05abf7b3b461e3d6c4ac27b18d3e14dffad9e2bf9a0ceb68538a02ab1e4\",\"dweb:/ipfs/QmPo878trP8pv9yXXpwUHSnP7Xt6uz9eWuB25pz2JGiCot\"]}},\"version\":1}", - "metadata": { - "compiler": { - "version": "0.8.19+commit.7dd6d404" - }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ - { - "internalType": "struct SubnetActor.ConstructParams", - "name": "params", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "parentId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "ipcGatewayAddr", - "type": "address" - }, - { - "internalType": "enum ConsensusType", - "name": "consensus", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "minActivationCollateral", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "minValidators", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "bottomUpCheckPeriod", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "topDownCheckPeriod", - "type": "uint64" - }, - { - "internalType": "uint8", - "name": "majorityPercentage", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "genesis", - "type": "bytes" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "type": "error", - "name": "CallerHasNoStake" - }, - { - "inputs": [], - "type": "error", - "name": "CheckpointNotChained" - }, - { - "inputs": [], - "type": "error", - "name": "CollateralIsZero" - }, - { - "inputs": [], - "type": "error", - "name": "CollateralStillLockedInSubnet" - }, - { - "inputs": [], - "type": "error", - "name": "EpochAlreadyExecuted" - }, - { - "inputs": [], - "type": "error", - "name": "EpochNotVotable" - }, - { - "inputs": [], - "type": "error", - "name": "GatewayCannotBeZero" - }, - { - "inputs": [], - "type": "error", - "name": "InvalidMajorityPercentage" - }, - { - "inputs": [], - "type": "error", - "name": "MessagesNotSorted" - }, - { - "inputs": [], - "type": "error", - "name": "NoRewardToWithdraw" - }, - { - "inputs": [], - "type": "error", - "name": "NoValidatorsInSubnet" - }, - { - "inputs": [], - "type": "error", - "name": "NotAccount" - }, - { - "inputs": [], - "type": "error", - "name": "NotAllValidatorsHaveLeft" - }, - { - "inputs": [], - "type": "error", - "name": "NotEnoughBalanceForRewards" - }, - { - "inputs": [], - "type": "error", - "name": "NotGateway" - }, - { - "inputs": [], - "type": "error", - "name": "NotValidator" - }, - { - "inputs": [], - "type": "error", - "name": "SubnetAlreadyKilled" - }, - { - "inputs": [], - "type": "error", - "name": "SubnetNotActive" - }, - { - "inputs": [], - "type": "error", - "name": "ValidatorAlreadyVoted" - }, - { - "inputs": [], - "type": "error", - "name": "WorkerAddressInvalid" - }, - { - "inputs": [], - "type": "error", - "name": "WrongCheckpointSource" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "MIN_CHECKPOINT_PERIOD", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "MIN_COLLATERAL_AMOUNT", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "accumulatedRewards", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "bottomUpCheckPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "epoch", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function", - "name": "bottomUpCheckpointAtEpoch", - "outputs": [ - { - "internalType": "bool", - "name": "exists", - "type": "bool" - }, - { - "internalType": "struct BottomUpCheckpoint", - "name": "checkpoint", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "source", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "uint64", - "name": "epoch", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "internalType": "struct CrossMsg[]", - "name": "crossMsgs", - "type": "tuple[]", - "components": [ - { - "internalType": "struct StorableMsg", - "name": "message", - "type": "tuple", - "components": [ - { - "internalType": "struct IPCAddress", - "name": "from", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - } - ] - }, - { - "internalType": "struct IPCAddress", - "name": "to", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - } - ] - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "internalType": "bytes4", - "name": "method", - "type": "bytes4" - }, - { - "internalType": "bytes", - "name": "params", - "type": "bytes" - } - ] - }, - { - "internalType": "bool", - "name": "wrapped", - "type": "bool" - } - ] - }, - { - "internalType": "struct ChildCheck[]", - "name": "children", - "type": "tuple[]", - "components": [ - { - "internalType": "struct SubnetID", - "name": "source", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "bytes32[]", - "name": "checks", - "type": "bytes32[]" - } - ] - }, - { - "internalType": "bytes32", - "name": "prevHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "proof", - "type": "bytes" - } - ] - } - ] - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "epoch", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function", - "name": "bottomUpCheckpointHashAtEpoch", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function", - "name": "committedCheckpoints", - "outputs": [ - { - "internalType": "struct SubnetID", - "name": "source", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "uint64", - "name": "epoch", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "prevHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "proof", - "type": "bytes" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "configurationNumber", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "consensus", - "outputs": [ - { - "internalType": "enum ConsensusType", - "name": "", - "type": "uint8" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "currentSubnetHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "executableQueue", - "outputs": [ - { - "internalType": "uint64", - "name": "period", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "first", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "last", - "type": "uint64" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "genesis", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "getGenesisEpoch", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "getParent", - "outputs": [ - { - "internalType": "struct SubnetID", - "name": "", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "getValidatorSet", - "outputs": [ - { - "internalType": "struct SubnetActor.ValidatorSet", - "name": "", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetActor.ValidatorInfo[]", - "name": "validators", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "addr", - "type": "address" - }, - { - "internalType": "uint256", - "name": "weight", - "type": "uint256" - }, - { - "internalType": "struct FvmAddress", - "name": "workerAddr", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - }, - { - "internalType": "string", - "name": "netAddresses", - "type": "string" - } - ] - }, - { - "internalType": "uint64", - "name": "configurationNumber", - "type": "uint64" - } - ] - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "getValidators", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "epoch", - "type": "uint64" - }, - { - "internalType": "address", - "name": "submitter", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "hasValidatorVotedForSubmission", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "ipcGatewayAddr", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ] - }, - { - "inputs": [ - { - "internalType": "string", - "name": "netAddr", - "type": "string" - }, - { - "internalType": "struct FvmAddress", - "name": "workerAddr", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - } - ], - "stateMutability": "payable", - "type": "function", - "name": "join" - }, - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "function", - "name": "kill" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "lastVotingExecutedEpoch", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ] - }, - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "function", - "name": "leave" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "majorityPercentage", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "minActivationCollateral", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "minValidators", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "name", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "prevExecutedCheckpointHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "reward" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "stake", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "status", - "outputs": [ - { - "internalType": "enum Status", - "name": "", - "type": "uint8" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "submissionPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ] - }, - { - "inputs": [ - { - "internalType": "struct BottomUpCheckpoint", - "name": "checkpoint", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "source", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "uint64", - "name": "epoch", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "internalType": "struct CrossMsg[]", - "name": "crossMsgs", - "type": "tuple[]", - "components": [ - { - "internalType": "struct StorableMsg", - "name": "message", - "type": "tuple", - "components": [ - { - "internalType": "struct IPCAddress", - "name": "from", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - } - ] - }, - { - "internalType": "struct IPCAddress", - "name": "to", - "type": "tuple", - "components": [ - { - "internalType": "struct SubnetID", - "name": "subnetId", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "struct FvmAddress", - "name": "rawAddress", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - } - ] - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "nonce", - "type": "uint64" - }, - { - "internalType": "bytes4", - "name": "method", - "type": "bytes4" - }, - { - "internalType": "bytes", - "name": "params", - "type": "bytes" - } - ] - }, - { - "internalType": "bool", - "name": "wrapped", - "type": "bool" - } - ] - }, - { - "internalType": "struct ChildCheck[]", - "name": "children", - "type": "tuple[]", - "components": [ - { - "internalType": "struct SubnetID", - "name": "source", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "root", - "type": "uint64" - }, - { - "internalType": "address[]", - "name": "route", - "type": "address[]" - } - ] - }, - { - "internalType": "bytes32[]", - "name": "checks", - "type": "bytes32[]" - } - ] - }, - { - "internalType": "bytes32", - "name": "prevHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "proof", - "type": "bytes" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "submitCheckpoint" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "topDownCheckPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "totalStake", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "validatorAt", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "validatorCount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "validatorNetAddresses", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "validatorWorkerAddresses", - "outputs": [ - { - "internalType": "uint8", - "name": "addrType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ] - }, - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "function", - "name": "withdraw" - }, - { - "inputs": [], - "stateMutability": "payable", - "type": "receive" - } - ], - "devdoc": { - "kind": "dev", - "methods": { - "bottomUpCheckpointAtEpoch(uint64)": { - "params": { - "epoch": "- the epoch to check" - }, - "returns": { - "checkpoint": "- the checkpoint struct", - "exists": "- whether the checkpoint exists" - } - }, - "bottomUpCheckpointHashAtEpoch(uint64)": { - "params": { - "epoch": "- the epoch to check" - }, - "returns": { - "_0": "exists - whether the checkpoint exists", - "_1": "hash - the hash of the checkpoint" - } - }, - "getGenesisEpoch()": { - "returns": { - "_0": "epoch - the genesis epoch" - } - }, - "hasValidatorVotedForSubmission(uint64,address)": { - "params": { - "epoch": "- the epoch to check", - "submitter": "- the validator to check" - } - }, - "join(string,(uint8,bytes))": { - "params": { - "netAddr": "- the network address of the validator" - } - }, - "submitCheckpoint(((uint64,address[]),uint64,uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[],((uint64,address[]),bytes32[])[],bytes32,bytes))": { - "params": { - "checkpoint": "- the batch messages data" - } - }, - "validatorAt(uint256)": { - "params": { - "index": "- the index of the validator set" - } - } - }, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": { - "MIN_CHECKPOINT_PERIOD()": { - "notice": "minimum checkpoint period. Values get clamped to this" - }, - "MIN_COLLATERAL_AMOUNT()": { - "notice": "minimum collateral validators need to stake in order to join the subnet. Values get clamped to this" - }, - "accumulatedRewards(address)": { - "notice": "validator address to accumulated rewards" - }, - "bottomUpCheckPeriod()": { - "notice": "number of blocks in a bottom-up epoch" - }, - "bottomUpCheckpointAtEpoch(uint64)": { - "notice": "returns the committed bottom-up checkpoint at specific epoch" - }, - "bottomUpCheckpointHashAtEpoch(uint64)": { - "notice": "returns the historical committed bottom-up checkpoint hash" - }, - "committedCheckpoints(uint64)": { - "notice": "contains all committed bottom-up checkpoint at specific epoch" - }, - "configurationNumber()": { - "notice": "Sequence number that uniquely identifies a validator set." - }, - "consensus()": { - "notice": "Type of consensus algorithm." - }, - "executableQueue()": { - "notice": "Contains the executable epochs that are ready to be executed, but has yet to be executed. This usually happens when previous submission epoch has not executed, but the next submission epoch is ready to be executed. Most of the time this should be empty" - }, - "genesis()": { - "notice": "genesis block" - }, - "getGenesisEpoch()": { - "notice": "method that returns the genesis epoch" - }, - "getParent()": { - "notice": "get the parent subnet id" - }, - "getValidatorSet()": { - "notice": "get the full details of the validators, not just their addresses." - }, - "getValidators()": { - "notice": "get all the validators in the subnet. TODO: we can introduce pagination" - }, - "hasValidatorVotedForSubmission(uint64,address)": { - "notice": "whether a validator has voted for a checkpoint submission during an epoch" - }, - "ipcGatewayAddr()": { - "notice": "Address of the IPC gateway for the subnet" - }, - "join(string,(uint8,bytes))": { - "notice": "method that allows a validator to join the subnet" - }, - "kill()": { - "notice": "method that allows the subnet no be killed after all validators leave" - }, - "lastVotingExecutedEpoch()": { - "notice": "last executed epoch after voting" - }, - "leave()": { - "notice": "method that allows a validator to leave the subnet" - }, - "majorityPercentage()": { - "notice": "percent approvals needed to reach consensus" - }, - "minActivationCollateral()": { - "notice": "The minimum collateral required to be a validator in this subnet" - }, - "minValidators()": { - "notice": "Minimal number of validators required for the subnet to be able to validate new blocks." - }, - "name()": { - "notice": "Human-readable name of the subnet." - }, - "prevExecutedCheckpointHash()": { - "notice": "contains the last executed checkpoint hash" - }, - "reward(uint256)": { - "notice": "method that distributes the rewards for the subnet to validators." - }, - "stake(address)": { - "notice": "validator address to stake amount" - }, - "status()": { - "notice": "current status of the subnet" - }, - "submissionPeriod()": { - "notice": "number of blocks between two checkpoint submissions" - }, - "submitCheckpoint(((uint64,address[]),uint64,uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[],((uint64,address[]),bytes32[])[],bytes32,bytes))": { - "notice": "methods that allows a validator to submit a checkpoint (batch of messages) and vote for it with it's own voting power." - }, - "topDownCheckPeriod()": { - "notice": "number of blocks in a top-down epoch" - }, - "totalStake()": { - "notice": "Total collateral currently deposited in the GW from the subnet" - }, - "validatorAt(uint256)": { - "notice": "get validator at index" - }, - "validatorCount()": { - "notice": "get validator count" - }, - "validatorNetAddresses(address)": { - "notice": "validator address to validator net address" - }, - "validatorWorkerAddresses(address)": { - "notice": "validator address to validator worker address" - }, - "withdraw()": { - "notice": "method that allows a validator to withdraw it's accumulated rewards using pull-based transfer" - } - }, - "version": 1 - } - }, - "settings": { - "remappings": [ - ":@openzeppelin/=node_modules/@openzeppelin/", - ":ds-test/=lib/forge-std/lib/ds-test/src/", - ":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", - ":fevmate/=lib/fevmate/contracts/", - ":forge-std/=lib/forge-std/src/", - ":hardhat-deploy/=node_modules/hardhat-deploy/", - ":hardhat/=node_modules/hardhat/", - ":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/" - ], - "optimizer": { - "enabled": true, - "runs": 1 - }, - "metadata": { - "bytecodeHash": "ipfs" - }, - "compilationTarget": { - "src/SubnetActor.sol": "SubnetActor" - }, - "libraries": {} - }, - "sources": { - "lib/fevmate/contracts/utils/FilAddress.sol": { - "keccak256": "0xbe176ce3d98aadbda895fde9c771534f511235689f34cfe93c97794221826a3c", - "urls": [ - "bzz-raw://a6f045631220f84768b8cb7087a5fe85e0e536b759f440031ee1b74e77984c74", - "dweb:/ipfs/QmR7b6FcDAK672BWanKGWE19pcEG7i7S4jqNnzCs4AYSCD" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol": { - "keccak256": "0x03a26b0ce85afee2c16f3232bd123286b849ca576778781cf6e8bbf51cb7570a", - "urls": [ - "bzz-raw://13a4f5cec214760f14abaedfc0a1860d80c2267386fa62dc77e8eee51ec84d71", - "dweb:/ipfs/QmWmEKeofHqLnNEeCivhzTepo1k5xZZqzMxyyyzNBYiYBW" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/utils/Address.sol": { - "keccak256": "0x2e53602b96c1bf97c731ed3e2a981b4f85e23a9410a5ebd36e549a4cc93340dc", - "urls": [ - "bzz-raw://523f47b3ecc6d4e47b4b998d3356199988eef8a42a10dff5a3660d5f9e76cc71", - "dweb:/ipfs/QmRLH8CNvDsuLzNCjsbpLM3RHD9he5ESXroYoDT3tpaTCA" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/utils/Strings.sol": { - "keccak256": "0x2626d8ab3dfdad0fad630c212ad146d59473d0f48b771784c61a7c1dbbea1f3f", - "urls": [ - "bzz-raw://d7c144532f1e7c76ac95fb6a8f617c1f740d7a73442a907eb60910e99dfa1fbf", - "dweb:/ipfs/QmZsGyooD6emxB8JCuugRjnRYS2MPZEL586uuV7dgC8Jng" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/utils/math/Math.sol": { - "keccak256": "0x3546b156d97633f7f8cad536d5454c81d1d604687c02b2eb105fdc33cb962b41", - "urls": [ - "bzz-raw://fc373869014f80e7ad928ae44bb7678a2d7aacf213fb0ce36bcbbb3166845903", - "dweb:/ipfs/QmUaRPa2Nm2WfKeCq8yRCR94JZFCnfr4xw9LJADWxhTcwt" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol": { - "keccak256": "0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc", - "urls": [ - "bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7", - "dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol": { - "keccak256": "0xacbaaa9be521944f83d2852379e1f40b28ada61a256493474f6cdc9b59620598", - "urls": [ - "bzz-raw://15aa625baf68ba948a074361f38f7cf0e6198ba67d1d808c43865409296f1e72", - "dweb:/ipfs/Qmbcae8x18H5Uzp2DsQcfZH3PMxokhhVCcwks22CDqVsPQ" - ], - "license": "MIT" - }, - "src/SubnetActor.sol": { - "keccak256": "0xf37cf03206def09255ddd5cf678907839692ed626b19fbcbafedce95de8cc336", - "urls": [ - "bzz-raw://8f293756e675ef0a538d34e91c4a743930de0c4572238d9cad3d12761d5dc9bd", - "dweb:/ipfs/QmPfiW2GFT1R1LbG7CDCjHgU7z7oDZgwmGRBoeGpDnY9dJ" - ], - "license": "UNLICENSED" - }, - "src/Voting.sol": { - "keccak256": "0xea28372fddefe2b3981d6e06c171d92523b39ac9aa5ba60c74a088f35505421d", - "urls": [ - "bzz-raw://0466daf1fae11d37574bc9793172f5f116f906e46478dde17c72725519c5f645", - "dweb:/ipfs/Qmbt85ktcuSddaHFfxT98hgKRG9r1dNDkzSjbAVnZMFdjB" - ], - "license": "UNLICENSED" - }, - "src/constants/Constants.sol": { - "keccak256": "0x8a925dea568a61a38de9615aae7bb462d9eb6f8eb2c6ca409f1e740519077ab8", - "urls": [ - "bzz-raw://b7e2f836581694867c09bb9c80ff2ab6ae039ece2ff3bbf4d1bc2026449fa551", - "dweb:/ipfs/QmVMvaQSCRBHZudSV8AzimYre76tJVm4UrHYnrT89zcjho" - ], - "license": "UNLICENSED" - }, - "src/enums/ConsensusType.sol": { - "keccak256": "0xf6fd4f824e7dd9fe651bd11596f3045f32e67be595f91078c2b326e45aec4ce4", - "urls": [ - "bzz-raw://a674b1a6824a75749bb0a71b4791ff329907083ffb028b04634e94ddbcc2b2f3", - "dweb:/ipfs/QmTkoSu2mRktfadkjhdgisBaWoZxb8iC3bacUwqCt44PNQ" - ], - "license": "UNLICENSED" - }, - "src/enums/Status.sol": { - "keccak256": "0xf29c18f694b5acc919b7cada2875ca3bd2c52ddd7ef86ee747aab0faeb50ac8b", - "urls": [ - "bzz-raw://d8fb92f533cc119c578da73b06efe76b0efaa612af7c77178eb903952fcf53df", - "dweb:/ipfs/QmdosRgUmvwXRnxq5TmoJoFMs7TULduTFpMUNyYXQNGfQD" - ], - "license": "UNLICENSED" - }, - "src/enums/VoteExecutionStatus.sol": { - "keccak256": "0x56d1db8abf83feb0f1d69f1919fbd5bd79c6f3c5bf3c149950d307b9d62b6455", - "urls": [ - "bzz-raw://bb2ec0f87a9091eab463ac6a776d5737189e0239f412b36b975bb0be1fcb4ad8", - "dweb:/ipfs/QmWiXwab54Ag2f1kyGjqT3brh5JrV5Lc7cqod9VPaS5ey6" - ], - "license": "UNLICENSED" - }, - "src/interfaces/IGateway.sol": { - "keccak256": "0x57865785239b076bc429cd989bc5cb2a2e68050c7293a5a537d8cdeded170294", - "urls": [ - "bzz-raw://28285703560a0bbfa247c894c9f14f2a14e02e430e7dedb0a05b58c53aed3763", - "dweb:/ipfs/QmcrNx18jZYJ7dRduWu1do3th74cHy7zn9Zx8x13WsCLj5" - ], - "license": "UNLICENSED" - }, - "src/interfaces/ISubnetActor.sol": { - "keccak256": "0xe3f7371c7c7af8dfa71daa6c4171f6853c9ab1fdd619c09eb12c11ff18d17d91", - "urls": [ - "bzz-raw://6a09ea45ed335eada22e7cf3643c17d1c59750ed2156cc29c0960a8e8b53e394", - "dweb:/ipfs/QmSYTNGqP9wEJnPDXmvghfL8zL8BrHGnixhbsimA9oydLG" - ], - "license": "UNLICENSED" - }, - "src/lib/AccountHelper.sol": { - "keccak256": "0x86bf44c7e35907c1b0ed2fd55a6a8a277b46e6ee52b6933610504bc1d2de3b12", - "urls": [ - "bzz-raw://bb47357cd7342f951e5d08b1960e9ab7d458463e71ce08ff61b900bbb04118f0", - "dweb:/ipfs/QmTKHhnYs1xKZUwCmSRPmSi5utfGrosYV57fSoGF7bGnJs" - ], - "license": "UNLICENSED" - }, - "src/lib/CheckpointHelper.sol": { - "keccak256": "0x25d67ccc67b6b537df920c92dc3c704dc097e000c444149d3732e1d20848a269", - "urls": [ - "bzz-raw://5823e88c38b5c4e90ee5700cee5a5fd8d982015dab7ea1cbe2f26d62a359ae76", - "dweb:/ipfs/QmT9Ves86HoEqQciunzEwvDsyv2dgQwF8uPUjNuGsycHuF" - ], - "license": "UNLICENSED" - }, - "src/lib/CrossMsgHelper.sol": { - "keccak256": "0xe7aacc0bc5eb10763685d6766524f6db05b151b37de4ccbd2b04649e54b9af36", - "urls": [ - "bzz-raw://d6fae33fe9dc258efc3e0c484c6e69ff8314af266c78fd9b3d20c5bf8f251865", - "dweb:/ipfs/QmYYpC6GnJNRvAg3MCSHKHk47cas888N3HzmMrmiRT4bnJ" - ], - "license": "UNLICENSED" - }, - "src/lib/EpochVoteSubmissionHelper.sol": { - "keccak256": "0x1eaf867ddfc3e83d5a2ca50a81809e1529ea2436a8d2697d868bc8653b8c6c9e", - "urls": [ - "bzz-raw://65eb6a69fdb0fd8bfc1cd3d5044791225ff9fa8887dda49fd530e7c46e6e5366", - "dweb:/ipfs/QmepF17eiqGqiNJRfeCohdeVw2aJxgkFS1AyFSM78v16nC" - ], - "license": "UNLICENSED" - }, - "src/lib/ExecutableQueueHelper.sol": { - "keccak256": "0x66b7ba58bb9ba987789f22dcc5e44f1720876a79a52a9630d886490d48f80ece", - "urls": [ - "bzz-raw://8b388b9f63b4f86ac03f24089a1f110e482ae89b1eb628fc78aeead1d6f50869", - "dweb:/ipfs/QmVGVh9r2GBgXRn7Z13sMKmnn3xjfHm9tM3mnLUH1UwjQX" - ], - "license": "UNLICENSED" - }, - "src/lib/FvmAddressHelper.sol": { - "keccak256": "0x80d7d30532305664e31ad114d702904287e6f93954b420315f660ddf30791ac6", - "urls": [ - "bzz-raw://0b108070a13f76614f36e46f0af85d12aa53209ff9bb9c32ee1945be3e0a1fe1", - "dweb:/ipfs/QmcyMuCZB4Z3qFUUjvcoVeSePJXU5F9hN4Zhy94U2qqcPq" - ], - "license": "UNLICENSED" - }, - "src/lib/SubnetIDHelper.sol": { - "keccak256": "0xf82021571aa9a7b021b2d24b2c0eb80c5796b9f28ebb6a1c239146c0c0168817", - "urls": [ - "bzz-raw://b546fc429093a558b9382e28886d1f09e7f308e55f6398989583bc420a630326", - "dweb:/ipfs/QmSmQPQbMBX8N8r8nGboBWdzJjUaK7ACaFUf8XosZVZPT8" - ], - "license": "UNLICENSED" - }, - "src/structs/Checkpoint.sol": { - "keccak256": "0xcddaa4630a6f68c59a819bafee579a8979cc9fd7b00d5b49f99eeefb9ce0c02c", - "urls": [ - "bzz-raw://9713f988a5709dea3ee0fb204a2d0b64b0dc115912ed9eb128f479156d97a949", - "dweb:/ipfs/QmUjTAvd2eAYQFqgfZUf5R67daeC7eUKrL6WrFb8oEWB9j" - ], - "license": "UNLICENSED" - }, - "src/structs/EpochVoteSubmission.sol": { - "keccak256": "0x4cc52a36cac1a063bf1f996b91ea81ce118b7ce8923e62cec6e5bf08b689e96a", - "urls": [ - "bzz-raw://fb33236d8c7a40e17c416a21e9f0df268d6a7f4d6ba1df86ab0c2dbf444702e9", - "dweb:/ipfs/QmXEbdkweqL1f4Q71YPiuxwhQooh1oim9oBybAbr9Jd3A2" - ], - "license": "UNLICENSED" - }, - "src/structs/ExecutableQueue.sol": { - "keccak256": "0xfacfd91786edac0462f4bba34d3a3766c8785925ae96301b68b76fba78c5cab4", - "urls": [ - "bzz-raw://bb421106bc9158e8a12dd7054d265113dd890337937e73acb03f03e33a13eb18", - "dweb:/ipfs/Qmdxs4akDWuzwf5nYsCaNuYNZ5sTrMCzdgVMuSpKCjFyaP" - ], - "license": "UNLICENSED" - }, - "src/structs/FvmAddress.sol": { - "keccak256": "0xbaae3da91048d76b5bab0404eebf7dc41ed273a8cd1f4143ea1b3403d89f77c9", - "urls": [ - "bzz-raw://5a69d76f5022d2e19f69ef0d70d4c5e3a3e7ae8e02fcfdb2682c901ac2f3a707", - "dweb:/ipfs/QmYEWyPz9UqVssUpU42VTv6DhzRNAfaHKt9ZsNCAvtLjTr" - ], - "license": "UNLICENSED" - }, - "src/structs/Subnet.sol": { - "keccak256": "0xb37b12df0c9ff47c2e88f9612b624bb44e6de5dfb8030dfd83582997dcd6aa83", - "urls": [ - "bzz-raw://a321a05abf7b3b461e3d6c4ac27b18d3e14dffad9e2bf9a0ceb68538a02ab1e4", - "dweb:/ipfs/QmPo878trP8pv9yXXpwUHSnP7Xt6uz9eWuB25pz2JGiCot" - ], - "license": "UNLICENSED" - } - }, - "version": 1 - }, - "ast": { - "absolutePath": "src/SubnetActor.sol", - "id": 36418, - "exportedSymbols": { - "AccountHelper": [ - 37245 - ], - "Address": [ - 29810 - ], - "BottomUpCheckpoint": [ - 38937 - ], - "CheckpointHelper": [ - 37513 - ], - "ConsensusType": [ - 37050 - ], - "CrossMsg": [ - 38957 - ], - "CrossMsgHelper": [ - 37840 - ], - "EnumerableSet": [ - 32881 - ], - "EpochVoteBottomUpSubmission": [ - 39014 - ], - "EpochVoteSubmission": [ - 38996 - ], - "EpochVoteSubmissionHelper": [ - 37888 - ], - "ExecutableQueue": [ - 39027 - ], - "ExecutableQueueHelper": [ - 38092 - ], - "FilAddress": [ - 298 - ], - "FvmAddress": [ - 39034 - ], - "FvmAddressHelper": [ - 38219 - ], - "IGateway": [ - 37158 - ], - "ISubnetActor": [ - 37196 - ], - "ReentrancyGuard": [ - 29480 - ], - "Status": [ - 37064 - ], - "SubnetActor": [ - 36417 - ], - "SubnetID": [ - 39060 - ], - "SubnetIDHelper": [ - 38912 - ], - "Voting": [ - 37017 - ] - }, - "nodeType": "SourceUnit", - "src": "39:17601:26", - "nodes": [ - { - "id": 35200, - "nodeType": "PragmaDirective", - "src": "39:23:26", - "nodes": [], - "literals": [ - "solidity", - "0.8", - ".19" - ] - }, - { - "id": 35202, - "nodeType": "ImportDirective", - "src": "64:36:26", - "nodes": [], - "absolutePath": "src/Voting.sol", - "file": "./Voting.sol", - "nameLocation": "-1:-1:-1", - "scope": 36418, - "sourceUnit": 37018, - "symbolAliases": [ - { - "foreign": { - "id": 35201, - "name": "Voting", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37017, - "src": "72:6:26", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 35204, - "nodeType": "ImportDirective", - "src": "101:56:26", - "nodes": [], - "absolutePath": "src/enums/ConsensusType.sol", - "file": "./enums/ConsensusType.sol", - "nameLocation": "-1:-1:-1", - "scope": 36418, - "sourceUnit": 37051, - "symbolAliases": [ - { - "foreign": { - "id": 35203, - "name": "ConsensusType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37050, - "src": "109:13:26", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 35206, - "nodeType": "ImportDirective", - "src": "158:42:26", - "nodes": [], - "absolutePath": "src/enums/Status.sol", - "file": "./enums/Status.sol", - "nameLocation": "-1:-1:-1", - "scope": 36418, - "sourceUnit": 37065, - "symbolAliases": [ - { - "foreign": { - "id": 35205, - "name": "Status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37064, - "src": "166:6:26", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 35209, - "nodeType": "ImportDirective", - "src": "201:70:26", - "nodes": [], - "absolutePath": "src/structs/Checkpoint.sol", - "file": "./structs/Checkpoint.sol", - "nameLocation": "-1:-1:-1", - "scope": 36418, - "sourceUnit": 38973, - "symbolAliases": [ - { - "foreign": { - "id": 35207, - "name": "BottomUpCheckpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 38937, - "src": "209:18:26", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 35208, - "name": "CrossMsg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 38957, - "src": "229:8:26", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 35211, - "nodeType": "ImportDirective", - "src": "272:46:26", - "nodes": [], - "absolutePath": "src/structs/Subnet.sol", - "file": "./structs/Subnet.sol", - "nameLocation": "-1:-1:-1", - "scope": 36418, - "sourceUnit": 39092, - "symbolAliases": [ - { - "foreign": { - "id": 35210, - "name": "SubnetID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39060, - "src": "280:8:26", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 35213, - "nodeType": "ImportDirective", - "src": "319:70:26", - "nodes": [], - "absolutePath": "src/structs/EpochVoteSubmission.sol", - "file": "./structs/EpochVoteSubmission.sol", - "nameLocation": "-1:-1:-1", - "scope": 36418, - "sourceUnit": 39015, - "symbolAliases": [ - { - "foreign": { - "id": 35212, - "name": "EpochVoteSubmission", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 38996, - "src": "327:19:26", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 35215, - "nodeType": "ImportDirective", - "src": "390:59:26", - "nodes": [], - "absolutePath": "src/interfaces/ISubnetActor.sol", - "file": "./interfaces/ISubnetActor.sol", - "nameLocation": "-1:-1:-1", - "scope": 36418, - "sourceUnit": 37197, - "symbolAliases": [ - { - "foreign": { - "id": 35214, - "name": "ISubnetActor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37196, - "src": "398:12:26", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 35217, - "nodeType": "ImportDirective", - "src": "450:51:26", - "nodes": [], - "absolutePath": "src/interfaces/IGateway.sol", - "file": "./interfaces/IGateway.sol", - "nameLocation": "-1:-1:-1", - "scope": 36418, - "sourceUnit": 37159, - "symbolAliases": [ - { - "foreign": { - "id": 35216, - "name": "IGateway", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37158, - "src": "458:8:26", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 35219, - "nodeType": "ImportDirective", - "src": "502:54:26", - "nodes": [], - "absolutePath": "src/lib/AccountHelper.sol", - "file": "./lib/AccountHelper.sol", - "nameLocation": "-1:-1:-1", - "scope": 36418, - "sourceUnit": 37246, - "symbolAliases": [ - { - "foreign": { - "id": 35218, - "name": "AccountHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37245, - "src": "510:13:26", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 35221, - "nodeType": "ImportDirective", - "src": "557:56:26", - "nodes": [], - "absolutePath": "src/lib/CrossMsgHelper.sol", - "file": "./lib/CrossMsgHelper.sol", - "nameLocation": "-1:-1:-1", - "scope": 36418, - "sourceUnit": 37841, - "symbolAliases": [ - { - "foreign": { - "id": 35220, - "name": "CrossMsgHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37840, - "src": "565:14:26", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 35223, - "nodeType": "ImportDirective", - "src": "614:62:26", - "nodes": [], - "absolutePath": "src/structs/ExecutableQueue.sol", - "file": "./structs/ExecutableQueue.sol", - "nameLocation": "-1:-1:-1", - "scope": 36418, - "sourceUnit": 39028, - "symbolAliases": [ - { - "foreign": { - "id": 35222, - "name": "ExecutableQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39027, - "src": "622:15:26", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 35225, - "nodeType": "ImportDirective", - "src": "677:70:26", - "nodes": [], - "absolutePath": "src/lib/ExecutableQueueHelper.sol", - "file": "./lib/ExecutableQueueHelper.sol", - "nameLocation": "-1:-1:-1", - "scope": 36418, - "sourceUnit": 38093, - "symbolAliases": [ - { - "foreign": { - "id": 35224, - "name": "ExecutableQueueHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 38092, - "src": "685:21:26", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 35227, - "nodeType": "ImportDirective", - "src": "748:78:26", - "nodes": [], - "absolutePath": "src/structs/EpochVoteSubmission.sol", - "file": "./structs/EpochVoteSubmission.sol", - "nameLocation": "-1:-1:-1", - "scope": 36418, - "sourceUnit": 39015, - "symbolAliases": [ - { - "foreign": { - "id": 35226, - "name": "EpochVoteBottomUpSubmission", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39014, - "src": "756:27:26", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 35229, - "nodeType": "ImportDirective", - "src": "827:78:26", - "nodes": [], - "absolutePath": "src/lib/EpochVoteSubmissionHelper.sol", - "file": "./lib/EpochVoteSubmissionHelper.sol", - "nameLocation": "-1:-1:-1", - "scope": 36418, - "sourceUnit": 37889, - "symbolAliases": [ - { - "foreign": { - "id": 35228, - "name": "EpochVoteSubmissionHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37888, - "src": "835:25:26", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 35231, - "nodeType": "ImportDirective", - "src": "906:56:26", - "nodes": [], - "absolutePath": "src/lib/SubnetIDHelper.sol", - "file": "./lib/SubnetIDHelper.sol", - "nameLocation": "-1:-1:-1", - "scope": 36418, - "sourceUnit": 38913, - "symbolAliases": [ - { - "foreign": { - "id": 35230, - "name": "SubnetIDHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 38912, - "src": "914:14:26", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 35233, - "nodeType": "ImportDirective", - "src": "963:60:26", - "nodes": [], - "absolutePath": "src/lib/CheckpointHelper.sol", - "file": "./lib/CheckpointHelper.sol", - "nameLocation": "-1:-1:-1", - "scope": 36418, - "sourceUnit": 37514, - "symbolAliases": [ - { - "foreign": { - "id": 35232, - "name": "CheckpointHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37513, - "src": "971:16:26", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 35235, - "nodeType": "ImportDirective", - "src": "1024:56:26", - "nodes": [], - "absolutePath": "lib/fevmate/contracts/utils/FilAddress.sol", - "file": "fevmate/utils/FilAddress.sol", - "nameLocation": "-1:-1:-1", - "scope": 36418, - "sourceUnit": 299, - "symbolAliases": [ - { - "foreign": { - "id": 35234, - "name": "FilAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "1032:10:26", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 35237, - "nodeType": "ImportDirective", - "src": "1081:85:26", - "nodes": [], - "absolutePath": "lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", - "file": "openzeppelin-contracts/utils/structs/EnumerableSet.sol", - "nameLocation": "-1:-1:-1", - "scope": 36418, - "sourceUnit": 32882, - "symbolAliases": [ - { - "foreign": { - "id": 35236, - "name": "EnumerableSet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32881, - "src": "1089:13:26", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 35239, - "nodeType": "ImportDirective", - "src": "1167:84:26", - "nodes": [], - "absolutePath": "lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol", - "file": "openzeppelin-contracts/security/ReentrancyGuard.sol", - "nameLocation": "-1:-1:-1", - "scope": 36418, - "sourceUnit": 29481, - "symbolAliases": [ - { - "foreign": { - "id": 35238, - "name": "ReentrancyGuard", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 29480, - "src": "1175:15:26", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 35241, - "nodeType": "ImportDirective", - "src": "1252:65:26", - "nodes": [], - "absolutePath": "lib/openzeppelin-contracts/contracts/utils/Address.sol", - "file": "openzeppelin-contracts/utils/Address.sol", - "nameLocation": "-1:-1:-1", - "scope": 36418, - "sourceUnit": 29811, - "symbolAliases": [ - { - "foreign": { - "id": 35240, - "name": "Address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 29810, - "src": "1260:7:26", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 35243, - "nodeType": "ImportDirective", - "src": "1318:52:26", - "nodes": [], - "absolutePath": "src/structs/FvmAddress.sol", - "file": "./structs/FvmAddress.sol", - "nameLocation": "-1:-1:-1", - "scope": 36418, - "sourceUnit": 39042, - "symbolAliases": [ - { - "foreign": { - "id": 35242, - "name": "FvmAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39034, - "src": "1326:10:26", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 35245, - "nodeType": "ImportDirective", - "src": "1371:60:26", - "nodes": [], - "absolutePath": "src/lib/FvmAddressHelper.sol", - "file": "./lib/FvmAddressHelper.sol", - "nameLocation": "-1:-1:-1", - "scope": 36418, - "sourceUnit": 38220, - "symbolAliases": [ - { - "foreign": { - "id": 35244, - "name": "FvmAddressHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 38219, - "src": "1379:16:26", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 36417, - "nodeType": "ContractDefinition", - "src": "1493:16146:26", - "nodes": [ - { - "id": 35256, - "nodeType": "UsingForDirective", - "src": "1561:49:26", - "nodes": [], - "global": false, - "libraryName": { - "id": 35253, - "name": "EnumerableSet", - "nameLocations": [ - "1567:13:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 32881, - "src": "1567:13:26" - }, - "typeName": { - "id": 35255, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 35254, - "name": "EnumerableSet.AddressSet", - "nameLocations": [ - "1585:13:26", - "1599:10:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 32594, - "src": "1585:24:26" - }, - "referencedDeclaration": 32594, - "src": "1585:24:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$32594_storage_ptr", - "typeString": "struct EnumerableSet.AddressSet" - } - } - }, - { - "id": 35260, - "nodeType": "UsingForDirective", - "src": "1615:34:26", - "nodes": [], - "global": false, - "libraryName": { - "id": 35257, - "name": "SubnetIDHelper", - "nameLocations": [ - "1621:14:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38912, - "src": "1621:14:26" - }, - "typeName": { - "id": 35259, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 35258, - "name": "SubnetID", - "nameLocations": [ - "1640:8:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39060, - "src": "1640:8:26" - }, - "referencedDeclaration": 39060, - "src": "1640:8:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage_ptr", - "typeString": "struct SubnetID" - } - } - }, - { - "id": 35264, - "nodeType": "UsingForDirective", - "src": "1654:46:26", - "nodes": [], - "global": false, - "libraryName": { - "id": 35261, - "name": "CheckpointHelper", - "nameLocations": [ - "1660:16:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 37513, - "src": "1660:16:26" - }, - "typeName": { - "id": 35263, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 35262, - "name": "BottomUpCheckpoint", - "nameLocations": [ - "1681:18:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38937, - "src": "1681:18:26" - }, - "referencedDeclaration": 38937, - "src": "1681:18:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint" - } - } - }, - { - "id": 35267, - "nodeType": "UsingForDirective", - "src": "1705:29:26", - "nodes": [], - "global": false, - "libraryName": { - "id": 35265, - "name": "FilAddress", - "nameLocations": [ - "1711:10:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 298, - "src": "1711:10:26" - }, - "typeName": { - "id": 35266, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1726:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "id": 35270, - "nodeType": "UsingForDirective", - "src": "1739:34:26", - "nodes": [], - "global": false, - "libraryName": { - "id": 35268, - "name": "Address", - "nameLocations": [ - "1745:7:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 29810, - "src": "1745:7:26" - }, - "typeName": { - "id": 35269, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1757:15:26", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - }, - { - "id": 35273, - "nodeType": "UsingForDirective", - "src": "1778:32:26", - "nodes": [], - "global": false, - "libraryName": { - "id": 35271, - "name": "AccountHelper", - "nameLocations": [ - "1784:13:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 37245, - "src": "1784:13:26" - }, - "typeName": { - "id": 35272, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1802:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "id": 35277, - "nodeType": "UsingForDirective", - "src": "1815:48:26", - "nodes": [], - "global": false, - "libraryName": { - "id": 35274, - "name": "ExecutableQueueHelper", - "nameLocations": [ - "1821:21:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38092, - "src": "1821:21:26" - }, - "typeName": { - "id": 35276, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 35275, - "name": "ExecutableQueue", - "nameLocations": [ - "1847:15:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39027, - "src": "1847:15:26" - }, - "referencedDeclaration": 39027, - "src": "1847:15:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ExecutableQueue_$39027_storage_ptr", - "typeString": "struct ExecutableQueue" - } - } - }, - { - "id": 35281, - "nodeType": "UsingForDirective", - "src": "1868:56:26", - "nodes": [], - "global": false, - "libraryName": { - "id": 35278, - "name": "EpochVoteSubmissionHelper", - "nameLocations": [ - "1874:25:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 37888, - "src": "1874:25:26" - }, - "typeName": { - "id": 35280, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 35279, - "name": "EpochVoteSubmission", - "nameLocations": [ - "1904:19:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38996, - "src": "1904:19:26" - }, - "referencedDeclaration": 38996, - "src": "1904:19:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteSubmission_$38996_storage_ptr", - "typeString": "struct EpochVoteSubmission" - } - } - }, - { - "id": 35285, - "nodeType": "UsingForDirective", - "src": "1929:34:26", - "nodes": [], - "global": false, - "libraryName": { - "id": 35282, - "name": "CrossMsgHelper", - "nameLocations": [ - "1935:14:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 37840, - "src": "1935:14:26" - }, - "typeName": { - "id": 35284, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 35283, - "name": "CrossMsg", - "nameLocations": [ - "1954:8:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38957, - "src": "1954:8:26" - }, - "referencedDeclaration": 38957, - "src": "1954:8:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$38957_storage_ptr", - "typeString": "struct CrossMsg" - } - } - }, - { - "id": 35289, - "nodeType": "UsingForDirective", - "src": "1968:38:26", - "nodes": [], - "global": false, - "libraryName": { - "id": 35286, - "name": "FvmAddressHelper", - "nameLocations": [ - "1974:16:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38219, - "src": "1974:16:26" - }, - "typeName": { - "id": 35288, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 35287, - "name": "FvmAddress", - "nameLocations": [ - "1995:10:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39034, - "src": "1995:10:26" - }, - "referencedDeclaration": 39034, - "src": "1995:10:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_FvmAddress_$39034_storage_ptr", - "typeString": "struct FvmAddress" - } - } - }, - { - "id": 35293, - "nodeType": "VariableDeclaration", - "src": "2128:55:26", - "nodes": [], - "constant": true, - "documentation": { - "id": 35290, - "nodeType": "StructuredDocumentation", - "src": "2012:111:26", - "text": "@notice minimum collateral validators need to stake in order to join the subnet. Values get clamped to this" - }, - "functionSelector": "91be4d41", - "mutability": "constant", - "name": "MIN_COLLATERAL_AMOUNT", - "nameLocation": "2152:21:26", - "scope": 36417, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 35291, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2128:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "31", - "id": 35292, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2176:7:26", - "subdenomination": "ether", - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - }, - "value": "1" - }, - "visibility": "public" - }, - { - "id": 35296, - "nodeType": "VariableDeclaration", - "src": "2271:48:26", - "nodes": [], - "constant": false, - "documentation": { - "id": 35294, - "nodeType": "StructuredDocumentation", - "src": "2190:76:26", - "text": "@notice The minimum collateral required to be a validator in this subnet" - }, - "functionSelector": "9e33bd02", - "mutability": "immutable", - "name": "minActivationCollateral", - "nameLocation": "2296:23:26", - "scope": 36417, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 35295, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2271:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "id": 35299, - "nodeType": "VariableDeclaration", - "src": "2405:25:26", - "nodes": [], - "constant": false, - "documentation": { - "id": 35297, - "nodeType": "StructuredDocumentation", - "src": "2326:74:26", - "text": "@notice Total collateral currently deposited in the GW from the subnet" - }, - "functionSelector": "8b0e9f3f", - "mutability": "mutable", - "name": "totalStake", - "nameLocation": "2420:10:26", - "scope": 36417, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 35298, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2405:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "id": 35302, - "nodeType": "VariableDeclaration", - "src": "2490:42:26", - "nodes": [], - "constant": false, - "documentation": { - "id": 35300, - "nodeType": "StructuredDocumentation", - "src": "2437:48:26", - "text": "@notice number of blocks in a top-down epoch" - }, - "functionSelector": "7d9740f4", - "mutability": "immutable", - "name": "topDownCheckPeriod", - "nameLocation": "2514:18:26", - "scope": 36417, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 35301, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2490:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "public" - }, - { - "id": 35305, - "nodeType": "VariableDeclaration", - "src": "2593:43:26", - "nodes": [], - "constant": false, - "documentation": { - "id": 35303, - "nodeType": "StructuredDocumentation", - "src": "2539:49:26", - "text": "@notice number of blocks in a bottom-up epoch" - }, - "functionSelector": "06c46853", - "mutability": "immutable", - "name": "bottomUpCheckPeriod", - "nameLocation": "2617:19:26", - "scope": 36417, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 35304, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2593:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "public" - }, - { - "id": 35308, - "nodeType": "VariableDeclaration", - "src": "2747:37:26", - "nodes": [], - "constant": false, - "documentation": { - "id": 35306, - "nodeType": "StructuredDocumentation", - "src": "2643:99:26", - "text": "@notice Minimal number of validators required for the subnet to be able to validate new blocks." - }, - "functionSelector": "c5ab2241", - "mutability": "immutable", - "name": "minValidators", - "nameLocation": "2771:13:26", - "scope": 36417, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 35307, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2747:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "public" - }, - { - "id": 35311, - "nodeType": "VariableDeclaration", - "src": "2865:33:26", - "nodes": [], - "constant": false, - "documentation": { - "id": 35309, - "nodeType": "StructuredDocumentation", - "src": "2791:69:26", - "text": "@notice Sequence number that uniquely identifies a validator set." - }, - "functionSelector": "04fda3d4", - "mutability": "mutable", - "name": "configurationNumber", - "nameLocation": "2879:19:26", - "scope": 36417, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 35310, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2865:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "public" - }, - { - "id": 35314, - "nodeType": "VariableDeclaration", - "src": "2963:39:26", - "nodes": [], - "constant": false, - "documentation": { - "id": 35312, - "nodeType": "StructuredDocumentation", - "src": "2905:53:26", - "text": "@notice Address of the IPC gateway for the subnet" - }, - "functionSelector": "cfca2824", - "mutability": "immutable", - "name": "ipcGatewayAddr", - "nameLocation": "2988:14:26", - "scope": 36417, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 35313, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2963:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "public" - }, - { - "id": 35318, - "nodeType": "VariableDeclaration", - "src": "3054:20:26", - "nodes": [], - "constant": false, - "documentation": { - "id": 35315, - "nodeType": "StructuredDocumentation", - "src": "3009:40:26", - "text": "@notice current status of the subnet" - }, - "functionSelector": "200d2ed2", - "mutability": "mutable", - "name": "status", - "nameLocation": "3068:6:26", - "scope": 36417, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - }, - "typeName": { - "id": 35317, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 35316, - "name": "Status", - "nameLocations": [ - "3054:6:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 37064, - "src": "3054:6:26" - }, - "referencedDeclaration": 37064, - "src": "3054:6:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "visibility": "public" - }, - { - "id": 35322, - "nodeType": "VariableDeclaration", - "src": "3126:40:26", - "nodes": [], - "constant": false, - "documentation": { - "id": 35319, - "nodeType": "StructuredDocumentation", - "src": "3081:40:26", - "text": "@notice Type of consensus algorithm." - }, - "functionSelector": "8ef3f761", - "mutability": "immutable", - "name": "consensus", - "nameLocation": "3157:9:26", - "scope": 36417, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ConsensusType_$37050", - "typeString": "enum ConsensusType" - }, - "typeName": { - "id": 35321, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 35320, - "name": "ConsensusType", - "nameLocations": [ - "3126:13:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 37050, - "src": "3126:13:26" - }, - "referencedDeclaration": 37050, - "src": "3126:13:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ConsensusType_$37050", - "typeString": "enum ConsensusType" - } - }, - "visibility": "public" - }, - { - "id": 35325, - "nodeType": "VariableDeclaration", - "src": "3232:41:26", - "nodes": [], - "constant": false, - "documentation": { - "id": 35323, - "nodeType": "StructuredDocumentation", - "src": "3173:54:26", - "text": "@notice contains the last executed checkpoint hash" - }, - "functionSelector": "5f832dbf", - "mutability": "mutable", - "name": "prevExecutedCheckpointHash", - "nameLocation": "3247:26:26", - "scope": 36417, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 35324, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3232:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "public" - }, - { - "id": 35328, - "nodeType": "VariableDeclaration", - "src": "3331:29:26", - "nodes": [], - "constant": false, - "documentation": { - "id": 35326, - "nodeType": "StructuredDocumentation", - "src": "3280:46:26", - "text": "@notice Human-readable name of the subnet." - }, - "functionSelector": "06fdde03", - "mutability": "immutable", - "name": "name", - "nameLocation": "3356:4:26", - "scope": 36417, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 35327, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3331:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "public" - }, - { - "id": 35330, - "nodeType": "VariableDeclaration", - "src": "3412:42:26", - "nodes": [], - "constant": false, - "functionSelector": "c18f64aa", - "mutability": "immutable", - "name": "currentSubnetHash", - "nameLocation": "3437:17:26", - "scope": 36417, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 35329, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3412:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "public" - }, - { - "id": 35336, - "nodeType": "VariableDeclaration", - "src": "3539:65:26", - "nodes": [], - "constant": false, - "documentation": { - "id": 35331, - "nodeType": "StructuredDocumentation", - "src": "3461:73:26", - "text": "@notice contains all committed bottom-up checkpoint at specific epoch" - }, - "functionSelector": "98903748", - "mutability": "mutable", - "name": "committedCheckpoints", - "nameLocation": "3584:20:26", - "scope": 36417, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$38937_storage_$", - "typeString": "mapping(uint64 => struct BottomUpCheckpoint)" - }, - "typeName": { - "id": 35335, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 35332, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3547:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Mapping", - "src": "3539:37:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$38937_storage_$", - "typeString": "mapping(uint64 => struct BottomUpCheckpoint)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 35334, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 35333, - "name": "BottomUpCheckpoint", - "nameLocations": [ - "3557:18:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38937, - "src": "3557:18:26" - }, - "referencedDeclaration": 38937, - "src": "3557:18:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint" - } - } - }, - "visibility": "public" - }, - { - "id": 35340, - "nodeType": "VariableDeclaration", - "src": "3660:44:26", - "nodes": [], - "constant": false, - "documentation": { - "id": 35337, - "nodeType": "StructuredDocumentation", - "src": "3611:44:26", - "text": "@notice List of validators in the subnet" - }, - "mutability": "mutable", - "name": "_validators", - "nameLocation": "3693:11:26", - "scope": 36417, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$32594_storage", - "typeString": "struct EnumerableSet.AddressSet" - }, - "typeName": { - "id": 35339, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 35338, - "name": "EnumerableSet.AddressSet", - "nameLocations": [ - "3660:13:26", - "3674:10:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 32594, - "src": "3660:24:26" - }, - "referencedDeclaration": 32594, - "src": "3660:24:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$32594_storage_ptr", - "typeString": "struct EnumerableSet.AddressSet" - } - }, - "visibility": "private" - }, - { - "id": 35346, - "nodeType": "VariableDeclaration", - "src": "3825:76:26", - "nodes": [], - "constant": false, - "documentation": { - "id": 35341, - "nodeType": "StructuredDocumentation", - "src": "3711:56:26", - "text": "@notice contains voted submissions for a given epoch" - }, - "mutability": "mutable", - "name": "_epochVoteSubmissions", - "nameLocation": "3880:21:26", - "scope": 36417, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_EpochVoteBottomUpSubmission_$39014_storage_$", - "typeString": "mapping(uint64 => struct EpochVoteBottomUpSubmission)" - }, - "typeName": { - "id": 35345, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 35342, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3833:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Mapping", - "src": "3825:46:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_EpochVoteBottomUpSubmission_$39014_storage_$", - "typeString": "mapping(uint64 => struct EpochVoteBottomUpSubmission)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 35344, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 35343, - "name": "EpochVoteBottomUpSubmission", - "nameLocations": [ - "3843:27:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39014, - "src": "3843:27:26" - }, - "referencedDeclaration": 39014, - "src": "3843:27:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39014_storage_ptr", - "typeString": "struct EpochVoteBottomUpSubmission" - } - } - }, - "visibility": "private" - }, - { - "id": 35351, - "nodeType": "VariableDeclaration", - "src": "3958:40:26", - "nodes": [], - "constant": false, - "documentation": { - "id": 35347, - "nodeType": "StructuredDocumentation", - "src": "3908:45:26", - "text": "@notice validator address to stake amount" - }, - "functionSelector": "26476204", - "mutability": "mutable", - "name": "stake", - "nameLocation": "3993:5:26", - "scope": 36417, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 35350, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 35348, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3966:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3958:27:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 35349, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3977:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "visibility": "public" - }, - { - "id": 35356, - "nodeType": "VariableDeclaration", - "src": "4062:53:26", - "nodes": [], - "constant": false, - "documentation": { - "id": 35352, - "nodeType": "StructuredDocumentation", - "src": "4005:52:26", - "text": "@notice validator address to accumulated rewards" - }, - "functionSelector": "73f273fc", - "mutability": "mutable", - "name": "accumulatedRewards", - "nameLocation": "4097:18:26", - "scope": 36417, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 35355, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 35353, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4070:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "4062:27:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 35354, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4081:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "visibility": "public" - }, - { - "id": 35361, - "nodeType": "VariableDeclaration", - "src": "4181:55:26", - "nodes": [], - "constant": false, - "documentation": { - "id": 35357, - "nodeType": "StructuredDocumentation", - "src": "4122:54:26", - "text": "@notice validator address to validator net address" - }, - "functionSelector": "23a35705", - "mutability": "mutable", - "name": "validatorNetAddresses", - "nameLocation": "4215:21:26", - "scope": 36417, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_string_storage_$", - "typeString": "mapping(address => string)" - }, - "typeName": { - "id": 35360, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 35358, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4189:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "4181:26:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_string_storage_$", - "typeString": "mapping(address => string)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 35359, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4200:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "visibility": "public" - }, - { - "id": 35367, - "nodeType": "VariableDeclaration", - "src": "4305:62:26", - "nodes": [], - "constant": false, - "documentation": { - "id": 35362, - "nodeType": "StructuredDocumentation", - "src": "4243:57:26", - "text": "@notice validator address to validator worker address" - }, - "functionSelector": "d4e25bab", - "mutability": "mutable", - "name": "validatorWorkerAddresses", - "nameLocation": "4343:24:26", - "scope": 36417, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_FvmAddress_$39034_storage_$", - "typeString": "mapping(address => struct FvmAddress)" - }, - "typeName": { - "id": 35366, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 35363, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4313:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "4305:30:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_FvmAddress_$39034_storage_$", - "typeString": "mapping(address => struct FvmAddress)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 35365, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 35364, - "name": "FvmAddress", - "nameLocations": [ - "4324:10:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39034, - "src": "4324:10:26" - }, - "referencedDeclaration": 39034, - "src": "4324:10:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_FvmAddress_$39034_storage_ptr", - "typeString": "struct FvmAddress" - } - } - }, - "visibility": "public" - }, - { - "id": 35371, - "nodeType": "VariableDeclaration", - "src": "4414:26:26", - "nodes": [], - "constant": false, - "documentation": { - "id": 35368, - "nodeType": "StructuredDocumentation", - "src": "4374:35:26", - "text": "@notice ID of the parent subnet" - }, - "mutability": "mutable", - "name": "_parentId", - "nameLocation": "4431:9:26", - "scope": 36417, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID" - }, - "typeName": { - "id": 35370, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 35369, - "name": "SubnetID", - "nameLocations": [ - "4414:8:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39060, - "src": "4414:8:26" - }, - "referencedDeclaration": 39060, - "src": "4414:8:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage_ptr", - "typeString": "struct SubnetID" - } - }, - "visibility": "private" - }, - { - "id": 35374, - "nodeType": "VariableDeclaration", - "src": "4477:20:26", - "nodes": [], - "constant": false, - "documentation": { - "id": 35372, - "nodeType": "StructuredDocumentation", - "src": "4447:25:26", - "text": "@notice genesis block" - }, - "functionSelector": "a7f0b3de", - "mutability": "mutable", - "name": "genesis", - "nameLocation": "4490:7:26", - "scope": 36417, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes" - }, - "typeName": { - "id": 35373, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4477:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "public" - }, - { - "id": 35376, - "nodeType": "ErrorDefinition", - "src": "4504:19:26", - "nodes": [], - "errorSelector": "e7e601db", - "name": "NotGateway", - "nameLocation": "4510:10:26", - "parameters": { - "id": 35375, - "nodeType": "ParameterList", - "parameters": [], - "src": "4520:2:26" - } - }, - { - "id": 35378, - "nodeType": "ErrorDefinition", - "src": "4528:19:26", - "nodes": [], - "errorSelector": "b7150de5", - "name": "NotAccount", - "nameLocation": "4534:10:26", - "parameters": { - "id": 35377, - "nodeType": "ParameterList", - "parameters": [], - "src": "4544:2:26" - } - }, - { - "id": 35380, - "nodeType": "ErrorDefinition", - "src": "4552:29:26", - "nodes": [], - "errorSelector": "92b21e66", - "name": "WorkerAddressInvalid", - "nameLocation": "4558:20:26", - "parameters": { - "id": 35379, - "nodeType": "ParameterList", - "parameters": [], - "src": "4578:2:26" - } - }, - { - "id": 35382, - "nodeType": "ErrorDefinition", - "src": "4586:25:26", - "nodes": [], - "errorSelector": "b4f18b02", - "name": "CollateralIsZero", - "nameLocation": "4592:16:26", - "parameters": { - "id": 35381, - "nodeType": "ParameterList", - "parameters": [], - "src": "4608:2:26" - } - }, - { - "id": 35384, - "nodeType": "ErrorDefinition", - "src": "4616:25:26", - "nodes": [], - "errorSelector": "5083a7f9", - "name": "CallerHasNoStake", - "nameLocation": "4622:16:26", - "parameters": { - "id": 35383, - "nodeType": "ParameterList", - "parameters": [], - "src": "4638:2:26" - } - }, - { - "id": 35386, - "nodeType": "ErrorDefinition", - "src": "4646:38:26", - "nodes": [], - "errorSelector": "cc91bf05", - "name": "CollateralStillLockedInSubnet", - "nameLocation": "4652:29:26", - "parameters": { - "id": 35385, - "nodeType": "ParameterList", - "parameters": [], - "src": "4681:2:26" - } - }, - { - "id": 35388, - "nodeType": "ErrorDefinition", - "src": "4689:28:26", - "nodes": [], - "errorSelector": "49191df6", - "name": "SubnetAlreadyKilled", - "nameLocation": "4695:19:26", - "parameters": { - "id": 35387, - "nodeType": "ParameterList", - "parameters": [], - "src": "4714:2:26" - } - }, - { - "id": 35390, - "nodeType": "ErrorDefinition", - "src": "4722:33:26", - "nodes": [], - "errorSelector": "d6c44aa2", - "name": "NotAllValidatorsHaveLeft", - "nameLocation": "4728:24:26", - "parameters": { - "id": 35389, - "nodeType": "ParameterList", - "parameters": [], - "src": "4752:2:26" - } - }, - { - "id": 35392, - "nodeType": "ErrorDefinition", - "src": "4760:21:26", - "nodes": [], - "errorSelector": "2ec5b449", - "name": "NotValidator", - "nameLocation": "4766:12:26", - "parameters": { - "id": 35391, - "nodeType": "ParameterList", - "parameters": [], - "src": "4778:2:26" - } - }, - { - "id": 35394, - "nodeType": "ErrorDefinition", - "src": "4786:24:26", - "nodes": [], - "errorSelector": "c18316bf", - "name": "SubnetNotActive", - "nameLocation": "4792:15:26", - "parameters": { - "id": 35393, - "nodeType": "ParameterList", - "parameters": [], - "src": "4807:2:26" - } - }, - { - "id": 35396, - "nodeType": "ErrorDefinition", - "src": "4815:30:26", - "nodes": [], - "errorSelector": "75ecc72d", - "name": "WrongCheckpointSource", - "nameLocation": "4821:21:26", - "parameters": { - "id": 35395, - "nodeType": "ParameterList", - "parameters": [], - "src": "4842:2:26" - } - }, - { - "id": 35398, - "nodeType": "ErrorDefinition", - "src": "4850:29:26", - "nodes": [], - "errorSelector": "85fdfc09", - "name": "CheckpointNotChained", - "nameLocation": "4856:20:26", - "parameters": { - "id": 35397, - "nodeType": "ParameterList", - "parameters": [], - "src": "4876:2:26" - } - }, - { - "id": 35400, - "nodeType": "ErrorDefinition", - "src": "4884:29:26", - "nodes": [], - "errorSelector": "efa9c8f1", - "name": "NoValidatorsInSubnet", - "nameLocation": "4890:20:26", - "parameters": { - "id": 35399, - "nodeType": "ParameterList", - "parameters": [], - "src": "4910:2:26" - } - }, - { - "id": 35402, - "nodeType": "ErrorDefinition", - "src": "4918:35:26", - "nodes": [], - "errorSelector": "60e9957e", - "name": "NotEnoughBalanceForRewards", - "nameLocation": "4924:26:26", - "parameters": { - "id": 35401, - "nodeType": "ParameterList", - "parameters": [], - "src": "4950:2:26" - } - }, - { - "id": 35404, - "nodeType": "ErrorDefinition", - "src": "4958:26:26", - "nodes": [], - "errorSelector": "0bd9169f", - "name": "MessagesNotSorted", - "nameLocation": "4964:17:26", - "parameters": { - "id": 35403, - "nodeType": "ParameterList", - "parameters": [], - "src": "4981:2:26" - } - }, - { - "id": 35406, - "nodeType": "ErrorDefinition", - "src": "4989:27:26", - "nodes": [], - "errorSelector": "ce601f22", - "name": "NoRewardToWithdraw", - "nameLocation": "4995:18:26", - "parameters": { - "id": 35405, - "nodeType": "ParameterList", - "parameters": [], - "src": "5013:2:26" - } - }, - { - "id": 35408, - "nodeType": "ErrorDefinition", - "src": "5021:28:26", - "nodes": [], - "errorSelector": "8b3ddc33", - "name": "GatewayCannotBeZero", - "nameLocation": "5027:19:26", - "parameters": { - "id": 35407, - "nodeType": "ParameterList", - "parameters": [], - "src": "5046:2:26" - } - }, - { - "id": 35422, - "nodeType": "FunctionDefinition", - "src": "5055:127:26", - "nodes": [], - "body": { - "id": 35421, - "nodeType": "Block", - "src": "5093:89:26", - "nodes": [], - "statements": [ - { - "condition": { - "id": 35415, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "5107:23:26", - "subExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "expression": { - "id": 35411, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "5108:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 35412, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5112:6:26", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "5108:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 35413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5119:9:26", - "memberName": "isAccount", - "nodeType": "MemberAccess", - "referencedDeclaration": 37231, - "src": "5108:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_address_$returns$_t_bool_$attached_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 35414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5108:22:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 35420, - "nodeType": "IfStatement", - "src": "5103:73:26", - "trueBody": { - "id": 35419, - "nodeType": "Block", - "src": "5132:44:26", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 35416, - "name": "NotAccount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35378, - "src": "5153:10:26", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 35417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5153:12:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 35418, - "nodeType": "RevertStatement", - "src": "5146:19:26" - } - ] - } - } - ] - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_signableOnly", - "nameLocation": "5064:13:26", - "parameters": { - "id": 35409, - "nodeType": "ParameterList", - "parameters": [], - "src": "5077:2:26" - }, - "returnParameters": { - "id": 35410, - "nodeType": "ParameterList", - "parameters": [], - "src": "5093:0:26" - }, - "scope": 36417, - "stateMutability": "view", - "virtual": false, - "visibility": "private" - }, - { - "id": 35435, - "nodeType": "FunctionDefinition", - "src": "5188:131:26", - "nodes": [], - "body": { - "id": 35434, - "nodeType": "Block", - "src": "5225:94:26", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 35428, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 35425, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "5239:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 35426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5243:6:26", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "5239:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 35427, - "name": "ipcGatewayAddr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35314, - "src": "5253:14:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5239:28:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 35433, - "nodeType": "IfStatement", - "src": "5235:78:26", - "trueBody": { - "id": 35432, - "nodeType": "Block", - "src": "5269:44:26", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 35429, - "name": "NotGateway", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35376, - "src": "5290:10:26", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 35430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5290:12:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 35431, - "nodeType": "RevertStatement", - "src": "5283:19:26" - } - ] - } - } - ] - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_onlyGateway", - "nameLocation": "5197:12:26", - "parameters": { - "id": 35423, - "nodeType": "ParameterList", - "parameters": [], - "src": "5209:2:26" - }, - "returnParameters": { - "id": 35424, - "nodeType": "ParameterList", - "parameters": [], - "src": "5225:0:26" - }, - "scope": 36417, - "stateMutability": "view", - "virtual": false, - "visibility": "private" - }, - { - "id": 35448, - "nodeType": "FunctionDefinition", - "src": "5325:133:26", - "nodes": [], - "body": { - "id": 35447, - "nodeType": "Block", - "src": "5360:98:26", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - }, - "id": 35441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 35438, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35318, - "src": "5374:6:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 35439, - "name": "Status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37064, - "src": "5384:6:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Status_$37064_$", - "typeString": "type(enum Status)" - } - }, - "id": 35440, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "5391:6:26", - "memberName": "Killed", - "nodeType": "MemberAccess", - "referencedDeclaration": 37061, - "src": "5384:13:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "src": "5374:23:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 35446, - "nodeType": "IfStatement", - "src": "5370:82:26", - "trueBody": { - "id": 35445, - "nodeType": "Block", - "src": "5399:53:26", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 35442, - "name": "SubnetAlreadyKilled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35388, - "src": "5420:19:26", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 35443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5420:21:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 35444, - "nodeType": "RevertStatement", - "src": "5413:28:26" - } - ] - } - } - ] - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_notKilled", - "nameLocation": "5334:10:26", - "parameters": { - "id": 35436, - "nodeType": "ParameterList", - "parameters": [], - "src": "5344:2:26" - }, - "returnParameters": { - "id": 35437, - "nodeType": "ParameterList", - "parameters": [], - "src": "5360:0:26" - }, - "scope": 36417, - "stateMutability": "view", - "virtual": false, - "visibility": "private" - }, - { - "id": 35455, - "nodeType": "ModifierDefinition", - "src": "5464:65:26", - "nodes": [], - "body": { - "id": 35454, - "nodeType": "Block", - "src": "5487:42:26", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 35450, - "name": "_onlyGateway", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35435, - "src": "5497:12:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 35451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5497:14:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 35452, - "nodeType": "ExpressionStatement", - "src": "5497:14:26" - }, - { - "id": 35453, - "nodeType": "PlaceholderStatement", - "src": "5521:1:26" - } - ] - }, - "name": "onlyGateway", - "nameLocation": "5473:11:26", - "parameters": { - "id": 35449, - "nodeType": "ParameterList", - "parameters": [], - "src": "5484:2:26" - }, - "virtual": false, - "visibility": "internal" - }, - { - "id": 35462, - "nodeType": "ModifierDefinition", - "src": "5535:67:26", - "nodes": [], - "body": { - "id": 35461, - "nodeType": "Block", - "src": "5559:43:26", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 35457, - "name": "_signableOnly", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35422, - "src": "5569:13:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 35458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5569:15:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 35459, - "nodeType": "ExpressionStatement", - "src": "5569:15:26" - }, - { - "id": 35460, - "nodeType": "PlaceholderStatement", - "src": "5594:1:26" - } - ] - }, - "name": "signableOnly", - "nameLocation": "5544:12:26", - "parameters": { - "id": 35456, - "nodeType": "ParameterList", - "parameters": [], - "src": "5556:2:26" - }, - "virtual": false, - "visibility": "internal" - }, - { - "id": 35469, - "nodeType": "ModifierDefinition", - "src": "5608:61:26", - "nodes": [], - "body": { - "id": 35468, - "nodeType": "Block", - "src": "5629:40:26", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 35464, - "name": "_notKilled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35448, - "src": "5639:10:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 35465, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5639:12:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 35466, - "nodeType": "ExpressionStatement", - "src": "5639:12:26" - }, - { - "id": 35467, - "nodeType": "PlaceholderStatement", - "src": "5661:1:26" - } - ] - }, - "name": "notKilled", - "nameLocation": "5617:9:26", - "parameters": { - "id": 35463, - "nodeType": "ParameterList", - "parameters": [], - "src": "5626:2:26" - }, - "virtual": false, - "visibility": "internal" - }, - { - "id": 35479, - "nodeType": "StructDefinition", - "src": "5675:134:26", - "nodes": [], - "canonicalName": "SubnetActor.ValidatorInfo", - "members": [ - { - "constant": false, - "id": 35471, - "mutability": "mutable", - "name": "addr", - "nameLocation": "5714:4:26", - "nodeType": "VariableDeclaration", - "scope": 35479, - "src": "5706:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 35470, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5706:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 35473, - "mutability": "mutable", - "name": "weight", - "nameLocation": "5736:6:26", - "nodeType": "VariableDeclaration", - "scope": 35479, - "src": "5728:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 35472, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5728:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 35476, - "mutability": "mutable", - "name": "workerAddr", - "nameLocation": "5763:10:26", - "nodeType": "VariableDeclaration", - "scope": 35479, - "src": "5752:21:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_FvmAddress_$39034_storage_ptr", - "typeString": "struct FvmAddress" - }, - "typeName": { - "id": 35475, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 35474, - "name": "FvmAddress", - "nameLocations": [ - "5752:10:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39034, - "src": "5752:10:26" - }, - "referencedDeclaration": 39034, - "src": "5752:10:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_FvmAddress_$39034_storage_ptr", - "typeString": "struct FvmAddress" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 35478, - "mutability": "mutable", - "name": "netAddresses", - "nameLocation": "5790:12:26", - "nodeType": "VariableDeclaration", - "scope": 35479, - "src": "5783:19:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 35477, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5783:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "name": "ValidatorInfo", - "nameLocation": "5682:13:26", - "scope": 36417, - "visibility": "public" - }, - { - "id": 35486, - "nodeType": "StructDefinition", - "src": "5815:99:26", - "nodes": [], - "canonicalName": "SubnetActor.ValidatorSet", - "members": [ - { - "constant": false, - "id": 35483, - "mutability": "mutable", - "name": "validators", - "nameLocation": "5861:10:26", - "nodeType": "VariableDeclaration", - "scope": 35486, - "src": "5845:26:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ValidatorInfo_$35479_storage_$dyn_storage_ptr", - "typeString": "struct SubnetActor.ValidatorInfo[]" - }, - "typeName": { - "baseType": { - "id": 35481, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 35480, - "name": "ValidatorInfo", - "nameLocations": [ - "5845:13:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 35479, - "src": "5845:13:26" - }, - "referencedDeclaration": 35479, - "src": "5845:13:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ValidatorInfo_$35479_storage_ptr", - "typeString": "struct SubnetActor.ValidatorInfo" - } - }, - "id": 35482, - "nodeType": "ArrayTypeName", - "src": "5845:15:26", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ValidatorInfo_$35479_storage_$dyn_storage_ptr", - "typeString": "struct SubnetActor.ValidatorInfo[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 35485, - "mutability": "mutable", - "name": "configurationNumber", - "nameLocation": "5888:19:26", - "nodeType": "VariableDeclaration", - "scope": 35486, - "src": "5881:26:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 35484, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "5881:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "name": "ValidatorSet", - "nameLocation": "5822:12:26", - "scope": 36417, - "visibility": "public" - }, - { - "id": 35509, - "nodeType": "StructDefinition", - "src": "5920:343:26", - "nodes": [], - "canonicalName": "SubnetActor.ConstructParams", - "members": [ - { - "constant": false, - "id": 35489, - "mutability": "mutable", - "name": "parentId", - "nameLocation": "5962:8:26", - "nodeType": "VariableDeclaration", - "scope": 35509, - "src": "5953:17:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage_ptr", - "typeString": "struct SubnetID" - }, - "typeName": { - "id": 35488, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 35487, - "name": "SubnetID", - "nameLocations": [ - "5953:8:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39060, - "src": "5953:8:26" - }, - "referencedDeclaration": 39060, - "src": "5953:8:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage_ptr", - "typeString": "struct SubnetID" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 35491, - "mutability": "mutable", - "name": "name", - "nameLocation": "5988:4:26", - "nodeType": "VariableDeclaration", - "scope": 35509, - "src": "5980:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 35490, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5980:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 35493, - "mutability": "mutable", - "name": "ipcGatewayAddr", - "nameLocation": "6010:14:26", - "nodeType": "VariableDeclaration", - "scope": 35509, - "src": "6002:22:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 35492, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6002:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 35496, - "mutability": "mutable", - "name": "consensus", - "nameLocation": "6048:9:26", - "nodeType": "VariableDeclaration", - "scope": 35509, - "src": "6034:23:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ConsensusType_$37050", - "typeString": "enum ConsensusType" - }, - "typeName": { - "id": 35495, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 35494, - "name": "ConsensusType", - "nameLocations": [ - "6034:13:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 37050, - "src": "6034:13:26" - }, - "referencedDeclaration": 37050, - "src": "6034:13:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ConsensusType_$37050", - "typeString": "enum ConsensusType" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 35498, - "mutability": "mutable", - "name": "minActivationCollateral", - "nameLocation": "6075:23:26", - "nodeType": "VariableDeclaration", - "scope": 35509, - "src": "6067:31:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 35497, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6067:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 35500, - "mutability": "mutable", - "name": "minValidators", - "nameLocation": "6115:13:26", - "nodeType": "VariableDeclaration", - "scope": 35509, - "src": "6108:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 35499, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "6108:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 35502, - "mutability": "mutable", - "name": "bottomUpCheckPeriod", - "nameLocation": "6145:19:26", - "nodeType": "VariableDeclaration", - "scope": 35509, - "src": "6138:26:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 35501, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "6138:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 35504, - "mutability": "mutable", - "name": "topDownCheckPeriod", - "nameLocation": "6181:18:26", - "nodeType": "VariableDeclaration", - "scope": 35509, - "src": "6174:25:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 35503, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "6174:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 35506, - "mutability": "mutable", - "name": "majorityPercentage", - "nameLocation": "6215:18:26", - "nodeType": "VariableDeclaration", - "scope": 35509, - "src": "6209:24:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 35505, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "6209:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 35508, - "mutability": "mutable", - "name": "genesis", - "nameLocation": "6249:7:26", - "nodeType": "VariableDeclaration", - "scope": 35509, - "src": "6243:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 35507, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6243:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "name": "ConstructParams", - "nameLocation": "5927:15:26", - "scope": 36417, - "visibility": "public" - }, - { - "id": 35615, - "nodeType": "FunctionDefinition", - "src": "6269:1281:26", - "nodes": [], - "body": { - "id": 35614, - "nodeType": "Block", - "src": "6374:1176:26", - "nodes": [], - "statements": [ - { - "expression": { - "id": 35524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 35521, - "name": "_parentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35371, - "src": "6384:9:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 35522, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35512, - "src": "6396:6:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConstructParams_$35509_memory_ptr", - "typeString": "struct SubnetActor.ConstructParams memory" - } - }, - "id": 35523, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6403:8:26", - "memberName": "parentId", - "nodeType": "MemberAccess", - "referencedDeclaration": 35489, - "src": "6396:15:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - }, - "src": "6384:27:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - }, - "id": 35525, - "nodeType": "ExpressionStatement", - "src": "6384:27:26" - }, - { - "expression": { - "id": 35529, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 35526, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35328, - "src": "6421:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 35527, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35512, - "src": "6428:6:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConstructParams_$35509_memory_ptr", - "typeString": "struct SubnetActor.ConstructParams memory" - } - }, - "id": 35528, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6435:4:26", - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 35491, - "src": "6428:11:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "6421:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 35530, - "nodeType": "ExpressionStatement", - "src": "6421:18:26" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 35537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 35531, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35512, - "src": "6453:6:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConstructParams_$35509_memory_ptr", - "typeString": "struct SubnetActor.ConstructParams memory" - } - }, - "id": 35532, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6460:14:26", - "memberName": "ipcGatewayAddr", - "nodeType": "MemberAccess", - "referencedDeclaration": 35493, - "src": "6453:21:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 35535, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6486:1:26", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 35534, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6478:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 35533, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6478:7:26", - "typeDescriptions": {} - } - }, - "id": 35536, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6478:10:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6453:35:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 35542, - "nodeType": "IfStatement", - "src": "6449:94:26", - "trueBody": { - "id": 35541, - "nodeType": "Block", - "src": "6490:53:26", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 35538, - "name": "GatewayCannotBeZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35408, - "src": "6511:19:26", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 35539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6511:21:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 35540, - "nodeType": "RevertStatement", - "src": "6504:28:26" - } - ] - } - }, - { - "expression": { - "id": 35546, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 35543, - "name": "ipcGatewayAddr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35314, - "src": "6552:14:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 35544, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35512, - "src": "6569:6:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConstructParams_$35509_memory_ptr", - "typeString": "struct SubnetActor.ConstructParams memory" - } - }, - "id": 35545, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6576:14:26", - "memberName": "ipcGatewayAddr", - "nodeType": "MemberAccess", - "referencedDeclaration": 35493, - "src": "6569:21:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6552:38:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 35547, - "nodeType": "ExpressionStatement", - "src": "6552:38:26" - }, - { - "expression": { - "id": 35551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 35548, - "name": "consensus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35322, - "src": "6600:9:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ConsensusType_$37050", - "typeString": "enum ConsensusType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 35549, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35512, - "src": "6612:6:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConstructParams_$35509_memory_ptr", - "typeString": "struct SubnetActor.ConstructParams memory" - } - }, - "id": 35550, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6619:9:26", - "memberName": "consensus", - "nodeType": "MemberAccess", - "referencedDeclaration": 35496, - "src": "6612:16:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ConsensusType_$37050", - "typeString": "enum ConsensusType" - } - }, - "src": "6600:28:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ConsensusType_$37050", - "typeString": "enum ConsensusType" - } - }, - "id": 35552, - "nodeType": "ExpressionStatement", - "src": "6600:28:26" - }, - { - "expression": { - "id": 35562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 35553, - "name": "minActivationCollateral", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35296, - "src": "6638:23:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 35557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 35554, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35512, - "src": "6664:6:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConstructParams_$35509_memory_ptr", - "typeString": "struct SubnetActor.ConstructParams memory" - } - }, - "id": 35555, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6671:23:26", - "memberName": "minActivationCollateral", - "nodeType": "MemberAccess", - "referencedDeclaration": 35498, - "src": "6664:30:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 35556, - "name": "MIN_COLLATERAL_AMOUNT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35293, - "src": "6697:21:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6664:54:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "expression": { - "id": 35559, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35512, - "src": "6769:6:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConstructParams_$35509_memory_ptr", - "typeString": "struct SubnetActor.ConstructParams memory" - } - }, - "id": 35560, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6776:23:26", - "memberName": "minActivationCollateral", - "nodeType": "MemberAccess", - "referencedDeclaration": 35498, - "src": "6769:30:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 35561, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "6664:135:26", - "trueExpression": { - "id": 35558, - "name": "MIN_COLLATERAL_AMOUNT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35293, - "src": "6733:21:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6638:161:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 35563, - "nodeType": "ExpressionStatement", - "src": "6638:161:26" - }, - { - "expression": { - "id": 35567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 35564, - "name": "minValidators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35308, - "src": "6809:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 35565, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35512, - "src": "6825:6:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConstructParams_$35509_memory_ptr", - "typeString": "struct SubnetActor.ConstructParams memory" - } - }, - "id": 35566, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6832:13:26", - "memberName": "minValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 35500, - "src": "6825:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "6809:36:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 35568, - "nodeType": "ExpressionStatement", - "src": "6809:36:26" - }, - { - "expression": { - "id": 35578, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 35569, - "name": "topDownCheckPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35302, - "src": "6855:18:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "condition": { - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 35573, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 35570, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35512, - "src": "6876:6:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConstructParams_$35509_memory_ptr", - "typeString": "struct SubnetActor.ConstructParams memory" - } - }, - "id": 35571, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6883:18:26", - "memberName": "topDownCheckPeriod", - "nodeType": "MemberAccess", - "referencedDeclaration": 35504, - "src": "6876:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 35572, - "name": "MIN_CHECKPOINT_PERIOD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36613, - "src": "6904:21:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "6876:49:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "expression": { - "id": 35575, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35512, - "src": "6976:6:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConstructParams_$35509_memory_ptr", - "typeString": "struct SubnetActor.ConstructParams memory" - } - }, - "id": 35576, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6983:18:26", - "memberName": "topDownCheckPeriod", - "nodeType": "MemberAccess", - "referencedDeclaration": 35504, - "src": "6976:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 35577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "6876:125:26", - "trueExpression": { - "id": 35574, - "name": "MIN_CHECKPOINT_PERIOD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36613, - "src": "6940:21:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "6855:146:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 35579, - "nodeType": "ExpressionStatement", - "src": "6855:146:26" - }, - { - "expression": { - "id": 35582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 35580, - "name": "bottomUpCheckPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35305, - "src": "7011:19:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 35581, - "name": "submissionPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36619, - "src": "7033:16:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "7011:38:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 35583, - "nodeType": "ExpressionStatement", - "src": "7011:38:26" - }, - { - "expression": { - "id": 35587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 35584, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35318, - "src": "7059:6:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 35585, - "name": "Status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37064, - "src": "7068:6:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Status_$37064_$", - "typeString": "type(enum Status)" - } - }, - "id": 35586, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "7075:12:26", - "memberName": "Instantiated", - "nodeType": "MemberAccess", - "referencedDeclaration": 37063, - "src": "7068:19:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "src": "7059:28:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "id": 35588, - "nodeType": "ExpressionStatement", - "src": "7059:28:26" - }, - { - "expression": { - "id": 35592, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 35589, - "name": "genesis", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35374, - "src": "7097:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 35590, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35512, - "src": "7107:6:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConstructParams_$35509_memory_ptr", - "typeString": "struct SubnetActor.ConstructParams memory" - } - }, - "id": 35591, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7114:7:26", - "memberName": "genesis", - "nodeType": "MemberAccess", - "referencedDeclaration": 35508, - "src": "7107:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "7097:24:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 35593, - "nodeType": "ExpressionStatement", - "src": "7097:24:26" - }, - { - "expression": { - "id": 35604, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 35594, - "name": "currentSubnetHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35330, - "src": "7131:17:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 35599, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "7184:4:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SubnetActor_$36417", - "typeString": "contract SubnetActor" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SubnetActor_$36417", - "typeString": "contract SubnetActor" - } - ], - "id": 35598, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7176:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 35597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7176:7:26", - "typeDescriptions": {} - } - }, - "id": 35600, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7176:13:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 35595, - "name": "_parentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35371, - "src": "7151:9:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - }, - "id": 35596, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7161:14:26", - "memberName": "createSubnetId", - "nodeType": "MemberAccess", - "referencedDeclaration": 38559, - "src": "7151:24:26", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39060_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$39060_memory_ptr_$attached_to$_t_struct$_SubnetID_$39060_memory_ptr_$", - "typeString": "function (struct SubnetID memory,address) pure returns (struct SubnetID memory)" - } - }, - "id": 35601, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7151:39:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - }, - "id": 35602, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7191:6:26", - "memberName": "toHash", - "nodeType": "MemberAccess", - "referencedDeclaration": 38484, - "src": "7151:46:26", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$39060_memory_ptr_$", - "typeString": "function (struct SubnetID memory) pure returns (bytes32)" - } - }, - "id": 35603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7151:48:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "7131:68:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 35605, - "nodeType": "ExpressionStatement", - "src": "7131:68:26" - }, - { - "expression": { - "id": 35608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 35606, - "name": "_genesisEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36625, - "src": "7493:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "30", - "id": 35607, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7509:1:26", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7493:17:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 35609, - "nodeType": "ExpressionStatement", - "src": "7493:17:26" - }, - { - "expression": { - "id": 35612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 35610, - "name": "configurationNumber", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35311, - "src": "7520:19:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "30", - "id": 35611, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7542:1:26", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7520:23:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 35613, - "nodeType": "ExpressionStatement", - "src": "7520:23:26" - } - ] - }, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "expression": { - "id": 35515, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35512, - "src": "6319:6:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConstructParams_$35509_memory_ptr", - "typeString": "struct SubnetActor.ConstructParams memory" - } - }, - "id": 35516, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6326:18:26", - "memberName": "majorityPercentage", - "nodeType": "MemberAccess", - "referencedDeclaration": 35506, - "src": "6319:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "expression": { - "id": 35517, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35512, - "src": "6346:6:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConstructParams_$35509_memory_ptr", - "typeString": "struct SubnetActor.ConstructParams memory" - } - }, - "id": 35518, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6353:19:26", - "memberName": "bottomUpCheckPeriod", - "nodeType": "MemberAccess", - "referencedDeclaration": 35502, - "src": "6346:26:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "id": 35519, - "kind": "baseConstructorSpecifier", - "modifierName": { - "id": 35514, - "name": "Voting", - "nameLocations": [ - "6312:6:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 37017, - "src": "6312:6:26" - }, - "nodeType": "ModifierInvocation", - "src": "6312:61:26" - } - ], - "name": "", - "nameLocation": "-1:-1:-1", - "parameters": { - "id": 35513, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 35512, - "mutability": "mutable", - "name": "params", - "nameLocation": "6304:6:26", - "nodeType": "VariableDeclaration", - "scope": 35615, - "src": "6281:29:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConstructParams_$35509_memory_ptr", - "typeString": "struct SubnetActor.ConstructParams" - }, - "typeName": { - "id": 35511, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 35510, - "name": "ConstructParams", - "nameLocations": [ - "6281:15:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 35509, - "src": "6281:15:26" - }, - "referencedDeclaration": 35509, - "src": "6281:15:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConstructParams_$35509_storage_ptr", - "typeString": "struct SubnetActor.ConstructParams" - } - }, - "visibility": "internal" - } - ], - "src": "6280:31:26" - }, - "returnParameters": { - "id": 35520, - "nodeType": "ParameterList", - "parameters": [], - "src": "6374:0:26" - }, - "scope": 36417, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 35621, - "nodeType": "FunctionDefinition", - "src": "7598:41:26", - "nodes": [], - "body": { - "id": 35620, - "nodeType": "Block", - "src": "7637:2:26", - "nodes": [], - "statements": [] - }, - "implemented": true, - "kind": "receive", - "modifiers": [ - { - "id": 35618, - "kind": "modifierInvocation", - "modifierName": { - "id": 35617, - "name": "onlyGateway", - "nameLocations": [ - "7625:11:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 35455, - "src": "7625:11:26" - }, - "nodeType": "ModifierInvocation", - "src": "7625:11:26" - } - ], - "name": "", - "nameLocation": "-1:-1:-1", - "parameters": { - "id": 35616, - "nodeType": "ParameterList", - "parameters": [], - "src": "7605:2:26" - }, - "returnParameters": { - "id": 35619, - "nodeType": "ParameterList", - "parameters": [], - "src": "7637:0:26" - }, - "scope": 36417, - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "id": 35744, - "nodeType": "FunctionDefinition", - "src": "7815:1244:26", - "nodes": [], - "body": { - "id": 35743, - "nodeType": "Block", - "src": "7926:1133:26", - "nodes": [], - "statements": [ - { - "assignments": [ - 35635 - ], - "declarations": [ - { - "constant": false, - "id": 35635, - "mutability": "mutable", - "name": "validatorStake", - "nameLocation": "7944:14:26", - "nodeType": "VariableDeclaration", - "scope": 35743, - "src": "7936:22:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 35634, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7936:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 35638, - "initialValue": { - "expression": { - "id": 35636, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "7961:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 35637, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7965:5:26", - "memberName": "value", - "nodeType": "MemberAccess", - "src": "7961:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7936:34:26" - }, - { - "assignments": [ - 35640 - ], - "declarations": [ - { - "constant": false, - "id": 35640, - "mutability": "mutable", - "name": "validator", - "nameLocation": "7988:9:26", - "nodeType": "VariableDeclaration", - "scope": 35743, - "src": "7980:17:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 35639, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7980:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 35643, - "initialValue": { - "expression": { - "id": 35641, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "8000:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 35642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8004:6:26", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "8000:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7980:30:26" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 35646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 35644, - "name": "validatorStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35635, - "src": "8024:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 35645, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8042:1:26", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8024:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 35651, - "nodeType": "IfStatement", - "src": "8020:75:26", - "trueBody": { - "id": 35650, - "nodeType": "Block", - "src": "8045:50:26", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 35647, - "name": "CollateralIsZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35382, - "src": "8066:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 35648, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8066:18:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 35649, - "nodeType": "RevertStatement", - "src": "8059:25:26" - } - ] - } - }, - { - "expression": { - "id": 35656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 35652, - "name": "stake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35351, - "src": "8105:5:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 35654, - "indexExpression": { - "id": 35653, - "name": "validator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35640, - "src": "8111:9:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8105:16:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 35655, - "name": "validatorStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35635, - "src": "8125:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8105:34:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 35657, - "nodeType": "ExpressionStatement", - "src": "8105:34:26" - }, - { - "expression": { - "id": 35660, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 35658, - "name": "totalStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35299, - "src": "8149:10:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 35659, - "name": "validatorStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35635, - "src": "8163:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8149:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 35661, - "nodeType": "ExpressionStatement", - "src": "8149:28:26" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 35666, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "baseExpression": { - "id": 35662, - "name": "stake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35351, - "src": "8192:5:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 35664, - "indexExpression": { - "id": 35663, - "name": "validator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35640, - "src": "8198:9:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8192:16:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "id": 35665, - "name": "minActivationCollateral", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35296, - "src": "8212:23:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8192:43:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 35693, - "nodeType": "IfStatement", - "src": "8188:355:26", - "trueBody": { - "id": 35692, - "nodeType": "Block", - "src": "8237:306:26", - "statements": [ - { - "condition": { - "id": 35671, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "8255:32:26", - "subExpression": { - "arguments": [ - { - "id": 35669, - "name": "validator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35640, - "src": "8277:9:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 35667, - "name": "_validators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35340, - "src": "8256:11:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$32594_storage", - "typeString": "struct EnumerableSet.AddressSet storage ref" - } - }, - "id": 35668, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8268:8:26", - "memberName": "contains", - "nodeType": "MemberAccess", - "referencedDeclaration": 32675, - "src": "8256:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32594_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$32594_storage_ptr_$", - "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" - } - }, - "id": 35670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8256:31:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 35691, - "nodeType": "IfStatement", - "src": "8251:282:26", - "trueBody": { - "id": 35690, - "nodeType": "Block", - "src": "8289:244:26", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 35675, - "name": "validator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35640, - "src": "8382:9:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 35672, - "name": "_validators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35340, - "src": "8366:11:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$32594_storage", - "typeString": "struct EnumerableSet.AddressSet storage ref" - } - }, - "id": 35674, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8378:3:26", - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 32621, - "src": "8366:15:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$32594_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$32594_storage_ptr_$", - "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" - } - }, - "id": 35676, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8366:26:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 35677, - "nodeType": "ExpressionStatement", - "src": "8366:26:26" - }, - { - "expression": { - "id": 35682, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 35678, - "name": "validatorNetAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35361, - "src": "8410:21:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_string_storage_$", - "typeString": "mapping(address => string storage ref)" - } - }, - "id": 35680, - "indexExpression": { - "id": 35679, - "name": "validator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35640, - "src": "8432:9:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8410:32:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 35681, - "name": "netAddr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35624, - "src": "8445:7:26", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "8410:42:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 35683, - "nodeType": "ExpressionStatement", - "src": "8410:42:26" - }, - { - "expression": { - "id": 35688, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 35684, - "name": "validatorWorkerAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35367, - "src": "8470:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_FvmAddress_$39034_storage_$", - "typeString": "mapping(address => struct FvmAddress storage ref)" - } - }, - "id": 35686, - "indexExpression": { - "id": 35685, - "name": "validator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35640, - "src": "8495:9:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8470:35:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_FvmAddress_$39034_storage", - "typeString": "struct FvmAddress storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 35687, - "name": "workerAddr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35627, - "src": "8508:10:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_FvmAddress_$39034_calldata_ptr", - "typeString": "struct FvmAddress calldata" - } - }, - "src": "8470:48:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_FvmAddress_$39034_storage", - "typeString": "struct FvmAddress storage ref" - } - }, - "id": 35689, - "nodeType": "ExpressionStatement", - "src": "8470:48:26" - } - ] - } - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - }, - "id": 35697, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 35694, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35318, - "src": "8557:6:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 35695, - "name": "Status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37064, - "src": "8567:6:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Status_$37064_$", - "typeString": "type(enum Status)" - } - }, - "id": 35696, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "8574:12:26", - "memberName": "Instantiated", - "nodeType": "MemberAccess", - "referencedDeclaration": 37063, - "src": "8567:19:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "src": "8557:29:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 35741, - "nodeType": "Block", - "src": "8788:265:26", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - }, - "id": 35720, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 35717, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35318, - "src": "8806:6:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 35718, - "name": "Status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37064, - "src": "8816:6:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Status_$37064_$", - "typeString": "type(enum Status)" - } - }, - "id": 35719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "8823:8:26", - "memberName": "Inactive", - "nodeType": "MemberAccess", - "referencedDeclaration": 37060, - "src": "8816:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "src": "8806:25:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 35732, - "nodeType": "IfStatement", - "src": "8802:169:26", - "trueBody": { - "id": 35731, - "nodeType": "Block", - "src": "8833:138:26", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 35723, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 35721, - "name": "totalStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35299, - "src": "8855:10:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "id": 35722, - "name": "minActivationCollateral", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35296, - "src": "8869:23:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8855:37:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 35730, - "nodeType": "IfStatement", - "src": "8851:106:26", - "trueBody": { - "id": 35729, - "nodeType": "Block", - "src": "8894:63:26", - "statements": [ - { - "expression": { - "id": 35727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 35724, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35318, - "src": "8916:6:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 35725, - "name": "Status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37064, - "src": "8925:6:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Status_$37064_$", - "typeString": "type(enum Status)" - } - }, - "id": 35726, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "8932:6:26", - "memberName": "Active", - "nodeType": "MemberAccess", - "referencedDeclaration": 37059, - "src": "8925:13:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "src": "8916:22:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "id": 35728, - "nodeType": "ExpressionStatement", - "src": "8916:22:26" - } - ] - } - } - ] - } - }, - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": [], - "expression": { - "arguments": [ - { - "id": 35734, - "name": "ipcGatewayAddr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35314, - "src": "8993:14:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 35733, - "name": "IGateway", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37158, - "src": "8984:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IGateway_$37158_$", - "typeString": "type(contract IGateway)" - } - }, - "id": 35735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8984:24:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGateway_$37158", - "typeString": "contract IGateway" - } - }, - "id": 35736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9009:8:26", - "memberName": "addStake", - "nodeType": "MemberAccess", - "referencedDeclaration": 37090, - "src": "8984:33:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$__$returns$__$", - "typeString": "function () payable external" - } - }, - "id": 35738, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "names": [ - "value" - ], - "nodeType": "FunctionCallOptions", - "options": [ - { - "id": 35737, - "name": "validatorStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35635, - "src": "9025:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "src": "8984:56:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$__$returns$__$value", - "typeString": "function () payable external" - } - }, - "id": 35739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8984:58:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 35740, - "nodeType": "ExpressionStatement", - "src": "8984:58:26" - } - ] - }, - "id": 35742, - "nodeType": "IfStatement", - "src": "8553:500:26", - "trueBody": { - "id": 35716, - "nodeType": "Block", - "src": "8588:194:26", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 35700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 35698, - "name": "totalStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35299, - "src": "8606:10:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "id": 35699, - "name": "minActivationCollateral", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35296, - "src": "8620:23:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8606:37:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 35715, - "nodeType": "IfStatement", - "src": "8602:170:26", - "trueBody": { - "id": 35714, - "nodeType": "Block", - "src": "8645:127:26", - "statements": [ - { - "expression": { - "id": 35704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 35701, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35318, - "src": "8663:6:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 35702, - "name": "Status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37064, - "src": "8672:6:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Status_$37064_$", - "typeString": "type(enum Status)" - } - }, - "id": 35703, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "8679:6:26", - "memberName": "Active", - "nodeType": "MemberAccess", - "referencedDeclaration": 37059, - "src": "8672:13:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "src": "8663:22:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "id": 35705, - "nodeType": "ExpressionStatement", - "src": "8663:22:26" - }, - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": [], - "expression": { - "arguments": [ - { - "id": 35707, - "name": "ipcGatewayAddr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35314, - "src": "8712:14:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 35706, - "name": "IGateway", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37158, - "src": "8703:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IGateway_$37158_$", - "typeString": "type(contract IGateway)" - } - }, - "id": 35708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8703:24:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGateway_$37158", - "typeString": "contract IGateway" - } - }, - "id": 35709, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8728:8:26", - "memberName": "register", - "nodeType": "MemberAccess", - "referencedDeclaration": 37086, - "src": "8703:33:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$__$returns$__$", - "typeString": "function () payable external" - } - }, - "id": 35711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "names": [ - "value" - ], - "nodeType": "FunctionCallOptions", - "options": [ - { - "id": 35710, - "name": "totalStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35299, - "src": "8744:10:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "src": "8703:52:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$__$returns$__$value", - "typeString": "function () payable external" - } - }, - "id": 35712, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8703:54:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 35713, - "nodeType": "ExpressionStatement", - "src": "8703:54:26" - } - ] - } - } - ] - } - } - ] - }, - "baseFunctions": [ - 37174 - ], - "documentation": { - "id": 35622, - "nodeType": "StructuredDocumentation", - "src": "7687:123:26", - "text": "@notice method that allows a validator to join the subnet\n @param netAddr - the network address of the validator" - }, - "functionSelector": "6cf6970a", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 35630, - "kind": "modifierInvocation", - "modifierName": { - "id": 35629, - "name": "signableOnly", - "nameLocations": [ - "7903:12:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 35462, - "src": "7903:12:26" - }, - "nodeType": "ModifierInvocation", - "src": "7903:12:26" - }, - { - "id": 35632, - "kind": "modifierInvocation", - "modifierName": { - "id": 35631, - "name": "notKilled", - "nameLocations": [ - "7916:9:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 35469, - "src": "7916:9:26" - }, - "nodeType": "ModifierInvocation", - "src": "7916:9:26" - } - ], - "name": "join", - "nameLocation": "7824:4:26", - "parameters": { - "id": 35628, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 35624, - "mutability": "mutable", - "name": "netAddr", - "nameLocation": "7845:7:26", - "nodeType": "VariableDeclaration", - "scope": 35744, - "src": "7829:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 35623, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7829:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 35627, - "mutability": "mutable", - "name": "workerAddr", - "nameLocation": "7874:10:26", - "nodeType": "VariableDeclaration", - "scope": 35744, - "src": "7854:30:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_FvmAddress_$39034_calldata_ptr", - "typeString": "struct FvmAddress" - }, - "typeName": { - "id": 35626, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 35625, - "name": "FvmAddress", - "nameLocations": [ - "7854:10:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39034, - "src": "7854:10:26" - }, - "referencedDeclaration": 39034, - "src": "7854:10:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_FvmAddress_$39034_storage_ptr", - "typeString": "struct FvmAddress" - } - }, - "visibility": "internal" - } - ], - "src": "7828:57:26" - }, - "returnParameters": { - "id": 35633, - "nodeType": "ParameterList", - "parameters": [], - "src": "7926:0:26" - }, - "scope": 36417, - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "id": 35820, - "nodeType": "FunctionDefinition", - "src": "9132:604:26", - "nodes": [], - "body": { - "id": 35819, - "nodeType": "Block", - "src": "9194:542:26", - "nodes": [], - "statements": [ - { - "assignments": [ - 35755 - ], - "declarations": [ - { - "constant": false, - "id": 35755, - "mutability": "mutable", - "name": "amount", - "nameLocation": "9212:6:26", - "nodeType": "VariableDeclaration", - "scope": 35819, - "src": "9204:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 35754, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9204:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 35760, - "initialValue": { - "baseExpression": { - "id": 35756, - "name": "stake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35351, - "src": "9221:5:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 35759, - "indexExpression": { - "expression": { - "id": 35757, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "9227:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 35758, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9231:6:26", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "9227:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9221:17:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9204:34:26" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 35763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 35761, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35755, - "src": "9253:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 35762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9263:1:26", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "9253:11:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 35768, - "nodeType": "IfStatement", - "src": "9249:63:26", - "trueBody": { - "id": 35767, - "nodeType": "Block", - "src": "9266:46:26", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 35764, - "name": "NotValidator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35392, - "src": "9287:12:26", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 35765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9287:14:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 35766, - "nodeType": "RevertStatement", - "src": "9280:21:26" - } - ] - } - }, - { - "expression": { - "id": 35774, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 35769, - "name": "stake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35351, - "src": "9322:5:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 35772, - "indexExpression": { - "expression": { - "id": 35770, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "9328:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 35771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9332:6:26", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "9328:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9322:17:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "30", - "id": 35773, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9342:1:26", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "9322:21:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 35775, - "nodeType": "ExpressionStatement", - "src": "9322:21:26" - }, - { - "expression": { - "id": 35778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 35776, - "name": "totalStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35299, - "src": "9353:10:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "id": 35777, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35755, - "src": "9367:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9353:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 35779, - "nodeType": "ExpressionStatement", - "src": "9353:20:26" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 35783, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "9453:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 35784, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9457:6:26", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "9453:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 35780, - "name": "_validators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35340, - "src": "9434:11:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$32594_storage", - "typeString": "struct EnumerableSet.AddressSet storage ref" - } - }, - "id": 35782, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9446:6:26", - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 32648, - "src": "9434:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$32594_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$32594_storage_ptr_$", - "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" - } - }, - "id": 35785, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9434:30:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 35786, - "nodeType": "ExpressionStatement", - "src": "9434:30:26" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - }, - "id": 35790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 35787, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35318, - "src": "9478:6:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 35788, - "name": "Status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37064, - "src": "9488:6:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Status_$37064_$", - "typeString": "type(enum Status)" - } - }, - "id": 35789, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "9495:6:26", - "memberName": "Active", - "nodeType": "MemberAccess", - "referencedDeclaration": 37059, - "src": "9488:13:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "src": "9478:23:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 35802, - "nodeType": "IfStatement", - "src": "9474:152:26", - "trueBody": { - "id": 35801, - "nodeType": "Block", - "src": "9503:123:26", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 35793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 35791, - "name": "totalStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35299, - "src": "9521:10:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 35792, - "name": "minActivationCollateral", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35296, - "src": "9534:23:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9521:36:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 35800, - "nodeType": "IfStatement", - "src": "9517:99:26", - "trueBody": { - "id": 35799, - "nodeType": "Block", - "src": "9559:57:26", - "statements": [ - { - "expression": { - "id": 35797, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 35794, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35318, - "src": "9577:6:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 35795, - "name": "Status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37064, - "src": "9586:6:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Status_$37064_$", - "typeString": "type(enum Status)" - } - }, - "id": 35796, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "9593:8:26", - "memberName": "Inactive", - "nodeType": "MemberAccess", - "referencedDeclaration": 37060, - "src": "9586:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "src": "9577:24:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "id": 35798, - "nodeType": "ExpressionStatement", - "src": "9577:24:26" - } - ] - } - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 35807, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35755, - "src": "9674:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "id": 35804, - "name": "ipcGatewayAddr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35314, - "src": "9645:14:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 35803, - "name": "IGateway", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37158, - "src": "9636:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IGateway_$37158_$", - "typeString": "type(contract IGateway)" - } - }, - "id": 35805, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9636:24:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGateway_$37158", - "typeString": "contract IGateway" - } - }, - "id": 35806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9661:12:26", - "memberName": "releaseStake", - "nodeType": "MemberAccess", - "referencedDeclaration": 37096, - "src": "9636:37:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 35808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9636:45:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 35809, - "nodeType": "ExpressionStatement", - "src": "9636:45:26" - }, - { - "expression": { - "arguments": [ - { - "id": 35816, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35755, - "src": "9722:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "expression": { - "id": 35812, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "9700:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 35813, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9704:6:26", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "9700:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 35811, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9692:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_payable_$", - "typeString": "type(address payable)" - }, - "typeName": { - "id": 35810, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9692:8:26", - "stateMutability": "payable", - "typeDescriptions": {} - } - }, - "id": 35814, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9692:19:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 35815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9712:9:26", - "memberName": "sendValue", - "nodeType": "MemberAccess", - "referencedDeclaration": 29532, - "src": "9692:29:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$", - "typeString": "function (address payable,uint256)" - } - }, - "id": 35817, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9692:37:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 35818, - "nodeType": "ExpressionStatement", - "src": "9692:37:26" - } - ] - }, - "baseFunctions": [ - 37178 - ], - "documentation": { - "id": 35745, - "nodeType": "StructuredDocumentation", - "src": "9065:62:26", - "text": "@notice method that allows a validator to leave the subnet" - }, - "functionSelector": "d66d9e19", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 35748, - "kind": "modifierInvocation", - "modifierName": { - "id": 35747, - "name": "nonReentrant", - "nameLocations": [ - "9158:12:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 29445, - "src": "9158:12:26" - }, - "nodeType": "ModifierInvocation", - "src": "9158:12:26" - }, - { - "id": 35750, - "kind": "modifierInvocation", - "modifierName": { - "id": 35749, - "name": "signableOnly", - "nameLocations": [ - "9171:12:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 35462, - "src": "9171:12:26" - }, - "nodeType": "ModifierInvocation", - "src": "9171:12:26" - }, - { - "id": 35752, - "kind": "modifierInvocation", - "modifierName": { - "id": 35751, - "name": "notKilled", - "nameLocations": [ - "9184:9:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 35469, - "src": "9184:9:26" - }, - "nodeType": "ModifierInvocation", - "src": "9184:9:26" - } - ], - "name": "leave", - "nameLocation": "9141:5:26", - "parameters": { - "id": 35746, - "nodeType": "ParameterList", - "parameters": [], - "src": "9146:2:26" - }, - "returnParameters": { - "id": 35753, - "nodeType": "ParameterList", - "parameters": [], - "src": "9194:0:26" - }, - "scope": 36417, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 35854, - "nodeType": "FunctionDefinition", - "src": "9828:247:26", - "nodes": [], - "body": { - "id": 35853, - "nodeType": "Block", - "src": "9876:199:26", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 35836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 35832, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 35828, - "name": "_validators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35340, - "src": "9890:11:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$32594_storage", - "typeString": "struct EnumerableSet.AddressSet storage ref" - } - }, - "id": 35829, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9902:6:26", - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": 32690, - "src": "9890:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32594_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$32594_storage_ptr_$", - "typeString": "function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)" - } - }, - "id": 35830, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9890:20:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 35831, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9914:1:26", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "9890:25:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 35835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 35833, - "name": "totalStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35299, - "src": "9919:10:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 35834, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9933:1:26", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "9919:15:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "9890:44:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 35841, - "nodeType": "IfStatement", - "src": "9886:108:26", - "trueBody": { - "id": 35840, - "nodeType": "Block", - "src": "9936:58:26", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 35837, - "name": "NotAllValidatorsHaveLeft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35390, - "src": "9957:24:26", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 35838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9957:26:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 35839, - "nodeType": "RevertStatement", - "src": "9950:33:26" - } - ] - } - }, - { - "expression": { - "id": 35845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 35842, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35318, - "src": "10004:6:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 35843, - "name": "Status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37064, - "src": "10013:6:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Status_$37064_$", - "typeString": "type(enum Status)" - } - }, - "id": 35844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "10020:6:26", - "memberName": "Killed", - "nodeType": "MemberAccess", - "referencedDeclaration": 37061, - "src": "10013:13:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "src": "10004:22:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "id": 35846, - "nodeType": "ExpressionStatement", - "src": "10004:22:26" - }, - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "arguments": [ - { - "id": 35848, - "name": "ipcGatewayAddr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35314, - "src": "10046:14:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 35847, - "name": "IGateway", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37158, - "src": "10037:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IGateway_$37158_$", - "typeString": "type(contract IGateway)" - } - }, - "id": 35849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10037:24:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGateway_$37158", - "typeString": "contract IGateway" - } - }, - "id": 35850, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10062:4:26", - "memberName": "kill", - "nodeType": "MemberAccess", - "referencedDeclaration": 37105, - "src": "10037:29:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 35851, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10037:31:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 35852, - "nodeType": "ExpressionStatement", - "src": "10037:31:26" - } - ] - }, - "baseFunctions": [ - 37182 - ], - "documentation": { - "id": 35821, - "nodeType": "StructuredDocumentation", - "src": "9742:81:26", - "text": "@notice method that allows the subnet no be killed after all validators leave" - }, - "functionSelector": "41c0e1b5", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 35824, - "kind": "modifierInvocation", - "modifierName": { - "id": 35823, - "name": "signableOnly", - "nameLocations": [ - "9853:12:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 35462, - "src": "9853:12:26" - }, - "nodeType": "ModifierInvocation", - "src": "9853:12:26" - }, - { - "id": 35826, - "kind": "modifierInvocation", - "modifierName": { - "id": 35825, - "name": "notKilled", - "nameLocations": [ - "9866:9:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 35469, - "src": "9866:9:26" - }, - "nodeType": "ModifierInvocation", - "src": "9866:9:26" - } - ], - "name": "kill", - "nameLocation": "9837:4:26", - "parameters": { - "id": 35822, - "nodeType": "ParameterList", - "parameters": [], - "src": "9841:2:26" - }, - "returnParameters": { - "id": 35827, - "nodeType": "ParameterList", - "parameters": [], - "src": "9876:0:26" - }, - "scope": 36417, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 35960, - "nodeType": "FunctionDefinition", - "src": "10268:1290:26", - "nodes": [], - "body": { - "id": 35959, - "nodeType": "Block", - "src": "10403:1155:26", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - }, - "id": 35870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 35867, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35318, - "src": "10417:6:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "expression": { - "id": 35868, - "name": "Status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37064, - "src": "10427:6:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Status_$37064_$", - "typeString": "type(enum Status)" - } - }, - "id": 35869, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "10434:6:26", - "memberName": "Active", - "nodeType": "MemberAccess", - "referencedDeclaration": 37059, - "src": "10427:13:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$37064", - "typeString": "enum Status" - } - }, - "src": "10417:23:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 35875, - "nodeType": "IfStatement", - "src": "10413:78:26", - "trueBody": { - "id": 35874, - "nodeType": "Block", - "src": "10442:49:26", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 35871, - "name": "SubnetNotActive", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35394, - "src": "10463:15:26", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 35872, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10463:17:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 35873, - "nodeType": "RevertStatement", - "src": "10456:24:26" - } - ] - } - }, - { - "condition": { - "id": 35881, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "10504:33:26", - "subExpression": { - "arguments": [ - { - "expression": { - "id": 35878, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "10526:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 35879, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10530:6:26", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "10526:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 35876, - "name": "_validators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35340, - "src": "10505:11:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$32594_storage", - "typeString": "struct EnumerableSet.AddressSet storage ref" - } - }, - "id": 35877, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10517:8:26", - "memberName": "contains", - "nodeType": "MemberAccess", - "referencedDeclaration": 32675, - "src": "10505:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32594_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$32594_storage_ptr_$", - "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" - } - }, - "id": 35880, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10505:32:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 35886, - "nodeType": "IfStatement", - "src": "10500:85:26", - "trueBody": { - "id": 35885, - "nodeType": "Block", - "src": "10539:46:26", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 35882, - "name": "NotValidator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35392, - "src": "10560:12:26", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 35883, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10560:14:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 35884, - "nodeType": "RevertStatement", - "src": "10553:21:26" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 35892, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "expression": { - "id": 35887, - "name": "checkpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35858, - "src": "10598:10:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_calldata_ptr", - "typeString": "struct BottomUpCheckpoint calldata" - } - }, - "id": 35888, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10609:6:26", - "memberName": "source", - "nodeType": "MemberAccess", - "referencedDeclaration": 38920, - "src": "10598:17:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_calldata_ptr", - "typeString": "struct SubnetID calldata" - } - }, - "id": 35889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10616:6:26", - "memberName": "toHash", - "nodeType": "MemberAccess", - "referencedDeclaration": 38484, - "src": "10598:24:26", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$39060_memory_ptr_$", - "typeString": "function (struct SubnetID memory) pure returns (bytes32)" - } - }, - "id": 35890, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10598:26:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 35891, - "name": "currentSubnetHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35330, - "src": "10628:17:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "10598:47:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 35897, - "nodeType": "IfStatement", - "src": "10594:108:26", - "trueBody": { - "id": 35896, - "nodeType": "Block", - "src": "10647:55:26", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 35893, - "name": "WrongCheckpointSource", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35396, - "src": "10668:21:26", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 35894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10668:23:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 35895, - "nodeType": "RevertStatement", - "src": "10661:30:26" - } - ] - } - }, - { - "condition": { - "id": 35903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "10715:46:26", - "subExpression": { - "arguments": [ - { - "expression": { - "id": 35900, - "name": "checkpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35858, - "src": "10740:10:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_calldata_ptr", - "typeString": "struct BottomUpCheckpoint calldata" - } - }, - "id": 35901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10751:9:26", - "memberName": "crossMsgs", - "nodeType": "MemberAccess", - "referencedDeclaration": 38928, - "src": "10740:20:26", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct CrossMsg calldata[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$38957_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct CrossMsg calldata[] calldata" - } - ], - "expression": { - "id": 35898, - "name": "CrossMsgHelper", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37840, - "src": "10716:14:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_CrossMsgHelper_$37840_$", - "typeString": "type(library CrossMsgHelper)" - } - }, - "id": 35899, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10731:8:26", - "memberName": "isSorted", - "nodeType": "MemberAccess", - "referencedDeclaration": 37839, - "src": "10716:23:26", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_struct$_CrossMsg_$38957_memory_ptr_$dyn_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct CrossMsg memory[] memory) pure returns (bool)" - } - }, - "id": 35902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10716:45:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 35908, - "nodeType": "IfStatement", - "src": "10711:103:26", - "trueBody": { - "id": 35907, - "nodeType": "Block", - "src": "10763:51:26", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 35904, - "name": "MessagesNotSorted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35404, - "src": "10784:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 35905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10784:19:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 35906, - "nodeType": "RevertStatement", - "src": "10777:26:26" - } - ] - } - }, - { - "assignments": [ - 35911 - ], - "declarations": [ - { - "constant": false, - "id": 35911, - "mutability": "mutable", - "name": "voteSubmission", - "nameLocation": "10860:14:26", - "nodeType": "VariableDeclaration", - "scope": 35959, - "src": "10824:50:26", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39014_storage_ptr", - "typeString": "struct EpochVoteBottomUpSubmission" - }, - "typeName": { - "id": 35910, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 35909, - "name": "EpochVoteBottomUpSubmission", - "nameLocations": [ - "10824:27:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39014, - "src": "10824:27:26" - }, - "referencedDeclaration": 39014, - "src": "10824:27:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39014_storage_ptr", - "typeString": "struct EpochVoteBottomUpSubmission" - } - }, - "visibility": "internal" - } - ], - "id": 35916, - "initialValue": { - "baseExpression": { - "id": 35912, - "name": "_epochVoteSubmissions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35346, - "src": "10877:21:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_EpochVoteBottomUpSubmission_$39014_storage_$", - "typeString": "mapping(uint64 => struct EpochVoteBottomUpSubmission storage ref)" - } - }, - "id": 35915, - "indexExpression": { - "expression": { - "id": 35913, - "name": "checkpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35858, - "src": "10899:10:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_calldata_ptr", - "typeString": "struct BottomUpCheckpoint calldata" - } - }, - "id": 35914, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10910:5:26", - "memberName": "epoch", - "nodeType": "MemberAccess", - "referencedDeclaration": 38922, - "src": "10899:16:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10877:39:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39014_storage", - "typeString": "struct EpochVoteBottomUpSubmission storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10824:92:26" - }, - { - "assignments": [ - 35918 - ], - "declarations": [ - { - "constant": false, - "id": 35918, - "mutability": "mutable", - "name": "shouldExecuteVote", - "nameLocation": "10959:17:26", - "nodeType": "VariableDeclaration", - "scope": 35959, - "src": "10954:22:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 35917, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10954:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "id": 35929, - "initialValue": { - "arguments": [ - { - "id": 35920, - "name": "voteSubmission", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35911, - "src": "10999:14:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39014_storage_ptr", - "typeString": "struct EpochVoteBottomUpSubmission storage pointer" - } - }, - { - "id": 35921, - "name": "checkpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35858, - "src": "11015:10:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_calldata_ptr", - "typeString": "struct BottomUpCheckpoint calldata" - } - }, - { - "expression": { - "id": 35922, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "11027:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 35923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11031:6:26", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "11027:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "baseExpression": { - "id": 35924, - "name": "stake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35351, - "src": "11039:5:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 35927, - "indexExpression": { - "expression": { - "id": 35925, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "11045:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 35926, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11049:6:26", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "11045:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11039:17:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39014_storage_ptr", - "typeString": "struct EpochVoteBottomUpSubmission storage pointer" - }, - { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_calldata_ptr", - "typeString": "struct BottomUpCheckpoint calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 35919, - "name": "_submitBottomUpVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36352, - "src": "10979:19:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_EpochVoteBottomUpSubmission_$39014_storage_ptr_$_t_struct$_BottomUpCheckpoint_$38937_calldata_ptr_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (struct EpochVoteBottomUpSubmission storage pointer,struct BottomUpCheckpoint calldata,address,uint256) returns (bool)" - } - }, - "id": 35928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10979:78:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10954:103:26" - }, - { - "condition": { - "id": 35930, - "name": "shouldExecuteVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35918, - "src": "11072:17:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 35957, - "nodeType": "Block", - "src": "11155:397:26", - "statements": [ - { - "assignments": [ - 35937, - 35939 - ], - "declarations": [ - { - "constant": false, - "id": 35937, - "mutability": "mutable", - "name": "nextExecutableEpoch", - "nameLocation": "11244:19:26", - "nodeType": "VariableDeclaration", - "scope": 35957, - "src": "11237:26:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 35936, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "11237:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 35939, - "mutability": "mutable", - "name": "isExecutableEpoch", - "nameLocation": "11270:17:26", - "nodeType": "VariableDeclaration", - "scope": 35957, - "src": "11265:22:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 35938, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11265:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "id": 35942, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 35940, - "name": "_getNextExecutableEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36850, - "src": "11291:23:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint64_$_t_bool_$", - "typeString": "function () view returns (uint64,bool)" - } - }, - "id": 35941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11291:25:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint64_$_t_bool_$", - "typeString": "tuple(uint64,bool)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11236:80:26" - }, - { - "condition": { - "id": 35943, - "name": "isExecutableEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35939, - "src": "11335:17:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 35956, - "nodeType": "IfStatement", - "src": "11331:211:26", - "trueBody": { - "id": 35955, - "nodeType": "Block", - "src": "11354:188:26", - "statements": [ - { - "assignments": [ - 35946 - ], - "declarations": [ - { - "constant": false, - "id": 35946, - "mutability": "mutable", - "name": "nextVoteSubmission", - "nameLocation": "11408:18:26", - "nodeType": "VariableDeclaration", - "scope": 35955, - "src": "11372:54:26", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39014_storage_ptr", - "typeString": "struct EpochVoteBottomUpSubmission" - }, - "typeName": { - "id": 35945, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 35944, - "name": "EpochVoteBottomUpSubmission", - "nameLocations": [ - "11372:27:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39014, - "src": "11372:27:26" - }, - "referencedDeclaration": 39014, - "src": "11372:27:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39014_storage_ptr", - "typeString": "struct EpochVoteBottomUpSubmission" - } - }, - "visibility": "internal" - } - ], - "id": 35950, - "initialValue": { - "baseExpression": { - "id": 35947, - "name": "_epochVoteSubmissions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35346, - "src": "11429:21:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_EpochVoteBottomUpSubmission_$39014_storage_$", - "typeString": "mapping(uint64 => struct EpochVoteBottomUpSubmission storage ref)" - } - }, - "id": 35949, - "indexExpression": { - "id": 35948, - "name": "nextExecutableEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35937, - "src": "11451:19:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11429:42:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39014_storage", - "typeString": "struct EpochVoteBottomUpSubmission storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11372:99:26" - }, - { - "expression": { - "arguments": [ - { - "id": 35952, - "name": "nextVoteSubmission", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35946, - "src": "11508:18:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39014_storage_ptr", - "typeString": "struct EpochVoteBottomUpSubmission storage pointer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39014_storage_ptr", - "typeString": "struct EpochVoteBottomUpSubmission storage pointer" - } - ], - "id": 35951, - "name": "_commitCheckpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36416, - "src": "11490:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_EpochVoteBottomUpSubmission_$39014_storage_ptr_$returns$__$", - "typeString": "function (struct EpochVoteBottomUpSubmission storage pointer)" - } - }, - "id": 35953, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11490:37:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 35954, - "nodeType": "ExpressionStatement", - "src": "11490:37:26" - } - ] - } - } - ] - }, - "id": 35958, - "nodeType": "IfStatement", - "src": "11068:484:26", - "trueBody": { - "id": 35935, - "nodeType": "Block", - "src": "11091:58:26", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 35932, - "name": "voteSubmission", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35911, - "src": "11123:14:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39014_storage_ptr", - "typeString": "struct EpochVoteBottomUpSubmission storage pointer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39014_storage_ptr", - "typeString": "struct EpochVoteBottomUpSubmission storage pointer" - } - ], - "id": 35931, - "name": "_commitCheckpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36416, - "src": "11105:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_EpochVoteBottomUpSubmission_$39014_storage_ptr_$returns$__$", - "typeString": "function (struct EpochVoteBottomUpSubmission storage pointer)" - } - }, - "id": 35933, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11105:33:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 35934, - "nodeType": "ExpressionStatement", - "src": "11105:33:26" - } - ] - } - } - ] - }, - "baseFunctions": [ - 37189 - ], - "documentation": { - "id": 35855, - "nodeType": "StructuredDocumentation", - "src": "10081:182:26", - "text": "@notice methods that allows a validator to submit a checkpoint (batch of messages) and vote for it with it's own voting power.\n @param checkpoint - the batch messages data" - }, - "functionSelector": "f6fd8381", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 35861, - "kind": "modifierInvocation", - "modifierName": { - "id": 35860, - "name": "signableOnly", - "nameLocations": [ - "10357:12:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 35462, - "src": "10357:12:26" - }, - "nodeType": "ModifierInvocation", - "src": "10357:12:26" - }, - { - "arguments": [ - { - "expression": { - "id": 35863, - "name": "checkpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35858, - "src": "10385:10:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_calldata_ptr", - "typeString": "struct BottomUpCheckpoint calldata" - } - }, - "id": 35864, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10396:5:26", - "memberName": "epoch", - "nodeType": "MemberAccess", - "referencedDeclaration": 38922, - "src": "10385:16:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "id": 35865, - "kind": "modifierInvocation", - "modifierName": { - "id": 35862, - "name": "validEpochOnly", - "nameLocations": [ - "10370:14:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 36682, - "src": "10370:14:26" - }, - "nodeType": "ModifierInvocation", - "src": "10370:32:26" - } - ], - "name": "submitCheckpoint", - "nameLocation": "10277:16:26", - "parameters": { - "id": 35859, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 35858, - "mutability": "mutable", - "name": "checkpoint", - "nameLocation": "10331:10:26", - "nodeType": "VariableDeclaration", - "scope": 35960, - "src": "10303:38:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_calldata_ptr", - "typeString": "struct BottomUpCheckpoint" - }, - "typeName": { - "id": 35857, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 35856, - "name": "BottomUpCheckpoint", - "nameLocations": [ - "10303:18:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38937, - "src": "10303:18:26" - }, - "referencedDeclaration": 38937, - "src": "10303:18:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint" - } - }, - "visibility": "internal" - } - ], - "src": "10293:54:26" - }, - "returnParameters": { - "id": 35866, - "nodeType": "ParameterList", - "parameters": [], - "src": "10403:0:26" - }, - "scope": 36417, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 36019, - "nodeType": "FunctionDefinition", - "src": "11646:558:26", - "nodes": [], - "body": { - "id": 36018, - "nodeType": "Block", - "src": "11699:505:26", - "nodes": [], - "statements": [ - { - "assignments": [ - 35969 - ], - "declarations": [ - { - "constant": false, - "id": 35969, - "mutability": "mutable", - "name": "validatorsLength", - "nameLocation": "11717:16:26", - "nodeType": "VariableDeclaration", - "scope": 36018, - "src": "11709:24:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 35968, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11709:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 35973, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 35970, - "name": "_validators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35340, - "src": "11736:11:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$32594_storage", - "typeString": "struct EnumerableSet.AddressSet storage ref" - } - }, - "id": 35971, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11748:6:26", - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": 32690, - "src": "11736:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32594_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$32594_storage_ptr_$", - "typeString": "function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)" - } - }, - "id": 35972, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11736:20:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11709:47:26" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 35976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 35974, - "name": "validatorsLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35969, - "src": "11771:16:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 35975, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11791:1:26", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11771:21:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 35981, - "nodeType": "IfStatement", - "src": "11767:81:26", - "trueBody": { - "id": 35980, - "nodeType": "Block", - "src": "11794:54:26", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 35977, - "name": "NoValidatorsInSubnet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35400, - "src": "11815:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 35978, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11815:22:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 35979, - "nodeType": "RevertStatement", - "src": "11808:29:26" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 35984, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 35982, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35963, - "src": "11861:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 35983, - "name": "validatorsLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35969, - "src": "11870:16:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11861:25:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 35989, - "nodeType": "IfStatement", - "src": "11857:91:26", - "trueBody": { - "id": 35988, - "nodeType": "Block", - "src": "11888:60:26", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 35985, - "name": "NotEnoughBalanceForRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35402, - "src": "11909:26:26", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 35986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11909:28:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 35987, - "nodeType": "RevertStatement", - "src": "11902:35:26" - } - ] - } - }, - { - "assignments": [ - 35991 - ], - "declarations": [ - { - "constant": false, - "id": 35991, - "mutability": "mutable", - "name": "rewardAmount", - "nameLocation": "11966:12:26", - "nodeType": "VariableDeclaration", - "scope": 36018, - "src": "11958:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 35990, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11958:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 35995, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 35994, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 35992, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35963, - "src": "11981:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 35993, - "name": "validatorsLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35969, - "src": "11990:16:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11981:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11958:48:26" - }, - { - "body": { - "id": 36016, - "nodeType": "Block", - "src": "12061:137:26", - "statements": [ - { - "expression": { - "id": 36010, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 36003, - "name": "accumulatedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35356, - "src": "12075:18:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 36008, - "indexExpression": { - "arguments": [ - { - "id": 36006, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35997, - "src": "12109:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 36004, - "name": "_validators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35340, - "src": "12094:11:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$32594_storage", - "typeString": "struct EnumerableSet.AddressSet storage ref" - } - }, - "id": 36005, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12106:2:26", - "memberName": "at", - "nodeType": "MemberAccess", - "referencedDeclaration": 32717, - "src": "12094:14:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32594_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$32594_storage_ptr_$", - "typeString": "function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)" - } - }, - "id": 36007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12094:17:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12075:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 36009, - "name": "rewardAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35991, - "src": "12116:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12075:53:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 36011, - "nodeType": "ExpressionStatement", - "src": "12075:53:26" - }, - { - "id": 36015, - "nodeType": "UncheckedBlock", - "src": "12142:46:26", - "statements": [ - { - "expression": { - "id": 36013, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "12170:3:26", - "subExpression": { - "id": 36012, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35997, - "src": "12172:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 36014, - "nodeType": "ExpressionStatement", - "src": "12170:3:26" - } - ] - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 36002, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 36000, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35997, - "src": "12037:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 36001, - "name": "validatorsLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35969, - "src": "12041:16:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12037:20:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 36017, - "initializationExpression": { - "assignments": [ - 35997 - ], - "declarations": [ - { - "constant": false, - "id": 35997, - "mutability": "mutable", - "name": "i", - "nameLocation": "12030:1:26", - "nodeType": "VariableDeclaration", - "scope": 36017, - "src": "12022:9:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 35996, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12022:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 35999, - "initialValue": { - "hexValue": "30", - "id": 35998, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12034:1:26", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "12022:13:26" - }, - "nodeType": "ForStatement", - "src": "12017:181:26" - } - ] - }, - "baseFunctions": [ - 37195 - ], - "documentation": { - "id": 35961, - "nodeType": "StructuredDocumentation", - "src": "11564:77:26", - "text": "@notice method that distributes the rewards for the subnet to validators." - }, - "functionSelector": "a9fb763c", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 35966, - "kind": "modifierInvocation", - "modifierName": { - "id": 35965, - "name": "onlyGateway", - "nameLocations": [ - "11687:11:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 35455, - "src": "11687:11:26" - }, - "nodeType": "ModifierInvocation", - "src": "11687:11:26" - } - ], - "name": "reward", - "nameLocation": "11655:6:26", - "parameters": { - "id": 35964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 35963, - "mutability": "mutable", - "name": "amount", - "nameLocation": "11670:6:26", - "nodeType": "VariableDeclaration", - "scope": 36019, - "src": "11662:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 35962, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11662:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "11661:16:26" - }, - "returnParameters": { - "id": 35967, - "nodeType": "ParameterList", - "parameters": [], - "src": "11699:0:26" - }, - "scope": 36417, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 36064, - "nodeType": "FunctionDefinition", - "src": "12320:336:26", - "nodes": [], - "body": { - "id": 36063, - "nodeType": "Block", - "src": "12362:294:26", - "nodes": [], - "statements": [ - { - "assignments": [ - 36026 - ], - "declarations": [ - { - "constant": false, - "id": 36026, - "mutability": "mutable", - "name": "amount", - "nameLocation": "12380:6:26", - "nodeType": "VariableDeclaration", - "scope": 36063, - "src": "12372:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 36025, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12372:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 36031, - "initialValue": { - "baseExpression": { - "id": 36027, - "name": "accumulatedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35356, - "src": "12389:18:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 36030, - "indexExpression": { - "expression": { - "id": 36028, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "12408:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 36029, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12412:6:26", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "12408:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12389:30:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12372:47:26" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 36034, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 36032, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36026, - "src": "12434:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 36033, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12444:1:26", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12434:11:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 36039, - "nodeType": "IfStatement", - "src": "12430:69:26", - "trueBody": { - "id": 36038, - "nodeType": "Block", - "src": "12447:52:26", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 36035, - "name": "NoRewardToWithdraw", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35406, - "src": "12468:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 36036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12468:20:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 36037, - "nodeType": "RevertStatement", - "src": "12461:27:26" - } - ] - } - }, - { - "expression": { - "id": 36045, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 36040, - "name": "accumulatedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35356, - "src": "12509:18:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 36043, - "indexExpression": { - "expression": { - "id": 36041, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "12528:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 36042, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12532:6:26", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "12528:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12509:30:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "30", - "id": 36044, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12542:1:26", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12509:34:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 36046, - "nodeType": "ExpressionStatement", - "src": "12509:34:26" - }, - { - "expression": { - "arguments": [ - { - "id": 36051, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36026, - "src": "12594:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "id": 36048, - "name": "ipcGatewayAddr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35314, - "src": "12563:14:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 36047, - "name": "IGateway", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37158, - "src": "12554:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IGateway_$37158_$", - "typeString": "type(contract IGateway)" - } - }, - "id": 36049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12554:24:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGateway_$37158", - "typeString": "contract IGateway" - } - }, - "id": 36050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12579:14:26", - "memberName": "releaseRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 37101, - "src": "12554:39:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 36052, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12554:47:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 36053, - "nodeType": "ExpressionStatement", - "src": "12554:47:26" - }, - { - "expression": { - "arguments": [ - { - "id": 36060, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36026, - "src": "12642:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "expression": { - "id": 36056, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "12620:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 36057, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12624:6:26", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "12620:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 36055, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12612:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_payable_$", - "typeString": "type(address payable)" - }, - "typeName": { - "id": 36054, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12612:8:26", - "stateMutability": "payable", - "typeDescriptions": {} - } - }, - "id": 36058, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12612:19:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 36059, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12632:9:26", - "memberName": "sendValue", - "nodeType": "MemberAccess", - "referencedDeclaration": 29532, - "src": "12612:29:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$", - "typeString": "function (address payable,uint256)" - } - }, - "id": 36061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12612:37:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 36062, - "nodeType": "ExpressionStatement", - "src": "12612:37:26" - } - ] - }, - "documentation": { - "id": 36020, - "nodeType": "StructuredDocumentation", - "src": "12210:105:26", - "text": "@notice method that allows a validator to withdraw it's accumulated rewards using pull-based transfer" - }, - "functionSelector": "3ccfd60b", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 36023, - "kind": "modifierInvocation", - "modifierName": { - "id": 36022, - "name": "signableOnly", - "nameLocations": [ - "12349:12:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 35462, - "src": "12349:12:26" - }, - "nodeType": "ModifierInvocation", - "src": "12349:12:26" - } - ], - "name": "withdraw", - "nameLocation": "12329:8:26", - "parameters": { - "id": 36021, - "nodeType": "ParameterList", - "parameters": [], - "src": "12337:2:26" - }, - "returnParameters": { - "id": 36024, - "nodeType": "ParameterList", - "parameters": [], - "src": "12362:0:26" - }, - "scope": 36417, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 36074, - "nodeType": "FunctionDefinition", - "src": "12703:94:26", - "nodes": [], - "body": { - "id": 36073, - "nodeType": "Block", - "src": "12764:33:26", - "nodes": [], - "statements": [ - { - "expression": { - "id": 36071, - "name": "_parentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35371, - "src": "12781:9:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage", - "typeString": "struct SubnetID storage ref" - } - }, - "functionReturnParameters": 36070, - "id": 36072, - "nodeType": "Return", - "src": "12774:16:26" - } - ] - }, - "documentation": { - "id": 36065, - "nodeType": "StructuredDocumentation", - "src": "12662:36:26", - "text": "@notice get the parent subnet id" - }, - "functionSelector": "80f76021", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getParent", - "nameLocation": "12712:9:26", - "parameters": { - "id": 36066, - "nodeType": "ParameterList", - "parameters": [], - "src": "12721:2:26" - }, - "returnParameters": { - "id": 36070, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36069, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 36074, - "src": "12747:15:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID" - }, - "typeName": { - "id": 36068, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 36067, - "name": "SubnetID", - "nameLocations": [ - "12747:8:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39060, - "src": "12747:8:26" - }, - "referencedDeclaration": 39060, - "src": "12747:8:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_storage_ptr", - "typeString": "struct SubnetID" - } - }, - "visibility": "internal" - } - ], - "src": "12746:17:26" - }, - "scope": 36417, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 36085, - "nodeType": "FunctionDefinition", - "src": "12839:102:26", - "nodes": [], - "body": { - "id": 36084, - "nodeType": "Block", - "src": "12897:44:26", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 36080, - "name": "_validators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35340, - "src": "12914:11:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$32594_storage", - "typeString": "struct EnumerableSet.AddressSet storage ref" - } - }, - "id": 36081, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12926:6:26", - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": 32690, - "src": "12914:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32594_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$32594_storage_ptr_$", - "typeString": "function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)" - } - }, - "id": 36082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12914:20:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 36079, - "id": 36083, - "nodeType": "Return", - "src": "12907:27:26" - } - ] - }, - "documentation": { - "id": 36075, - "nodeType": "StructuredDocumentation", - "src": "12803:31:26", - "text": "@notice get validator count" - }, - "functionSelector": "0f43a677", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "validatorCount", - "nameLocation": "12848:14:26", - "parameters": { - "id": 36076, - "nodeType": "ParameterList", - "parameters": [], - "src": "12862:2:26" - }, - "returnParameters": { - "id": 36079, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36078, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 36085, - "src": "12888:7:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 36077, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12888:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "12887:9:26" - }, - "scope": 36417, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 36099, - "nodeType": "FunctionDefinition", - "src": "13040:113:26", - "nodes": [], - "body": { - "id": 36098, - "nodeType": "Block", - "src": "13108:45:26", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 36095, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36088, - "src": "13140:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 36093, - "name": "_validators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35340, - "src": "13125:11:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$32594_storage", - "typeString": "struct EnumerableSet.AddressSet storage ref" - } - }, - "id": 36094, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13137:2:26", - "memberName": "at", - "nodeType": "MemberAccess", - "referencedDeclaration": 32717, - "src": "13125:14:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32594_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$32594_storage_ptr_$", - "typeString": "function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)" - } - }, - "id": 36096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13125:21:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 36092, - "id": 36097, - "nodeType": "Return", - "src": "13118:28:26" - } - ] - }, - "documentation": { - "id": 36086, - "nodeType": "StructuredDocumentation", - "src": "12947:88:26", - "text": "@notice get validator at index\n @param index - the index of the validator set" - }, - "functionSelector": "32e0aa1f", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "validatorAt", - "nameLocation": "13049:11:26", - "parameters": { - "id": 36089, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36088, - "mutability": "mutable", - "name": "index", - "nameLocation": "13069:5:26", - "nodeType": "VariableDeclaration", - "scope": 36099, - "src": "13061:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 36087, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13061:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "13060:15:26" - }, - "returnParameters": { - "id": 36092, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36091, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 36099, - "src": "13099:7:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 36090, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13099:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "13098:9:26" - }, - "scope": 36417, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 36148, - "nodeType": "FunctionDefinition", - "src": "13255:358:26", - "nodes": [], - "body": { - "id": 36147, - "nodeType": "Block", - "src": "13321:292:26", - "nodes": [], - "statements": [ - { - "assignments": [ - 36107 - ], - "declarations": [ - { - "constant": false, - "id": 36107, - "mutability": "mutable", - "name": "length", - "nameLocation": "13339:6:26", - "nodeType": "VariableDeclaration", - "scope": 36147, - "src": "13331:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 36106, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13331:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 36111, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 36108, - "name": "_validators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35340, - "src": "13348:11:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$32594_storage", - "typeString": "struct EnumerableSet.AddressSet storage ref" - } - }, - "id": 36109, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13360:6:26", - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": 32690, - "src": "13348:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32594_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$32594_storage_ptr_$", - "typeString": "function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)" - } - }, - "id": 36110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13348:20:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13331:37:26" - }, - { - "assignments": [ - 36116 - ], - "declarations": [ - { - "constant": false, - "id": 36116, - "mutability": "mutable", - "name": "result", - "nameLocation": "13395:6:26", - "nodeType": "VariableDeclaration", - "scope": 36147, - "src": "13378:23:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 36114, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13378:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 36115, - "nodeType": "ArrayTypeName", - "src": "13378:9:26", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "visibility": "internal" - } - ], - "id": 36122, - "initialValue": { - "arguments": [ - { - "id": 36120, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36107, - "src": "13418:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 36119, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "13404:13:26", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 36117, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13408:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 36118, - "nodeType": "ArrayTypeName", - "src": "13408:9:26", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 36121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13404:21:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13378:47:26" - }, - { - "body": { - "id": 36143, - "nodeType": "Block", - "src": "13470:113:26", - "statements": [ - { - "expression": { - "id": 36137, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 36130, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36116, - "src": "13484:6:26", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 36132, - "indexExpression": { - "id": 36131, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36124, - "src": "13491:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13484:9:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 36135, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36124, - "src": "13511:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 36133, - "name": "_validators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35340, - "src": "13496:11:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$32594_storage", - "typeString": "struct EnumerableSet.AddressSet storage ref" - } - }, - "id": 36134, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13508:2:26", - "memberName": "at", - "nodeType": "MemberAccess", - "referencedDeclaration": 32717, - "src": "13496:14:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32594_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$32594_storage_ptr_$", - "typeString": "function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)" - } - }, - "id": 36136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13496:17:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "13484:29:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 36138, - "nodeType": "ExpressionStatement", - "src": "13484:29:26" - }, - { - "id": 36142, - "nodeType": "UncheckedBlock", - "src": "13527:46:26", - "statements": [ - { - "expression": { - "id": 36140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": true, - "src": "13555:3:26", - "subExpression": { - "id": 36139, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36124, - "src": "13557:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 36141, - "nodeType": "ExpressionStatement", - "src": "13555:3:26" - } - ] - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 36129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 36127, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36124, - "src": "13456:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 36128, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36107, - "src": "13460:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13456:10:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 36144, - "initializationExpression": { - "assignments": [ - 36124 - ], - "declarations": [ - { - "constant": false, - "id": 36124, - "mutability": "mutable", - "name": "i", - "nameLocation": "13449:1:26", - "nodeType": "VariableDeclaration", - "scope": 36144, - "src": "13441:9:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 36123, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13441:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 36126, - "initialValue": { - "hexValue": "30", - "id": 36125, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13453:1:26", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "13441:13:26" - }, - "nodeType": "ForStatement", - "src": "13436:147:26" - }, - { - "expression": { - "id": 36145, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36116, - "src": "13600:6:26", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 36105, - "id": 36146, - "nodeType": "Return", - "src": "13593:13:26" - } - ] - }, - "documentation": { - "id": 36100, - "nodeType": "StructuredDocumentation", - "src": "13159:91:26", - "text": "@notice get all the validators in the subnet.\n TODO: we can introduce pagination" - }, - "functionSelector": "b7ab4db5", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getValidators", - "nameLocation": "13264:13:26", - "parameters": { - "id": 36101, - "nodeType": "ParameterList", - "parameters": [], - "src": "13277:2:26" - }, - "returnParameters": { - "id": 36105, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36104, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 36148, - "src": "13303:16:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 36102, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13303:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 36103, - "nodeType": "ArrayTypeName", - "src": "13303:9:26", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "visibility": "internal" - } - ], - "src": "13302:18:26" - }, - "scope": 36417, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 36220, - "nodeType": "FunctionDefinition", - "src": "13701:641:26", - "nodes": [], - "body": { - "id": 36219, - "nodeType": "Block", - "src": "13772:570:26", - "nodes": [], - "statements": [ - { - "assignments": [ - 36156 - ], - "declarations": [ - { - "constant": false, - "id": 36156, - "mutability": "mutable", - "name": "length", - "nameLocation": "13790:6:26", - "nodeType": "VariableDeclaration", - "scope": 36219, - "src": "13782:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 36155, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13782:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 36160, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 36157, - "name": "_validators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35340, - "src": "13799:11:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$32594_storage", - "typeString": "struct EnumerableSet.AddressSet storage ref" - } - }, - "id": 36158, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13811:6:26", - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": 32690, - "src": "13799:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32594_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$32594_storage_ptr_$", - "typeString": "function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)" - } - }, - "id": 36159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13799:20:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13782:37:26" - }, - { - "assignments": [ - 36165 - ], - "declarations": [ - { - "constant": false, - "id": 36165, - "mutability": "mutable", - "name": "details", - "nameLocation": "13853:7:26", - "nodeType": "VariableDeclaration", - "scope": 36219, - "src": "13830:30:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ValidatorInfo_$35479_memory_ptr_$dyn_memory_ptr", - "typeString": "struct SubnetActor.ValidatorInfo[]" - }, - "typeName": { - "baseType": { - "id": 36163, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 36162, - "name": "ValidatorInfo", - "nameLocations": [ - "13830:13:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 35479, - "src": "13830:13:26" - }, - "referencedDeclaration": 35479, - "src": "13830:13:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ValidatorInfo_$35479_storage_ptr", - "typeString": "struct SubnetActor.ValidatorInfo" - } - }, - "id": 36164, - "nodeType": "ArrayTypeName", - "src": "13830:15:26", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ValidatorInfo_$35479_storage_$dyn_storage_ptr", - "typeString": "struct SubnetActor.ValidatorInfo[]" - } - }, - "visibility": "internal" - } - ], - "id": 36172, - "initialValue": { - "arguments": [ - { - "id": 36170, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36156, - "src": "13883:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 36169, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "13863:19:26", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_ValidatorInfo_$35479_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (struct SubnetActor.ValidatorInfo memory[] memory)" - }, - "typeName": { - "baseType": { - "id": 36167, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 36166, - "name": "ValidatorInfo", - "nameLocations": [ - "13867:13:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 35479, - "src": "13867:13:26" - }, - "referencedDeclaration": 35479, - "src": "13867:13:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ValidatorInfo_$35479_storage_ptr", - "typeString": "struct SubnetActor.ValidatorInfo" - } - }, - "id": 36168, - "nodeType": "ArrayTypeName", - "src": "13867:15:26", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ValidatorInfo_$35479_storage_$dyn_storage_ptr", - "typeString": "struct SubnetActor.ValidatorInfo[]" - } - } - }, - "id": 36171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13863:27:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ValidatorInfo_$35479_memory_ptr_$dyn_memory_ptr", - "typeString": "struct SubnetActor.ValidatorInfo memory[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13830:60:26" - }, - { - "body": { - "id": 36212, - "nodeType": "Block", - "src": "13938:303:26", - "statements": [ - { - "expression": { - "id": 36210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 36183, - "name": "details", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36165, - "src": "13952:7:26", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ValidatorInfo_$35479_memory_ptr_$dyn_memory_ptr", - "typeString": "struct SubnetActor.ValidatorInfo memory[] memory" - } - }, - "id": 36185, - "indexExpression": { - "id": 36184, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36174, - "src": "13960:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13952:10:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ValidatorInfo_$35479_memory_ptr", - "typeString": "struct SubnetActor.ValidatorInfo memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "arguments": [ - { - "id": 36189, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36174, - "src": "14018:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 36187, - "name": "_validators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35340, - "src": "14003:11:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$32594_storage", - "typeString": "struct EnumerableSet.AddressSet storage ref" - } - }, - "id": 36188, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14015:2:26", - "memberName": "at", - "nodeType": "MemberAccess", - "referencedDeclaration": 32717, - "src": "14003:14:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32594_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$32594_storage_ptr_$", - "typeString": "function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)" - } - }, - "id": 36190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14003:17:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "baseExpression": { - "id": 36191, - "name": "stake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35351, - "src": "14046:5:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 36196, - "indexExpression": { - "arguments": [ - { - "id": 36194, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36174, - "src": "14067:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 36192, - "name": "_validators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35340, - "src": "14052:11:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$32594_storage", - "typeString": "struct EnumerableSet.AddressSet storage ref" - } - }, - "id": 36193, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14064:2:26", - "memberName": "at", - "nodeType": "MemberAccess", - "referencedDeclaration": 32717, - "src": "14052:14:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32594_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$32594_storage_ptr_$", - "typeString": "function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)" - } - }, - "id": 36195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14052:17:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14046:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "id": 36197, - "name": "validatorWorkerAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35367, - "src": "14100:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_FvmAddress_$39034_storage_$", - "typeString": "mapping(address => struct FvmAddress storage ref)" - } - }, - "id": 36202, - "indexExpression": { - "arguments": [ - { - "id": 36200, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36174, - "src": "14140:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 36198, - "name": "_validators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35340, - "src": "14125:11:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$32594_storage", - "typeString": "struct EnumerableSet.AddressSet storage ref" - } - }, - "id": 36199, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14137:2:26", - "memberName": "at", - "nodeType": "MemberAccess", - "referencedDeclaration": 32717, - "src": "14125:14:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32594_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$32594_storage_ptr_$", - "typeString": "function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)" - } - }, - "id": 36201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14125:17:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14100:43:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_FvmAddress_$39034_storage", - "typeString": "struct FvmAddress storage ref" - } - }, - { - "baseExpression": { - "id": 36203, - "name": "validatorNetAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35361, - "src": "14175:21:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_string_storage_$", - "typeString": "mapping(address => string storage ref)" - } - }, - "id": 36208, - "indexExpression": { - "arguments": [ - { - "id": 36206, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36174, - "src": "14212:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 36204, - "name": "_validators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35340, - "src": "14197:11:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$32594_storage", - "typeString": "struct EnumerableSet.AddressSet storage ref" - } - }, - "id": 36205, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14209:2:26", - "memberName": "at", - "nodeType": "MemberAccess", - "referencedDeclaration": 32717, - "src": "14197:14:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32594_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$32594_storage_ptr_$", - "typeString": "function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)" - } - }, - "id": 36207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14197:17:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14175:40:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_struct$_FvmAddress_$39034_storage", - "typeString": "struct FvmAddress storage ref" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 36186, - "name": "ValidatorInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35479, - "src": "13965:13:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_ValidatorInfo_$35479_storage_ptr_$", - "typeString": "type(struct SubnetActor.ValidatorInfo storage pointer)" - } - }, - "id": 36209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "13997:4:26", - "14038:6:26", - "14088:10:26", - "14161:12:26" - ], - "names": [ - "addr", - "weight", - "workerAddr", - "netAddresses" - ], - "nodeType": "FunctionCall", - "src": "13965:265:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_ValidatorInfo_$35479_memory_ptr", - "typeString": "struct SubnetActor.ValidatorInfo memory" - } - }, - "src": "13952:278:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ValidatorInfo_$35479_memory_ptr", - "typeString": "struct SubnetActor.ValidatorInfo memory" - } - }, - "id": 36211, - "nodeType": "ExpressionStatement", - "src": "13952:278:26" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 36179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 36177, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36174, - "src": "13921:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 36178, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36156, - "src": "13925:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13921:10:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 36213, - "initializationExpression": { - "assignments": [ - 36174 - ], - "declarations": [ - { - "constant": false, - "id": 36174, - "mutability": "mutable", - "name": "i", - "nameLocation": "13914:1:26", - "nodeType": "VariableDeclaration", - "scope": 36213, - "src": "13906:9:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 36173, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13906:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 36176, - "initialValue": { - "hexValue": "30", - "id": 36175, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13918:1:26", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "13906:13:26" - }, - "loopExpression": { - "expression": { - "id": 36181, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "13933:3:26", - "subExpression": { - "id": 36180, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36174, - "src": "13933:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 36182, - "nodeType": "ExpressionStatement", - "src": "13933:3:26" - }, - "nodeType": "ForStatement", - "src": "13901:340:26" - }, - { - "expression": { - "arguments": [ - { - "id": 36215, - "name": "details", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36165, - "src": "14284:7:26", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ValidatorInfo_$35479_memory_ptr_$dyn_memory_ptr", - "typeString": "struct SubnetActor.ValidatorInfo memory[] memory" - } - }, - { - "id": 36216, - "name": "configurationNumber", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35311, - "src": "14314:19:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_struct$_ValidatorInfo_$35479_memory_ptr_$dyn_memory_ptr", - "typeString": "struct SubnetActor.ValidatorInfo memory[] memory" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 36214, - "name": "ValidatorSet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35486, - "src": "14258:12:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_ValidatorSet_$35486_storage_ptr_$", - "typeString": "type(struct SubnetActor.ValidatorSet storage pointer)" - } - }, - "id": 36217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "14272:10:26", - "14293:19:26" - ], - "names": [ - "validators", - "configurationNumber" - ], - "nodeType": "FunctionCall", - "src": "14258:77:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_ValidatorSet_$35486_memory_ptr", - "typeString": "struct SubnetActor.ValidatorSet memory" - } - }, - "functionReturnParameters": 36154, - "id": 36218, - "nodeType": "Return", - "src": "14251:84:26" - } - ] - }, - "documentation": { - "id": 36149, - "nodeType": "StructuredDocumentation", - "src": "13619:77:26", - "text": "@notice get the full details of the validators, not just their addresses." - }, - "functionSelector": "cf331250", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getValidatorSet", - "nameLocation": "13710:15:26", - "parameters": { - "id": 36150, - "nodeType": "ParameterList", - "parameters": [], - "src": "13725:2:26" - }, - "returnParameters": { - "id": 36154, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36153, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 36220, - "src": "13751:19:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ValidatorSet_$35486_memory_ptr", - "typeString": "struct SubnetActor.ValidatorSet" - }, - "typeName": { - "id": 36152, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 36151, - "name": "ValidatorSet", - "nameLocations": [ - "13751:12:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 35486, - "src": "13751:12:26" - }, - "referencedDeclaration": 35486, - "src": "13751:12:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ValidatorSet_$35486_storage_ptr", - "typeString": "struct SubnetActor.ValidatorSet" - } - }, - "visibility": "internal" - } - ], - "src": "13750:21:26" - }, - "scope": 36417, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 36248, - "nodeType": "FunctionDefinition", - "src": "14530:286:26", - "nodes": [], - "body": { - "id": 36247, - "nodeType": "Block", - "src": "14632:184:26", - "nodes": [], - "statements": [ - { - "assignments": [ - 36232 - ], - "declarations": [ - { - "constant": false, - "id": 36232, - "mutability": "mutable", - "name": "voteSubmission", - "nameLocation": "14678:14:26", - "nodeType": "VariableDeclaration", - "scope": 36247, - "src": "14642:50:26", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39014_storage_ptr", - "typeString": "struct EpochVoteBottomUpSubmission" - }, - "typeName": { - "id": 36231, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 36230, - "name": "EpochVoteBottomUpSubmission", - "nameLocations": [ - "14642:27:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39014, - "src": "14642:27:26" - }, - "referencedDeclaration": 39014, - "src": "14642:27:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39014_storage_ptr", - "typeString": "struct EpochVoteBottomUpSubmission" - } - }, - "visibility": "internal" - } - ], - "id": 36236, - "initialValue": { - "baseExpression": { - "id": 36233, - "name": "_epochVoteSubmissions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35346, - "src": "14695:21:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_EpochVoteBottomUpSubmission_$39014_storage_$", - "typeString": "mapping(uint64 => struct EpochVoteBottomUpSubmission storage ref)" - } - }, - "id": 36235, - "indexExpression": { - "id": 36234, - "name": "epoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36223, - "src": "14717:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14695:28:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39014_storage", - "typeString": "struct EpochVoteBottomUpSubmission storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14642:81:26" - }, - { - "expression": { - "baseExpression": { - "baseExpression": { - "expression": { - "expression": { - "id": 36237, - "name": "voteSubmission", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36232, - "src": "14741:14:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39014_storage_ptr", - "typeString": "struct EpochVoteBottomUpSubmission storage pointer" - } - }, - "id": 36238, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14756:4:26", - "memberName": "vote", - "nodeType": "MemberAccess", - "referencedDeclaration": 39008, - "src": "14741:19:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteSubmission_$38996_storage", - "typeString": "struct EpochVoteSubmission storage ref" - } - }, - "id": 36239, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14761:10:26", - "memberName": "submitters", - "nodeType": "MemberAccess", - "referencedDeclaration": 38989, - "src": "14741:30:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(uint256 => mapping(address => bool))" - } - }, - "id": 36243, - "indexExpression": { - "expression": { - "expression": { - "id": 36240, - "name": "voteSubmission", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36232, - "src": "14772:14:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39014_storage_ptr", - "typeString": "struct EpochVoteBottomUpSubmission storage pointer" - } - }, - "id": 36241, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14787:4:26", - "memberName": "vote", - "nodeType": "MemberAccess", - "referencedDeclaration": 39008, - "src": "14772:19:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteSubmission_$38996_storage", - "typeString": "struct EpochVoteSubmission storage ref" - } - }, - "id": 36242, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14792:5:26", - "memberName": "nonce", - "nodeType": "MemberAccess", - "referencedDeclaration": 38979, - "src": "14772:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14741:57:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 36245, - "indexExpression": { - "id": 36244, - "name": "submitter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36225, - "src": "14799:9:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14741:68:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 36229, - "id": 36246, - "nodeType": "Return", - "src": "14734:75:26" - } - ] - }, - "documentation": { - "id": 36221, - "nodeType": "StructuredDocumentation", - "src": "14348:177:26", - "text": "@notice whether a validator has voted for a checkpoint submission during an epoch\n @param epoch - the epoch to check\n @param submitter - the validator to check" - }, - "functionSelector": "66d7bbbc", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "hasValidatorVotedForSubmission", - "nameLocation": "14539:30:26", - "parameters": { - "id": 36226, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36223, - "mutability": "mutable", - "name": "epoch", - "nameLocation": "14577:5:26", - "nodeType": "VariableDeclaration", - "scope": 36248, - "src": "14570:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 36222, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "14570:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 36225, - "mutability": "mutable", - "name": "submitter", - "nameLocation": "14592:9:26", - "nodeType": "VariableDeclaration", - "scope": 36248, - "src": "14584:17:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 36224, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14584:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "14569:33:26" - }, - "returnParameters": { - "id": 36229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36228, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 36248, - "src": "14626:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 36227, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "14626:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "14625:6:26" - }, - "scope": 36417, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 36274, - "nodeType": "FunctionDefinition", - "src": "15047:239:26", - "nodes": [], - "body": { - "id": 36273, - "nodeType": "Block", - "src": "15182:104:26", - "nodes": [], - "statements": [ - { - "expression": { - "id": 36263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 36259, - "name": "checkpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36257, - "src": "15192:10:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_memory_ptr", - "typeString": "struct BottomUpCheckpoint memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "baseExpression": { - "id": 36260, - "name": "committedCheckpoints", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35336, - "src": "15205:20:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$38937_storage_$", - "typeString": "mapping(uint64 => struct BottomUpCheckpoint storage ref)" - } - }, - "id": 36262, - "indexExpression": { - "id": 36261, - "name": "epoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36251, - "src": "15226:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15205:27:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage", - "typeString": "struct BottomUpCheckpoint storage ref" - } - }, - "src": "15192:40:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_memory_ptr", - "typeString": "struct BottomUpCheckpoint memory" - } - }, - "id": 36264, - "nodeType": "ExpressionStatement", - "src": "15192:40:26" - }, - { - "expression": { - "id": 36271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 36265, - "name": "exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36254, - "src": "15242:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 36270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "15251:28:26", - "subExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "expression": { - "id": 36266, - "name": "checkpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36257, - "src": "15252:10:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_memory_ptr", - "typeString": "struct BottomUpCheckpoint memory" - } - }, - "id": 36267, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15263:6:26", - "memberName": "source", - "nodeType": "MemberAccess", - "referencedDeclaration": 38920, - "src": "15252:17:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39060_memory_ptr", - "typeString": "struct SubnetID memory" - } - }, - "id": 36268, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15270:7:26", - "memberName": "isEmpty", - "nodeType": "MemberAccess", - "referencedDeclaration": 38911, - "src": "15252:25:26", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39060_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$39060_memory_ptr_$", - "typeString": "function (struct SubnetID memory) pure returns (bool)" - } - }, - "id": 36269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15252:27:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15242:37:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 36272, - "nodeType": "ExpressionStatement", - "src": "15242:37:26" - } - ] - }, - "documentation": { - "id": 36249, - "nodeType": "StructuredDocumentation", - "src": "14822:220:26", - "text": "@notice returns the committed bottom-up checkpoint at specific epoch\n @param epoch - the epoch to check\n @return exists - whether the checkpoint exists\n @return checkpoint - the checkpoint struct" - }, - "functionSelector": "6cb2ecee", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "bottomUpCheckpointAtEpoch", - "nameLocation": "15056:25:26", - "parameters": { - "id": 36252, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36251, - "mutability": "mutable", - "name": "epoch", - "nameLocation": "15098:5:26", - "nodeType": "VariableDeclaration", - "scope": 36274, - "src": "15091:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 36250, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "15091:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "15081:28:26" - }, - "returnParameters": { - "id": 36258, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36254, - "mutability": "mutable", - "name": "exists", - "nameLocation": "15136:6:26", - "nodeType": "VariableDeclaration", - "scope": 36274, - "src": "15131:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 36253, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "15131:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 36257, - "mutability": "mutable", - "name": "checkpoint", - "nameLocation": "15170:10:26", - "nodeType": "VariableDeclaration", - "scope": 36274, - "src": "15144:36:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_memory_ptr", - "typeString": "struct BottomUpCheckpoint" - }, - "typeName": { - "id": 36256, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 36255, - "name": "BottomUpCheckpoint", - "nameLocations": [ - "15144:18:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38937, - "src": "15144:18:26" - }, - "referencedDeclaration": 38937, - "src": "15144:18:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint" - } - }, - "visibility": "internal" - } - ], - "src": "15130:51:26" - }, - "scope": 36417, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "id": 36300, - "nodeType": "FunctionDefinition", - "src": "15514:240:26", - "nodes": [], - "body": { - "id": 36299, - "nodeType": "Block", - "src": "15605:149:26", - "nodes": [], - "statements": [ - { - "assignments": [ - 36285, - 36288 - ], - "declarations": [ - { - "constant": false, - "id": 36285, - "mutability": "mutable", - "name": "exists", - "nameLocation": "15621:6:26", - "nodeType": "VariableDeclaration", - "scope": 36299, - "src": "15616:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 36284, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "15616:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 36288, - "mutability": "mutable", - "name": "checkpoint", - "nameLocation": "15655:10:26", - "nodeType": "VariableDeclaration", - "scope": 36299, - "src": "15629:36:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_memory_ptr", - "typeString": "struct BottomUpCheckpoint" - }, - "typeName": { - "id": 36287, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 36286, - "name": "BottomUpCheckpoint", - "nameLocations": [ - "15629:18:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38937, - "src": "15629:18:26" - }, - "referencedDeclaration": 38937, - "src": "15629:18:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint" - } - }, - "visibility": "internal" - } - ], - "id": 36292, - "initialValue": { - "arguments": [ - { - "id": 36290, - "name": "epoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36277, - "src": "15695:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 36289, - "name": "bottomUpCheckpointAtEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36274, - "src": "15669:25:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint64_$returns$_t_bool_$_t_struct$_BottomUpCheckpoint_$38937_memory_ptr_$", - "typeString": "function (uint64) view returns (bool,struct BottomUpCheckpoint memory)" - } - }, - "id": 36291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15669:32:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_BottomUpCheckpoint_$38937_memory_ptr_$", - "typeString": "tuple(bool,struct BottomUpCheckpoint memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15615:86:26" - }, - { - "expression": { - "components": [ - { - "id": 36293, - "name": "exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36285, - "src": "15719:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 36294, - "name": "checkpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36288, - "src": "15727:10:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_memory_ptr", - "typeString": "struct BottomUpCheckpoint memory" - } - }, - "id": 36295, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15738:6:26", - "memberName": "toHash", - "nodeType": "MemberAccess", - "referencedDeclaration": 37331, - "src": "15727:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_BottomUpCheckpoint_$38937_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_BottomUpCheckpoint_$38937_memory_ptr_$", - "typeString": "function (struct BottomUpCheckpoint memory) pure returns (bytes32)" - } - }, - "id": 36296, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15727:19:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 36297, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "15718:29:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$", - "typeString": "tuple(bool,bytes32)" - } - }, - "functionReturnParameters": 36283, - "id": 36298, - "nodeType": "Return", - "src": "15711:36:26" - } - ] - }, - "documentation": { - "id": 36275, - "nodeType": "StructuredDocumentation", - "src": "15292:217:26", - "text": "@notice returns the historical committed bottom-up checkpoint hash\n @param epoch - the epoch to check\n @return exists - whether the checkpoint exists\n @return hash - the hash of the checkpoint" - }, - "functionSelector": "133f74ea", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "bottomUpCheckpointHashAtEpoch", - "nameLocation": "15523:29:26", - "parameters": { - "id": 36278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36277, - "mutability": "mutable", - "name": "epoch", - "nameLocation": "15560:5:26", - "nodeType": "VariableDeclaration", - "scope": 36300, - "src": "15553:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 36276, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "15553:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "15552:14:26" - }, - "returnParameters": { - "id": 36283, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36280, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 36300, - "src": "15590:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 36279, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "15590:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 36282, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 36300, - "src": "15596:7:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 36281, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "15596:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "15589:15:26" - }, - "scope": 36417, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 36352, - "nodeType": "FunctionDefinition", - "src": "15996:739:26", - "nodes": [], - "body": { - "id": 36351, - "nodeType": "Block", - "src": "16248:487:26", - "nodes": [], - "statements": [ - { - "assignments": [ - 36317 - ], - "declarations": [ - { - "constant": false, - "id": 36317, - "mutability": "mutable", - "name": "submissionHash", - "nameLocation": "16266:14:26", - "nodeType": "VariableDeclaration", - "scope": 36351, - "src": "16258:22:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 36316, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "16258:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 36321, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 36318, - "name": "submission", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36307, - "src": "16283:10:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_calldata_ptr", - "typeString": "struct BottomUpCheckpoint calldata" - } - }, - "id": 36319, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16294:6:26", - "memberName": "toHash", - "nodeType": "MemberAccess", - "referencedDeclaration": 37331, - "src": "16283:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_BottomUpCheckpoint_$38937_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_BottomUpCheckpoint_$38937_memory_ptr_$", - "typeString": "function (struct BottomUpCheckpoint memory) pure returns (bytes32)" - } - }, - "id": 36320, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16283:19:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16258:44:26" - }, - { - "expression": { - "id": 36333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 36322, - "name": "shouldExecuteVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36314, - "src": "16313:17:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "expression": { - "id": 36324, - "name": "voteSubmission", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36304, - "src": "16358:14:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39014_storage_ptr", - "typeString": "struct EpochVoteBottomUpSubmission storage pointer" - } - }, - "id": 36325, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16373:4:26", - "memberName": "vote", - "nodeType": "MemberAccess", - "referencedDeclaration": 39008, - "src": "16358:19:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteSubmission_$38996_storage", - "typeString": "struct EpochVoteSubmission storage ref" - } - }, - { - "id": 36326, - "name": "submissionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36317, - "src": "16391:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 36327, - "name": "submitterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36309, - "src": "16419:16:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 36328, - "name": "submitterWeight", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36311, - "src": "16449:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 36329, - "name": "submission", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36307, - "src": "16478:10:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_calldata_ptr", - "typeString": "struct BottomUpCheckpoint calldata" - } - }, - "id": 36330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16489:5:26", - "memberName": "epoch", - "nodeType": "MemberAccess", - "referencedDeclaration": 38922, - "src": "16478:16:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "id": 36331, - "name": "totalStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35299, - "src": "16508:10:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_EpochVoteSubmission_$38996_storage", - "typeString": "struct EpochVoteSubmission storage ref" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 36323, - "name": "_submitVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36983, - "src": "16333:11:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_EpochVoteSubmission_$38996_storage_ptr_$_t_bytes32_$_t_address_$_t_uint256_$_t_uint64_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (struct EpochVoteSubmission storage pointer,bytes32,address,uint256,uint64,uint256) returns (bool)" - } - }, - "id": 36332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16333:195:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16313:215:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 36334, - "nodeType": "ExpressionStatement", - "src": "16313:215:26" - }, - { - "condition": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "baseExpression": { - "expression": { - "id": 36335, - "name": "voteSubmission", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36304, - "src": "16595:14:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39014_storage_ptr", - "typeString": "struct EpochVoteBottomUpSubmission storage pointer" - } - }, - "id": 36336, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16610:11:26", - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 39013, - "src": "16595:26:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BottomUpCheckpoint_$38937_storage_$", - "typeString": "mapping(bytes32 => struct BottomUpCheckpoint storage ref)" - } - }, - "id": 36338, - "indexExpression": { - "id": 36337, - "name": "submissionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36317, - "src": "16622:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16595:42:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage", - "typeString": "struct BottomUpCheckpoint storage ref" - } - }, - "id": 36339, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16638:7:26", - "memberName": "isEmpty", - "nodeType": "MemberAccess", - "referencedDeclaration": 37377, - "src": "16595:50:26", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_BottomUpCheckpoint_$38937_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_BottomUpCheckpoint_$38937_memory_ptr_$", - "typeString": "function (struct BottomUpCheckpoint memory) pure returns (bool)" - } - }, - "id": 36340, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16595:52:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 36350, - "nodeType": "IfStatement", - "src": "16591:138:26", - "trueBody": { - "id": 36349, - "nodeType": "Block", - "src": "16649:80:26", - "statements": [ - { - "expression": { - "id": 36347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "expression": { - "id": 36341, - "name": "voteSubmission", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36304, - "src": "16663:14:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39014_storage_ptr", - "typeString": "struct EpochVoteBottomUpSubmission storage pointer" - } - }, - "id": 36344, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16678:11:26", - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 39013, - "src": "16663:26:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BottomUpCheckpoint_$38937_storage_$", - "typeString": "mapping(bytes32 => struct BottomUpCheckpoint storage ref)" - } - }, - "id": 36345, - "indexExpression": { - "id": 36343, - "name": "submissionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36317, - "src": "16690:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16663:42:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage", - "typeString": "struct BottomUpCheckpoint storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 36346, - "name": "submission", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36307, - "src": "16708:10:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_calldata_ptr", - "typeString": "struct BottomUpCheckpoint calldata" - } - }, - "src": "16663:55:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage", - "typeString": "struct BottomUpCheckpoint storage ref" - } - }, - "id": 36348, - "nodeType": "ExpressionStatement", - "src": "16663:55:26" - } - ] - } - } - ] - }, - "documentation": { - "id": 36301, - "nodeType": "StructuredDocumentation", - "src": "15760:231:26", - "text": "@notice submits a vote for a checkpoint\n @param voteSubmission - the vote submission data\n @param submitterAddress - the validator that submits the vote\n @param submitterWeight - the weight of the validator" - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_submitBottomUpVote", - "nameLocation": "16005:19:26", - "parameters": { - "id": 36312, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36304, - "mutability": "mutable", - "name": "voteSubmission", - "nameLocation": "16070:14:26", - "nodeType": "VariableDeclaration", - "scope": 36352, - "src": "16034:50:26", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39014_storage_ptr", - "typeString": "struct EpochVoteBottomUpSubmission" - }, - "typeName": { - "id": 36303, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 36302, - "name": "EpochVoteBottomUpSubmission", - "nameLocations": [ - "16034:27:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39014, - "src": "16034:27:26" - }, - "referencedDeclaration": 39014, - "src": "16034:27:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39014_storage_ptr", - "typeString": "struct EpochVoteBottomUpSubmission" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 36307, - "mutability": "mutable", - "name": "submission", - "nameLocation": "16122:10:26", - "nodeType": "VariableDeclaration", - "scope": 36352, - "src": "16094:38:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_calldata_ptr", - "typeString": "struct BottomUpCheckpoint" - }, - "typeName": { - "id": 36306, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 36305, - "name": "BottomUpCheckpoint", - "nameLocations": [ - "16094:18:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38937, - "src": "16094:18:26" - }, - "referencedDeclaration": 38937, - "src": "16094:18:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 36309, - "mutability": "mutable", - "name": "submitterAddress", - "nameLocation": "16150:16:26", - "nodeType": "VariableDeclaration", - "scope": 36352, - "src": "16142:24:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 36308, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16142:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 36311, - "mutability": "mutable", - "name": "submitterWeight", - "nameLocation": "16184:15:26", - "nodeType": "VariableDeclaration", - "scope": 36352, - "src": "16176:23:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 36310, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16176:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "16024:181:26" - }, - "returnParameters": { - "id": 36315, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36314, - "mutability": "mutable", - "name": "shouldExecuteVote", - "nameLocation": "16229:17:26", - "nodeType": "VariableDeclaration", - "scope": 36352, - "src": "16224:22:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 36313, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16224:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "16223:24:26" - }, - "scope": 36417, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 36416, - "nodeType": "FunctionDefinition", - "src": "16904:733:26", - "nodes": [], - "body": { - "id": 36415, - "nodeType": "Block", - "src": "16992:645:26", - "nodes": [], - "statements": [ - { - "assignments": [ - 36361 - ], - "declarations": [ - { - "constant": false, - "id": 36361, - "mutability": "mutable", - "name": "checkpoint", - "nameLocation": "17029:10:26", - "nodeType": "VariableDeclaration", - "scope": 36415, - "src": "17002:37:26", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint" - }, - "typeName": { - "id": 36360, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 36359, - "name": "BottomUpCheckpoint", - "nameLocations": [ - "17002:18:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 38937, - "src": "17002:18:26" - }, - "referencedDeclaration": 38937, - "src": "17002:18:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint" - } - }, - "visibility": "internal" - } - ], - "id": 36368, - "initialValue": { - "baseExpression": { - "expression": { - "id": 36362, - "name": "voteSubmission", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36356, - "src": "17042:14:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39014_storage_ptr", - "typeString": "struct EpochVoteBottomUpSubmission storage pointer" - } - }, - "id": 36363, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17057:11:26", - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 39013, - "src": "17042:26:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BottomUpCheckpoint_$38937_storage_$", - "typeString": "mapping(bytes32 => struct BottomUpCheckpoint storage ref)" - } - }, - "id": 36367, - "indexExpression": { - "expression": { - "expression": { - "id": 36364, - "name": "voteSubmission", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36356, - "src": "17069:14:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39014_storage_ptr", - "typeString": "struct EpochVoteBottomUpSubmission storage pointer" - } - }, - "id": 36365, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17084:4:26", - "memberName": "vote", - "nodeType": "MemberAccess", - "referencedDeclaration": 39008, - "src": "17069:19:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteSubmission_$38996_storage", - "typeString": "struct EpochVoteSubmission storage ref" - } - }, - "id": 36366, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17089:19:26", - "memberName": "mostVotedSubmission", - "nodeType": "MemberAccess", - "referencedDeclaration": 38983, - "src": "17069:39:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17042:67:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage", - "typeString": "struct BottomUpCheckpoint storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17002:107:26" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 36372, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 36369, - "name": "prevExecutedCheckpointHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35325, - "src": "17218:26:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "expression": { - "id": 36370, - "name": "checkpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36361, - "src": "17248:10:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint storage pointer" - } - }, - "id": 36371, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17259:8:26", - "memberName": "prevHash", - "nodeType": "MemberAccess", - "referencedDeclaration": 38934, - "src": "17248:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "17218:49:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "documentation": "Ensures the checkpoints are chained. If not, should abort the current checkpoint.", - "id": 36389, - "nodeType": "IfStatement", - "src": "17214:181:26", - "trueBody": { - "id": 36388, - "nodeType": "Block", - "src": "17269:126:26", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "expression": { - "id": 36373, - "name": "voteSubmission", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36356, - "src": "17283:14:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39014_storage_ptr", - "typeString": "struct EpochVoteBottomUpSubmission storage pointer" - } - }, - "id": 36376, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17298:4:26", - "memberName": "vote", - "nodeType": "MemberAccess", - "referencedDeclaration": 39008, - "src": "17283:19:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteSubmission_$38996_storage", - "typeString": "struct EpochVoteSubmission storage ref" - } - }, - "id": 36377, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17303:5:26", - "memberName": "reset", - "nodeType": "MemberAccess", - "referencedDeclaration": 37869, - "src": "17283:25:26", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_EpochVoteSubmission_$38996_storage_ptr_$returns$__$attached_to$_t_struct$_EpochVoteSubmission_$38996_storage_ptr_$", - "typeString": "function (struct EpochVoteSubmission storage pointer)" - } - }, - "id": 36378, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17283:27:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 36379, - "nodeType": "ExpressionStatement", - "src": "17283:27:26" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 36383, - "name": "checkpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36361, - "src": "17347:10:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint storage pointer" - } - }, - "id": 36384, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17358:5:26", - "memberName": "epoch", - "nodeType": "MemberAccess", - "referencedDeclaration": 38922, - "src": "17347:16:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "id": 36380, - "name": "executableQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36629, - "src": "17324:15:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ExecutableQueue_$39027_storage", - "typeString": "struct ExecutableQueue storage ref" - } - }, - "id": 36382, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17340:6:26", - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 38075, - "src": "17324:22:26", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_ExecutableQueue_$39027_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_ExecutableQueue_$39027_storage_ptr_$", - "typeString": "function (struct ExecutableQueue storage pointer,uint64)" - } - }, - "id": 36385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17324:40:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 36386, - "nodeType": "ExpressionStatement", - "src": "17324:40:26" - }, - { - "functionReturnParameters": 36358, - "id": 36387, - "nodeType": "Return", - "src": "17378:7:26" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 36391, - "name": "checkpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36361, - "src": "17429:10:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint storage pointer" - } - }, - "id": 36392, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17440:5:26", - "memberName": "epoch", - "nodeType": "MemberAccess", - "referencedDeclaration": 38922, - "src": "17429:16:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 36390, - "name": "_markSubmissionExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36815, - "src": "17405:23:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint64_$returns$__$", - "typeString": "function (uint64)" - } - }, - "id": 36393, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17405:41:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 36394, - "nodeType": "ExpressionStatement", - "src": "17405:41:26" - }, - { - "expression": { - "id": 36400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 36395, - "name": "committedCheckpoints", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35336, - "src": "17457:20:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$38937_storage_$", - "typeString": "mapping(uint64 => struct BottomUpCheckpoint storage ref)" - } - }, - "id": 36398, - "indexExpression": { - "expression": { - "id": 36396, - "name": "checkpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36361, - "src": "17478:10:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint storage pointer" - } - }, - "id": 36397, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17489:5:26", - "memberName": "epoch", - "nodeType": "MemberAccess", - "referencedDeclaration": 38922, - "src": "17478:16:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17457:38:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage", - "typeString": "struct BottomUpCheckpoint storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 36399, - "name": "checkpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36361, - "src": "17498:10:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint storage pointer" - } - }, - "src": "17457:51:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage", - "typeString": "struct BottomUpCheckpoint storage ref" - } - }, - "id": 36401, - "nodeType": "ExpressionStatement", - "src": "17457:51:26" - }, - { - "expression": { - "id": 36406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 36402, - "name": "prevExecutedCheckpointHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35325, - "src": "17518:26:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 36403, - "name": "checkpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36361, - "src": "17547:10:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint storage pointer" - } - }, - "id": 36404, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17558:6:26", - "memberName": "toHash", - "nodeType": "MemberAccess", - "referencedDeclaration": 37331, - "src": "17547:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_BottomUpCheckpoint_$38937_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_BottomUpCheckpoint_$38937_memory_ptr_$", - "typeString": "function (struct BottomUpCheckpoint memory) pure returns (bytes32)" - } - }, - "id": 36405, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17547:19:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "17518:48:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 36407, - "nodeType": "ExpressionStatement", - "src": "17518:48:26" - }, - { - "expression": { - "arguments": [ - { - "id": 36412, - "name": "checkpoint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36361, - "src": "17619:10:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint storage pointer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$38937_storage_ptr", - "typeString": "struct BottomUpCheckpoint storage pointer" - } - ], - "expression": { - "arguments": [ - { - "id": 36409, - "name": "ipcGatewayAddr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35314, - "src": "17586:14:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 36408, - "name": "IGateway", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37158, - "src": "17577:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IGateway_$37158_$", - "typeString": "type(contract IGateway)" - } - }, - "id": 36410, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17577:24:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGateway_$37158", - "typeString": "contract IGateway" - } - }, - "id": 36411, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17602:16:26", - "memberName": "commitChildCheck", - "nodeType": "MemberAccess", - "referencedDeclaration": 37112, - "src": "17577:41:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_struct$_BottomUpCheckpoint_$38937_memory_ptr_$returns$__$", - "typeString": "function (struct BottomUpCheckpoint memory) external" - } - }, - "id": 36413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17577:53:26", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 36414, - "nodeType": "ExpressionStatement", - "src": "17577:53:26" - } - ] - }, - "documentation": { - "id": 36353, - "nodeType": "StructuredDocumentation", - "src": "16741:158:26", - "text": "@notice method that commits a checkpoint after reaching majority\n @param voteSubmission - the last vote submission that reached majority for commit" - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_commitCheckpoint", - "nameLocation": "16913:17:26", - "parameters": { - "id": 36357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36356, - "mutability": "mutable", - "name": "voteSubmission", - "nameLocation": "16967:14:26", - "nodeType": "VariableDeclaration", - "scope": 36416, - "src": "16931:50:26", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39014_storage_ptr", - "typeString": "struct EpochVoteBottomUpSubmission" - }, - "typeName": { - "id": 36355, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 36354, - "name": "EpochVoteBottomUpSubmission", - "nameLocations": [ - "16931:27:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 39014, - "src": "16931:27:26" - }, - "referencedDeclaration": 39014, - "src": "16931:27:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39014_storage_ptr", - "typeString": "struct EpochVoteBottomUpSubmission" - } - }, - "visibility": "internal" - } - ], - "src": "16930:52:26" - }, - "returnParameters": { - "id": 36358, - "nodeType": "ParameterList", - "parameters": [], - "src": "16992:0:26" - }, - "scope": 36417, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - } - ], - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 35247, - "name": "ISubnetActor", - "nameLocations": [ - "1517:12:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 37196, - "src": "1517:12:26" - }, - "id": 35248, - "nodeType": "InheritanceSpecifier", - "src": "1517:12:26" - }, - { - "baseName": { - "id": 35249, - "name": "ReentrancyGuard", - "nameLocations": [ - "1531:15:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 29480, - "src": "1531:15:26" - }, - "id": 35250, - "nodeType": "InheritanceSpecifier", - "src": "1531:15:26" - }, - { - "baseName": { - "id": 35251, - "name": "Voting", - "nameLocations": [ - "1548:6:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 37017, - "src": "1548:6:26" - }, - "id": 35252, - "nodeType": "InheritanceSpecifier", - "src": "1548:6:26" - } - ], - "canonicalName": "SubnetActor", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 35246, - "nodeType": "StructuredDocumentation", - "src": "1433:60:26", - "text": "@title Subnet Actor Contract\n @author LimeChain team" - }, - "fullyImplemented": true, - "linearizedBaseContracts": [ - 36417, - 37017, - 29480, - 37196 - ], - "name": "SubnetActor", - "nameLocation": "1502:11:26", - "scope": 36418, - "usedErrors": [ - 35376, - 35378, - 35380, - 35382, - 35384, - 35386, - 35388, - 35390, - 35392, - 35394, - 35396, - 35398, - 35400, - 35402, - 35404, - 35406, - 35408, - 36631, - 36633, - 36635, - 36637 - ] - } - ], - "license": "UNLICENSED" - }, - "id": 26 -} \ No newline at end of file diff --git a/src/manager/evm/convert/bottom_up.rs b/src/manager/evm/convert/checkpoint.rs similarity index 82% rename from src/manager/evm/convert/bottom_up.rs rename to src/manager/evm/convert/checkpoint.rs index d44c6696..7ba6da76 100644 --- a/src/manager/evm/convert/bottom_up.rs +++ b/src/manager/evm/convert/checkpoint.rs @@ -1,14 +1,29 @@ // Copyright 2022-2023 Protocol Labs // SPDX-License-Identifier: MIT +use crate::checkpoint::{NativeBottomUpCheckpoint, NativeChildCheck}; +use crate::manager::evm::convert::{eth_to_fil_amount, fil_to_eth_amount}; +use crate::manager::evm::manager::{gateway_router_facet, subnet_actor_manager_facet}; use anyhow::anyhow; use fvm_shared::clock::ChainEpoch; use ipc_gateway::checkpoint::BatchCrossMsgs; -use ipc_gateway::CrossMsg; +use ipc_gateway::{CrossMsg, TopDownCheckpoint}; use ipc_sdk::subnet_id::SubnetID; -use crate::checkpoint::{NativeBottomUpCheckpoint, NativeChildCheck}; -use crate::manager::evm::convert::{eth_to_fil_amount, fil_to_eth_amount}; -use crate::manager::evm::manager::subnet_actor_manager_facet; + +impl TryFrom for gateway_router_facet::TopDownCheckpoint { + type Error = anyhow::Error; + + fn try_from(value: TopDownCheckpoint) -> Result { + Ok(Self { + epoch: value.epoch as u64, + top_down_msgs: value + .top_down_msgs + .into_iter() + .map(gateway_router_facet::CrossMsg::try_from) + .collect::>>()?, + }) + } +} // Native child check impl TryFrom for subnet_actor_manager_facet::ChildCheck { @@ -43,9 +58,7 @@ impl TryFrom for subnet_actor_manager_facet::ChildCheck { impl TryFrom for NativeChildCheck { type Error = anyhow::Error; - fn try_from( - value: subnet_actor_manager_facet::ChildCheck, - ) -> Result { + fn try_from(value: subnet_actor_manager_facet::ChildCheck) -> Result { let checks = value.checks.into_iter().map(|v| v.to_vec()).collect(); Ok(Self { source: SubnetID::try_from(value.source)?, @@ -54,9 +67,7 @@ impl TryFrom for NativeChildCheck { } } -impl TryFrom -for NativeBottomUpCheckpoint -{ +impl TryFrom for NativeBottomUpCheckpoint { type Error = anyhow::Error; fn try_from( @@ -92,9 +103,7 @@ for NativeBottomUpCheckpoint } } -impl TryFrom -for subnet_actor_manager_facet::BottomUpCheckpoint -{ +impl TryFrom for subnet_actor_manager_facet::BottomUpCheckpoint { type Error = anyhow::Error; fn try_from(value: NativeBottomUpCheckpoint) -> Result { @@ -139,4 +148,4 @@ for subnet_actor_manager_facet::BottomUpCheckpoint }; Ok(b) } -} \ No newline at end of file +} diff --git a/src/manager/evm/convert/mod.rs b/src/manager/evm/convert/mod.rs index 0422dac0..1cdaea49 100644 --- a/src/manager/evm/convert/mod.rs +++ b/src/manager/evm/convert/mod.rs @@ -3,27 +3,27 @@ //! Type conversion for IPC Agent struct with solidity contract struct -mod bottom_up; +mod checkpoint; use crate::manager::evm::manager::agent_subnet_to_evm_addresses; use crate::manager::evm::manager::{ - gateway_getter_facet, gateway_manager_facet, subnet_actor_getter_facet, + gateway_getter_facet, gateway_manager_facet, gateway_router_facet, subnet_actor_getter_facet, subnet_actor_manager_facet, }; -use ipc_sdk::address::IPCAddress; -use fvm_ipld_encoding::RawBytes; -use fvm_shared::MethodNum; use crate::manager::SubnetInfo; use anyhow::anyhow; use ethers::abi::{ParamType, Token}; use ethers::types::U256; +use fvm_ipld_encoding::RawBytes; use fvm_shared::address::{Address, Payload}; use fvm_shared::bigint::BigInt; use fvm_shared::econ::TokenAmount; +use fvm_shared::MethodNum; +use ipc_gateway::{CrossMsg, Status, StorableMsg}; +use ipc_sdk::address::IPCAddress; use ipc_sdk::subnet_id::SubnetID; use primitives::EthAddress; use std::str::FromStr; -use ipc_gateway::{CrossMsg, Status, StorableMsg}; /// The type conversion for IPC structs to evm solidity contracts. We need this convenient macro because /// the abigen is creating the same struct but under different modules. This save a lot of @@ -75,7 +75,6 @@ macro_rules! base_type_conversion { }; } - /// Implement the cross network message types. To use this macro, make sure the $module has already /// implemented the base types. macro_rules! cross_msg_types { @@ -86,9 +85,7 @@ macro_rules! cross_msg_types { fn try_from(value: IPCAddress) -> Result { Ok($module::Ipcaddress { subnet_id: $module::SubnetID::try_from(&value.subnet()?)?, - raw_address: $module::FvmAddress::try_from( - value.raw_addr()?, - )?, + raw_address: $module::FvmAddress::try_from(value.raw_addr()?)?, }) } } @@ -116,8 +113,9 @@ macro_rules! cross_msg_types { ); let c = $module::StorableMsg { - from: $module::Ipcaddress::try_from(value.from) - .map_err(|e| anyhow!("cannot convert `from` ipc address msg due to: {e:}"))?, + from: $module::Ipcaddress::try_from(value.from).map_err(|e| { + anyhow!("cannot convert `from` ipc address msg due to: {e:}") + })?, to: $module::Ipcaddress::try_from(value.to) .map_err(|e| anyhow!("cannot convert `to`` ipc address due to: {e:}"))?, value: msg_value, @@ -170,9 +168,10 @@ macro_rules! cross_msg_types { Ok(c) } } - } + }; } +base_type_conversion!(gateway_router_facet); base_type_conversion!(subnet_actor_getter_facet); base_type_conversion!(gateway_manager_facet); base_type_conversion!(subnet_actor_manager_facet); @@ -180,6 +179,7 @@ base_type_conversion!(gateway_getter_facet); cross_msg_types!(subnet_actor_manager_facet); cross_msg_types!(gateway_getter_facet); +cross_msg_types!(gateway_router_facet); impl TryFrom for SubnetInfo { type Error = anyhow::Error; diff --git a/src/manager/evm/manager.rs b/src/manager/evm/manager.rs index d532a2e4..ce3961dd 100644 --- a/src/manager/evm/manager.rs +++ b/src/manager/evm/manager.rs @@ -4,6 +4,7 @@ use std::collections::HashMap; use std::sync::{Arc, RwLock}; use std::time::Duration; +use crate::checkpoint::NativeBottomUpCheckpoint; pub use crate::manager::evm::{ethers_address_to_fil_address, fil_to_eth_amount}; use anyhow::{anyhow, Result}; use async_trait::async_trait; @@ -17,12 +18,11 @@ use ethers::types::Eip1559TransactionRequest; use fvm_shared::address::Payload; use fvm_shared::clock::ChainEpoch; use fvm_shared::{address::Address, econ::TokenAmount}; -use ipc_gateway::BottomUpCheckpoint; +use ipc_gateway::{BottomUpCheckpoint, TopDownCheckpoint}; use ipc_identity::{EvmKeyStore, PersistentKeyStore}; use ipc_sdk::subnet_id::SubnetID; use ipc_subnet_actor::ConstructParams; use num_traits::ToPrimitive; -use crate::checkpoint::NativeBottomUpCheckpoint; use crate::config::subnet::SubnetConfig; use crate::config::Subnet; @@ -42,8 +42,6 @@ const TRANSACTION_RECEIPT_RETRIES: usize = 10; const SUBNET_NAME_MAX_LEN: usize = 32; // Create type bindings for the IPC Solidity contracts -abigen!(Gateway, "contracts/Gateway.json"); -abigen!(SubnetContract, "contracts/SubnetActor.json"); abigen!( SubnetActorGetterFacet, "contracts/SubnetActorGetterFacet.json" @@ -450,8 +448,9 @@ impl EthManager for EthSubnetManager { async fn submit_top_down_checkpoint( &self, from: &Address, - checkpoint: gateway_router_facet::TopDownCheckpoint, + checkpoint: TopDownCheckpoint, ) -> Result { + let checkpoint = gateway_router_facet::TopDownCheckpoint::try_from(checkpoint)?; log::debug!("submit top down checkpoint: {:?}", checkpoint); let signer = self.get_signer(from)?; @@ -497,8 +496,10 @@ impl EthManager for EthSubnetManager { let address = contract_address_from_subnet(subnet_id)?; let validator = payload_to_evm_address(validator.payload())?; - let contract = - SubnetActorManagerFacet::new(address, Arc::new(self.ipc_contract_info.provider.clone())); + let contract = SubnetActorManagerFacet::new( + address, + Arc::new(self.ipc_contract_info.provider.clone()), + ); let has_voted = contract .has_validator_voted_for_submission(epoch as u64, validator) @@ -651,8 +652,10 @@ impl EthManager for EthSubnetManager { epoch: ChainEpoch, ) -> Result<[u8; 32]> { let address = contract_address_from_subnet(subnet_id)?; - let contract = - SubnetActorManagerFacet::new(address, Arc::new(self.ipc_contract_info.provider.clone())); + let contract = SubnetActorManagerFacet::new( + address, + Arc::new(self.ipc_contract_info.provider.clone()), + ); let (exists, hash) = contract .bottom_up_checkpoint_hash_at_epoch(epoch as u64) .await?; diff --git a/src/manager/evm/mod.rs b/src/manager/evm/mod.rs index c0ed7955..f72a02bf 100644 --- a/src/manager/evm/mod.rs +++ b/src/manager/evm/mod.rs @@ -9,15 +9,15 @@ mod manager; use async_trait::async_trait; use fvm_shared::address::Address; use fvm_shared::clock::ChainEpoch; -use ipc_gateway::CrossMsg; +use ipc_gateway::{CrossMsg, TopDownCheckpoint}; use ipc_sdk::subnet_id::SubnetID; use super::subnet::SubnetManager; -pub use manager::{gateway, gateway_router_facet, subnet_contract, EthSubnetManager}; +pub use manager::EthSubnetManager; -pub use convert::{eth_to_fil_amount, ethers_address_to_fil_address, fil_to_eth_amount}; use crate::checkpoint::NativeBottomUpCheckpoint; use crate::manager::evm::manager::subnet_actor_manager_facet; +pub use convert::{eth_to_fil_amount, ethers_address_to_fil_address, fil_to_eth_amount}; #[async_trait] pub trait EthManager: SubnetManager { @@ -37,7 +37,7 @@ pub trait EthManager: SubnetManager { async fn submit_top_down_checkpoint( &self, from: &Address, - checkpoint: gateway_router_facet::TopDownCheckpoint, + checkpoint: TopDownCheckpoint, ) -> anyhow::Result; /// Submit bottom up checkpoint to the subnet actor. diff --git a/src/manager/fevm.rs b/src/manager/fevm.rs index 3640afc2..ecf5d137 100644 --- a/src/manager/fevm.rs +++ b/src/manager/fevm.rs @@ -109,10 +109,7 @@ impl BottomUpHandler for FevmSubnetManager { checkpoint: NativeBottomUpCheckpoint, ) -> anyhow::Result { self.evm_subnet_manager - .submit_bottom_up_checkpoint( - validator, - checkpoint, - ) + .submit_bottom_up_checkpoint(validator, checkpoint) .await } } diff --git a/src/manager/mod.rs b/src/manager/mod.rs index 2aa44fe7..0ba37c7c 100644 --- a/src/manager/mod.rs +++ b/src/manager/mod.rs @@ -1,6 +1,6 @@ // Copyright 2022-2023 Protocol Labs // SPDX-License-Identifier: MIT -pub use evm::{gateway, EthManager, EthSubnetManager}; +pub use evm::{EthManager, EthSubnetManager}; pub use fvm::LotusSubnetManager; pub use subnet::SubnetManager; From 1dc459ac8de1cb1978f39c55cdf3a8543dedab97 Mon Sep 17 00:00:00 2001 From: cryptoAtwill Date: Wed, 26 Jul 2023 15:35:08 +0800 Subject: [PATCH 06/17] more logs --- src/checkpoint/bottomup.rs | 5 ++++- src/checkpoint/topdown.rs | 7 +++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/checkpoint/bottomup.rs b/src/checkpoint/bottomup.rs index f7231b59..d470eabc 100644 --- a/src/checkpoint/bottomup.rs +++ b/src/checkpoint/bottomup.rs @@ -70,7 +70,10 @@ impl BottomUpManager { parent_handler: P, child_handler: C, ) -> Result { - let period = parent_handler.checkpoint_period(&child.id).await?; + let period = parent_handler + .checkpoint_period(&child.id) + .await + .map_err(|e| anyhow!("cannot get bottom up checkpoint period: {e}"))?; Ok(Self { metadata: CheckpointMetadata { parent, diff --git a/src/checkpoint/topdown.rs b/src/checkpoint/topdown.rs index d550f505..bc7de21f 100644 --- a/src/checkpoint/topdown.rs +++ b/src/checkpoint/topdown.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: MIT use crate::checkpoint::{CheckpointManager, CheckpointMetadata, CheckpointQuery}; use crate::config::Subnet; -use anyhow::Result; +use anyhow::{anyhow, Result}; use async_trait::async_trait; use fvm_shared::address::Address; use fvm_shared::clock::ChainEpoch; @@ -45,7 +45,10 @@ impl TopDownManager { parent_handler: P, child_handler: C, ) -> Result { - let period = child_handler.checkpoint_period(&child.id).await?; + let period = child_handler + .checkpoint_period(&child.id) + .await + .map_err(|e| anyhow!("cannot get bottom up checkpoint period: {e}"))?; Ok(Self { metadata: CheckpointMetadata { parent, From 8ee5d2b232454aff9063633abc4417da963d38b8 Mon Sep 17 00:00:00 2001 From: cryptoAtwill Date: Wed, 26 Jul 2023 17:00:36 +0800 Subject: [PATCH 07/17] update logs --- src/manager/fevm.rs | 2 ++ src/manager/fvm/mod.rs | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/manager/fevm.rs b/src/manager/fevm.rs index ecf5d137..dff40adc 100644 --- a/src/manager/fevm.rs +++ b/src/manager/fevm.rs @@ -77,6 +77,8 @@ impl BottomUpHandler for FevmSubnetManager { epoch: ChainEpoch, ) -> anyhow::Result { let checkpoint = self.evm_subnet_manager.bottom_up_checkpoint(epoch).await?; + log::debug!("raw bottom up templated: {checkpoint:?}"); + NativeBottomUpCheckpoint::try_from(checkpoint) } diff --git a/src/manager/fvm/mod.rs b/src/manager/fvm/mod.rs index f94f1df9..948ca6bb 100644 --- a/src/manager/fvm/mod.rs +++ b/src/manager/fvm/mod.rs @@ -566,9 +566,11 @@ impl BottomUpHandler for LotusSubnetManager { "error getting bottom-up checkpoint template for epoch:{epoch:} due to {e:}" ) })?; + let mut checkpoint = BottomUpCheckpoint::new(template.source().clone(), epoch); checkpoint.data.children = template.data.children; checkpoint.data.cross_msgs = template.data.cross_msgs; + log::debug!("raw bottom up templated: {checkpoint:?}"); NativeBottomUpCheckpoint::try_from(checkpoint) } From 3c738130f2d4f1c5e56a31003bc19196e9f691b0 Mon Sep 17 00:00:00 2001 From: cryptoAtwill Date: Wed, 26 Jul 2023 17:09:09 +0800 Subject: [PATCH 08/17] more logs --- src/manager/evm/manager.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/manager/evm/manager.rs b/src/manager/evm/manager.rs index ce3961dd..f761b4a3 100644 --- a/src/manager/evm/manager.rs +++ b/src/manager/evm/manager.rs @@ -539,6 +539,7 @@ impl EthManager for EthSubnetManager { "bottom up checkpoint not exists at epoch: {epoch:}" )) } else { + log::debug!("raw bottom up checkpoint from gateway: {checkpoint:?}"); let token = checkpoint.into_token(); let c = subnet_actor_manager_facet::BottomUpCheckpoint::from_token(token)?; Ok(c) From c267ba75c38ce64631c31a50c1606a629fba08d9 Mon Sep 17 00:00:00 2001 From: cryptoAtwill Date: Wed, 26 Jul 2023 17:27:37 +0800 Subject: [PATCH 09/17] log period --- src/checkpoint/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/checkpoint/mod.rs b/src/checkpoint/mod.rs index 808c0404..83fc4cc3 100644 --- a/src/checkpoint/mod.rs +++ b/src/checkpoint/mod.rs @@ -225,6 +225,7 @@ async fn submit_till_current_epoch(manager: &dyn CheckpointManager) -> Result<() } let period = manager.checkpoint_period(); + log::debug!("checkpoint period: {period} for manager: {manager}"); let last_executed_epoch = manager .last_executed_epoch() From 93c0d6232d1d86a4ffaa715ac38225845e89a356 Mon Sep 17 00:00:00 2001 From: cryptoAtwill Date: Thu, 27 Jul 2023 15:13:12 +0800 Subject: [PATCH 10/17] implement list subnet evm --- contracts/SubnetActorGetterFacet.json | 3829 +++++++++++------ src/checkpoint/bottomup.rs | 133 + src/lib.rs | 1 - src/manager/evm/convert/checkpoint.rs | 246 +- src/manager/evm/convert/mod.rs | 1 + src/manager/evm/manager.rs | 35 +- src/manager/fvm/mod.rs | 7 +- src/manager/subnet.rs | 4 +- src/serialization/checkpoint.rs | 119 - src/serialization/mod.rs | 15 - .../handlers/manager/list_checkpoints.rs | 10 +- 11 files changed, 2758 insertions(+), 1642 deletions(-) delete mode 100644 src/serialization/checkpoint.rs delete mode 100644 src/serialization/mod.rs diff --git a/contracts/SubnetActorGetterFacet.json b/contracts/SubnetActorGetterFacet.json index 708e13c9..f2640520 100644 --- a/contracts/SubnetActorGetterFacet.json +++ b/contracts/SubnetActorGetterFacet.json @@ -204,6 +204,219 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "fromEpoch", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "toEpoch", + "type": "uint64" + } + ], + "name": "listBottomUpCheckpoints", + "outputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple" + }, + { + "internalType": "uint64", + "name": "epoch", + "type": "uint64" + }, + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + }, + { + "components": [ + { + "components": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple" + } + ], + "internalType": "struct IPCAddress", + "name": "from", + "type": "tuple" + }, + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ], + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple" + } + ], + "internalType": "struct IPCAddress", + "name": "to", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "bytes4", + "name": "method", + "type": "bytes4" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ], + "internalType": "struct StorableMsg", + "name": "message", + "type": "tuple" + }, + { + "internalType": "bool", + "name": "wrapped", + "type": "bool" + } + ], + "internalType": "struct CrossMsg[]", + "name": "crossMsgs", + "type": "tuple[]" + }, + { + "components": [ + { + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ], + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple" + }, + { + "internalType": "bytes32[]", + "name": "checks", + "type": "bytes32[]" + } + ], + "internalType": "struct ChildCheck[]", + "name": "children", + "type": "tuple[]" + }, + { + "internalType": "bytes32", + "name": "prevHash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "proof", + "type": "bytes" + } + ], + "internalType": "struct BottomUpCheckpoint[]", + "name": "", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "majorityPercentage", @@ -361,13 +574,13 @@ } ], "bytecode": { - "object": "0x608060405234801561001057600080fd5b50610c29806100206000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80637d9740f4116100b8578063a7f0b3de1161007c578063a7f0b3de146102d9578063ad81e244146102ee578063b7ab4db5146102f6578063c5ab22411461030b578063cf3312501461031c578063cfca28241461033157600080fd5b80637d9740f41461028957806380f760211461029a5780638b0e9f3f146102af5780638ef3f761146102b75780639e33bd02146102d157600080fd5b806326476204116100ff57806326476204146101d357806332e0aa1f146101fc578063599c7bd1146102275780635f832dbf1461025857806373f273fc1461026057600080fd5b806306c468531461013c57806306fdde031461016d5780630f43a6771461017f57806310d500e114610187578063200d2ed2146101b9575b600080fd5b600e54600160401b90046001600160401b03165b6040516001600160401b0390911681526020015b60405180910390f35b6010545b604051908152602001610164565b610171610342565b61018f610353565b604080516001600160401b0394851681529284166020840152921691810191909152606001610164565b600154600160401b900460ff166040516101649190610912565b6101716101e136600461092c565b6001600160a01b031660009081526007602052604090205490565b61020f61020a366004610955565b6103b2565b6040516001600160a01b039091168152602001610164565b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27054600160801b900460ff16610150565b600254610171565b61017161026e36600461092c565b6001600160a01b031660009081526008602052604090205490565b600e546001600160401b0316610150565b6102a26103c5565b604051610164919061096e565b600054610171565b600e54600160801b900460ff1660405161016491906109d8565b601354610171565b6102e161045a565b6040516101649190610a32565b6101506104ef565b6102fe610522565b6040516101649190610a45565b6012546001600160401b0316610150565b6103246105c7565b6040516101649190610a92565b600f546001600160a01b031661020f565b600061034e60046108b5565b905090565b60008060006103a77f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27154600160401b81046001600160401b0390811692600160801b8304821692600160c01b900490911690565b925092509250909192565b60006103bf6004836108bf565b92915050565b604080518082019091526000815260606020820152604080518082018252600b80546001600160401b03168252600c8054845160208281028201810190965281815293949293838601939092919083018282801561044c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161042e575b505050505081525050905090565b60606000600d01805461046c90610b66565b80601f016020809104026020016040519081016040528092919081815260200182805461049890610b66565b80156104e55780601f106104ba576101008083540402835291602001916104e5565b820191906000526020600020905b8154815290600101906020018083116104c857829003601f168201915b5050505050905090565b600061034e7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e270546001600160401b031690565b6060600061053060046108b5565b90506000816001600160401b0381111561054c5761054c610ba0565b604051908082528060200260200182016040528015610575578160200160208202803683370190505b50905060005b828110156105c05761058e6004826108bf565b8282815181106105a0576105a0610bb6565b6001600160a01b039092166020928302919091019091015260010161057b565b5092915050565b60408051808201909152606081526000602082015260006105e860046108b5565b90506000816001600160401b0381111561060457610604610ba0565b60405190808252806020026020018201604052801561066957816020015b604080516080810182526000808252602080830182905283518085018552918252606090820181905292820152818101919091528152602001906001900390816106225790505b50905060005b828110156108905760408051608081019091528061068e6004846108bf565b6001600160a01b03168152602001600760006106ab6004866108bf565b6001600160a01b031681526020808201929092526040016000908120548352910190600a906106db6004866108bf565b6001600160a01b0316815260208082019290925260409081016000208151808301909252805460ff168252600181018054929391929184019161071d90610b66565b80601f016020809104026020016040519081016040528092919081815260200182805461074990610b66565b80156107965780601f1061076b57610100808354040283529160200191610796565b820191906000526020600020905b81548152906001019060200180831161077957829003601f168201915b505050919092525050508152602001600960006107b46004866108bf565b6001600160a01b03166001600160a01b0316815260200190815260200160002080546107df90610b66565b80601f016020809104026020016040519081016040528092919081815260200182805461080b90610b66565b80156108585780601f1061082d57610100808354040283529160200191610858565b820191906000526020600020905b81548152906001019060200180831161083b57829003601f168201915b505050505081525082828151811061087257610872610bb6565b6020026020010181905250808061088890610bcc565b91505061066f565b50604080518082019091529081526001546001600160401b0316602082015292915050565b60006103bf825490565b60006108cb83836108d2565b9392505050565b60008260000182815481106108e9576108e9610bb6565b9060005260206000200154905092915050565b634e487b7160e01b600052602160045260246000fd5b6020810160068310610926576109266108fc565b91905290565b60006020828403121561093e57600080fd5b81356001600160a01b03811681146108cb57600080fd5b60006020828403121561096757600080fd5b5035919050565b602080825282516001600160401b0316828201528281015160408084015280516060840181905260009291820190839060808601905b808310156109cd5783516001600160a01b031682529284019260019290920191908401906109a4565b509695505050505050565b6020810160018310610926576109266108fc565b6000815180845260005b81811015610a12576020818501810151868301820152016109f6565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006108cb60208301846109ec565b6020808252825182820181905260009190848201906040850190845b81811015610a865783516001600160a01b031683529284019291840191600101610a61565b50909695505050505050565b600060208083526060808401855160408085880152828251808552608094508489019150848160051b8a0101878501945060005b82811015610b44578a8203607f19018452855180516001600160a01b03168352898101518a84015285810151868401899052805160ff16898501528a015160a08401879052610b1860c08501826109ec565b918a0151848303858c0152919050610b3081836109ec565b978b0197958b019593505050600101610ac6565b50968a01516001600160401b038116848b0152969a9950505050505050505050565b600181811c90821680610b7a57607f821691505b602082108103610b9a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600060018201610bec57634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220ba94d63e1e7f33b2548b5c1df13bc869e9d65a517df8b6f576b78a4a4ff435ac64736f6c63430008130033", - "sourceMap": "1527:4160:62:-:0;;;;;;;;;;;;;;;;;;;", + "object": "0x608060405234801561001057600080fd5b50611757806100206000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806380f76021116100b8578063ac9c2a6f1161007c578063ac9c2a6f146102d0578063ad81e244146102f0578063b7ab4db5146102f8578063c5ab22411461030d578063cf33125014610325578063cfca28241461033a57600080fd5b806380f76021146102835780638b0e9f3f146102985780638ef3f761146102a05780639e33bd02146102b3578063a7f0b3de146102bb57600080fd5b8063264762041161010a57806326476204146101de57806332e0aa1f14610207578063599c7bd1146102325780635f832dbf1461023a57806373f273fc146102425780637d9740f41461026b57600080fd5b806306c468531461014757806306fdde03146101785780630f43a6771461018a57806310d500e114610192578063200d2ed2146101c4575b600080fd5b600954600160801b90046001600160401b03165b6040516001600160401b0390911681526020015b60405180910390f35b600a545b60405190815260200161016f565b61017c61034b565b61019a61035c565b604080516001600160401b039485168152928416602084015292169181019190915260600161016f565b600d54600160a01b900460ff1660405161016f91906110d0565b61017c6101ec3660046110ea565b6001600160a01b031660009081526001602052604090205490565b61021a610215366004611113565b6103bb565b6040516001600160a01b03909116815260200161016f565b61015b6103ce565b600c5461017c565b61017c6102503660046110ea565b6001600160a01b031660009081526002602052604090205490565b600954600160401b90046001600160401b031661015b565b61028b6103fb565b60405161016f9190611195565b60075461017c565b60125460ff1660405161016f91906111a8565b60085461017c565b6102c3610490565b60405161016f9190611202565b6102e36102de366004611231565b610525565b60405161016f9190611459565b61015b610cad565b610300610ce0565b60405161016f919061153f565b600954600160c01b90046001600160401b031661015b565b61032d610d85565b60405161016f919061158c565b600d546001600160a01b031661021a565b6000610357600e611073565b905090565b60008060006103b07f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27154600160401b81046001600160401b0390811692600160801b8304821692600160c01b900490911690565b925092509250909192565b60006103c8600e8361107d565b92915050565b60006103577f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e2735460ff1690565b604080518082019091526000815260606020820152604080518082018252601080546001600160401b0316825260118054845160208281028201810190965281815293949293838601939092919083018282801561048257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610464575b505050505081525050905090565b6060600060060180546104a29061164c565b80601f01602080910402602001604051908101604052809291908181526020018280546104ce9061164c565b801561051b5780601f106104f05761010080835404028352916020019161051b565b820191906000526020600020905b8154815290600101906020018083116104fe57829003601f168201915b5050505050905090565b60606000610533848461169c565b90506000816001600160401b03166001600160401b03811115610558576105586116bc565b6040519080825280602002602001820160405280156105d157816020015b6040805161012081018252600060e0820181815260606101008401819052908352602083018290529282018190528282018390526080820183905260a082015260c08101919091528152602001906001900390816105765790505b50905060005b826001600160401b0316816001600160401b03161015610ca457600560006105ff83896116d2565b6001600160401b0390811682526020808301939093526040918201600020825161012081018452815490921660e08301908152600182018054855181880281018801909652808652939592948694929386936101008701939183018282801561069157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610673575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015610a9b5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d019390918301828280156107a257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610784575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906107dc9061164c565b80601f01602080910402602001604051908101604052809291908181526020018280546108089061164c565b80156108555780601f1061082a57610100808354040283529160200191610855565b820191906000526020600020905b81548152906001019060200180831161083857829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156108e657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116108c8575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906109209061164c565b80601f016020809104026020016040519081016040528092919081815260200182805461094c9061164c565b80156109995780601f1061096e57610100808354040283529160200191610999565b820191906000526020600020905b81548152906001019060200180831161097c57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916109f49061164c565b80601f0160208091040260200160405190810160405280929190818152602001828054610a209061164c565b8015610a6d5780601f10610a4257610100808354040283529160200191610a6d565b820191906000526020600020905b815481529060010190602001808311610a5057829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016106fc565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015610bd2576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015610b5e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b40575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610bba57602002820191906000526020600020905b815481526020019060010190808311610ba6575b50505050508152505081526020019060010190610ac8565b50505050815260200160068201548152602001600782018054610bf49061164c565b80601f0160208091040260200160405190810160405280929190818152602001828054610c209061164c565b8015610c6d5780601f10610c4257610100808354040283529160200191610c6d565b820191906000526020600020905b815481529060010190602001808311610c5057829003601f168201915b50505050508152505082826001600160401b031681518110610c9157610c916116f2565b60209081029190910101526001016105d7565b50949350505050565b60006103577f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e270546001600160401b031690565b60606000610cee600e611073565b90506000816001600160401b03811115610d0a57610d0a6116bc565b604051908082528060200260200182016040528015610d33578160200160208202803683370190505b50905060005b82811015610d7e57610d4c600e8261107d565b828281518110610d5e57610d5e6116f2565b6001600160a01b0390921660209283029190910190910152600101610d39565b5092915050565b6040805180820190915260608152600060208201526000610da6600e611073565b90506000816001600160401b03811115610dc257610dc26116bc565b604051908082528060200260200182016040528015610e2757816020015b60408051608081018252600080825260208083018290528351808501855291825260609082018190529282015281810191909152815260200190600190039081610de05790505b50905060005b8281101561104e57604080516080810190915280610e4c600e8461107d565b6001600160a01b0316815260200160016000610e69600e8661107d565b6001600160a01b031681526020808201929092526040016000908120548352910190600490610e99600e8661107d565b6001600160a01b0316815260208082019290925260409081016000208151808301909252805460ff1682526001810180549293919291840191610edb9061164c565b80601f0160208091040260200160405190810160405280929190818152602001828054610f079061164c565b8015610f545780601f10610f2957610100808354040283529160200191610f54565b820191906000526020600020905b815481529060010190602001808311610f3757829003601f168201915b50505091909252505050815260200160036000610f72600e8661107d565b6001600160a01b03166001600160a01b031681526020019081526020016000208054610f9d9061164c565b80601f0160208091040260200160405190810160405280929190818152602001828054610fc99061164c565b80156110165780601f10610feb57610100808354040283529160200191611016565b820191906000526020600020905b815481529060010190602001808311610ff957829003601f168201915b5050505050815250828281518110611030576110306116f2565b6020026020010181905250808061104690611708565b915050610e2d565b50604080518082019091529081526009546001600160401b0316602082015292915050565b60006103c8825490565b60006110898383611090565b9392505050565b60008260000182815481106110a7576110a76116f2565b9060005260206000200154905092915050565b634e487b7160e01b600052602160045260246000fd5b60208101600683106110e4576110e46110ba565b91905290565b6000602082840312156110fc57600080fd5b81356001600160a01b038116811461108957600080fd5b60006020828403121561112557600080fd5b5035919050565b6000604083016001600160401b0383511684526020808401516040828701528281518085526060880191508383019450600092505b8083101561118a5784516001600160a01b03168252938301936001929092019190830190611161565b509695505050505050565b602081526000611089602083018461112c565b60208101600183106110e4576110e46110ba565b6000815180845260005b818110156111e2576020818501810151868301820152016111c6565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600061108960208301846111bc565b80356001600160401b038116811461122c57600080fd5b919050565b6000806040838503121561124457600080fd5b61124d83611215565b915061125b60208401611215565b90509250929050565b60ff8151168252600060208201516040602085015261128660408501826111bc565b949350505050565b60008151604084526112a3604085018261112c565b9050602083015184820360208601526112bc8282611264565b95945050505050565b600081518084526020808501808196508360051b8101915082860160005b858110156113ac578284038952815160408151818752805160c080848a01526113106101008a018361128e565b915089830151603f196060818c860301818d015261132e858461128e565b9686015160808d810191909152908601516001600160401b031660a0808e0191909152908601516001600160e01b031916938c0193909352918401518a860390920160e08b01525092905061138381846111bc565b93890151801515898b0152939250611399915050565b99860199945050908401906001016112e3565b5091979650505050505050565b600081518084526020808501808196508360051b810191508286016000805b8681101561144b578385038a528251604081518188526113fa8289018261112c565b92890151888403898b01528051808552908a01938693508a0191505b808310156114365783518252928901926001929092019190890190611416565b509b88019b96505050918501916001016113d8565b509298975050505050505050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b8381101561153157603f19898403018552815160e081518186526114a68287018261112c565b9150506001600160401b038983015116898601528782015188860152606080830151868303828801526114d983826112c5565b92505050608080830151868303828801526114f483826113b9565b9250505060a080830151818701525060c0808301519250858203818701525061151d81836111bc565b968901969450505090860190600101611480565b509098975050505050505050565b6020808252825182820181905260009190848201906040850190845b818110156115805783516001600160a01b03168352928401929184019160010161155b565b50909695505050505050565b600060208083526060808401855160408085880152828251808552608094508489019150848160051b8a0101878501945060005b8281101561162a578a8203607f19018452855180516001600160a01b03168352898101518a840152858101518684018990526115fe89850182611264565b918a0151848303858c015291905061161681836111bc565b978b0197958b0195935050506001016115c0565b50968a01516001600160401b038116848b0152969a9950505050505050505050565b600181811c9082168061166057607f821691505b60208210810361168057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160401b03828116828216039080821115610d7e57610d7e611686565b634e487b7160e01b600052604160045260246000fd5b6001600160401b03818116838216019080821115610d7e57610d7e611686565b634e487b7160e01b600052603260045260246000fd5b60006001820161171a5761171a611686565b506001019056fea2646970667358221220c2b2f9a32af319879dee4b360c43b39be9d447bced8a03f418758260337519ae64736f6c63430008130033", + "sourceMap": "1527:4685:63:-:0;;;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106101375760003560e01c80637d9740f4116100b8578063a7f0b3de1161007c578063a7f0b3de146102d9578063ad81e244146102ee578063b7ab4db5146102f6578063c5ab22411461030b578063cf3312501461031c578063cfca28241461033157600080fd5b80637d9740f41461028957806380f760211461029a5780638b0e9f3f146102af5780638ef3f761146102b75780639e33bd02146102d157600080fd5b806326476204116100ff57806326476204146101d357806332e0aa1f146101fc578063599c7bd1146102275780635f832dbf1461025857806373f273fc1461026057600080fd5b806306c468531461013c57806306fdde031461016d5780630f43a6771461017f57806310d500e114610187578063200d2ed2146101b9575b600080fd5b600e54600160401b90046001600160401b03165b6040516001600160401b0390911681526020015b60405180910390f35b6010545b604051908152602001610164565b610171610342565b61018f610353565b604080516001600160401b0394851681529284166020840152921691810191909152606001610164565b600154600160401b900460ff166040516101649190610912565b6101716101e136600461092c565b6001600160a01b031660009081526007602052604090205490565b61020f61020a366004610955565b6103b2565b6040516001600160a01b039091168152602001610164565b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27054600160801b900460ff16610150565b600254610171565b61017161026e36600461092c565b6001600160a01b031660009081526008602052604090205490565b600e546001600160401b0316610150565b6102a26103c5565b604051610164919061096e565b600054610171565b600e54600160801b900460ff1660405161016491906109d8565b601354610171565b6102e161045a565b6040516101649190610a32565b6101506104ef565b6102fe610522565b6040516101649190610a45565b6012546001600160401b0316610150565b6103246105c7565b6040516101649190610a92565b600f546001600160a01b031661020f565b600061034e60046108b5565b905090565b60008060006103a77f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27154600160401b81046001600160401b0390811692600160801b8304821692600160c01b900490911690565b925092509250909192565b60006103bf6004836108bf565b92915050565b604080518082019091526000815260606020820152604080518082018252600b80546001600160401b03168252600c8054845160208281028201810190965281815293949293838601939092919083018282801561044c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161042e575b505050505081525050905090565b60606000600d01805461046c90610b66565b80601f016020809104026020016040519081016040528092919081815260200182805461049890610b66565b80156104e55780601f106104ba576101008083540402835291602001916104e5565b820191906000526020600020905b8154815290600101906020018083116104c857829003601f168201915b5050505050905090565b600061034e7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e270546001600160401b031690565b6060600061053060046108b5565b90506000816001600160401b0381111561054c5761054c610ba0565b604051908082528060200260200182016040528015610575578160200160208202803683370190505b50905060005b828110156105c05761058e6004826108bf565b8282815181106105a0576105a0610bb6565b6001600160a01b039092166020928302919091019091015260010161057b565b5092915050565b60408051808201909152606081526000602082015260006105e860046108b5565b90506000816001600160401b0381111561060457610604610ba0565b60405190808252806020026020018201604052801561066957816020015b604080516080810182526000808252602080830182905283518085018552918252606090820181905292820152818101919091528152602001906001900390816106225790505b50905060005b828110156108905760408051608081019091528061068e6004846108bf565b6001600160a01b03168152602001600760006106ab6004866108bf565b6001600160a01b031681526020808201929092526040016000908120548352910190600a906106db6004866108bf565b6001600160a01b0316815260208082019290925260409081016000208151808301909252805460ff168252600181018054929391929184019161071d90610b66565b80601f016020809104026020016040519081016040528092919081815260200182805461074990610b66565b80156107965780601f1061076b57610100808354040283529160200191610796565b820191906000526020600020905b81548152906001019060200180831161077957829003601f168201915b505050919092525050508152602001600960006107b46004866108bf565b6001600160a01b03166001600160a01b0316815260200190815260200160002080546107df90610b66565b80601f016020809104026020016040519081016040528092919081815260200182805461080b90610b66565b80156108585780601f1061082d57610100808354040283529160200191610858565b820191906000526020600020905b81548152906001019060200180831161083b57829003601f168201915b505050505081525082828151811061087257610872610bb6565b6020026020010181905250808061088890610bcc565b91505061066f565b50604080518082019091529081526001546001600160401b0316602082015292915050565b60006103bf825490565b60006108cb83836108d2565b9392505050565b60008260000182815481106108e9576108e9610bb6565b9060005260206000200154905092915050565b634e487b7160e01b600052602160045260246000fd5b6020810160068310610926576109266108fc565b91905290565b60006020828403121561093e57600080fd5b81356001600160a01b03811681146108cb57600080fd5b60006020828403121561096757600080fd5b5035919050565b602080825282516001600160401b0316828201528281015160408084015280516060840181905260009291820190839060808601905b808310156109cd5783516001600160a01b031682529284019260019290920191908401906109a4565b509695505050505050565b6020810160018310610926576109266108fc565b6000815180845260005b81811015610a12576020818501810151868301820152016109f6565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006108cb60208301846109ec565b6020808252825182820181905260009190848201906040850190845b81811015610a865783516001600160a01b031683529284019291840191600101610a61565b50909695505050505050565b600060208083526060808401855160408085880152828251808552608094508489019150848160051b8a0101878501945060005b82811015610b44578a8203607f19018452855180516001600160a01b03168352898101518a84015285810151868401899052805160ff16898501528a015160a08401879052610b1860c08501826109ec565b918a0151848303858c0152919050610b3081836109ec565b978b0197958b019593505050600101610ac6565b50968a01516001600160401b038116848b0152969a9950505050505050505050565b600181811c90821680610b7a57607f821691505b602082108103610b9a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600060018201610bec57634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220ba94d63e1e7f33b2548b5c1df13bc869e9d65a517df8b6f576b78a4a4ff435ac64736f6c63430008130033", - "sourceMap": "1527:4160:62:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3494:107;3573:21;;-1:-1:-1;;;3573:21:62;;-1:-1:-1;;;;;3573:21:62;3494:107;;;-1:-1:-1;;;;;283:31:68;;;265:50;;253:2;238:18;3494:107:62;;;;;;;;4045:78;4110:6;;4045:78;;;472:25:68;;;460:2;445:18;4045:78:62;326:177:68;4165:103:62;;;:::i;2774:176::-;;;:::i;:::-;;;;-1:-1:-1;;;;;941:15:68;;;923:34;;993:15;;;988:2;973:18;;966:43;1045:15;;1025:18;;;1018:43;;;;874:2;859:18;2774:176:62;690:377:68;2296:81:62;2362:8;;-1:-1:-1;;;2362:8:62;;;;2296:81;;;;;;:::i;3080:92::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3155:10:62;3129:7;3155:10;;;:7;:10;;;;;;;3080:92;4367:114;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2092:32:68;;;2074:51;;2062:2;2047:18;4367:114:62;1928:203:68;3702:115:62;1522:42:53;10064:20;-1:-1:-1;;;10064:20:53;;;;3702:115:62;4165:103;2515:122;2602:28;;2515:122;;2956:118;;;;;;:::i;:::-;-1:-1:-1;;;;;3044:23:62;3018:7;3044:23;;;:20;:23;;;;;;;2956:118;3383:105;3461:20;;-1:-1:-1;;;;;3461:20:62;3383:105;;2156:95;;;:::i;:::-;;;;;;;:::i;2419:90::-;2464:7;2490:12;2419:90;;3823:94;3899:11;;-1:-1:-1;;;3899:11:62;;;;3823:94;;;;;;:::i;3923:116::-;4007:25;;3923:116;;3607:89;;;:::i;:::-;;;;;;;:::i;2643:125::-;;;:::i;4583:360::-;;;:::i;:::-;;;;;;;:::i;3282:95::-;3355:15;;-1:-1:-1;;;;;3355:15:62;3282:95;;5031:654;;;:::i;:::-;;;;;;;:::i;3178:98::-;3253:16;;-1:-1:-1;;;;;3253:16:62;3178:98;;4165:103;4214:7;4240:21;:12;:19;:21::i;:::-;4233:28;;4165:103;:::o;2774:176::-;2824:6;2832;2840;2916:27;9676:17:53;:24;-1:-1:-1;;;9676:24:53;;-1:-1:-1;;;;;9676:24:53;;;;-1:-1:-1;;;9702:23:53;;;;;-1:-1:-1;;;9727:22:53;;;;;;9533:224;2916:27:62;2909:34;;;;;;2774:176;;;:::o;4367:114::-;4426:7;4452:22;:12;4468:5;4452:15;:22::i;:::-;4445:29;4367:114;-1:-1:-1;;4367:114:62:o;2156:95::-;-1:-1:-1;;;;;;;;;;;;;;;;;2227:17:62;;;;;;;;2234:10;2227:17;;-1:-1:-1;;;;;2227:17:62;;;;;;;;;;;;;;;;;;;;;;;;2234:10;;2227:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2227:17:62;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:95;:::o;3607:89::-;3649:12;3680:1;:9;;3673:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3607:89;:::o;2643:125::-;2701:6;2726:35;1522:42:53;9897:25;-1:-1:-1;;;;;9897:25:53;;9763:166;4583:360:62;4631:16;4659:14;4676:21;:12;:19;:21::i;:::-;4659:38;;4707:23;4747:6;-1:-1:-1;;;;;4733:21:62;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4733:21:62;;4707:47;;4770:9;4765:148;4789:6;4785:1;:10;4765:148;;;4825:18;:12;4841:1;4825:15;:18::i;:::-;4813:6;4820:1;4813:9;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4813:30:62;;;:9;;;;;;;;;;;:30;4885:3;;4765:148;;;-1:-1:-1;4930:6:62;4583:360;-1:-1:-1;;4583:360:62:o;5031:654::-;-1:-1:-1;;;;;;;;;;;;;;;;;5112:14:62;5129:21;:12;:19;:21::i;:::-;5112:38;;5161:30;5214:6;-1:-1:-1;;;;;5194:27:62;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5194:27:62;;;;;;;;;;;;;;;;5161:60;;5237:9;5232:350;5256:6;5252:1;:10;5232:350;;;5296:275;;;;;;;;;;5334:18;:12;5350:1;5334:15;:18::i;:::-;-1:-1:-1;;;;;5296:275:62;;;;;5378:7;:1;5386:18;:12;5402:1;5386:15;:18::i;:::-;-1:-1:-1;;;;;5378:27:62;;;;;;;;;;;;;-1:-1:-1;5378:27:62;;;;5296:275;;;;;5435:26;;5462:18;:12;5478:1;5462:15;:18::i;:::-;-1:-1:-1;;;;;5435:46:62;;;;;;;;;;;;;;;-1:-1:-1;5435:46:62;5296:275;;;;;;;;;;;;;;;;;;;;;5435:46;;5296:275;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5296:275:62;;;;-1:-1:-1;;;5296:275:62;;;;5513:23;:1;5537:18;:12;5553:1;5537:15;:18::i;:::-;-1:-1:-1;;;;;5513:43:62;-1:-1:-1;;;;;5513:43:62;;;;;;;;;;;;5296:275;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5283:7;5291:1;5283:10;;;;;;;;:::i;:::-;;;;;;:288;;;;5264:3;;;;;:::i;:::-;;;;5232:350;;;-1:-1:-1;5599:79:62;;;;;;;;;;;;5655:21;;-1:-1:-1;;;;;5655:21:62;5599:79;;;;;5031:654;-1:-1:-1;;5031:654:62:o;9107:115:22:-;9170:7;9196:19;9204:3;4546:18;;4464:107;9564:156;9638:7;9688:22;9692:3;9704:5;9688:3;:22::i;:::-;9680:31;9564:156;-1:-1:-1;;;9564:156:22:o;4913:118::-;4980:7;5006:3;:11;;5018:5;5006:18;;;;;;;;:::i;:::-;;;;;;;;;4999:25;;4913:118;;;;:::o;1072:127:68:-;1133:10;1128:3;1124:20;1121:1;1114:31;1164:4;1161:1;1154:15;1188:4;1185:1;1178:15;1204:243;1348:2;1333:18;;1381:1;1370:13;;1360:47;;1387:18;;:::i;:::-;1416:25;;;1204:243;:::o;1452:286::-;1511:6;1564:2;1552:9;1543:7;1539:23;1535:32;1532:52;;;1580:1;1577;1570:12;1532:52;1606:23;;-1:-1:-1;;;;;1658:31:68;;1648:42;;1638:70;;1704:1;1701;1694:12;1743:180;1802:6;1855:2;1843:9;1834:7;1830:23;1826:32;1823:52;;;1871:1;1868;1861:12;1823:52;-1:-1:-1;1894:23:68;;1743:180;-1:-1:-1;1743:180:68:o;2136:844::-;2311:2;2322:21;;;2424:13;;-1:-1:-1;;;;;2420:38:68;2400:18;;;2393:66;2494:15;;;2488:22;2548:4;2526:20;;;2519:34;2602:19;;2381:2;2366:18;;2630:22;;;2282:4;;2311:2;2710:21;;;2282:4;;2683:3;2668:19;;;2759:195;2773:6;2770:1;2767:13;2759:195;;;2838:13;;-1:-1:-1;;;;;2834:39:68;2822:52;;2929:15;;;;2870:1;2788:9;;;;;2894:12;;;;2759:195;;;-1:-1:-1;2971:3:68;2136:844;-1:-1:-1;;;;;;2136:844:68:o;2985:250::-;3136:2;3121:18;;3169:1;3158:13;;3148:47;;3175:18;;:::i;3240:422::-;3281:3;3319:5;3313:12;3346:6;3341:3;3334:19;3371:1;3381:162;3395:6;3392:1;3389:13;3381:162;;;3457:4;3513:13;;;3509:22;;3503:29;3485:11;;;3481:20;;3474:59;3410:12;3381:162;;;3385:3;3588:1;3581:4;3572:6;3567:3;3563:16;3559:27;3552:38;3651:4;3644:2;3640:7;3635:2;3627:6;3623:15;3619:29;3614:3;3610:39;3606:50;3599:57;;;3240:422;;;;:::o;3667:217::-;3814:2;3803:9;3796:21;3777:4;3834:44;3874:2;3863:9;3859:18;3851:6;3834:44;:::i;3889:658::-;4060:2;4112:21;;;4182:13;;4085:18;;;4204:22;;;4031:4;;4060:2;4283:15;;;;4257:2;4242:18;;;4031:4;4326:195;4340:6;4337:1;4334:13;4326:195;;;4405:13;;-1:-1:-1;;;;;4401:39:68;4389:52;;4496:15;;;;4461:12;;;;4437:1;4355:9;4326:195;;;-1:-1:-1;4538:3:68;;3889:658;-1:-1:-1;;;;;;3889:658:68:o;4552:1673::-;4706:4;4735:2;4764;4753:9;4746:21;4786:2;4826;4815:9;4811:18;4864:6;4858:13;4890:4;4930:2;4925;4914:9;4910:18;4903:30;4953:6;4988:12;4982:19;5025:6;5017;5010:22;5051:3;5041:13;;5085:2;5074:9;5070:18;5063:25;;5147:2;5137:6;5134:1;5130:14;5119:9;5115:30;5111:39;5191:2;5177:12;5173:21;5159:35;;5212:1;5222:859;5236:6;5233:1;5230:13;5222:859;;;5301:22;;;-1:-1:-1;;5297:37:68;5285:50;;5358:13;;5403:9;;-1:-1:-1;;;;;5399:35:68;5384:51;;5478:11;;;5472:18;5455:15;;;5448:43;5532:11;;;5526:18;5564:15;;;5557:27;;;5625:21;;5648:4;5621:32;5604:15;;;5597:57;5695:23;;5689:30;5422:3;5739:16;;5732:28;;;5784:50;5829:3;5817:16;;5689:30;5784:50;:::i;:::-;5875:11;;;5869:18;5924:16;;;5907:15;;;5900:41;5869:18;5773:61;-1:-1:-1;5964:37:68;5773:61;5869:18;5964:37;:::i;:::-;6024:15;;;;6059:12;;;;5954:47;-1:-1:-1;;;5258:1:68;5251:9;5222:859;;;-1:-1:-1;6118:15:68;;;6112:22;-1:-1:-1;;;;;79:30:68;;6177:18;;;67:43;6112:22;6213:6;4552:1673;-1:-1:-1;;;;;;;;;;4552:1673:68:o;6230:380::-;6309:1;6305:12;;;;6352;;;6373:61;;6427:4;6419:6;6415:17;6405:27;;6373:61;6480:2;6472:6;6469:14;6449:18;6446:38;6443:161;;6526:10;6521:3;6517:20;6514:1;6507:31;6561:4;6558:1;6551:15;6589:4;6586:1;6579:15;6443:161;;6230:380;;;:::o;6615:127::-;6676:10;6671:3;6667:20;6664:1;6657:31;6707:4;6704:1;6697:15;6731:4;6728:1;6721:15;6747:127;6808:10;6803:3;6799:20;6796:1;6789:31;6839:4;6836:1;6829:15;6863:4;6860:1;6853:15;6879:232;6918:3;6939:17;;;6936:140;;6998:10;6993:3;6989:20;6986:1;6979:31;7033:4;7030:1;7023:15;7061:4;7058:1;7051:15;6936:140;-1:-1:-1;7103:1:68;7092:13;;6879:232::o", + "object": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c806380f76021116100b8578063ac9c2a6f1161007c578063ac9c2a6f146102d0578063ad81e244146102f0578063b7ab4db5146102f8578063c5ab22411461030d578063cf33125014610325578063cfca28241461033a57600080fd5b806380f76021146102835780638b0e9f3f146102985780638ef3f761146102a05780639e33bd02146102b3578063a7f0b3de146102bb57600080fd5b8063264762041161010a57806326476204146101de57806332e0aa1f14610207578063599c7bd1146102325780635f832dbf1461023a57806373f273fc146102425780637d9740f41461026b57600080fd5b806306c468531461014757806306fdde03146101785780630f43a6771461018a57806310d500e114610192578063200d2ed2146101c4575b600080fd5b600954600160801b90046001600160401b03165b6040516001600160401b0390911681526020015b60405180910390f35b600a545b60405190815260200161016f565b61017c61034b565b61019a61035c565b604080516001600160401b039485168152928416602084015292169181019190915260600161016f565b600d54600160a01b900460ff1660405161016f91906110d0565b61017c6101ec3660046110ea565b6001600160a01b031660009081526001602052604090205490565b61021a610215366004611113565b6103bb565b6040516001600160a01b03909116815260200161016f565b61015b6103ce565b600c5461017c565b61017c6102503660046110ea565b6001600160a01b031660009081526002602052604090205490565b600954600160401b90046001600160401b031661015b565b61028b6103fb565b60405161016f9190611195565b60075461017c565b60125460ff1660405161016f91906111a8565b60085461017c565b6102c3610490565b60405161016f9190611202565b6102e36102de366004611231565b610525565b60405161016f9190611459565b61015b610cad565b610300610ce0565b60405161016f919061153f565b600954600160c01b90046001600160401b031661015b565b61032d610d85565b60405161016f919061158c565b600d546001600160a01b031661021a565b6000610357600e611073565b905090565b60008060006103b07f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27154600160401b81046001600160401b0390811692600160801b8304821692600160c01b900490911690565b925092509250909192565b60006103c8600e8361107d565b92915050565b60006103577f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e2735460ff1690565b604080518082019091526000815260606020820152604080518082018252601080546001600160401b0316825260118054845160208281028201810190965281815293949293838601939092919083018282801561048257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610464575b505050505081525050905090565b6060600060060180546104a29061164c565b80601f01602080910402602001604051908101604052809291908181526020018280546104ce9061164c565b801561051b5780601f106104f05761010080835404028352916020019161051b565b820191906000526020600020905b8154815290600101906020018083116104fe57829003601f168201915b5050505050905090565b60606000610533848461169c565b90506000816001600160401b03166001600160401b03811115610558576105586116bc565b6040519080825280602002602001820160405280156105d157816020015b6040805161012081018252600060e0820181815260606101008401819052908352602083018290529282018190528282018390526080820183905260a082015260c08101919091528152602001906001900390816105765790505b50905060005b826001600160401b0316816001600160401b03161015610ca457600560006105ff83896116d2565b6001600160401b0390811682526020808301939093526040918201600020825161012081018452815490921660e08301908152600182018054855181880281018801909652808652939592948694929386936101008701939183018282801561069157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610673575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015610a9b5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d019390918301828280156107a257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610784575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906107dc9061164c565b80601f01602080910402602001604051908101604052809291908181526020018280546108089061164c565b80156108555780601f1061082a57610100808354040283529160200191610855565b820191906000526020600020905b81548152906001019060200180831161083857829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156108e657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116108c8575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906109209061164c565b80601f016020809104026020016040519081016040528092919081815260200182805461094c9061164c565b80156109995780601f1061096e57610100808354040283529160200191610999565b820191906000526020600020905b81548152906001019060200180831161097c57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916109f49061164c565b80601f0160208091040260200160405190810160405280929190818152602001828054610a209061164c565b8015610a6d5780601f10610a4257610100808354040283529160200191610a6d565b820191906000526020600020905b815481529060010190602001808311610a5057829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016106fc565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015610bd2576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015610b5e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b40575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610bba57602002820191906000526020600020905b815481526020019060010190808311610ba6575b50505050508152505081526020019060010190610ac8565b50505050815260200160068201548152602001600782018054610bf49061164c565b80601f0160208091040260200160405190810160405280929190818152602001828054610c209061164c565b8015610c6d5780601f10610c4257610100808354040283529160200191610c6d565b820191906000526020600020905b815481529060010190602001808311610c5057829003601f168201915b50505050508152505082826001600160401b031681518110610c9157610c916116f2565b60209081029190910101526001016105d7565b50949350505050565b60006103577f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e270546001600160401b031690565b60606000610cee600e611073565b90506000816001600160401b03811115610d0a57610d0a6116bc565b604051908082528060200260200182016040528015610d33578160200160208202803683370190505b50905060005b82811015610d7e57610d4c600e8261107d565b828281518110610d5e57610d5e6116f2565b6001600160a01b0390921660209283029190910190910152600101610d39565b5092915050565b6040805180820190915260608152600060208201526000610da6600e611073565b90506000816001600160401b03811115610dc257610dc26116bc565b604051908082528060200260200182016040528015610e2757816020015b60408051608081018252600080825260208083018290528351808501855291825260609082018190529282015281810191909152815260200190600190039081610de05790505b50905060005b8281101561104e57604080516080810190915280610e4c600e8461107d565b6001600160a01b0316815260200160016000610e69600e8661107d565b6001600160a01b031681526020808201929092526040016000908120548352910190600490610e99600e8661107d565b6001600160a01b0316815260208082019290925260409081016000208151808301909252805460ff1682526001810180549293919291840191610edb9061164c565b80601f0160208091040260200160405190810160405280929190818152602001828054610f079061164c565b8015610f545780601f10610f2957610100808354040283529160200191610f54565b820191906000526020600020905b815481529060010190602001808311610f3757829003601f168201915b50505091909252505050815260200160036000610f72600e8661107d565b6001600160a01b03166001600160a01b031681526020019081526020016000208054610f9d9061164c565b80601f0160208091040260200160405190810160405280929190818152602001828054610fc99061164c565b80156110165780601f10610feb57610100808354040283529160200191611016565b820191906000526020600020905b815481529060010190602001808311610ff957829003601f168201915b5050505050815250828281518110611030576110306116f2565b6020026020010181905250808061104690611708565b915050610e2d565b50604080518082019091529081526009546001600160401b0316602082015292915050565b60006103c8825490565b60006110898383611090565b9392505050565b60008260000182815481106110a7576110a76116f2565b9060005260206000200154905092915050565b634e487b7160e01b600052602160045260246000fd5b60208101600683106110e4576110e46110ba565b91905290565b6000602082840312156110fc57600080fd5b81356001600160a01b038116811461108957600080fd5b60006020828403121561112557600080fd5b5035919050565b6000604083016001600160401b0383511684526020808401516040828701528281518085526060880191508383019450600092505b8083101561118a5784516001600160a01b03168252938301936001929092019190830190611161565b509695505050505050565b602081526000611089602083018461112c565b60208101600183106110e4576110e46110ba565b6000815180845260005b818110156111e2576020818501810151868301820152016111c6565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600061108960208301846111bc565b80356001600160401b038116811461122c57600080fd5b919050565b6000806040838503121561124457600080fd5b61124d83611215565b915061125b60208401611215565b90509250929050565b60ff8151168252600060208201516040602085015261128660408501826111bc565b949350505050565b60008151604084526112a3604085018261112c565b9050602083015184820360208601526112bc8282611264565b95945050505050565b600081518084526020808501808196508360051b8101915082860160005b858110156113ac578284038952815160408151818752805160c080848a01526113106101008a018361128e565b915089830151603f196060818c860301818d015261132e858461128e565b9686015160808d810191909152908601516001600160401b031660a0808e0191909152908601516001600160e01b031916938c0193909352918401518a860390920160e08b01525092905061138381846111bc565b93890151801515898b0152939250611399915050565b99860199945050908401906001016112e3565b5091979650505050505050565b600081518084526020808501808196508360051b810191508286016000805b8681101561144b578385038a528251604081518188526113fa8289018261112c565b92890151888403898b01528051808552908a01938693508a0191505b808310156114365783518252928901926001929092019190890190611416565b509b88019b96505050918501916001016113d8565b509298975050505050505050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b8381101561153157603f19898403018552815160e081518186526114a68287018261112c565b9150506001600160401b038983015116898601528782015188860152606080830151868303828801526114d983826112c5565b92505050608080830151868303828801526114f483826113b9565b9250505060a080830151818701525060c0808301519250858203818701525061151d81836111bc565b968901969450505090860190600101611480565b509098975050505050505050565b6020808252825182820181905260009190848201906040850190845b818110156115805783516001600160a01b03168352928401929184019160010161155b565b50909695505050505050565b600060208083526060808401855160408085880152828251808552608094508489019150848160051b8a0101878501945060005b8281101561162a578a8203607f19018452855180516001600160a01b03168352898101518a840152858101518684018990526115fe89850182611264565b918a0151848303858c015291905061161681836111bc565b978b0197958b0195935050506001016115c0565b50968a01516001600160401b038116848b0152969a9950505050505050505050565b600181811c9082168061166057607f821691505b60208210810361168057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160401b03828116828216039080821115610d7e57610d7e611686565b634e487b7160e01b600052604160045260246000fd5b6001600160401b03818116838216019080821115610d7e57610d7e611686565b634e487b7160e01b600052603260045260246000fd5b60006001820161171a5761171a611686565b506001019056fea2646970667358221220c2b2f9a32af319879dee4b360c43b39be9d447bced8a03f418758260337519ae64736f6c63430008130033", + "sourceMap": "1527:4685:63:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3494:107;3573:21;;-1:-1:-1;;;3573:21:63;;-1:-1:-1;;;;;3573:21:63;3494:107;;;-1:-1:-1;;;;;283:31:75;;;265:50;;253:2;238:18;3494:107:63;;;;;;;;4045:78;4110:6;;4045:78;;;472:25:75;;;460:2;445:18;4045:78:63;326:177:75;4165:103:63;;;:::i;2774:176::-;;;:::i;:::-;;;;-1:-1:-1;;;;;941:15:75;;;923:34;;993:15;;;988:2;973:18;;966:43;1045:15;;1025:18;;;1018:43;;;;874:2;859:18;2774:176:63;690:377:75;2296:81:63;2362:8;;-1:-1:-1;;;2362:8:63;;;;2296:81;;;;;;:::i;3080:92::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3155:10:63;3129:7;3155:10;;;:7;:10;;;;;;;3080:92;4367:114;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2092:32:75;;;2074:51;;2062:2;2047:18;4367:114:63;1928:203:75;3702:115:63;;;:::i;2515:122::-;2602:28;;2515:122;;2956:118;;;;;;:::i;:::-;-1:-1:-1;;;;;3044:23:63;3018:7;3044:23;;;:20;:23;;;;;;;2956:118;3383:105;3461:20;;-1:-1:-1;;;3461:20:63;;-1:-1:-1;;;;;3461:20:63;3383:105;;2156:95;;;:::i;:::-;;;;;;;:::i;2419:90::-;2490:12;;2419:90;;3823:94;3899:11;;;;3823:94;;;;;;:::i;3923:116::-;4007:25;;3923:116;;3607:89;;;:::i;:::-;;;;;;;:::i;5753:457::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2643:125::-;;;:::i;4583:360::-;;;:::i;:::-;;;;;;;:::i;3282:95::-;3355:15;;-1:-1:-1;;;3355:15:63;;-1:-1:-1;;;;;3355:15:63;3282:95;;5031:654;;;:::i;:::-;;;;;;;:::i;3178:98::-;3253:16;;-1:-1:-1;;;;;3253:16:63;3178:98;;4165:103;4214:7;4240:21;:12;:19;:21::i;:::-;4233:28;;4165:103;:::o;2774:176::-;2824:6;2832;2840;2916:27;9676:17:54;:24;-1:-1:-1;;;9676:24:54;;-1:-1:-1;;;;;9676:24:54;;;;-1:-1:-1;;;9702:23:54;;;;;-1:-1:-1;;;9727:22:54;;;;;;9533:224;2916:27:63;2909:34;;;;;;2774:176;;;:::o;4367:114::-;4426:7;4452:22;:12;4468:5;4452:15;:22::i;:::-;4445:29;4367:114;-1:-1:-1;;4367:114:63:o;3702:115::-;3755:6;3780:30;10064:20:54;;;;;9935:156;2156:95:63;-1:-1:-1;;;;;;;;;;;;;;;;;2227:17:63;;;;;;;;2234:10;2227:17;;-1:-1:-1;;;;;2227:17:63;;;;;;;;;;;;;;;;;;;;;;;;2234:10;;2227:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2227:17:63;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:95;:::o;3607:89::-;3649:12;3680:1;:9;;3673:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3607:89;:::o;5753:457::-;5865:27;5904:11;5918:19;5928:9;5918:7;:19;:::i;:::-;5904:33;;5947:31;6006:4;-1:-1:-1;;;;;5981:30:63;-1:-1:-1;;;;;5981:30:63;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5981:30:63;;;;;;;;;;;;;;;;5947:64;;6027:8;6022:161;6045:4;-1:-1:-1;;;;;6041:8:63;:1;-1:-1:-1;;;;;6041:8:63;;6022:161;;;6076:22;:1;6099:13;6111:1;6099:9;:13;:::i;:::-;-1:-1:-1;;;;;6076:37:63;;;;;;;;;;;;;;;;;-1:-1:-1;6076:37:63;6067:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6076:37;;6067:46;;;;6076:37;;6067:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6067:46:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6067:46:63;-1:-1:-1;;;;;6067:46:63;-1:-1:-1;;;;;6067:46:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6067:46:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6067:46:63;;;;;;;;;;;;;;;;-1:-1:-1;;;6067:46:63;;;;-1:-1:-1;;;6067:46:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6067:46:63;;;;-1:-1:-1;;;6067:46:63;;-1:-1:-1;6067:46:63;;;;;;;;;;;;;;;-1:-1:-1;;;;;6067:46:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6067:46:63;;;;;;;;;;;;;;;;-1:-1:-1;;;6067:46:63;;;;-1:-1:-1;;;6067:46:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6067:46:63;;;;-1:-1:-1;;;6067:46:63;;-1:-1:-1;6067:46:63;;;;;;;;;;;;;;-1:-1:-1;;;;;6067:46:63;;;;;;-1:-1:-1;;;6067:46:63;;;;-1:-1:-1;;;;;;6067:46:63;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6067:46:63;;;;-1:-1:-1;;;6067:46:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6067:46:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6067:46:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:3;6071:1;-1:-1:-1;;;;;6067:6:63;;;;;;;;;:::i;:::-;;;;;;;;;;:46;6155:3;;6022:161;;;-1:-1:-1;6200:3:63;5753:457;-1:-1:-1;;;;5753:457:63:o;2643:125::-;2701:6;2726:35;1522:42:54;9897:25;-1:-1:-1;;;;;9897:25:54;;9763:166;4583:360:63;4631:16;4659:14;4676:21;:12;:19;:21::i;:::-;4659:38;;4707:23;4747:6;-1:-1:-1;;;;;4733:21:63;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4733:21:63;;4707:47;;4770:9;4765:148;4789:6;4785:1;:10;4765:148;;;4825:18;:12;4841:1;4825:15;:18::i;:::-;4813:6;4820:1;4813:9;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4813:30:63;;;:9;;;;;;;;;;;:30;4885:3;;4765:148;;;-1:-1:-1;4930:6:63;4583:360;-1:-1:-1;;4583:360:63:o;5031:654::-;-1:-1:-1;;;;;;;;;;;;;;;;;5112:14:63;5129:21;:12;:19;:21::i;:::-;5112:38;;5161:30;5214:6;-1:-1:-1;;;;;5194:27:63;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5194:27:63;;;;;;;;;;;;;;;;5161:60;;5237:9;5232:350;5256:6;5252:1;:10;5232:350;;;5296:275;;;;;;;;;;5334:18;:12;5350:1;5334:15;:18::i;:::-;-1:-1:-1;;;;;5296:275:63;;;;;5378:7;:1;5386:18;:12;5402:1;5386:15;:18::i;:::-;-1:-1:-1;;;;;5378:27:63;;;;;;;;;;;;;-1:-1:-1;5378:27:63;;;;5296:275;;;;;5435:26;;5462:18;:12;5478:1;5462:15;:18::i;:::-;-1:-1:-1;;;;;5435:46:63;;;;;;;;;;;;;;;-1:-1:-1;5435:46:63;5296:275;;;;;;;;;;;;;;;;;;;;;5435:46;;5296:275;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5296:275:63;;;;-1:-1:-1;;;5296:275:63;;;;5513:23;:1;5537:18;:12;5553:1;5537:15;:18::i;:::-;-1:-1:-1;;;;;5513:43:63;-1:-1:-1;;;;;5513:43:63;;;;;;;;;;;;5296:275;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5283:7;5291:1;5283:10;;;;;;;;:::i;:::-;;;;;;:288;;;;5264:3;;;;;:::i;:::-;;;;5232:350;;;-1:-1:-1;5599:79:63;;;;;;;;;;;;5655:21;;-1:-1:-1;;;;;5655:21:63;5599:79;;;;;5031:654;-1:-1:-1;;5031:654:63:o;9107:115:23:-;9170:7;9196:19;9204:3;4546:18;;4464:107;9564:156;9638:7;9688:22;9692:3;9704:5;9688:3;:22::i;:::-;9680:31;9564:156;-1:-1:-1;;;9564:156:23:o;4913:118::-;4980:7;5006:3;:11;;5018:5;5006:18;;;;;;;;:::i;:::-;;;;;;;;;4999:25;;4913:118;;;;:::o;1072:127:75:-;1133:10;1128:3;1124:20;1121:1;1114:31;1164:4;1161:1;1154:15;1188:4;1185:1;1178:15;1204:243;1348:2;1333:18;;1381:1;1370:13;;1360:47;;1387:18;;:::i;:::-;1416:25;;;1204:243;:::o;1452:286::-;1511:6;1564:2;1552:9;1543:7;1539:23;1535:32;1532:52;;;1580:1;1577;1570:12;1532:52;1606:23;;-1:-1:-1;;;;;1658:31:75;;1648:42;;1638:70;;1704:1;1701;1694:12;1743:180;1802:6;1855:2;1843:9;1834:7;1830:23;1826:32;1823:52;;;1871:1;1868;1861:12;1823:52;-1:-1:-1;1894:23:75;;1743:180;-1:-1:-1;1743:180:75:o;2136:689::-;2187:3;2226:4;2221:3;2217:14;-1:-1:-1;;;;;2262:5:75;2256:12;2252:37;2247:3;2240:50;2309:4;2359:2;2352:5;2348:14;2342:21;2393:4;2388:2;2383:3;2379:12;2372:26;2420:4;2453:12;2447:19;2488:6;2482:4;2475:20;2522:2;2517:3;2513:12;2504:21;;2566:2;2552:12;2548:21;2534:35;;2587:1;2578:10;;2597:201;2611:6;2608:1;2605:13;2597:201;;;2678:13;;-1:-1:-1;;;;;2674:39:75;2660:54;;2773:15;;;;2710:1;2626:9;;;;;2736:14;;;;2597:201;;;-1:-1:-1;2814:5:75;2136:689;-1:-1:-1;;;;;;2136:689:75:o;2830:263::-;3013:2;3002:9;2995:21;2976:4;3033:54;3083:2;3072:9;3068:18;3060:6;3033:54;:::i;3098:250::-;3249:2;3234:18;;3282:1;3271:13;;3261:47;;3288:18;;:::i;3353:422::-;3394:3;3432:5;3426:12;3459:6;3454:3;3447:19;3484:1;3494:162;3508:6;3505:1;3502:13;3494:162;;;3570:4;3626:13;;;3622:22;;3616:29;3598:11;;;3594:20;;3587:59;3523:12;3494:162;;;3498:3;3701:1;3694:4;3685:6;3680:3;3676:16;3672:27;3665:38;3764:4;3757:2;3753:7;3748:2;3740:6;3736:15;3732:29;3727:3;3723:39;3719:50;3712:57;;;3353:422;;;;:::o;3780:217::-;3927:2;3916:9;3909:21;3890:4;3947:44;3987:2;3976:9;3972:18;3964:6;3947:44;:::i;4002:171::-;4069:20;;-1:-1:-1;;;;;4118:30:75;;4108:41;;4098:69;;4163:1;4160;4153:12;4098:69;4002:171;;;:::o;4178:256::-;4244:6;4252;4305:2;4293:9;4284:7;4280:23;4276:32;4273:52;;;4321:1;4318;4311:12;4273:52;4344:28;4362:9;4344:28;:::i;:::-;4334:38;;4391:37;4424:2;4413:9;4409:18;4391:37;:::i;:::-;4381:47;;4178:256;;;;;:::o;4439:264::-;4540:4;4532:5;4526:12;4522:23;4517:3;4510:36;4492:3;4592:4;4585:5;4581:16;4575:23;4630:4;4623;4618:3;4614:14;4607:28;4651:46;4691:4;4686:3;4682:14;4668:12;4651:46;:::i;:::-;4644:53;4439:264;-1:-1:-1;;;;4439:264:75:o;4708:379::-;4761:3;4805:5;4799:12;4832:4;4827:3;4820:17;4858:56;4908:4;4903:3;4899:14;4885:12;4858:56;:::i;:::-;4846:68;;4962:4;4955:5;4951:16;4945:23;5010:3;5004:4;5000:14;4993:4;4988:3;4984:14;4977:38;5031:50;5076:4;5060:14;5031:50;:::i;:::-;5024:57;4708:379;-1:-1:-1;;;;;4708:379:75:o;5188:1865::-;5249:3;5287:5;5281:12;5314:6;5309:3;5302:19;5340:4;5381:2;5376:3;5372:12;5406:11;5433;5426:18;;5483:6;5480:1;5476:14;5469:5;5465:26;5453:38;;5525:2;5518:5;5514:14;5546:1;5556:1471;5570:6;5567:1;5564:13;5556:1471;;;5641:5;5635:4;5631:16;5626:3;5619:29;5677:6;5671:13;5707:4;5750:2;5744:9;5779:2;5773:4;5766:16;5823:12;5817:19;5859:4;5898:2;5893;5887:4;5883:13;5876:25;5928:60;5983:3;5977:4;5973:14;5957;5928:60;:::i;:::-;5914:74;;6047:2;6033:12;6029:21;6023:28;6078:2;6074:7;6104:2;6164;6157:4;6149:6;6145:17;6141:26;6136:2;6130:4;6126:13;6119:49;6195:52;6240:6;6224:14;6195:52;:::i;:::-;6276:21;;;6270:28;6321:3;6344:13;;;6337:25;;;;6403:21;;;6397:28;-1:-1:-1;;;;;6486:39:75;6448:3;6471:13;;;6464:62;;;;6571:21;;;6565:28;-1:-1:-1;;;;;;6561:55:75;6546:13;;;6539:78;;;;6658:21;;;6652:28;6720:17;;;6716:26;;;6599:3;6700:14;;6693:50;-1:-1:-1;6652:28:75;6181:66;-1:-1:-1;6769:40:75;6181:66;6652:28;6769:40;:::i;:::-;6850:11;;;6844:18;5162:13;;5155:21;6907:13;;;5143:34;6844:18;6756:53;-1:-1:-1;6875:46:75;;-1:-1:-1;;5092:91:75;6875:46;7005:12;;;;6942:5;-1:-1:-1;;6970:15:75;;;;5592:1;5585:9;5556:1471;;;-1:-1:-1;7043:4:75;;5188:1865;-1:-1:-1;;;;;;;5188:1865:75:o;7058:1398::-;7121:3;7159:5;7153:12;7186:6;7181:3;7174:19;7212:4;7253:2;7248:3;7244:12;7278:11;7305;7298:18;;7355:6;7352:1;7348:14;7341:5;7337:26;7325:38;;7397:2;7390:5;7386:14;7418:1;7439;7449:981;7465:6;7460:3;7457:15;7449:981;;;7540:5;7534:4;7530:16;7525:3;7518:29;7576:6;7570:13;7606:4;7649:2;7643:9;7678:2;7672:4;7665:16;7708:55;7759:2;7753:4;7749:13;7735:12;7708:55;:::i;:::-;7804:11;;;7798:18;7851:17;;;7836:13;;;7829:40;7930:21;;7964:24;;;8054:23;;;;8101:1;;-1:-1:-1;8010:15:75;;;-1:-1:-1;8115:209:75;8131:8;8126:3;8123:17;8115:209;;;8208:15;;8194:30;;8293:17;;;;8159:1;8150:11;;;;;8250:14;;;;8115:209;;;-1:-1:-1;8408:12:75;;;;8345:5;-1:-1:-1;;;8373:15:75;;;;7491:1;7482:11;7449:981;;;-1:-1:-1;8446:4:75;;7058:1398;-1:-1:-1;;;;;;;;7058:1398:75:o;8461:1905::-;8677:4;8706:2;8746;8735:9;8731:18;8776:2;8765:9;8758:21;8799:6;8834;8828:13;8865:6;8857;8850:22;8891:2;8881:12;;8924:2;8913:9;8909:18;8902:25;;8986:2;8976:6;8973:1;8969:14;8958:9;8954:30;8950:39;9024:2;9016:6;9012:15;9045:1;9055:1282;9069:6;9066:1;9063:13;9055:1282;;;9162:2;9158:7;9146:9;9138:6;9134:22;9130:36;9125:3;9118:49;9196:6;9190:13;9226:4;9269:2;9263:9;9300:2;9292:6;9285:18;9330:57;9383:2;9375:6;9371:15;9357:12;9330:57;:::i;:::-;9316:71;;;-1:-1:-1;;;;;9442:2:75;9438;9434:11;9428:18;9424:43;9419:2;9411:6;9407:15;9400:68;9519:2;9515;9511:11;9505:18;9500:2;9492:6;9488:15;9481:43;9547:4;9600:2;9596;9592:11;9586:18;9653:6;9645;9641:19;9636:2;9628:6;9624:15;9617:44;9688:60;9741:6;9725:14;9688:60;:::i;:::-;9674:74;;;;9771:4;9824:2;9820;9816:11;9810:18;9877:6;9869;9865:19;9860:2;9852:6;9848:15;9841:44;9912:62;9967:6;9951:14;9912:62;:::i;:::-;9898:76;;;;9997:4;10052:2;10048;10044:11;10038:18;10033:2;10025:6;10021:15;10014:43;;10080:4;10133:2;10129;10125:11;10119:18;10097:40;;10186:6;10178;10174:19;10169:2;10161:6;10157:15;10150:44;;10217:40;10250:6;10234:14;10217:40;:::i;:::-;10315:12;;;;10207:50;-1:-1:-1;;;10280:15:75;;;;9091:1;9084:9;9055:1282;;;-1:-1:-1;10354:6:75;;8461:1905;-1:-1:-1;;;;;;;;8461:1905:75:o;10371:658::-;10542:2;10594:21;;;10664:13;;10567:18;;;10686:22;;;10513:4;;10542:2;10765:15;;;;10739:2;10724:18;;;10513:4;10808:195;10822:6;10819:1;10816:13;10808:195;;;10887:13;;-1:-1:-1;;;;;10883:39:75;10871:52;;10978:15;;;;10943:12;;;;10919:1;10837:9;10808:195;;;-1:-1:-1;11020:3:75;;10371:658;-1:-1:-1;;;;;;10371:658:75:o;11034:1517::-;11188:4;11217:2;11246;11235:9;11228:21;11268:2;11308;11297:9;11293:18;11346:6;11340:13;11372:4;11412:2;11407;11396:9;11392:18;11385:30;11435:6;11470:12;11464:19;11507:6;11499;11492:22;11533:3;11523:13;;11567:2;11556:9;11552:18;11545:25;;11629:2;11619:6;11616:1;11612:14;11601:9;11597:30;11593:39;11673:2;11659:12;11655:21;11641:35;;11694:1;11704:703;11718:6;11715:1;11712:13;11704:703;;;11783:22;;;-1:-1:-1;;11779:37:75;11767:50;;11840:13;;11885:9;;-1:-1:-1;;;;;11881:35:75;11866:51;;11960:11;;;11954:18;11937:15;;;11930:43;12014:11;;;12008:18;12046:15;;;12039:27;;;12093:61;12138:15;;;12008:18;12093:61;:::i;:::-;12195:11;;;12189:18;12244:19;;;12227:15;;;12220:44;12189:18;12079:75;-1:-1:-1;12287:40:75;12079:75;12189:18;12287:40;:::i;:::-;12350:15;;;;12385:12;;;;12277:50;-1:-1:-1;;;11740:1:75;11733:9;11704:703;;;-1:-1:-1;12444:15:75;;;12438:22;-1:-1:-1;;;;;79:30:75;;12503:18;;;67:43;12438:22;12539:6;11034:1517;-1:-1:-1;;;;;;;;;;11034:1517:75:o;12556:380::-;12635:1;12631:12;;;;12678;;;12699:61;;12753:4;12745:6;12741:17;12731:27;;12699:61;12806:2;12798:6;12795:14;12775:18;12772:38;12769:161;;12852:10;12847:3;12843:20;12840:1;12833:31;12887:4;12884:1;12877:15;12915:4;12912:1;12905:15;12769:161;;12556:380;;;:::o;12941:127::-;13002:10;12997:3;12993:20;12990:1;12983:31;13033:4;13030:1;13023:15;13057:4;13054:1;13047:15;13073:183;-1:-1:-1;;;;;13192:10:75;;;13180;;;13176:27;;13215:12;;;13212:38;;;13230:18;;:::i;13261:127::-;13322:10;13317:3;13313:20;13310:1;13303:31;13353:4;13350:1;13343:15;13377:4;13374:1;13367:15;13393:180;-1:-1:-1;;;;;13498:10:75;;;13510;;;13494:27;;13533:11;;;13530:37;;;13547:18;;:::i;13578:127::-;13639:10;13634:3;13630:20;13627:1;13620:31;13670:4;13667:1;13660:15;13694:4;13691:1;13684:15;13710:135;13749:3;13770:17;;;13767:43;;13790:18;;:::i;:::-;-1:-1:-1;13837:1:75;13826:13;;13710:135::o", "linkReferences": {} }, "methodIdentifiers": { @@ -381,6 +594,7 @@ "getValidators()": "b7ab4db5", "ipcGatewayAddr()": "cfca2824", "lastVotingExecutedEpoch()": "ad81e244", + "listBottomUpCheckpoints(uint64,uint64)": "ac9c2a6f", "majorityPercentage()": "599c7bd1", "minActivationCollateral()": "9e33bd02", "minValidators()": "c5ab2241", @@ -393,7 +607,7 @@ "validatorAt(uint256)": "32e0aa1f", "validatorCount()": "0f43a677" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"a\",\"type\":\"address\"}],\"name\":\"accumulatedRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpCheckPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"consensus\",\"outputs\":[{\"internalType\":\"enum ConsensusType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executableQueue\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesis\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getParent\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getValidatorSet\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"workerAddr\",\"type\":\"tuple\"},{\"internalType\":\"string\",\"name\":\"netAddresses\",\"type\":\"string\"}],\"internalType\":\"struct ValidatorInfo[]\",\"name\":\"validators\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"configurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct ValidatorSet\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getValidators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ipcGatewayAddr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastVotingExecutedEpoch\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"majorityPercentage\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minActivationCollateral\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minValidators\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"prevExecutedCheckpointHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"a\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"status\",\"outputs\":[{\"internalType\":\"enum Status\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"topDownCheckPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"validatorAt\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"validatorAt(uint256)\":{\"params\":{\"index\":\"- the index of the validator set\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getParent()\":{\"notice\":\"get the parent subnet id\"},\"getValidatorSet()\":{\"notice\":\"get the full details of the validators, not just their addresses.\"},\"getValidators()\":{\"notice\":\"get all the validators in the subnet. TODO: we can introduce pagination\"},\"status()\":{\"notice\":\"get the current status\"},\"totalStake()\":{\"notice\":\"get the total stake\"},\"validatorAt(uint256)\":{\"notice\":\"get validator at index\"},\"validatorCount()\":{\"notice\":\"get validator count\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/subnet/SubnetActorGetterFacet.sol\":\"SubnetActorGetterFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xb8d40721965efd93b5369d55083181226d3c7e1be4a968c04de35d44ba44f29a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5c4b0089788aa7112cce88602212c3895999f464e00d1c40d7f27ac9288798b\",\"dweb:/ipfs/Qmd69EuGeoCYPfPkGA4hayH4s2upmAe3XaoDf4ggYNEoZ4\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x31f34a3baec77c087d2bdbc5c277f169e505b905aeb43cfcea1734175140f621\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5a3bc8093b31b685ef879e8ffaaab614594cb6f98ddac4f18c411f7bbf99d0d\",\"dweb:/ipfs/QmSFfA9pH3xo8hnWKCFKTwGi8kz68YXuAwyLXsYe6KjC3Z\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xdb6d7e26320438bdd421598eb64e6fe2b03867a4dd07c9c820994b7bec26f7b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2adf1566393ddf260fb2064dd0c67be00123b8978be8b62cc45ac97aff859949\",\"dweb:/ipfs/QmaDLzQpnitEJDAJo4squpKumr5x4D2QYetPdT3jZd8hYm\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x8a925dea568a61a38de9615aae7bb462d9eb6f8eb2c6ca409f1e740519077ab8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b7e2f836581694867c09bb9c80ff2ab6ae039ece2ff3bbf4d1bc2026449fa551\",\"dweb:/ipfs/QmVMvaQSCRBHZudSV8AzimYre76tJVm4UrHYnrT89zcjho\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xf6fd4f824e7dd9fe651bd11596f3045f32e67be595f91078c2b326e45aec4ce4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a674b1a6824a75749bb0a71b4791ff329907083ffb028b04634e94ddbcc2b2f3\",\"dweb:/ipfs/QmTkoSu2mRktfadkjhdgisBaWoZxb8iC3bacUwqCt44PNQ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0xf29c18f694b5acc919b7cada2875ca3bd2c52ddd7ef86ee747aab0faeb50ac8b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d8fb92f533cc119c578da73b06efe76b0efaa612af7c77178eb903952fcf53df\",\"dweb:/ipfs/QmdosRgUmvwXRnxq5TmoJoFMs7TULduTFpMUNyYXQNGfQD\"]},\"src/enums/VoteExecutionStatus.sol\":{\"keccak256\":\"0x56d1db8abf83feb0f1d69f1919fbd5bd79c6f3c5bf3c149950d307b9d62b6455\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb2ec0f87a9091eab463ac6a776d5737189e0239f412b36b975bb0be1fcb4ad8\",\"dweb:/ipfs/QmWiXwab54Ag2f1kyGjqT3brh5JrV5Lc7cqod9VPaS5ey6\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xab09aee88feca01f5c23baa475aa02bb8c1b189e60a7b81848a07e00b9ab708c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1f5d874688d7316a0eb382b6fb1e7ea6648b15aaaab95acc51f18bfcab851d61\",\"dweb:/ipfs/QmdZRRmWrkrn5MmEX3n5yWEREtoCvXNxzoVkPWSH64ENpd\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x57865785239b076bc429cd989bc5cb2a2e68050c7293a5a537d8cdeded170294\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://28285703560a0bbfa247c894c9f14f2a14e02e430e7dedb0a05b58c53aed3763\",\"dweb:/ipfs/QmcrNx18jZYJ7dRduWu1do3th74cHy7zn9Zx8x13WsCLj5\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0xe3f7371c7c7af8dfa71daa6c4171f6853c9ab1fdd619c09eb12c11ff18d17d91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6a09ea45ed335eada22e7cf3643c17d1c59750ed2156cc29c0960a8e8b53e394\",\"dweb:/ipfs/QmSYTNGqP9wEJnPDXmvghfL8zL8BrHGnixhbsimA9oydLG\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x86bf44c7e35907c1b0ed2fd55a6a8a277b46e6ee52b6933610504bc1d2de3b12\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb47357cd7342f951e5d08b1960e9ab7d458463e71ce08ff61b900bbb04118f0\",\"dweb:/ipfs/QmTKHhnYs1xKZUwCmSRPmSi5utfGrosYV57fSoGF7bGnJs\"]},\"src/lib/CheckpointHelper.sol\":{\"keccak256\":\"0x25d67ccc67b6b537df920c92dc3c704dc097e000c444149d3732e1d20848a269\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5823e88c38b5c4e90ee5700cee5a5fd8d982015dab7ea1cbe2f26d62a359ae76\",\"dweb:/ipfs/QmT9Ves86HoEqQciunzEwvDsyv2dgQwF8uPUjNuGsycHuF\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0xe7aacc0bc5eb10763685d6766524f6db05b151b37de4ccbd2b04649e54b9af36\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d6fae33fe9dc258efc3e0c484c6e69ff8314af266c78fd9b3d20c5bf8f251865\",\"dweb:/ipfs/QmYYpC6GnJNRvAg3MCSHKHk47cas888N3HzmMrmiRT4bnJ\"]},\"src/lib/EpochVoteSubmissionHelper.sol\":{\"keccak256\":\"0x1eaf867ddfc3e83d5a2ca50a81809e1529ea2436a8d2697d868bc8653b8c6c9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://65eb6a69fdb0fd8bfc1cd3d5044791225ff9fa8887dda49fd530e7c46e6e5366\",\"dweb:/ipfs/QmepF17eiqGqiNJRfeCohdeVw2aJxgkFS1AyFSM78v16nC\"]},\"src/lib/ExecutableQueueHelper.sol\":{\"keccak256\":\"0x64569fd85dac9617c7cf0e2991bf3bc2f1678b9b4f87945290606d1f821ce826\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8fb7927c7ca76f45f68b2552c4a59047597ccae0c9010c847e75f203f49820bc\",\"dweb:/ipfs/Qmcsg1b1GNBRAzz2CBDufdL3TspdZqx9wUoZ1uVcy3H8EN\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x80d7d30532305664e31ad114d702904287e6f93954b420315f660ddf30791ac6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0b108070a13f76614f36e46f0af85d12aa53209ff9bb9c32ee1945be3e0a1fe1\",\"dweb:/ipfs/QmcyMuCZB4Z3qFUUjvcoVeSePJXU5F9hN4Zhy94U2qqcPq\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x04d8b15d89be847fced554bfc8ed1ea1d9e92ccab8799acc83cde19706e43d31\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1a2ebe2cbf011ee931874dec86dc69991b9bf3cebdbd0a38b2bc8d9f22b999f7\",\"dweb:/ipfs/QmQZxinNFFsym6GJwRRqeFLQk8HBMuzUagQETK3iMc4M4M\"]},\"src/lib/LibVoting.sol\":{\"keccak256\":\"0x0eb430669ede92f847f6fbb6fc37d37fe2294e72e4714c13e1cd5027ce1c9178\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://139de5e7126f01b3844ac61a5ccf10c065dadb77c3edf25a465e6f5809ecdf7b\",\"dweb:/ipfs/QmW6gmvRboJgXYoMpdj56DMnZVNUCoQxw5uQ7y8vL6u7RC\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0xf82021571aa9a7b021b2d24b2c0eb80c5796b9f28ebb6a1c239146c0c0168817\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b546fc429093a558b9382e28886d1f09e7f308e55f6398989583bc420a630326\",\"dweb:/ipfs/QmSmQPQbMBX8N8r8nGboBWdzJjUaK7ACaFUf8XosZVZPT8\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0xcddaa4630a6f68c59a819bafee579a8979cc9fd7b00d5b49f99eeefb9ce0c02c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9713f988a5709dea3ee0fb204a2d0b64b0dc115912ed9eb128f479156d97a949\",\"dweb:/ipfs/QmUjTAvd2eAYQFqgfZUf5R67daeC7eUKrL6WrFb8oEWB9j\"]},\"src/structs/EpochVoteSubmission.sol\":{\"keccak256\":\"0x4cc52a36cac1a063bf1f996b91ea81ce118b7ce8923e62cec6e5bf08b689e96a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb33236d8c7a40e17c416a21e9f0df268d6a7f4d6ba1df86ab0c2dbf444702e9\",\"dweb:/ipfs/QmXEbdkweqL1f4Q71YPiuxwhQooh1oim9oBybAbr9Jd3A2\"]},\"src/structs/ExecutableQueue.sol\":{\"keccak256\":\"0x89580931bf354ed3586ca69483307e4f0a6a626bd7798657faf303281f514e8a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://16f79b68d393fe338e0f5e47e1de4615f45ea754cd98b6f8fe87ba6efc513fcd\",\"dweb:/ipfs/QmVymcARk7QY8d9ZB6omv5kNn6kFB6v249WXP5ULAVvEDi\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xbaae3da91048d76b5bab0404eebf7dc41ed273a8cd1f4143ea1b3403d89f77c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5a69d76f5022d2e19f69ef0d70d4c5e3a3e7ae8e02fcfdb2682c901ac2f3a707\",\"dweb:/ipfs/QmYEWyPz9UqVssUpU42VTv6DhzRNAfaHKt9ZsNCAvtLjTr\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0xb37b12df0c9ff47c2e88f9612b624bb44e6de5dfb8030dfd83582997dcd6aa83\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a321a05abf7b3b461e3d6c4ac27b18d3e14dffad9e2bf9a0ceb68538a02ab1e4\",\"dweb:/ipfs/QmPo878trP8pv9yXXpwUHSnP7Xt6uz9eWuB25pz2JGiCot\"]},\"src/structs/Validator.sol\":{\"keccak256\":\"0x6c9c0695c1437c728861fbb12f4ab1816ebfbc28e34b623b6bc6a0ebf4180213\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e2cb3a20778ad098183bfd33f5acc6930c312a2de1ad9406e0ce0ffdf7dc018d\",\"dweb:/ipfs/QmX8VZ5Tcm2V5ahbnpjd8C9raatPE5entuKBWGkUoFdyBh\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x939ef8f6bae57972cd884c4320a94e2f765543ecd7c60662691775f235f12ce3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4cde99a1a37d7e270ca6f3b25e5d947fd346e1330f467b70ffd3c3b0188462d5\",\"dweb:/ipfs/QmUivkgDDhJpoB54jUWCVpaFcuK8Ky5b7KhNYkshs9itrn\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"a\",\"type\":\"address\"}],\"name\":\"accumulatedRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpCheckPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"consensus\",\"outputs\":[{\"internalType\":\"enum ConsensusType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executableQueue\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesis\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getParent\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getValidatorSet\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"workerAddr\",\"type\":\"tuple\"},{\"internalType\":\"string\",\"name\":\"netAddresses\",\"type\":\"string\"}],\"internalType\":\"struct ValidatorInfo[]\",\"name\":\"validators\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"configurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct ValidatorSet\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getValidators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ipcGatewayAddr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastVotingExecutedEpoch\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"fromEpoch\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"toEpoch\",\"type\":\"uint64\"}],\"name\":\"listBottomUpCheckpoints\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"checks\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ChildCheck[]\",\"name\":\"children\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct BottomUpCheckpoint[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"majorityPercentage\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minActivationCollateral\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minValidators\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"prevExecutedCheckpointHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"a\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"status\",\"outputs\":[{\"internalType\":\"enum Status\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"topDownCheckPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"validatorAt\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"validatorAt(uint256)\":{\"params\":{\"index\":\"- the index of the validator set\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getParent()\":{\"notice\":\"get the parent subnet id\"},\"getValidatorSet()\":{\"notice\":\"get the full details of the validators, not just their addresses.\"},\"getValidators()\":{\"notice\":\"get all the validators in the subnet. TODO: we can introduce pagination\"},\"listBottomUpCheckpoints(uint64,uint64)\":{\"notice\":\"returns the list of registered subnets in IPC\"},\"status()\":{\"notice\":\"get the current status\"},\"totalStake()\":{\"notice\":\"get the total stake\"},\"validatorAt(uint256)\":{\"notice\":\"get validator at index\"},\"validatorCount()\":{\"notice\":\"get validator count\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/subnet/SubnetActorGetterFacet.sol\":\"SubnetActorGetterFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x8a925dea568a61a38de9615aae7bb462d9eb6f8eb2c6ca409f1e740519077ab8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b7e2f836581694867c09bb9c80ff2ab6ae039ece2ff3bbf4d1bc2026449fa551\",\"dweb:/ipfs/QmVMvaQSCRBHZudSV8AzimYre76tJVm4UrHYnrT89zcjho\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xf6fd4f824e7dd9fe651bd11596f3045f32e67be595f91078c2b326e45aec4ce4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a674b1a6824a75749bb0a71b4791ff329907083ffb028b04634e94ddbcc2b2f3\",\"dweb:/ipfs/QmTkoSu2mRktfadkjhdgisBaWoZxb8iC3bacUwqCt44PNQ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0xf29c18f694b5acc919b7cada2875ca3bd2c52ddd7ef86ee747aab0faeb50ac8b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d8fb92f533cc119c578da73b06efe76b0efaa612af7c77178eb903952fcf53df\",\"dweb:/ipfs/QmdosRgUmvwXRnxq5TmoJoFMs7TULduTFpMUNyYXQNGfQD\"]},\"src/enums/VoteExecutionStatus.sol\":{\"keccak256\":\"0x56d1db8abf83feb0f1d69f1919fbd5bd79c6f3c5bf3c149950d307b9d62b6455\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb2ec0f87a9091eab463ac6a776d5737189e0239f412b36b975bb0be1fcb4ad8\",\"dweb:/ipfs/QmWiXwab54Ag2f1kyGjqT3brh5JrV5Lc7cqod9VPaS5ey6\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xab09aee88feca01f5c23baa475aa02bb8c1b189e60a7b81848a07e00b9ab708c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1f5d874688d7316a0eb382b6fb1e7ea6648b15aaaab95acc51f18bfcab851d61\",\"dweb:/ipfs/QmdZRRmWrkrn5MmEX3n5yWEREtoCvXNxzoVkPWSH64ENpd\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x57865785239b076bc429cd989bc5cb2a2e68050c7293a5a537d8cdeded170294\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://28285703560a0bbfa247c894c9f14f2a14e02e430e7dedb0a05b58c53aed3763\",\"dweb:/ipfs/QmcrNx18jZYJ7dRduWu1do3th74cHy7zn9Zx8x13WsCLj5\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0xe3f7371c7c7af8dfa71daa6c4171f6853c9ab1fdd619c09eb12c11ff18d17d91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6a09ea45ed335eada22e7cf3643c17d1c59750ed2156cc29c0960a8e8b53e394\",\"dweb:/ipfs/QmSYTNGqP9wEJnPDXmvghfL8zL8BrHGnixhbsimA9oydLG\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x86bf44c7e35907c1b0ed2fd55a6a8a277b46e6ee52b6933610504bc1d2de3b12\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb47357cd7342f951e5d08b1960e9ab7d458463e71ce08ff61b900bbb04118f0\",\"dweb:/ipfs/QmTKHhnYs1xKZUwCmSRPmSi5utfGrosYV57fSoGF7bGnJs\"]},\"src/lib/CheckpointHelper.sol\":{\"keccak256\":\"0x25d67ccc67b6b537df920c92dc3c704dc097e000c444149d3732e1d20848a269\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5823e88c38b5c4e90ee5700cee5a5fd8d982015dab7ea1cbe2f26d62a359ae76\",\"dweb:/ipfs/QmT9Ves86HoEqQciunzEwvDsyv2dgQwF8uPUjNuGsycHuF\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0xe7aacc0bc5eb10763685d6766524f6db05b151b37de4ccbd2b04649e54b9af36\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d6fae33fe9dc258efc3e0c484c6e69ff8314af266c78fd9b3d20c5bf8f251865\",\"dweb:/ipfs/QmYYpC6GnJNRvAg3MCSHKHk47cas888N3HzmMrmiRT4bnJ\"]},\"src/lib/EpochVoteSubmissionHelper.sol\":{\"keccak256\":\"0x1eaf867ddfc3e83d5a2ca50a81809e1529ea2436a8d2697d868bc8653b8c6c9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://65eb6a69fdb0fd8bfc1cd3d5044791225ff9fa8887dda49fd530e7c46e6e5366\",\"dweb:/ipfs/QmepF17eiqGqiNJRfeCohdeVw2aJxgkFS1AyFSM78v16nC\"]},\"src/lib/ExecutableQueueHelper.sol\":{\"keccak256\":\"0x64569fd85dac9617c7cf0e2991bf3bc2f1678b9b4f87945290606d1f821ce826\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8fb7927c7ca76f45f68b2552c4a59047597ccae0c9010c847e75f203f49820bc\",\"dweb:/ipfs/Qmcsg1b1GNBRAzz2CBDufdL3TspdZqx9wUoZ1uVcy3H8EN\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x80d7d30532305664e31ad114d702904287e6f93954b420315f660ddf30791ac6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0b108070a13f76614f36e46f0af85d12aa53209ff9bb9c32ee1945be3e0a1fe1\",\"dweb:/ipfs/QmcyMuCZB4Z3qFUUjvcoVeSePJXU5F9hN4Zhy94U2qqcPq\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0xd3c9aa9249bd97048232e34a73857df0ab4c6e12f910727e18043d807e417e6c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9d06b7dbb287d7cd5476394bb32dccfb45986c2b9e63b204bf12df1b70cc9aed\",\"dweb:/ipfs/Qmbyd72cBRxtmbwdG6ZqayQMMMWAA1XaSqdVvRc1ziHDz7\"]},\"src/lib/LibVoting.sol\":{\"keccak256\":\"0x6f020ef598ce576688275e5b4b8910beb31afb3427ac3d0896d6b62d71ab3050\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f1dd4f3411e3d01b60fb263120355e34f467fade66bd4076688bd046434df400\",\"dweb:/ipfs/QmWH7F7B44PjwB9eV65JiqQbQdkfSc2yrEsQH9KesU9Lhd\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0xf82021571aa9a7b021b2d24b2c0eb80c5796b9f28ebb6a1c239146c0c0168817\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b546fc429093a558b9382e28886d1f09e7f308e55f6398989583bc420a630326\",\"dweb:/ipfs/QmSmQPQbMBX8N8r8nGboBWdzJjUaK7ACaFUf8XosZVZPT8\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0xcddaa4630a6f68c59a819bafee579a8979cc9fd7b00d5b49f99eeefb9ce0c02c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9713f988a5709dea3ee0fb204a2d0b64b0dc115912ed9eb128f479156d97a949\",\"dweb:/ipfs/QmUjTAvd2eAYQFqgfZUf5R67daeC7eUKrL6WrFb8oEWB9j\"]},\"src/structs/EpochVoteSubmission.sol\":{\"keccak256\":\"0x4cc52a36cac1a063bf1f996b91ea81ce118b7ce8923e62cec6e5bf08b689e96a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb33236d8c7a40e17c416a21e9f0df268d6a7f4d6ba1df86ab0c2dbf444702e9\",\"dweb:/ipfs/QmXEbdkweqL1f4Q71YPiuxwhQooh1oim9oBybAbr9Jd3A2\"]},\"src/structs/ExecutableQueue.sol\":{\"keccak256\":\"0x89580931bf354ed3586ca69483307e4f0a6a626bd7798657faf303281f514e8a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://16f79b68d393fe338e0f5e47e1de4615f45ea754cd98b6f8fe87ba6efc513fcd\",\"dweb:/ipfs/QmVymcARk7QY8d9ZB6omv5kNn6kFB6v249WXP5ULAVvEDi\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xbaae3da91048d76b5bab0404eebf7dc41ed273a8cd1f4143ea1b3403d89f77c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5a69d76f5022d2e19f69ef0d70d4c5e3a3e7ae8e02fcfdb2682c901ac2f3a707\",\"dweb:/ipfs/QmYEWyPz9UqVssUpU42VTv6DhzRNAfaHKt9ZsNCAvtLjTr\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0xf707af307e7f2654d44d3fbd6eb0c44c837da7c0941ad0b826e990198d96f67d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://79cd51a4ea33be35dd774b314ec44df5b8b0c112b06dd8f155c80dc4c2e6e0d0\",\"dweb:/ipfs/QmRyAF4prSLXGuz2Q9PzdcTb8EkC67qdfhgKPtb36997Pm\"]},\"src/structs/Validator.sol\":{\"keccak256\":\"0x6c9c0695c1437c728861fbb12f4ab1816ebfbc28e34b623b6bc6a0ebf4180213\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e2cb3a20778ad098183bfd33f5acc6930c312a2de1ad9406e0ce0ffdf7dc018d\",\"dweb:/ipfs/QmX8VZ5Tcm2V5ahbnpjd8C9raatPE5entuKBWGkUoFdyBh\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x8091ce5b1e9d55fee86266e98754737af580a5937156fde39f15c2b8a301dba6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0fb673af583f2d295fddbc7f88b4ff18dedcce4598b1ccbf15e43c9c3ed9d4d7\",\"dweb:/ipfs/QmdAJ8aseyUoUv6dZBp2kXJXkfzNq5hq8Zgcs7NzBkw9eB\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.19+commit.7dd6d404" @@ -605,6 +819,219 @@ } ] }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "fromEpoch", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "toEpoch", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function", + "name": "listBottomUpCheckpoints", + "outputs": [ + { + "internalType": "struct BottomUpCheckpoint[]", + "name": "", + "type": "tuple[]", + "components": [ + { + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "uint64", + "name": "epoch", + "type": "uint64" + }, + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + }, + { + "internalType": "struct CrossMsg[]", + "name": "crossMsgs", + "type": "tuple[]", + "components": [ + { + "internalType": "struct StorableMsg", + "name": "message", + "type": "tuple", + "components": [ + { + "internalType": "struct IPCAddress", + "name": "from", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ] + }, + { + "internalType": "struct IPCAddress", + "name": "to", + "type": "tuple", + "components": [ + { + "internalType": "struct SubnetID", + "name": "subnetId", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "struct FvmAddress", + "name": "rawAddress", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "addrType", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "payload", + "type": "bytes" + } + ] + } + ] + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + }, + { + "internalType": "bytes4", + "name": "method", + "type": "bytes4" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ] + }, + { + "internalType": "bool", + "name": "wrapped", + "type": "bool" + } + ] + }, + { + "internalType": "struct ChildCheck[]", + "name": "children", + "type": "tuple[]", + "components": [ + { + "internalType": "struct SubnetID", + "name": "source", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "root", + "type": "uint64" + }, + { + "internalType": "address[]", + "name": "route", + "type": "address[]" + } + ] + }, + { + "internalType": "bytes32[]", + "name": "checks", + "type": "bytes32[]" + } + ] + }, + { + "internalType": "bytes32", + "name": "prevHash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "proof", + "type": "bytes" + } + ] + } + ] + }, { "inputs": [], "stateMutability": "view", @@ -784,6 +1211,9 @@ "getValidators()": { "notice": "get all the validators in the subnet. TODO: we can introduce pagination" }, + "listBottomUpCheckpoints(uint64,uint64)": { + "notice": "returns the list of registered subnets in IPC" + }, "status()": { "notice": "get the current status" }, @@ -834,26 +1264,26 @@ "license": "MIT" }, "lib/openzeppelin-contracts/contracts/utils/Address.sol": { - "keccak256": "0xb8d40721965efd93b5369d55083181226d3c7e1be4a968c04de35d44ba44f29a", + "keccak256": "0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1", "urls": [ - "bzz-raw://e5c4b0089788aa7112cce88602212c3895999f464e00d1c40d7f27ac9288798b", - "dweb:/ipfs/Qmd69EuGeoCYPfPkGA4hayH4s2upmAe3XaoDf4ggYNEoZ4" + "bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5", + "dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo" ], "license": "MIT" }, "lib/openzeppelin-contracts/contracts/utils/Strings.sol": { - "keccak256": "0x31f34a3baec77c087d2bdbc5c277f169e505b905aeb43cfcea1734175140f621", + "keccak256": "0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da", "urls": [ - "bzz-raw://b5a3bc8093b31b685ef879e8ffaaab614594cb6f98ddac4f18c411f7bbf99d0d", - "dweb:/ipfs/QmSFfA9pH3xo8hnWKCFKTwGi8kz68YXuAwyLXsYe6KjC3Z" + "bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a", + "dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB" ], "license": "MIT" }, "lib/openzeppelin-contracts/contracts/utils/math/Math.sol": { - "keccak256": "0xdb6d7e26320438bdd421598eb64e6fe2b03867a4dd07c9c820994b7bec26f7b0", + "keccak256": "0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c", "urls": [ - "bzz-raw://2adf1566393ddf260fb2064dd0c67be00123b8978be8b62cc45ac97aff859949", - "dweb:/ipfs/QmaDLzQpnitEJDAJo4squpKumr5x4D2QYetPdT3jZd8hYm" + "bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81", + "dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k" ], "license": "MIT" }, @@ -978,18 +1408,18 @@ "license": "UNLICENSED" }, "src/lib/LibSubnetActorStorage.sol": { - "keccak256": "0x04d8b15d89be847fced554bfc8ed1ea1d9e92ccab8799acc83cde19706e43d31", + "keccak256": "0xd3c9aa9249bd97048232e34a73857df0ab4c6e12f910727e18043d807e417e6c", "urls": [ - "bzz-raw://1a2ebe2cbf011ee931874dec86dc69991b9bf3cebdbd0a38b2bc8d9f22b999f7", - "dweb:/ipfs/QmQZxinNFFsym6GJwRRqeFLQk8HBMuzUagQETK3iMc4M4M" + "bzz-raw://9d06b7dbb287d7cd5476394bb32dccfb45986c2b9e63b204bf12df1b70cc9aed", + "dweb:/ipfs/Qmbyd72cBRxtmbwdG6ZqayQMMMWAA1XaSqdVvRc1ziHDz7" ], "license": "UNLICENSED" }, "src/lib/LibVoting.sol": { - "keccak256": "0x0eb430669ede92f847f6fbb6fc37d37fe2294e72e4714c13e1cd5027ce1c9178", + "keccak256": "0x6f020ef598ce576688275e5b4b8910beb31afb3427ac3d0896d6b62d71ab3050", "urls": [ - "bzz-raw://139de5e7126f01b3844ac61a5ccf10c065dadb77c3edf25a465e6f5809ecdf7b", - "dweb:/ipfs/QmW6gmvRboJgXYoMpdj56DMnZVNUCoQxw5uQ7y8vL6u7RC" + "bzz-raw://f1dd4f3411e3d01b60fb263120355e34f467fade66bd4076688bd046434df400", + "dweb:/ipfs/QmWH7F7B44PjwB9eV65JiqQbQdkfSc2yrEsQH9KesU9Lhd" ], "license": "UNLICENSED" }, @@ -1034,10 +1464,10 @@ "license": "UNLICENSED" }, "src/structs/Subnet.sol": { - "keccak256": "0xb37b12df0c9ff47c2e88f9612b624bb44e6de5dfb8030dfd83582997dcd6aa83", + "keccak256": "0xf707af307e7f2654d44d3fbd6eb0c44c837da7c0941ad0b826e990198d96f67d", "urls": [ - "bzz-raw://a321a05abf7b3b461e3d6c4ac27b18d3e14dffad9e2bf9a0ceb68538a02ab1e4", - "dweb:/ipfs/QmPo878trP8pv9yXXpwUHSnP7Xt6uz9eWuB25pz2JGiCot" + "bzz-raw://79cd51a4ea33be35dd774b314ec44df5b8b0c112b06dd8f155c80dc4c2e6e0d0", + "dweb:/ipfs/QmRyAF4prSLXGuz2Q9PzdcTb8EkC67qdfhgKPtb36997Pm" ], "license": "UNLICENSED" }, @@ -1050,10 +1480,10 @@ "license": "UNLICENSED" }, "src/subnet/SubnetActorGetterFacet.sol": { - "keccak256": "0x939ef8f6bae57972cd884c4320a94e2f765543ecd7c60662691775f235f12ce3", + "keccak256": "0x8091ce5b1e9d55fee86266e98754737af580a5937156fde39f15c2b8a301dba6", "urls": [ - "bzz-raw://4cde99a1a37d7e270ca6f3b25e5d947fd346e1330f467b70ffd3c3b0188462d5", - "dweb:/ipfs/QmUivkgDDhJpoB54jUWCVpaFcuK8Ky5b7KhNYkshs9itrn" + "bzz-raw://0fb673af583f2d295fddbc7f88b4ff18dedcce4598b1ccbf15e43c9c3ed9d4d7", + "dweb:/ipfs/QmdAJ8aseyUoUv6dZBp2kXJXkfzNq5hq8Zgcs7NzBkw9eB" ], "license": "UNLICENSED" } @@ -1062,97 +1492,97 @@ }, "ast": { "absolutePath": "src/subnet/SubnetActorGetterFacet.sol", - "id": 39841, + "id": 39992, "exportedSymbols": { "AccountHelper": [ - 35570 + 35664 ], "Address": [ - 29800 + 29869 ], "BottomUpCheckpoint": [ - 39238 + 39332 ], "CheckpointHelper": [ - 35838 + 35932 ], "ChildCheck": [ - 39252 + 39346 ], "ConsensusType": [ - 33045 + 33139 ], "CrossMsg": [ - 39258 + 39352 ], "CrossMsgHelper": [ - 36165 + 36259 ], "EnumerableSet": [ - 31825 + 31877 ], "EpochVoteBottomUpSubmission": [ - 39315 + 39409 ], "EpochVoteSubmission": [ - 39297 + 39391 ], "EpochVoteSubmissionHelper": [ - 36213 + 36307 ], "ExecutableQueue": [ - 39330 + 39424 ], "ExecutableQueueHelper": [ - 36420 + 36514 ], "FilAddress": [ 298 ], "FvmAddress": [ - 39337 + 39431 ], "FvmAddressHelper": [ - 36547 + 36641 ], "IGateway": [ - 35483 + 35577 ], "ISubnetActor": [ - 35521 + 35615 ], "LibVoting": [ - 38520 + 38614 ], "Status": [ - 33059 + 33153 ], "SubnetActorGetterFacet": [ - 39840 + 39991 ], "SubnetActorStorage": [ - 37763 + 37857 ], "SubnetID": [ - 39363 + 39457 ], "SubnetIDHelper": [ - 39213 + 39307 ], "ValidatorInfo": [ - 39408 + 39502 ], "ValidatorSet": [ - 39415 + 39509 ] }, "nodeType": "SourceUnit", - "src": "39:5649:62", + "src": "39:6174:63", "nodes": [ { - "id": 39417, + "id": 39511, "nodeType": "PragmaDirective", - "src": "39:23:62", + "src": "39:23:63", "nodes": [], "literals": [ "solidity", @@ -1161,24 +1591,24 @@ ] }, { - "id": 39419, + "id": 39513, "nodeType": "ImportDirective", - "src": "64:53:62", + "src": "64:53:63", "nodes": [], "absolutePath": "src/structs/FvmAddress.sol", "file": "../structs/FvmAddress.sol", "nameLocation": "-1:-1:-1", - "scope": 39841, - "sourceUnit": 39345, + "scope": 39992, + "sourceUnit": 39439, "symbolAliases": [ { "foreign": { - "id": 39418, + "id": 39512, "name": "FvmAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39337, - "src": "72:10:62", + "referencedDeclaration": 39431, + "src": "72:10:63", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1187,48 +1617,48 @@ "unitAlias": "" }, { - "id": 39423, + "id": 39517, "nodeType": "ImportDirective", - "src": "118:83:62", + "src": "118:83:63", "nodes": [], "absolutePath": "src/structs/Checkpoint.sol", "file": "../structs/Checkpoint.sol", "nameLocation": "-1:-1:-1", - "scope": 39841, - "sourceUnit": 39274, + "scope": 39992, + "sourceUnit": 39368, "symbolAliases": [ { "foreign": { - "id": 39420, + "id": 39514, "name": "BottomUpCheckpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39238, - "src": "126:18:62", + "referencedDeclaration": 39332, + "src": "126:18:63", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 39421, + "id": 39515, "name": "CrossMsg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39258, - "src": "146:8:62", + "referencedDeclaration": 39352, + "src": "146:8:63", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 39422, + "id": 39516, "name": "ChildCheck", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39252, - "src": "156:10:62", + "referencedDeclaration": 39346, + "src": "156:10:63", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1237,24 +1667,24 @@ "unitAlias": "" }, { - "id": 39425, + "id": 39519, "nodeType": "ImportDirective", - "src": "202:47:62", + "src": "202:47:63", "nodes": [], "absolutePath": "src/structs/Subnet.sol", "file": "../structs/Subnet.sol", "nameLocation": "-1:-1:-1", - "scope": 39841, - "sourceUnit": 39395, + "scope": 39992, + "sourceUnit": 39489, "symbolAliases": [ { "foreign": { - "id": 39424, + "id": 39518, "name": "SubnetID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39363, - "src": "210:8:62", + "referencedDeclaration": 39457, + "src": "210:8:63", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1263,24 +1693,24 @@ "unitAlias": "" }, { - "id": 39427, + "id": 39521, "nodeType": "ImportDirective", - "src": "250:57:62", + "src": "250:57:63", "nodes": [], "absolutePath": "src/lib/SubnetIDHelper.sol", "file": "../lib/SubnetIDHelper.sol", "nameLocation": "-1:-1:-1", - "scope": 39841, - "sourceUnit": 39214, + "scope": 39992, + "sourceUnit": 39308, "symbolAliases": [ { "foreign": { - "id": 39426, + "id": 39520, "name": "SubnetIDHelper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39213, - "src": "258:14:62", + "referencedDeclaration": 39307, + "src": "258:14:63", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1289,24 +1719,24 @@ "unitAlias": "" }, { - "id": 39429, + "id": 39523, "nodeType": "ImportDirective", - "src": "308:68:62", + "src": "308:68:63", "nodes": [], "absolutePath": "src/lib/LibSubnetActorStorage.sol", "file": "../lib/LibSubnetActorStorage.sol", "nameLocation": "-1:-1:-1", - "scope": 39841, - "sourceUnit": 37877, + "scope": 39992, + "sourceUnit": 37971, "symbolAliases": [ { "foreign": { - "id": 39428, + "id": 39522, "name": "SubnetActorStorage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 37763, - "src": "316:18:62", + "referencedDeclaration": 37857, + "src": "316:18:63", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1315,24 +1745,24 @@ "unitAlias": "" }, { - "id": 39431, + "id": 39525, "nodeType": "ImportDirective", - "src": "377:61:62", + "src": "377:61:63", "nodes": [], "absolutePath": "src/lib/CheckpointHelper.sol", "file": "../lib/CheckpointHelper.sol", "nameLocation": "-1:-1:-1", - "scope": 39841, - "sourceUnit": 35839, + "scope": 39992, + "sourceUnit": 35933, "symbolAliases": [ { "foreign": { - "id": 39430, + "id": 39524, "name": "CheckpointHelper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 35838, - "src": "385:16:62", + "referencedDeclaration": 35932, + "src": "385:16:63", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1341,24 +1771,24 @@ "unitAlias": "" }, { - "id": 39433, + "id": 39527, "nodeType": "ImportDirective", - "src": "439:71:62", + "src": "439:71:63", "nodes": [], "absolutePath": "src/structs/EpochVoteSubmission.sol", "file": "../structs/EpochVoteSubmission.sol", "nameLocation": "-1:-1:-1", - "scope": 39841, - "sourceUnit": 39316, + "scope": 39992, + "sourceUnit": 39410, "symbolAliases": [ { "foreign": { - "id": 39432, + "id": 39526, "name": "EpochVoteSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39297, - "src": "447:19:62", + "referencedDeclaration": 39391, + "src": "447:19:63", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1367,24 +1797,24 @@ "unitAlias": "" }, { - "id": 39435, + "id": 39529, "nodeType": "ImportDirective", - "src": "511:60:62", + "src": "511:60:63", "nodes": [], "absolutePath": "src/interfaces/ISubnetActor.sol", "file": "../interfaces/ISubnetActor.sol", "nameLocation": "-1:-1:-1", - "scope": 39841, - "sourceUnit": 35522, + "scope": 39992, + "sourceUnit": 35616, "symbolAliases": [ { "foreign": { - "id": 39434, + "id": 39528, "name": "ISubnetActor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 35521, - "src": "519:12:62", + "referencedDeclaration": 35615, + "src": "519:12:63", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1393,24 +1823,24 @@ "unitAlias": "" }, { - "id": 39437, + "id": 39531, "nodeType": "ImportDirective", - "src": "572:52:62", + "src": "572:52:63", "nodes": [], "absolutePath": "src/interfaces/IGateway.sol", "file": "../interfaces/IGateway.sol", "nameLocation": "-1:-1:-1", - "scope": 39841, - "sourceUnit": 35484, + "scope": 39992, + "sourceUnit": 35578, "symbolAliases": [ { "foreign": { - "id": 39436, + "id": 39530, "name": "IGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 35483, - "src": "580:8:62", + "referencedDeclaration": 35577, + "src": "580:8:63", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1419,24 +1849,24 @@ "unitAlias": "" }, { - "id": 39439, + "id": 39533, "nodeType": "ImportDirective", - "src": "625:55:62", + "src": "625:55:63", "nodes": [], "absolutePath": "src/lib/AccountHelper.sol", "file": "../lib/AccountHelper.sol", "nameLocation": "-1:-1:-1", - "scope": 39841, - "sourceUnit": 35571, + "scope": 39992, + "sourceUnit": 35665, "symbolAliases": [ { "foreign": { - "id": 39438, + "id": 39532, "name": "AccountHelper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 35570, - "src": "633:13:62", + "referencedDeclaration": 35664, + "src": "633:13:63", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1445,24 +1875,24 @@ "unitAlias": "" }, { - "id": 39441, + "id": 39535, "nodeType": "ImportDirective", - "src": "681:57:62", + "src": "681:57:63", "nodes": [], "absolutePath": "src/lib/CrossMsgHelper.sol", "file": "../lib/CrossMsgHelper.sol", "nameLocation": "-1:-1:-1", - "scope": 39841, - "sourceUnit": 36166, + "scope": 39992, + "sourceUnit": 36260, "symbolAliases": [ { "foreign": { - "id": 39440, + "id": 39534, "name": "CrossMsgHelper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36165, - "src": "689:14:62", + "referencedDeclaration": 36259, + "src": "689:14:63", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1471,24 +1901,24 @@ "unitAlias": "" }, { - "id": 39443, + "id": 39537, "nodeType": "ImportDirective", - "src": "739:63:62", + "src": "739:63:63", "nodes": [], "absolutePath": "src/structs/ExecutableQueue.sol", "file": "../structs/ExecutableQueue.sol", "nameLocation": "-1:-1:-1", - "scope": 39841, - "sourceUnit": 39331, + "scope": 39992, + "sourceUnit": 39425, "symbolAliases": [ { "foreign": { - "id": 39442, + "id": 39536, "name": "ExecutableQueue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39330, - "src": "747:15:62", + "referencedDeclaration": 39424, + "src": "747:15:63", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1497,24 +1927,24 @@ "unitAlias": "" }, { - "id": 39445, + "id": 39539, "nodeType": "ImportDirective", - "src": "803:71:62", + "src": "803:71:63", "nodes": [], "absolutePath": "src/lib/ExecutableQueueHelper.sol", "file": "../lib/ExecutableQueueHelper.sol", "nameLocation": "-1:-1:-1", - "scope": 39841, - "sourceUnit": 36421, + "scope": 39992, + "sourceUnit": 36515, "symbolAliases": [ { "foreign": { - "id": 39444, + "id": 39538, "name": "ExecutableQueueHelper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36420, - "src": "811:21:62", + "referencedDeclaration": 36514, + "src": "811:21:63", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1523,24 +1953,24 @@ "unitAlias": "" }, { - "id": 39447, + "id": 39541, "nodeType": "ImportDirective", - "src": "875:79:62", + "src": "875:79:63", "nodes": [], "absolutePath": "src/structs/EpochVoteSubmission.sol", "file": "../structs/EpochVoteSubmission.sol", "nameLocation": "-1:-1:-1", - "scope": 39841, - "sourceUnit": 39316, + "scope": 39992, + "sourceUnit": 39410, "symbolAliases": [ { "foreign": { - "id": 39446, + "id": 39540, "name": "EpochVoteBottomUpSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39315, - "src": "883:27:62", + "referencedDeclaration": 39409, + "src": "883:27:63", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1549,36 +1979,36 @@ "unitAlias": "" }, { - "id": 39450, + "id": 39544, "nodeType": "ImportDirective", - "src": "955:69:62", + "src": "955:69:63", "nodes": [], "absolutePath": "src/structs/Validator.sol", "file": "../structs/Validator.sol", "nameLocation": "-1:-1:-1", - "scope": 39841, - "sourceUnit": 39416, + "scope": 39992, + "sourceUnit": 39510, "symbolAliases": [ { "foreign": { - "id": 39448, + "id": 39542, "name": "ValidatorInfo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39408, - "src": "963:13:62", + "referencedDeclaration": 39502, + "src": "963:13:63", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 39449, + "id": 39543, "name": "ValidatorSet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39415, - "src": "978:12:62", + "referencedDeclaration": 39509, + "src": "978:12:63", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1587,24 +2017,24 @@ "unitAlias": "" }, { - "id": 39452, + "id": 39546, "nodeType": "ImportDirective", - "src": "1025:79:62", + "src": "1025:79:63", "nodes": [], "absolutePath": "src/lib/EpochVoteSubmissionHelper.sol", "file": "../lib/EpochVoteSubmissionHelper.sol", "nameLocation": "-1:-1:-1", - "scope": 39841, - "sourceUnit": 36214, + "scope": 39992, + "sourceUnit": 36308, "symbolAliases": [ { "foreign": { - "id": 39451, + "id": 39545, "name": "EpochVoteSubmissionHelper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36213, - "src": "1033:25:62", + "referencedDeclaration": 36307, + "src": "1033:25:63", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1613,24 +2043,24 @@ "unitAlias": "" }, { - "id": 39454, + "id": 39548, "nodeType": "ImportDirective", - "src": "1105:47:62", + "src": "1105:47:63", "nodes": [], "absolutePath": "src/lib/LibVoting.sol", "file": "../lib/LibVoting.sol", "nameLocation": "-1:-1:-1", - "scope": 39841, - "sourceUnit": 38521, + "scope": 39992, + "sourceUnit": 38615, "symbolAliases": [ { "foreign": { - "id": 39453, + "id": 39547, "name": "LibVoting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38520, - "src": "1113:9:62", + "referencedDeclaration": 38614, + "src": "1113:9:63", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1639,24 +2069,24 @@ "unitAlias": "" }, { - "id": 39456, + "id": 39550, "nodeType": "ImportDirective", - "src": "1153:43:62", + "src": "1153:43:63", "nodes": [], "absolutePath": "src/enums/Status.sol", "file": "../enums/Status.sol", "nameLocation": "-1:-1:-1", - "scope": 39841, - "sourceUnit": 33060, + "scope": 39992, + "sourceUnit": 33154, "symbolAliases": [ { "foreign": { - "id": 39455, + "id": 39549, "name": "Status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33059, - "src": "1161:6:62", + "referencedDeclaration": 33153, + "src": "1161:6:63", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1665,24 +2095,24 @@ "unitAlias": "" }, { - "id": 39458, + "id": 39552, "nodeType": "ImportDirective", - "src": "1197:57:62", + "src": "1197:57:63", "nodes": [], "absolutePath": "src/enums/ConsensusType.sol", "file": "../enums/ConsensusType.sol", "nameLocation": "-1:-1:-1", - "scope": 39841, - "sourceUnit": 33046, + "scope": 39992, + "sourceUnit": 33140, "symbolAliases": [ { "foreign": { - "id": 39457, + "id": 39551, "name": "ConsensusType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33045, - "src": "1205:13:62", + "referencedDeclaration": 33139, + "src": "1205:13:63", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1691,24 +2121,24 @@ "unitAlias": "" }, { - "id": 39460, + "id": 39554, "nodeType": "ImportDirective", - "src": "1255:85:62", + "src": "1255:85:63", "nodes": [], "absolutePath": "lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "file": "openzeppelin-contracts/utils/structs/EnumerableSet.sol", "nameLocation": "-1:-1:-1", - "scope": 39841, - "sourceUnit": 31826, + "scope": 39992, + "sourceUnit": 31878, "symbolAliases": [ { "foreign": { - "id": 39459, + "id": 39553, "name": "EnumerableSet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 31825, - "src": "1263:13:62", + "referencedDeclaration": 31877, + "src": "1263:13:63", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1717,24 +2147,24 @@ "unitAlias": "" }, { - "id": 39462, + "id": 39556, "nodeType": "ImportDirective", - "src": "1341:56:62", + "src": "1341:56:63", "nodes": [], "absolutePath": "lib/fevmate/contracts/utils/FilAddress.sol", "file": "fevmate/utils/FilAddress.sol", "nameLocation": "-1:-1:-1", - "scope": 39841, + "scope": 39992, "sourceUnit": 299, "symbolAliases": [ { "foreign": { - "id": 39461, + "id": 39555, "name": "FilAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 298, - "src": "1349:10:62", + "src": "1349:10:63", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1743,24 +2173,24 @@ "unitAlias": "" }, { - "id": 39464, + "id": 39558, "nodeType": "ImportDirective", - "src": "1398:65:62", + "src": "1398:65:63", "nodes": [], "absolutePath": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "file": "openzeppelin-contracts/utils/Address.sol", "nameLocation": "-1:-1:-1", - "scope": 39841, - "sourceUnit": 29801, + "scope": 39992, + "sourceUnit": 29870, "symbolAliases": [ { "foreign": { - "id": 39463, + "id": 39557, "name": "Address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29800, - "src": "1406:7:62", + "referencedDeclaration": 29869, + "src": "1406:7:63", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1769,24 +2199,24 @@ "unitAlias": "" }, { - "id": 39466, + "id": 39560, "nodeType": "ImportDirective", - "src": "1464:61:62", + "src": "1464:61:63", "nodes": [], "absolutePath": "src/lib/FvmAddressHelper.sol", "file": "../lib/FvmAddressHelper.sol", "nameLocation": "-1:-1:-1", - "scope": 39841, - "sourceUnit": 36548, + "scope": 39992, + "sourceUnit": 36642, "symbolAliases": [ { "foreign": { - "id": 39465, + "id": 39559, "name": "FvmAddressHelper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 36547, - "src": "1472:16:62", + "referencedDeclaration": 36641, + "src": "1472:16:63", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1795,143 +2225,143 @@ "unitAlias": "" }, { - "id": 39840, + "id": 39991, "nodeType": "ContractDefinition", - "src": "1527:4160:62", + "src": "1527:4685:63", "nodes": [ { - "id": 39470, + "id": 39564, "nodeType": "UsingForDirective", - "src": "1565:49:62", + "src": "1565:49:63", "nodes": [], "global": false, "libraryName": { - "id": 39467, + "id": 39561, "name": "EnumerableSet", "nameLocations": [ - "1571:13:62" + "1571:13:63" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 31825, - "src": "1571:13:62" + "referencedDeclaration": 31877, + "src": "1571:13:63" }, "typeName": { - "id": 39469, + "id": 39563, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39468, + "id": 39562, "name": "EnumerableSet.AddressSet", "nameLocations": [ - "1589:13:62", - "1603:10:62" + "1589:13:63", + "1603:10:63" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 31538, - "src": "1589:24:62" + "referencedDeclaration": 31590, + "src": "1589:24:63" }, - "referencedDeclaration": 31538, - "src": "1589:24:62", + "referencedDeclaration": 31590, + "src": "1589:24:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$31538_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$31590_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" } } }, { - "id": 39474, + "id": 39568, "nodeType": "UsingForDirective", - "src": "1619:34:62", + "src": "1619:34:63", "nodes": [], "global": false, "libraryName": { - "id": 39471, + "id": 39565, "name": "SubnetIDHelper", "nameLocations": [ - "1625:14:62" + "1625:14:63" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39213, - "src": "1625:14:62" + "referencedDeclaration": 39307, + "src": "1625:14:63" }, "typeName": { - "id": 39473, + "id": 39567, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39472, + "id": 39566, "name": "SubnetID", "nameLocations": [ - "1644:8:62" + "1644:8:63" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39363, - "src": "1644:8:62" + "referencedDeclaration": 39457, + "src": "1644:8:63" }, - "referencedDeclaration": 39363, - "src": "1644:8:62", + "referencedDeclaration": 39457, + "src": "1644:8:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39363_storage_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage_ptr", "typeString": "struct SubnetID" } } }, { - "id": 39478, + "id": 39572, "nodeType": "UsingForDirective", - "src": "1658:46:62", + "src": "1658:46:63", "nodes": [], "global": false, "libraryName": { - "id": 39475, + "id": 39569, "name": "CheckpointHelper", "nameLocations": [ - "1664:16:62" + "1664:16:63" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 35838, - "src": "1664:16:62" + "referencedDeclaration": 35932, + "src": "1664:16:63" }, "typeName": { - "id": 39477, + "id": 39571, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39476, + "id": 39570, "name": "BottomUpCheckpoint", "nameLocations": [ - "1685:18:62" + "1685:18:63" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39238, - "src": "1685:18:62" + "referencedDeclaration": 39332, + "src": "1685:18:63" }, - "referencedDeclaration": 39238, - "src": "1685:18:62", + "referencedDeclaration": 39332, + "src": "1685:18:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39238_storage_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage_ptr", "typeString": "struct BottomUpCheckpoint" } } }, { - "id": 39481, + "id": 39575, "nodeType": "UsingForDirective", - "src": "1709:29:62", + "src": "1709:29:63", "nodes": [], "global": false, "libraryName": { - "id": 39479, + "id": 39573, "name": "FilAddress", "nameLocations": [ - "1715:10:62" + "1715:10:63" ], "nodeType": "IdentifierPath", "referencedDeclaration": 298, - "src": "1715:10:62" + "src": "1715:10:63" }, "typeName": { - "id": 39480, + "id": 39574, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1730:7:62", + "src": "1730:7:63", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1940,26 +2370,26 @@ } }, { - "id": 39484, + "id": 39578, "nodeType": "UsingForDirective", - "src": "1743:34:62", + "src": "1743:34:63", "nodes": [], "global": false, "libraryName": { - "id": 39482, + "id": 39576, "name": "Address", "nameLocations": [ - "1749:7:62" + "1749:7:63" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 29800, - "src": "1749:7:62" + "referencedDeclaration": 29869, + "src": "1749:7:63" }, "typeName": { - "id": 39483, + "id": 39577, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1761:15:62", + "src": "1761:15:63", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -1968,26 +2398,26 @@ } }, { - "id": 39487, + "id": 39581, "nodeType": "UsingForDirective", - "src": "1782:32:62", + "src": "1782:32:63", "nodes": [], "global": false, "libraryName": { - "id": 39485, + "id": 39579, "name": "AccountHelper", "nameLocations": [ - "1788:13:62" + "1788:13:63" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 35570, - "src": "1788:13:62" + "referencedDeclaration": 35664, + "src": "1788:13:63" }, "typeName": { - "id": 39486, + "id": 39580, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1806:7:62", + "src": "1806:7:63", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1996,242 +2426,242 @@ } }, { - "id": 39491, + "id": 39585, "nodeType": "UsingForDirective", - "src": "1819:48:62", + "src": "1819:48:63", "nodes": [], "global": false, "libraryName": { - "id": 39488, + "id": 39582, "name": "ExecutableQueueHelper", "nameLocations": [ - "1825:21:62" + "1825:21:63" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 36420, - "src": "1825:21:62" + "referencedDeclaration": 36514, + "src": "1825:21:63" }, "typeName": { - "id": 39490, + "id": 39584, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39489, + "id": 39583, "name": "ExecutableQueue", "nameLocations": [ - "1851:15:62" + "1851:15:63" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39330, - "src": "1851:15:62" + "referencedDeclaration": 39424, + "src": "1851:15:63" }, - "referencedDeclaration": 39330, - "src": "1851:15:62", + "referencedDeclaration": 39424, + "src": "1851:15:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_ExecutableQueue_$39330_storage_ptr", + "typeIdentifier": "t_struct$_ExecutableQueue_$39424_storage_ptr", "typeString": "struct ExecutableQueue" } } }, { - "id": 39495, + "id": 39589, "nodeType": "UsingForDirective", - "src": "1872:56:62", + "src": "1872:56:63", "nodes": [], "global": false, "libraryName": { - "id": 39492, + "id": 39586, "name": "EpochVoteSubmissionHelper", "nameLocations": [ - "1878:25:62" + "1878:25:63" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 36213, - "src": "1878:25:62" + "referencedDeclaration": 36307, + "src": "1878:25:63" }, "typeName": { - "id": 39494, + "id": 39588, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39493, + "id": 39587, "name": "EpochVoteSubmission", "nameLocations": [ - "1908:19:62" + "1908:19:63" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39297, - "src": "1908:19:62" + "referencedDeclaration": 39391, + "src": "1908:19:63" }, - "referencedDeclaration": 39297, - "src": "1908:19:62", + "referencedDeclaration": 39391, + "src": "1908:19:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteSubmission_$39297_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteSubmission_$39391_storage_ptr", "typeString": "struct EpochVoteSubmission" } } }, { - "id": 39499, + "id": 39593, "nodeType": "UsingForDirective", - "src": "1933:34:62", + "src": "1933:34:63", "nodes": [], "global": false, "libraryName": { - "id": 39496, + "id": 39590, "name": "CrossMsgHelper", "nameLocations": [ - "1939:14:62" + "1939:14:63" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 36165, - "src": "1939:14:62" + "referencedDeclaration": 36259, + "src": "1939:14:63" }, "typeName": { - "id": 39498, + "id": 39592, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39497, + "id": 39591, "name": "CrossMsg", "nameLocations": [ - "1958:8:62" + "1958:8:63" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39258, - "src": "1958:8:62" + "referencedDeclaration": 39352, + "src": "1958:8:63" }, - "referencedDeclaration": 39258, - "src": "1958:8:62", + "referencedDeclaration": 39352, + "src": "1958:8:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$39258_storage_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_storage_ptr", "typeString": "struct CrossMsg" } } }, { - "id": 39503, + "id": 39597, "nodeType": "UsingForDirective", - "src": "1972:38:62", + "src": "1972:38:63", "nodes": [], "global": false, "libraryName": { - "id": 39500, + "id": 39594, "name": "FvmAddressHelper", "nameLocations": [ - "1978:16:62" + "1978:16:63" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 36547, - "src": "1978:16:62" + "referencedDeclaration": 36641, + "src": "1978:16:63" }, "typeName": { - "id": 39502, + "id": 39596, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39501, + "id": 39595, "name": "FvmAddress", "nameLocations": [ - "1999:10:62" + "1999:10:63" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39337, - "src": "1999:10:62" + "referencedDeclaration": 39431, + "src": "1999:10:63" }, - "referencedDeclaration": 39337, - "src": "1999:10:62", + "referencedDeclaration": 39431, + "src": "1999:10:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_FvmAddress_$39337_storage_ptr", + "typeIdentifier": "t_struct$_FvmAddress_$39431_storage_ptr", "typeString": "struct FvmAddress" } } }, { - "id": 39506, + "id": 39600, "nodeType": "VariableDeclaration", - "src": "2079:29:62", + "src": "2079:29:63", "nodes": [], "constant": false, "mutability": "mutable", "name": "s", - "nameLocation": "2107:1:62", - "scope": 39840, + "nameLocation": "2107:1:63", + "scope": 39991, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$37763_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage" }, "typeName": { - "id": 39505, + "id": 39599, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39504, + "id": 39598, "name": "SubnetActorStorage", "nameLocations": [ - "2079:18:62" + "2079:18:63" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 37763, - "src": "2079:18:62" + "referencedDeclaration": 37857, + "src": "2079:18:63" }, - "referencedDeclaration": 37763, - "src": "2079:18:62", + "referencedDeclaration": 37857, + "src": "2079:18:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$37763_storage_ptr", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage_ptr", "typeString": "struct SubnetActorStorage" } }, "visibility": "internal" }, { - "id": 39517, + "id": 39611, "nodeType": "FunctionDefinition", - "src": "2156:95:62", + "src": "2156:95:63", "nodes": [], "body": { - "id": 39516, + "id": 39610, "nodeType": "Block", - "src": "2217:34:62", + "src": "2217:34:63", "nodes": [], "statements": [ { "expression": { "expression": { - "id": 39513, + "id": 39607, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39506, - "src": "2234:1:62", + "referencedDeclaration": 39600, + "src": "2234:1:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$37763_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 39514, + "id": 39608, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2236:8:62", + "memberLocation": "2236:8:63", "memberName": "parentId", "nodeType": "MemberAccess", - "referencedDeclaration": 37736, - "src": "2234:10:62", + "referencedDeclaration": 37852, + "src": "2234:10:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39363_storage", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage", "typeString": "struct SubnetID storage ref" } }, - "functionReturnParameters": 39512, - "id": 39515, + "functionReturnParameters": 39606, + "id": 39609, "nodeType": "Return", - "src": "2227:17:62" + "src": "2227:17:63" } ] }, "documentation": { - "id": 39507, + "id": 39601, "nodeType": "StructuredDocumentation", - "src": "2115:36:62", + "src": "2115:36:63", "text": "@notice get the parent subnet id" }, "functionSelector": "80f76021", @@ -2239,113 +2669,113 @@ "kind": "function", "modifiers": [], "name": "getParent", - "nameLocation": "2165:9:62", + "nameLocation": "2165:9:63", "parameters": { - "id": 39508, + "id": 39602, "nodeType": "ParameterList", "parameters": [], - "src": "2174:2:62" + "src": "2174:2:63" }, "returnParameters": { - "id": 39512, + "id": 39606, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39511, + "id": 39605, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 39517, - "src": "2200:15:62", + "scope": 39611, + "src": "2200:15:63", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39363_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID" }, "typeName": { - "id": 39510, + "id": 39604, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39509, + "id": 39603, "name": "SubnetID", "nameLocations": [ - "2200:8:62" + "2200:8:63" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39363, - "src": "2200:8:62" + "referencedDeclaration": 39457, + "src": "2200:8:63" }, - "referencedDeclaration": 39363, - "src": "2200:8:62", + "referencedDeclaration": 39457, + "src": "2200:8:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39363_storage_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage_ptr", "typeString": "struct SubnetID" } }, "visibility": "internal" } ], - "src": "2199:17:62" + "src": "2199:17:63" }, - "scope": 39840, + "scope": 39991, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 39528, + "id": 39622, "nodeType": "FunctionDefinition", - "src": "2296:81:62", + "src": "2296:81:63", "nodes": [], "body": { - "id": 39527, + "id": 39621, "nodeType": "Block", - "src": "2345:32:62", + "src": "2345:32:63", "nodes": [], "statements": [ { "expression": { "expression": { - "id": 39524, + "id": 39618, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39506, - "src": "2362:1:62", + "referencedDeclaration": 39600, + "src": "2362:1:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$37763_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 39525, + "id": 39619, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2364:6:62", + "memberLocation": "2364:6:63", "memberName": "status", "nodeType": "MemberAccess", - "referencedDeclaration": 37692, - "src": "2362:8:62", + "referencedDeclaration": 37844, + "src": "2362:8:63", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$33059", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, - "functionReturnParameters": 39523, - "id": 39526, + "functionReturnParameters": 39617, + "id": 39620, "nodeType": "Return", - "src": "2355:15:62" + "src": "2355:15:63" } ] }, "documentation": { - "id": 39518, + "id": 39612, "nodeType": "StructuredDocumentation", - "src": "2257:34:62", + "src": "2257:34:63", "text": "@notice get the current status" }, "functionSelector": "200d2ed2", @@ -2353,113 +2783,113 @@ "kind": "function", "modifiers": [], "name": "status", - "nameLocation": "2305:6:62", + "nameLocation": "2305:6:63", "parameters": { - "id": 39519, + "id": 39613, "nodeType": "ParameterList", "parameters": [], - "src": "2311:2:62" + "src": "2311:2:63" }, "returnParameters": { - "id": 39523, + "id": 39617, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39522, + "id": 39616, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 39528, - "src": "2337:6:62", + "scope": 39622, + "src": "2337:6:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$33059", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" }, "typeName": { - "id": 39521, + "id": 39615, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39520, + "id": 39614, "name": "Status", "nameLocations": [ - "2337:6:62" + "2337:6:63" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 33059, - "src": "2337:6:62" + "referencedDeclaration": 33153, + "src": "2337:6:63" }, - "referencedDeclaration": 33059, - "src": "2337:6:62", + "referencedDeclaration": 33153, + "src": "2337:6:63", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$33059", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, "visibility": "internal" } ], - "src": "2336:8:62" + "src": "2336:8:63" }, - "scope": 39840, + "scope": 39991, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 39538, + "id": 39632, "nodeType": "FunctionDefinition", - "src": "2419:90:62", + "src": "2419:90:63", "nodes": [], "body": { - "id": 39537, + "id": 39631, "nodeType": "Block", - "src": "2473:36:62", + "src": "2473:36:63", "nodes": [], "statements": [ { "expression": { "expression": { - "id": 39534, + "id": 39628, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39506, - "src": "2490:1:62", + "referencedDeclaration": 39600, + "src": "2490:1:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$37763_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 39535, + "id": 39629, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2492:10:62", + "memberLocation": "2492:10:63", "memberName": "totalStake", "nodeType": "MemberAccess", - "referencedDeclaration": 37685, - "src": "2490:12:62", + "referencedDeclaration": 37814, + "src": "2490:12:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 39533, - "id": 39536, + "functionReturnParameters": 39627, + "id": 39630, "nodeType": "Return", - "src": "2483:19:62" + "src": "2483:19:63" } ] }, "documentation": { - "id": 39529, + "id": 39623, "nodeType": "StructuredDocumentation", - "src": "2383:31:62", + "src": "2383:31:63", "text": "@notice get the total stake" }, "functionSelector": "8b0e9f3f", @@ -2467,26 +2897,26 @@ "kind": "function", "modifiers": [], "name": "totalStake", - "nameLocation": "2428:10:62", + "nameLocation": "2428:10:63", "parameters": { - "id": 39530, + "id": 39624, "nodeType": "ParameterList", "parameters": [], - "src": "2438:2:62" + "src": "2438:2:63" }, "returnParameters": { - "id": 39533, + "id": 39627, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39532, + "id": 39626, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 39538, - "src": "2464:7:62", + "scope": 39632, + "src": "2464:7:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2494,10 +2924,10 @@ "typeString": "uint256" }, "typeName": { - "id": 39531, + "id": 39625, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2464:7:62", + "src": "2464:7:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2506,57 +2936,57 @@ "visibility": "internal" } ], - "src": "2463:9:62" + "src": "2463:9:63" }, - "scope": 39840, + "scope": 39991, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 39547, + "id": 39641, "nodeType": "FunctionDefinition", - "src": "2515:122:62", + "src": "2515:122:63", "nodes": [], "body": { - "id": 39546, + "id": 39640, "nodeType": "Block", - "src": "2585:52:62", + "src": "2585:52:63", "nodes": [], "statements": [ { "expression": { "expression": { - "id": 39543, + "id": 39637, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39506, - "src": "2602:1:62", + "referencedDeclaration": 39600, + "src": "2602:1:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$37763_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 39544, + "id": 39638, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2604:26:62", + "memberLocation": "2604:26:63", "memberName": "prevExecutedCheckpointHash", "nodeType": "MemberAccess", - "referencedDeclaration": 37695, - "src": "2602:28:62", + "referencedDeclaration": 37837, + "src": "2602:28:63", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 39542, - "id": 39545, + "functionReturnParameters": 39636, + "id": 39639, "nodeType": "Return", - "src": "2595:35:62" + "src": "2595:35:63" } ] }, @@ -2565,26 +2995,26 @@ "kind": "function", "modifiers": [], "name": "prevExecutedCheckpointHash", - "nameLocation": "2524:26:62", + "nameLocation": "2524:26:63", "parameters": { - "id": 39539, + "id": 39633, "nodeType": "ParameterList", "parameters": [], - "src": "2550:2:62" + "src": "2550:2:63" }, "returnParameters": { - "id": 39542, + "id": 39636, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39541, + "id": 39635, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 39547, - "src": "2576:7:62", + "scope": 39641, + "src": "2576:7:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2592,10 +3022,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 39540, + "id": 39634, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2576:7:62", + "src": "2576:7:63", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2604,22 +3034,22 @@ "visibility": "internal" } ], - "src": "2575:9:62" + "src": "2575:9:63" }, - "scope": 39840, + "scope": 39991, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 39557, + "id": 39651, "nodeType": "FunctionDefinition", - "src": "2643:125:62", + "src": "2643:125:63", "nodes": [], "body": { - "id": 39556, + "id": 39650, "nodeType": "Block", - "src": "2709:59:62", + "src": "2709:59:63", "nodes": [], "statements": [ { @@ -2628,33 +3058,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 39552, + "id": 39646, "name": "LibVoting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38520, - "src": "2726:9:62", + "referencedDeclaration": 38614, + "src": "2726:9:63", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibVoting_$38520_$", + "typeIdentifier": "t_type$_t_contract$_LibVoting_$38614_$", "typeString": "type(library LibVoting)" } }, - "id": 39553, + "id": 39647, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2736:23:62", + "memberLocation": "2736:23:63", "memberName": "lastVotingExecutedEpoch", "nodeType": "MemberAccess", - "referencedDeclaration": 38484, - "src": "2726:33:62", + "referencedDeclaration": 38578, + "src": "2726:33:63", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint64_$", "typeString": "function () view returns (uint64)" } }, - "id": 39554, + "id": 39648, "isConstant": false, "isLValue": false, "isPure": false, @@ -2663,17 +3093,17 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2726:35:62", + "src": "2726:35:63", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "functionReturnParameters": 39551, - "id": 39555, + "functionReturnParameters": 39645, + "id": 39649, "nodeType": "Return", - "src": "2719:42:62" + "src": "2719:42:63" } ] }, @@ -2682,26 +3112,26 @@ "kind": "function", "modifiers": [], "name": "lastVotingExecutedEpoch", - "nameLocation": "2652:23:62", + "nameLocation": "2652:23:63", "parameters": { - "id": 39548, + "id": 39642, "nodeType": "ParameterList", "parameters": [], - "src": "2675:2:62" + "src": "2675:2:63" }, "returnParameters": { - "id": 39551, + "id": 39645, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39550, + "id": 39644, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 39557, - "src": "2701:6:62", + "scope": 39651, + "src": "2701:6:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2709,10 +3139,10 @@ "typeString": "uint64" }, "typeName": { - "id": 39549, + "id": 39643, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "2701:6:62", + "src": "2701:6:63", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -2721,22 +3151,22 @@ "visibility": "internal" } ], - "src": "2700:8:62" + "src": "2700:8:63" }, - "scope": 39840, + "scope": 39991, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 39571, + "id": 39665, "nodeType": "FunctionDefinition", - "src": "2774:176:62", + "src": "2774:176:63", "nodes": [], "body": { - "id": 39570, + "id": 39664, "nodeType": "Block", - "src": "2848:102:62", + "src": "2848:102:63", "nodes": [], "statements": [ { @@ -2745,33 +3175,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 39566, + "id": 39660, "name": "LibVoting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38520, - "src": "2916:9:62", + "referencedDeclaration": 38614, + "src": "2916:9:63", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibVoting_$38520_$", + "typeIdentifier": "t_type$_t_contract$_LibVoting_$38614_$", "typeString": "type(library LibVoting)" } }, - "id": 39567, + "id": 39661, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2926:15:62", + "memberLocation": "2926:15:63", "memberName": "executableQueue", "nodeType": "MemberAccess", - "referencedDeclaration": 38469, - "src": "2916:25:62", + "referencedDeclaration": 38563, + "src": "2916:25:63", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint64_$_t_uint64_$_t_uint64_$", "typeString": "function () view returns (uint64,uint64,uint64)" } }, - "id": 39568, + "id": 39662, "isConstant": false, "isLValue": false, "isPure": false, @@ -2780,17 +3210,17 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2916:27:62", + "src": "2916:27:63", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint64_$_t_uint64_$_t_uint64_$", "typeString": "tuple(uint64,uint64,uint64)" } }, - "functionReturnParameters": 39565, - "id": 39569, + "functionReturnParameters": 39659, + "id": 39663, "nodeType": "Return", - "src": "2909:34:62" + "src": "2909:34:63" } ] }, @@ -2799,26 +3229,26 @@ "kind": "function", "modifiers": [], "name": "executableQueue", - "nameLocation": "2783:15:62", + "nameLocation": "2783:15:63", "parameters": { - "id": 39558, + "id": 39652, "nodeType": "ParameterList", "parameters": [], - "src": "2798:2:62" + "src": "2798:2:63" }, "returnParameters": { - "id": 39565, + "id": 39659, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39560, + "id": 39654, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 39571, - "src": "2824:6:62", + "scope": 39665, + "src": "2824:6:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2826,10 +3256,10 @@ "typeString": "uint64" }, "typeName": { - "id": 39559, + "id": 39653, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "2824:6:62", + "src": "2824:6:63", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -2839,13 +3269,13 @@ }, { "constant": false, - "id": 39562, + "id": 39656, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 39571, - "src": "2832:6:62", + "scope": 39665, + "src": "2832:6:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2853,10 +3283,10 @@ "typeString": "uint64" }, "typeName": { - "id": 39561, + "id": 39655, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "2832:6:62", + "src": "2832:6:63", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -2866,13 +3296,13 @@ }, { "constant": false, - "id": 39564, + "id": 39658, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 39571, - "src": "2840:6:62", + "scope": 39665, + "src": "2840:6:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2880,10 +3310,10 @@ "typeString": "uint64" }, "typeName": { - "id": 39563, + "id": 39657, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "2840:6:62", + "src": "2840:6:63", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -2892,62 +3322,62 @@ "visibility": "internal" } ], - "src": "2823:24:62" + "src": "2823:24:63" }, - "scope": 39840, + "scope": 39991, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 39584, + "id": 39678, "nodeType": "FunctionDefinition", - "src": "2956:118:62", + "src": "2956:118:63", "nodes": [], "body": { - "id": 39583, + "id": 39677, "nodeType": "Block", - "src": "3027:47:62", + "src": "3027:47:63", "nodes": [], "statements": [ { "expression": { "baseExpression": { "expression": { - "id": 39578, + "id": 39672, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39506, - "src": "3044:1:62", + "referencedDeclaration": 39600, + "src": "3044:1:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$37763_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 39579, + "id": 39673, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3046:18:62", + "memberLocation": "3046:18:63", "memberName": "accumulatedRewards", "nodeType": "MemberAccess", - "referencedDeclaration": 37721, - "src": "3044:20:62", + "referencedDeclaration": 37791, + "src": "3044:20:63", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 39581, + "id": 39675, "indexExpression": { - "id": 39580, + "id": 39674, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39573, - "src": "3065:1:62", + "referencedDeclaration": 39667, + "src": "3065:1:63", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2958,16 +3388,16 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3044:23:62", + "src": "3044:23:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 39577, - "id": 39582, + "functionReturnParameters": 39671, + "id": 39676, "nodeType": "Return", - "src": "3037:30:62" + "src": "3037:30:63" } ] }, @@ -2976,20 +3406,20 @@ "kind": "function", "modifiers": [], "name": "accumulatedRewards", - "nameLocation": "2965:18:62", + "nameLocation": "2965:18:63", "parameters": { - "id": 39574, + "id": 39668, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39573, + "id": 39667, "mutability": "mutable", "name": "a", - "nameLocation": "2992:1:62", + "nameLocation": "2992:1:63", "nodeType": "VariableDeclaration", - "scope": 39584, - "src": "2984:9:62", + "scope": 39678, + "src": "2984:9:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2997,10 +3427,10 @@ "typeString": "address" }, "typeName": { - "id": 39572, + "id": 39666, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2984:7:62", + "src": "2984:7:63", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3010,21 +3440,21 @@ "visibility": "internal" } ], - "src": "2983:11:62" + "src": "2983:11:63" }, "returnParameters": { - "id": 39577, + "id": 39671, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39576, + "id": 39670, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 39584, - "src": "3018:7:62", + "scope": 39678, + "src": "3018:7:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3032,10 +3462,10 @@ "typeString": "uint256" }, "typeName": { - "id": 39575, + "id": 39669, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3018:7:62", + "src": "3018:7:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3044,62 +3474,62 @@ "visibility": "internal" } ], - "src": "3017:9:62" + "src": "3017:9:63" }, - "scope": 39840, + "scope": 39991, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 39597, + "id": 39691, "nodeType": "FunctionDefinition", - "src": "3080:92:62", + "src": "3080:92:63", "nodes": [], "body": { - "id": 39596, + "id": 39690, "nodeType": "Block", - "src": "3138:34:62", + "src": "3138:34:63", "nodes": [], "statements": [ { "expression": { "baseExpression": { "expression": { - "id": 39591, + "id": 39685, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39506, - "src": "3155:1:62", + "referencedDeclaration": 39600, + "src": "3155:1:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$37763_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 39592, + "id": 39686, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3157:5:62", + "memberLocation": "3157:5:63", "memberName": "stake", "nodeType": "MemberAccess", - "referencedDeclaration": 37716, - "src": "3155:7:62", + "referencedDeclaration": 37786, + "src": "3155:7:63", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 39594, + "id": 39688, "indexExpression": { - "id": 39593, + "id": 39687, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39586, - "src": "3163:1:62", + "referencedDeclaration": 39680, + "src": "3163:1:63", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3110,16 +3540,16 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3155:10:62", + "src": "3155:10:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 39590, - "id": 39595, + "functionReturnParameters": 39684, + "id": 39689, "nodeType": "Return", - "src": "3148:17:62" + "src": "3148:17:63" } ] }, @@ -3128,20 +3558,20 @@ "kind": "function", "modifiers": [], "name": "stake", - "nameLocation": "3089:5:62", + "nameLocation": "3089:5:63", "parameters": { - "id": 39587, + "id": 39681, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39586, + "id": 39680, "mutability": "mutable", "name": "a", - "nameLocation": "3103:1:62", + "nameLocation": "3103:1:63", "nodeType": "VariableDeclaration", - "scope": 39597, - "src": "3095:9:62", + "scope": 39691, + "src": "3095:9:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3149,10 +3579,10 @@ "typeString": "address" }, "typeName": { - "id": 39585, + "id": 39679, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3095:7:62", + "src": "3095:7:63", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3162,21 +3592,21 @@ "visibility": "internal" } ], - "src": "3094:11:62" + "src": "3094:11:63" }, "returnParameters": { - "id": 39590, + "id": 39684, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39589, + "id": 39683, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 39597, - "src": "3129:7:62", + "scope": 39691, + "src": "3129:7:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3184,10 +3614,10 @@ "typeString": "uint256" }, "typeName": { - "id": 39588, + "id": 39682, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3129:7:62", + "src": "3129:7:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3196,57 +3626,57 @@ "visibility": "internal" } ], - "src": "3128:9:62" + "src": "3128:9:63" }, - "scope": 39840, + "scope": 39991, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 39606, + "id": 39700, "nodeType": "FunctionDefinition", - "src": "3178:98:62", + "src": "3178:98:63", "nodes": [], "body": { - "id": 39605, + "id": 39699, "nodeType": "Block", - "src": "3236:40:62", + "src": "3236:40:63", "nodes": [], "statements": [ { "expression": { "expression": { - "id": 39602, + "id": 39696, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39506, - "src": "3253:1:62", + "referencedDeclaration": 39600, + "src": "3253:1:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$37763_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 39603, + "id": 39697, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3255:14:62", + "memberLocation": "3255:14:63", "memberName": "ipcGatewayAddr", "nodeType": "MemberAccess", - "referencedDeclaration": 37752, - "src": "3253:16:62", + "referencedDeclaration": 37840, + "src": "3253:16:63", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 39601, - "id": 39604, + "functionReturnParameters": 39695, + "id": 39698, "nodeType": "Return", - "src": "3246:23:62" + "src": "3246:23:63" } ] }, @@ -3255,26 +3685,26 @@ "kind": "function", "modifiers": [], "name": "ipcGatewayAddr", - "nameLocation": "3187:14:62", + "nameLocation": "3187:14:63", "parameters": { - "id": 39598, + "id": 39692, "nodeType": "ParameterList", "parameters": [], - "src": "3201:2:62" + "src": "3201:2:63" }, "returnParameters": { - "id": 39601, + "id": 39695, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39600, + "id": 39694, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 39606, - "src": "3227:7:62", + "scope": 39700, + "src": "3227:7:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3282,10 +3712,10 @@ "typeString": "address" }, "typeName": { - "id": 39599, + "id": 39693, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3227:7:62", + "src": "3227:7:63", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3295,57 +3725,57 @@ "visibility": "internal" } ], - "src": "3226:9:62" + "src": "3226:9:63" }, - "scope": 39840, + "scope": 39991, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 39615, + "id": 39709, "nodeType": "FunctionDefinition", - "src": "3282:95:62", + "src": "3282:95:63", "nodes": [], "body": { - "id": 39614, + "id": 39708, "nodeType": "Block", - "src": "3338:39:62", + "src": "3338:39:63", "nodes": [], "statements": [ { "expression": { "expression": { - "id": 39611, + "id": 39705, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39506, - "src": "3355:1:62", + "referencedDeclaration": 39600, + "src": "3355:1:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$37763_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 39612, + "id": 39706, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3357:13:62", + "memberLocation": "3357:13:63", "memberName": "minValidators", "nodeType": "MemberAccess", - "referencedDeclaration": 37760, - "src": "3355:15:62", + "referencedDeclaration": 37829, + "src": "3355:15:63", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "functionReturnParameters": 39610, - "id": 39613, + "functionReturnParameters": 39704, + "id": 39707, "nodeType": "Return", - "src": "3348:22:62" + "src": "3348:22:63" } ] }, @@ -3354,26 +3784,26 @@ "kind": "function", "modifiers": [], "name": "minValidators", - "nameLocation": "3291:13:62", + "nameLocation": "3291:13:63", "parameters": { - "id": 39607, + "id": 39701, "nodeType": "ParameterList", "parameters": [], - "src": "3304:2:62" + "src": "3304:2:63" }, "returnParameters": { - "id": 39610, + "id": 39704, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39609, + "id": 39703, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 39615, - "src": "3330:6:62", + "scope": 39709, + "src": "3330:6:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3381,10 +3811,10 @@ "typeString": "uint64" }, "typeName": { - "id": 39608, + "id": 39702, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "3330:6:62", + "src": "3330:6:63", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -3393,57 +3823,57 @@ "visibility": "internal" } ], - "src": "3329:8:62" + "src": "3329:8:63" }, - "scope": 39840, + "scope": 39991, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 39624, + "id": 39718, "nodeType": "FunctionDefinition", - "src": "3383:105:62", + "src": "3383:105:63", "nodes": [], "body": { - "id": 39623, + "id": 39717, "nodeType": "Block", - "src": "3444:44:62", + "src": "3444:44:63", "nodes": [], "statements": [ { "expression": { "expression": { - "id": 39620, + "id": 39714, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39506, - "src": "3461:1:62", + "referencedDeclaration": 39600, + "src": "3461:1:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$37763_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 39621, + "id": 39715, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3463:18:62", + "memberLocation": "3463:18:63", "memberName": "topDownCheckPeriod", "nodeType": "MemberAccess", - "referencedDeclaration": 37742, - "src": "3461:20:62", + "referencedDeclaration": 37823, + "src": "3461:20:63", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "functionReturnParameters": 39619, - "id": 39622, + "functionReturnParameters": 39713, + "id": 39716, "nodeType": "Return", - "src": "3454:27:62" + "src": "3454:27:63" } ] }, @@ -3452,26 +3882,26 @@ "kind": "function", "modifiers": [], "name": "topDownCheckPeriod", - "nameLocation": "3392:18:62", + "nameLocation": "3392:18:63", "parameters": { - "id": 39616, + "id": 39710, "nodeType": "ParameterList", "parameters": [], - "src": "3410:2:62" + "src": "3410:2:63" }, "returnParameters": { - "id": 39619, + "id": 39713, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39618, + "id": 39712, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 39624, - "src": "3436:6:62", + "scope": 39718, + "src": "3436:6:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3479,10 +3909,10 @@ "typeString": "uint64" }, "typeName": { - "id": 39617, + "id": 39711, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "3436:6:62", + "src": "3436:6:63", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -3491,57 +3921,57 @@ "visibility": "internal" } ], - "src": "3435:8:62" + "src": "3435:8:63" }, - "scope": 39840, + "scope": 39991, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 39633, + "id": 39727, "nodeType": "FunctionDefinition", - "src": "3494:107:62", + "src": "3494:107:63", "nodes": [], "body": { - "id": 39632, + "id": 39726, "nodeType": "Block", - "src": "3556:45:62", + "src": "3556:45:63", "nodes": [], "statements": [ { "expression": { "expression": { - "id": 39629, + "id": 39723, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39506, - "src": "3573:1:62", + "referencedDeclaration": 39600, + "src": "3573:1:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$37763_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 39630, + "id": 39724, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3575:19:62", + "memberLocation": "3575:19:63", "memberName": "bottomUpCheckPeriod", "nodeType": "MemberAccess", - "referencedDeclaration": 37745, - "src": "3573:21:62", + "referencedDeclaration": 37826, + "src": "3573:21:63", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "functionReturnParameters": 39628, - "id": 39631, + "functionReturnParameters": 39722, + "id": 39725, "nodeType": "Return", - "src": "3566:28:62" + "src": "3566:28:63" } ] }, @@ -3550,26 +3980,26 @@ "kind": "function", "modifiers": [], "name": "bottomUpCheckPeriod", - "nameLocation": "3503:19:62", + "nameLocation": "3503:19:63", "parameters": { - "id": 39625, + "id": 39719, "nodeType": "ParameterList", "parameters": [], - "src": "3522:2:62" + "src": "3522:2:63" }, "returnParameters": { - "id": 39628, + "id": 39722, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39627, + "id": 39721, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 39633, - "src": "3548:6:62", + "scope": 39727, + "src": "3548:6:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3577,10 +4007,10 @@ "typeString": "uint64" }, "typeName": { - "id": 39626, + "id": 39720, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "3548:6:62", + "src": "3548:6:63", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -3589,57 +4019,57 @@ "visibility": "internal" } ], - "src": "3547:8:62" + "src": "3547:8:63" }, - "scope": 39840, + "scope": 39991, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 39642, + "id": 39736, "nodeType": "FunctionDefinition", - "src": "3607:89:62", + "src": "3607:89:63", "nodes": [], "body": { - "id": 39641, + "id": 39735, "nodeType": "Block", - "src": "3663:33:62", + "src": "3663:33:63", "nodes": [], "statements": [ { "expression": { "expression": { - "id": 39638, + "id": 39732, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39506, - "src": "3680:1:62", + "referencedDeclaration": 39600, + "src": "3680:1:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$37763_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 39639, + "id": 39733, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3682:7:62", + "memberLocation": "3682:7:63", "memberName": "genesis", "nodeType": "MemberAccess", - "referencedDeclaration": 37739, - "src": "3680:9:62", + "referencedDeclaration": 37811, + "src": "3680:9:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "functionReturnParameters": 39637, - "id": 39640, + "functionReturnParameters": 39731, + "id": 39734, "nodeType": "Return", - "src": "3673:16:62" + "src": "3673:16:63" } ] }, @@ -3648,26 +4078,26 @@ "kind": "function", "modifiers": [], "name": "genesis", - "nameLocation": "3616:7:62", + "nameLocation": "3616:7:63", "parameters": { - "id": 39634, + "id": 39728, "nodeType": "ParameterList", "parameters": [], - "src": "3623:2:62" + "src": "3623:2:63" }, "returnParameters": { - "id": 39637, + "id": 39731, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39636, + "id": 39730, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 39642, - "src": "3649:12:62", + "scope": 39736, + "src": "3649:12:63", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -3675,10 +4105,10 @@ "typeString": "bytes" }, "typeName": { - "id": 39635, + "id": 39729, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3649:5:62", + "src": "3649:5:63", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3687,22 +4117,22 @@ "visibility": "internal" } ], - "src": "3648:14:62" + "src": "3648:14:63" }, - "scope": 39840, + "scope": 39991, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 39652, + "id": 39746, "nodeType": "FunctionDefinition", - "src": "3702:115:62", + "src": "3702:115:63", "nodes": [], "body": { - "id": 39651, + "id": 39745, "nodeType": "Block", - "src": "3763:54:62", + "src": "3763:54:63", "nodes": [], "statements": [ { @@ -3711,33 +4141,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 39647, + "id": 39741, "name": "LibVoting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38520, - "src": "3780:9:62", + "referencedDeclaration": 38614, + "src": "3780:9:63", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibVoting_$38520_$", + "typeIdentifier": "t_type$_t_contract$_LibVoting_$38614_$", "typeString": "type(library LibVoting)" } }, - "id": 39648, + "id": 39742, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3790:18:62", + "memberLocation": "3790:18:63", "memberName": "majorityPercentage", "nodeType": "MemberAccess", - "referencedDeclaration": 38499, - "src": "3780:28:62", + "referencedDeclaration": 38593, + "src": "3780:28:63", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint64_$", "typeString": "function () view returns (uint64)" } }, - "id": 39649, + "id": 39743, "isConstant": false, "isLValue": false, "isPure": false, @@ -3746,17 +4176,17 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3780:30:62", + "src": "3780:30:63", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "functionReturnParameters": 39646, - "id": 39650, + "functionReturnParameters": 39740, + "id": 39744, "nodeType": "Return", - "src": "3773:37:62" + "src": "3773:37:63" } ] }, @@ -3765,26 +4195,26 @@ "kind": "function", "modifiers": [], "name": "majorityPercentage", - "nameLocation": "3711:18:62", + "nameLocation": "3711:18:63", "parameters": { - "id": 39643, + "id": 39737, "nodeType": "ParameterList", "parameters": [], - "src": "3729:2:62" + "src": "3729:2:63" }, "returnParameters": { - "id": 39646, + "id": 39740, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39645, + "id": 39739, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 39652, - "src": "3755:6:62", + "scope": 39746, + "src": "3755:6:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3792,10 +4222,10 @@ "typeString": "uint64" }, "typeName": { - "id": 39644, + "id": 39738, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "3755:6:62", + "src": "3755:6:63", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -3804,57 +4234,57 @@ "visibility": "internal" } ], - "src": "3754:8:62" + "src": "3754:8:63" }, - "scope": 39840, + "scope": 39991, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 39662, + "id": 39756, "nodeType": "FunctionDefinition", - "src": "3823:94:62", + "src": "3823:94:63", "nodes": [], "body": { - "id": 39661, + "id": 39755, "nodeType": "Block", - "src": "3882:35:62", + "src": "3882:35:63", "nodes": [], "statements": [ { "expression": { "expression": { - "id": 39658, + "id": 39752, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39506, - "src": "3899:1:62", + "referencedDeclaration": 39600, + "src": "3899:1:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$37763_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 39659, + "id": 39753, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3901:9:62", + "memberLocation": "3901:9:63", "memberName": "consensus", "nodeType": "MemberAccess", - "referencedDeclaration": 37749, - "src": "3899:11:62", + "referencedDeclaration": 37856, + "src": "3899:11:63", "typeDescriptions": { - "typeIdentifier": "t_enum$_ConsensusType_$33045", + "typeIdentifier": "t_enum$_ConsensusType_$33139", "typeString": "enum ConsensusType" } }, - "functionReturnParameters": 39657, - "id": 39660, + "functionReturnParameters": 39751, + "id": 39754, "nodeType": "Return", - "src": "3892:18:62" + "src": "3892:18:63" } ] }, @@ -3863,106 +4293,106 @@ "kind": "function", "modifiers": [], "name": "consensus", - "nameLocation": "3832:9:62", + "nameLocation": "3832:9:63", "parameters": { - "id": 39653, + "id": 39747, "nodeType": "ParameterList", "parameters": [], - "src": "3841:2:62" + "src": "3841:2:63" }, "returnParameters": { - "id": 39657, + "id": 39751, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39656, + "id": 39750, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 39662, - "src": "3867:13:62", + "scope": 39756, + "src": "3867:13:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_ConsensusType_$33045", + "typeIdentifier": "t_enum$_ConsensusType_$33139", "typeString": "enum ConsensusType" }, "typeName": { - "id": 39655, + "id": 39749, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39654, + "id": 39748, "name": "ConsensusType", "nameLocations": [ - "3867:13:62" + "3867:13:63" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 33045, - "src": "3867:13:62" + "referencedDeclaration": 33139, + "src": "3867:13:63" }, - "referencedDeclaration": 33045, - "src": "3867:13:62", + "referencedDeclaration": 33139, + "src": "3867:13:63", "typeDescriptions": { - "typeIdentifier": "t_enum$_ConsensusType_$33045", + "typeIdentifier": "t_enum$_ConsensusType_$33139", "typeString": "enum ConsensusType" } }, "visibility": "internal" } ], - "src": "3866:15:62" + "src": "3866:15:63" }, - "scope": 39840, + "scope": 39991, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 39671, + "id": 39765, "nodeType": "FunctionDefinition", - "src": "3923:116:62", + "src": "3923:116:63", "nodes": [], "body": { - "id": 39670, + "id": 39764, "nodeType": "Block", - "src": "3990:49:62", + "src": "3990:49:63", "nodes": [], "statements": [ { "expression": { "expression": { - "id": 39667, + "id": 39761, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39506, - "src": "4007:1:62", + "referencedDeclaration": 39600, + "src": "4007:1:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$37763_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 39668, + "id": 39762, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4009:23:62", + "memberLocation": "4009:23:63", "memberName": "minActivationCollateral", "nodeType": "MemberAccess", - "referencedDeclaration": 37762, - "src": "4007:25:62", + "referencedDeclaration": 37817, + "src": "4007:25:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 39666, - "id": 39669, + "functionReturnParameters": 39760, + "id": 39763, "nodeType": "Return", - "src": "4000:32:62" + "src": "4000:32:63" } ] }, @@ -3971,26 +4401,26 @@ "kind": "function", "modifiers": [], "name": "minActivationCollateral", - "nameLocation": "3932:23:62", + "nameLocation": "3932:23:63", "parameters": { - "id": 39663, + "id": 39757, "nodeType": "ParameterList", "parameters": [], - "src": "3955:2:62" + "src": "3955:2:63" }, "returnParameters": { - "id": 39666, + "id": 39760, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39665, + "id": 39759, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 39671, - "src": "3981:7:62", + "scope": 39765, + "src": "3981:7:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3998,10 +4428,10 @@ "typeString": "uint256" }, "typeName": { - "id": 39664, + "id": 39758, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3981:7:62", + "src": "3981:7:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4010,57 +4440,57 @@ "visibility": "internal" } ], - "src": "3980:9:62" + "src": "3980:9:63" }, - "scope": 39840, + "scope": 39991, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 39680, + "id": 39774, "nodeType": "FunctionDefinition", - "src": "4045:78:62", + "src": "4045:78:63", "nodes": [], "body": { - "id": 39679, + "id": 39773, "nodeType": "Block", - "src": "4093:30:62", + "src": "4093:30:63", "nodes": [], "statements": [ { "expression": { "expression": { - "id": 39676, + "id": 39770, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39506, - "src": "4110:1:62", + "referencedDeclaration": 39600, + "src": "4110:1:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$37763_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 39677, + "id": 39771, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4112:4:62", + "memberLocation": "4112:4:63", "memberName": "name", "nodeType": "MemberAccess", - "referencedDeclaration": 37755, - "src": "4110:6:62", + "referencedDeclaration": 37832, + "src": "4110:6:63", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 39675, - "id": 39678, + "functionReturnParameters": 39769, + "id": 39772, "nodeType": "Return", - "src": "4103:13:62" + "src": "4103:13:63" } ] }, @@ -4069,26 +4499,26 @@ "kind": "function", "modifiers": [], "name": "name", - "nameLocation": "4054:4:62", + "nameLocation": "4054:4:63", "parameters": { - "id": 39672, + "id": 39766, "nodeType": "ParameterList", "parameters": [], - "src": "4058:2:62" + "src": "4058:2:63" }, "returnParameters": { - "id": 39675, + "id": 39769, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39674, + "id": 39768, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 39680, - "src": "4084:7:62", + "scope": 39774, + "src": "4084:7:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4096,10 +4526,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 39673, + "id": 39767, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4084:7:62", + "src": "4084:7:63", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4108,22 +4538,22 @@ "visibility": "internal" } ], - "src": "4083:9:62" + "src": "4083:9:63" }, - "scope": 39840, + "scope": 39991, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 39692, + "id": 39786, "nodeType": "FunctionDefinition", - "src": "4165:103:62", + "src": "4165:103:63", "nodes": [], "body": { - "id": 39691, + "id": 39785, "nodeType": "Block", - "src": "4223:45:62", + "src": "4223:45:63", "nodes": [], "statements": [ { @@ -4133,48 +4563,48 @@ "argumentTypes": [], "expression": { "expression": { - "id": 39686, + "id": 39780, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39506, - "src": "4240:1:62", + "referencedDeclaration": 39600, + "src": "4240:1:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$37763_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 39687, + "id": 39781, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4242:10:62", + "memberLocation": "4242:10:63", "memberName": "validators", "nodeType": "MemberAccess", - "referencedDeclaration": 37705, - "src": "4240:12:62", + "referencedDeclaration": 37848, + "src": "4240:12:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$31538_storage", + "typeIdentifier": "t_struct$_AddressSet_$31590_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 39688, + "id": 39782, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4253:6:62", + "memberLocation": "4253:6:63", "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": 31634, - "src": "4240:19:62", + "referencedDeclaration": 31686, + "src": "4240:19:63", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$31538_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$31538_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$31590_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$31590_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)" } }, - "id": 39689, + "id": 39783, "isConstant": false, "isLValue": false, "isPure": false, @@ -4183,24 +4613,24 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4240:21:62", + "src": "4240:21:63", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 39685, - "id": 39690, + "functionReturnParameters": 39779, + "id": 39784, "nodeType": "Return", - "src": "4233:28:62" + "src": "4233:28:63" } ] }, "documentation": { - "id": 39681, + "id": 39775, "nodeType": "StructuredDocumentation", - "src": "4129:31:62", + "src": "4129:31:63", "text": "@notice get validator count" }, "functionSelector": "0f43a677", @@ -4208,26 +4638,26 @@ "kind": "function", "modifiers": [], "name": "validatorCount", - "nameLocation": "4174:14:62", + "nameLocation": "4174:14:63", "parameters": { - "id": 39682, + "id": 39776, "nodeType": "ParameterList", "parameters": [], - "src": "4188:2:62" + "src": "4188:2:63" }, "returnParameters": { - "id": 39685, + "id": 39779, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39684, + "id": 39778, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 39692, - "src": "4214:7:62", + "scope": 39786, + "src": "4214:7:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4235,10 +4665,10 @@ "typeString": "uint256" }, "typeName": { - "id": 39683, + "id": 39777, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4214:7:62", + "src": "4214:7:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4247,34 +4677,34 @@ "visibility": "internal" } ], - "src": "4213:9:62" + "src": "4213:9:63" }, - "scope": 39840, + "scope": 39991, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 39707, + "id": 39801, "nodeType": "FunctionDefinition", - "src": "4367:114:62", + "src": "4367:114:63", "nodes": [], "body": { - "id": 39706, + "id": 39800, "nodeType": "Block", - "src": "4435:46:62", + "src": "4435:46:63", "nodes": [], "statements": [ { "expression": { "arguments": [ { - "id": 39703, + "id": 39797, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39695, - "src": "4468:5:62", + "referencedDeclaration": 39789, + "src": "4468:5:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4290,48 +4720,48 @@ ], "expression": { "expression": { - "id": 39700, + "id": 39794, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39506, - "src": "4452:1:62", + "referencedDeclaration": 39600, + "src": "4452:1:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$37763_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 39701, + "id": 39795, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4454:10:62", + "memberLocation": "4454:10:63", "memberName": "validators", "nodeType": "MemberAccess", - "referencedDeclaration": 37705, - "src": "4452:12:62", + "referencedDeclaration": 37848, + "src": "4452:12:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$31538_storage", + "typeIdentifier": "t_struct$_AddressSet_$31590_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 39702, + "id": 39796, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4465:2:62", + "memberLocation": "4465:2:63", "memberName": "at", "nodeType": "MemberAccess", - "referencedDeclaration": 31661, - "src": "4452:15:62", + "referencedDeclaration": 31713, + "src": "4452:15:63", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$31538_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$31538_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$31590_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$31590_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)" } }, - "id": 39704, + "id": 39798, "isConstant": false, "isLValue": false, "isPure": false, @@ -4340,24 +4770,24 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4452:22:62", + "src": "4452:22:63", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 39699, - "id": 39705, + "functionReturnParameters": 39793, + "id": 39799, "nodeType": "Return", - "src": "4445:29:62" + "src": "4445:29:63" } ] }, "documentation": { - "id": 39693, + "id": 39787, "nodeType": "StructuredDocumentation", - "src": "4274:88:62", + "src": "4274:88:63", "text": "@notice get validator at index\n @param index - the index of the validator set" }, "functionSelector": "32e0aa1f", @@ -4365,20 +4795,20 @@ "kind": "function", "modifiers": [], "name": "validatorAt", - "nameLocation": "4376:11:62", + "nameLocation": "4376:11:63", "parameters": { - "id": 39696, + "id": 39790, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39695, + "id": 39789, "mutability": "mutable", "name": "index", - "nameLocation": "4396:5:62", + "nameLocation": "4396:5:63", "nodeType": "VariableDeclaration", - "scope": 39707, - "src": "4388:13:62", + "scope": 39801, + "src": "4388:13:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4386,10 +4816,10 @@ "typeString": "uint256" }, "typeName": { - "id": 39694, + "id": 39788, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4388:7:62", + "src": "4388:7:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4398,21 +4828,21 @@ "visibility": "internal" } ], - "src": "4387:15:62" + "src": "4387:15:63" }, "returnParameters": { - "id": 39699, + "id": 39793, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39698, + "id": 39792, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 39707, - "src": "4426:7:62", + "scope": 39801, + "src": "4426:7:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4420,10 +4850,10 @@ "typeString": "address" }, "typeName": { - "id": 39697, + "id": 39791, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4426:7:62", + "src": "4426:7:63", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4433,38 +4863,38 @@ "visibility": "internal" } ], - "src": "4425:9:62" + "src": "4425:9:63" }, - "scope": 39840, + "scope": 39991, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 39758, + "id": 39852, "nodeType": "FunctionDefinition", - "src": "4583:360:62", + "src": "4583:360:63", "nodes": [], "body": { - "id": 39757, + "id": 39851, "nodeType": "Block", - "src": "4649:294:62", + "src": "4649:294:63", "nodes": [], "statements": [ { "assignments": [ - 39715 + 39809 ], "declarations": [ { "constant": false, - "id": 39715, + "id": 39809, "mutability": "mutable", "name": "length", - "nameLocation": "4667:6:62", + "nameLocation": "4667:6:63", "nodeType": "VariableDeclaration", - "scope": 39757, - "src": "4659:14:62", + "scope": 39851, + "src": "4659:14:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4472,10 +4902,10 @@ "typeString": "uint256" }, "typeName": { - "id": 39714, + "id": 39808, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4659:7:62", + "src": "4659:7:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4484,55 +4914,55 @@ "visibility": "internal" } ], - "id": 39720, + "id": 39814, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "expression": { - "id": 39716, + "id": 39810, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39506, - "src": "4676:1:62", + "referencedDeclaration": 39600, + "src": "4676:1:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$37763_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 39717, + "id": 39811, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4678:10:62", + "memberLocation": "4678:10:63", "memberName": "validators", "nodeType": "MemberAccess", - "referencedDeclaration": 37705, - "src": "4676:12:62", + "referencedDeclaration": 37848, + "src": "4676:12:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$31538_storage", + "typeIdentifier": "t_struct$_AddressSet_$31590_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 39718, + "id": 39812, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4689:6:62", + "memberLocation": "4689:6:63", "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": 31634, - "src": "4676:19:62", + "referencedDeclaration": 31686, + "src": "4676:19:63", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$31538_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$31538_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$31590_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$31590_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)" } }, - "id": 39719, + "id": 39813, "isConstant": false, "isLValue": false, "isPure": false, @@ -4541,7 +4971,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4676:21:62", + "src": "4676:21:63", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4549,22 +4979,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4659:38:62" + "src": "4659:38:63" }, { "assignments": [ - 39725 + 39819 ], "declarations": [ { "constant": false, - "id": 39725, + "id": 39819, "mutability": "mutable", "name": "result", - "nameLocation": "4724:6:62", + "nameLocation": "4724:6:63", "nodeType": "VariableDeclaration", - "scope": 39757, - "src": "4707:23:62", + "scope": 39851, + "src": "4707:23:63", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -4573,18 +5003,18 @@ }, "typeName": { "baseType": { - "id": 39723, + "id": 39817, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4707:7:62", + "src": "4707:7:63", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 39724, + "id": 39818, "nodeType": "ArrayTypeName", - "src": "4707:9:62", + "src": "4707:9:63", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -4593,16 +5023,16 @@ "visibility": "internal" } ], - "id": 39731, + "id": 39825, "initialValue": { "arguments": [ { - "id": 39729, + "id": 39823, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39715, - "src": "4747:6:62", + "referencedDeclaration": 39809, + "src": "4747:6:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4616,39 +5046,39 @@ "typeString": "uint256" } ], - "id": 39728, + "id": 39822, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "4733:13:62", + "src": "4733:13:63", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (address[] memory)" }, "typeName": { "baseType": { - "id": 39726, + "id": 39820, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4737:7:62", + "src": "4737:7:63", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 39727, + "id": 39821, "nodeType": "ArrayTypeName", - "src": "4737:9:62", + "src": "4737:9:63", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, - "id": 39730, + "id": 39824, "isConstant": false, "isLValue": false, "isPure": false, @@ -4657,7 +5087,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4733:21:62", + "src": "4733:21:63", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", @@ -4665,42 +5095,42 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4707:47:62" + "src": "4707:47:63" }, { "body": { - "id": 39753, + "id": 39847, "nodeType": "Block", - "src": "4799:114:62", + "src": "4799:114:63", "statements": [ { "expression": { - "id": 39747, + "id": 39841, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 39739, + "id": 39833, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39725, - "src": "4813:6:62", + "referencedDeclaration": 39819, + "src": "4813:6:63", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 39741, + "id": 39835, "indexExpression": { - "id": 39740, + "id": 39834, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39733, - "src": "4820:1:62", + "referencedDeclaration": 39827, + "src": "4820:1:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4711,7 +5141,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4813:9:62", + "src": "4813:9:63", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4722,12 +5152,12 @@ "rightHandSide": { "arguments": [ { - "id": 39745, + "id": 39839, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39733, - "src": "4841:1:62", + "referencedDeclaration": 39827, + "src": "4841:1:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4743,48 +5173,48 @@ ], "expression": { "expression": { - "id": 39742, + "id": 39836, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39506, - "src": "4825:1:62", + "referencedDeclaration": 39600, + "src": "4825:1:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$37763_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 39743, + "id": 39837, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4827:10:62", + "memberLocation": "4827:10:63", "memberName": "validators", "nodeType": "MemberAccess", - "referencedDeclaration": 37705, - "src": "4825:12:62", + "referencedDeclaration": 37848, + "src": "4825:12:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$31538_storage", + "typeIdentifier": "t_struct$_AddressSet_$31590_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 39744, + "id": 39838, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4838:2:62", + "memberLocation": "4838:2:63", "memberName": "at", "nodeType": "MemberAccess", - "referencedDeclaration": 31661, - "src": "4825:15:62", + "referencedDeclaration": 31713, + "src": "4825:15:63", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$31538_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$31538_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$31590_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$31590_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)" } }, - "id": 39746, + "id": 39840, "isConstant": false, "isLValue": false, "isPure": false, @@ -4793,31 +5223,31 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4825:18:62", + "src": "4825:18:63", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4813:30:62", + "src": "4813:30:63", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 39748, + "id": 39842, "nodeType": "ExpressionStatement", - "src": "4813:30:62" + "src": "4813:30:63" }, { - "id": 39752, + "id": 39846, "nodeType": "UncheckedBlock", - "src": "4857:46:62", + "src": "4857:46:63", "statements": [ { "expression": { - "id": 39750, + "id": 39844, "isConstant": false, "isLValue": false, "isPure": false, @@ -4825,14 +5255,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": true, - "src": "4885:3:62", + "src": "4885:3:63", "subExpression": { - "id": 39749, + "id": 39843, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39733, - "src": "4887:1:62", + "referencedDeclaration": 39827, + "src": "4887:1:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4843,9 +5273,9 @@ "typeString": "uint256" } }, - "id": 39751, + "id": 39845, "nodeType": "ExpressionStatement", - "src": "4885:3:62" + "src": "4885:3:63" } ] } @@ -4856,18 +5286,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 39738, + "id": 39832, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 39736, + "id": 39830, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39733, - "src": "4785:1:62", + "referencedDeclaration": 39827, + "src": "4785:1:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4876,38 +5306,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 39737, + "id": 39831, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39715, - "src": "4789:6:62", + "referencedDeclaration": 39809, + "src": "4789:6:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4785:10:62", + "src": "4785:10:63", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 39754, + "id": 39848, "initializationExpression": { "assignments": [ - 39733 + 39827 ], "declarations": [ { "constant": false, - "id": 39733, + "id": 39827, "mutability": "mutable", "name": "i", - "nameLocation": "4778:1:62", + "nameLocation": "4778:1:63", "nodeType": "VariableDeclaration", - "scope": 39754, - "src": "4770:9:62", + "scope": 39848, + "src": "4770:9:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4915,10 +5345,10 @@ "typeString": "uint256" }, "typeName": { - "id": 39732, + "id": 39826, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4770:7:62", + "src": "4770:7:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4927,17 +5357,17 @@ "visibility": "internal" } ], - "id": 39735, + "id": 39829, "initialValue": { "hexValue": "30", - "id": 39734, + "id": 39828, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4782:1:62", + "src": "4782:1:63", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -4945,35 +5375,35 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "4770:13:62" + "src": "4770:13:63" }, "nodeType": "ForStatement", - "src": "4765:148:62" + "src": "4765:148:63" }, { "expression": { - "id": 39755, + "id": 39849, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39725, - "src": "4930:6:62", + "referencedDeclaration": 39819, + "src": "4930:6:63", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "functionReturnParameters": 39713, - "id": 39756, + "functionReturnParameters": 39807, + "id": 39850, "nodeType": "Return", - "src": "4923:13:62" + "src": "4923:13:63" } ] }, "documentation": { - "id": 39708, + "id": 39802, "nodeType": "StructuredDocumentation", - "src": "4487:91:62", + "src": "4487:91:63", "text": "@notice get all the validators in the subnet.\n TODO: we can introduce pagination" }, "functionSelector": "b7ab4db5", @@ -4981,26 +5411,26 @@ "kind": "function", "modifiers": [], "name": "getValidators", - "nameLocation": "4592:13:62", + "nameLocation": "4592:13:63", "parameters": { - "id": 39709, + "id": 39803, "nodeType": "ParameterList", "parameters": [], - "src": "4605:2:62" + "src": "4605:2:63" }, "returnParameters": { - "id": 39713, + "id": 39807, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39712, + "id": 39806, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 39758, - "src": "4631:16:62", + "scope": 39852, + "src": "4631:16:63", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -5009,19 +5439,19 @@ }, "typeName": { "baseType": { - "id": 39710, + "id": 39804, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4631:7:62", + "src": "4631:7:63", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 39711, + "id": 39805, "nodeType": "ArrayTypeName", - "src": "4631:9:62", + "src": "4631:9:63", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -5030,38 +5460,38 @@ "visibility": "internal" } ], - "src": "4630:18:62" + "src": "4630:18:63" }, - "scope": 39840, + "scope": 39991, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 39839, + "id": 39933, "nodeType": "FunctionDefinition", - "src": "5031:654:62", + "src": "5031:654:63", "nodes": [], "body": { - "id": 39838, + "id": 39932, "nodeType": "Block", - "src": "5102:583:62", + "src": "5102:583:63", "nodes": [], "statements": [ { "assignments": [ - 39766 + 39860 ], "declarations": [ { "constant": false, - "id": 39766, + "id": 39860, "mutability": "mutable", "name": "length", - "nameLocation": "5120:6:62", + "nameLocation": "5120:6:63", "nodeType": "VariableDeclaration", - "scope": 39838, - "src": "5112:14:62", + "scope": 39932, + "src": "5112:14:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5069,10 +5499,10 @@ "typeString": "uint256" }, "typeName": { - "id": 39765, + "id": 39859, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5112:7:62", + "src": "5112:7:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5081,55 +5511,55 @@ "visibility": "internal" } ], - "id": 39771, + "id": 39865, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "expression": { - "id": 39767, + "id": 39861, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39506, - "src": "5129:1:62", + "referencedDeclaration": 39600, + "src": "5129:1:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$37763_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 39768, + "id": 39862, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5131:10:62", + "memberLocation": "5131:10:63", "memberName": "validators", "nodeType": "MemberAccess", - "referencedDeclaration": 37705, - "src": "5129:12:62", + "referencedDeclaration": 37848, + "src": "5129:12:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$31538_storage", + "typeIdentifier": "t_struct$_AddressSet_$31590_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 39769, + "id": 39863, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5142:6:62", + "memberLocation": "5142:6:63", "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": 31634, - "src": "5129:19:62", + "referencedDeclaration": 31686, + "src": "5129:19:63", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$31538_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$31538_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$31590_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$31590_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)" } }, - "id": 39770, + "id": 39864, "isConstant": false, "isLValue": false, "isPure": false, @@ -5138,7 +5568,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5129:21:62", + "src": "5129:21:63", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5146,70 +5576,70 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5112:38:62" + "src": "5112:38:63" }, { "assignments": [ - 39776 + 39870 ], "declarations": [ { "constant": false, - "id": 39776, + "id": 39870, "mutability": "mutable", "name": "details", - "nameLocation": "5184:7:62", + "nameLocation": "5184:7:63", "nodeType": "VariableDeclaration", - "scope": 39838, - "src": "5161:30:62", + "scope": 39932, + "src": "5161:30:63", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ValidatorInfo_$39408_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_ValidatorInfo_$39502_memory_ptr_$dyn_memory_ptr", "typeString": "struct ValidatorInfo[]" }, "typeName": { "baseType": { - "id": 39774, + "id": 39868, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39773, + "id": 39867, "name": "ValidatorInfo", "nameLocations": [ - "5161:13:62" + "5161:13:63" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39408, - "src": "5161:13:62" + "referencedDeclaration": 39502, + "src": "5161:13:63" }, - "referencedDeclaration": 39408, - "src": "5161:13:62", + "referencedDeclaration": 39502, + "src": "5161:13:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_ValidatorInfo_$39408_storage_ptr", + "typeIdentifier": "t_struct$_ValidatorInfo_$39502_storage_ptr", "typeString": "struct ValidatorInfo" } }, - "id": 39775, + "id": 39869, "nodeType": "ArrayTypeName", - "src": "5161:15:62", + "src": "5161:15:63", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ValidatorInfo_$39408_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_ValidatorInfo_$39502_storage_$dyn_storage_ptr", "typeString": "struct ValidatorInfo[]" } }, "visibility": "internal" } ], - "id": 39783, + "id": 39877, "initialValue": { "arguments": [ { - "id": 39781, + "id": 39875, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39766, - "src": "5214:6:62", + "referencedDeclaration": 39860, + "src": "5214:6:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5223,48 +5653,48 @@ "typeString": "uint256" } ], - "id": 39780, + "id": 39874, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "5194:19:62", + "src": "5194:19:63", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_ValidatorInfo_$39408_memory_ptr_$dyn_memory_ptr_$", + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_ValidatorInfo_$39502_memory_ptr_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (struct ValidatorInfo memory[] memory)" }, "typeName": { "baseType": { - "id": 39778, + "id": 39872, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39777, + "id": 39871, "name": "ValidatorInfo", "nameLocations": [ - "5198:13:62" + "5198:13:63" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39408, - "src": "5198:13:62" + "referencedDeclaration": 39502, + "src": "5198:13:63" }, - "referencedDeclaration": 39408, - "src": "5198:13:62", + "referencedDeclaration": 39502, + "src": "5198:13:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_ValidatorInfo_$39408_storage_ptr", + "typeIdentifier": "t_struct$_ValidatorInfo_$39502_storage_ptr", "typeString": "struct ValidatorInfo" } }, - "id": 39779, + "id": 39873, "nodeType": "ArrayTypeName", - "src": "5198:15:62", + "src": "5198:15:63", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ValidatorInfo_$39408_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_ValidatorInfo_$39502_storage_$dyn_storage_ptr", "typeString": "struct ValidatorInfo[]" } } }, - "id": 39782, + "id": 39876, "isConstant": false, "isLValue": false, "isPure": false, @@ -5273,50 +5703,50 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5194:27:62", + "src": "5194:27:63", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ValidatorInfo_$39408_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_ValidatorInfo_$39502_memory_ptr_$dyn_memory_ptr", "typeString": "struct ValidatorInfo memory[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "5161:60:62" + "src": "5161:60:63" }, { "body": { - "id": 39830, + "id": 39924, "nodeType": "Block", - "src": "5269:313:62", + "src": "5269:313:63", "statements": [ { "expression": { - "id": 39828, + "id": 39922, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 39794, + "id": 39888, "name": "details", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39776, - "src": "5283:7:62", + "referencedDeclaration": 39870, + "src": "5283:7:63", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ValidatorInfo_$39408_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_ValidatorInfo_$39502_memory_ptr_$dyn_memory_ptr", "typeString": "struct ValidatorInfo memory[] memory" } }, - "id": 39796, + "id": 39890, "indexExpression": { - "id": 39795, + "id": 39889, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39785, - "src": "5291:1:62", + "referencedDeclaration": 39879, + "src": "5291:1:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5327,9 +5757,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5283:10:62", + "src": "5283:10:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_ValidatorInfo_$39408_memory_ptr", + "typeIdentifier": "t_struct$_ValidatorInfo_$39502_memory_ptr", "typeString": "struct ValidatorInfo memory" } }, @@ -5340,12 +5770,12 @@ { "arguments": [ { - "id": 39801, + "id": 39895, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39785, - "src": "5350:1:62", + "referencedDeclaration": 39879, + "src": "5350:1:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5361,48 +5791,48 @@ ], "expression": { "expression": { - "id": 39798, + "id": 39892, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39506, - "src": "5334:1:62", + "referencedDeclaration": 39600, + "src": "5334:1:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$37763_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 39799, + "id": 39893, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5336:10:62", + "memberLocation": "5336:10:63", "memberName": "validators", "nodeType": "MemberAccess", - "referencedDeclaration": 37705, - "src": "5334:12:62", + "referencedDeclaration": 37848, + "src": "5334:12:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$31538_storage", + "typeIdentifier": "t_struct$_AddressSet_$31590_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 39800, + "id": 39894, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5347:2:62", + "memberLocation": "5347:2:63", "memberName": "at", "nodeType": "MemberAccess", - "referencedDeclaration": 31661, - "src": "5334:15:62", + "referencedDeclaration": 31713, + "src": "5334:15:63", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$31538_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$31538_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$31590_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$31590_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)" } }, - "id": 39802, + "id": 39896, "isConstant": false, "isLValue": false, "isPure": false, @@ -5411,7 +5841,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5334:18:62", + "src": "5334:18:63", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -5421,42 +5851,42 @@ { "baseExpression": { "expression": { - "id": 39803, + "id": 39897, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39506, - "src": "5378:1:62", + "referencedDeclaration": 39600, + "src": "5378:1:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$37763_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 39804, + "id": 39898, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5380:5:62", + "memberLocation": "5380:5:63", "memberName": "stake", "nodeType": "MemberAccess", - "referencedDeclaration": 37716, - "src": "5378:7:62", + "referencedDeclaration": 37786, + "src": "5378:7:63", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 39810, + "id": 39904, "indexExpression": { "arguments": [ { - "id": 39808, + "id": 39902, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39785, - "src": "5402:1:62", + "referencedDeclaration": 39879, + "src": "5402:1:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5472,48 +5902,48 @@ ], "expression": { "expression": { - "id": 39805, + "id": 39899, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39506, - "src": "5386:1:62", + "referencedDeclaration": 39600, + "src": "5386:1:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$37763_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 39806, + "id": 39900, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5388:10:62", + "memberLocation": "5388:10:63", "memberName": "validators", "nodeType": "MemberAccess", - "referencedDeclaration": 37705, - "src": "5386:12:62", + "referencedDeclaration": 37848, + "src": "5386:12:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$31538_storage", + "typeIdentifier": "t_struct$_AddressSet_$31590_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 39807, + "id": 39901, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5399:2:62", + "memberLocation": "5399:2:63", "memberName": "at", "nodeType": "MemberAccess", - "referencedDeclaration": 31661, - "src": "5386:15:62", + "referencedDeclaration": 31713, + "src": "5386:15:63", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$31538_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$31538_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$31590_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$31590_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)" } }, - "id": 39809, + "id": 39903, "isConstant": false, "isLValue": false, "isPure": false, @@ -5522,7 +5952,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5386:18:62", + "src": "5386:18:63", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -5534,7 +5964,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5378:27:62", + "src": "5378:27:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5543,42 +5973,42 @@ { "baseExpression": { "expression": { - "id": 39811, + "id": 39905, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39506, - "src": "5435:1:62", + "referencedDeclaration": 39600, + "src": "5435:1:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$37763_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 39812, + "id": 39906, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5437:24:62", + "memberLocation": "5437:24:63", "memberName": "validatorWorkerAddresses", "nodeType": "MemberAccess", - "referencedDeclaration": 37732, - "src": "5435:26:62", + "referencedDeclaration": 37802, + "src": "5435:26:63", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_FvmAddress_$39337_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_FvmAddress_$39431_storage_$", "typeString": "mapping(address => struct FvmAddress storage ref)" } }, - "id": 39818, + "id": 39912, "indexExpression": { "arguments": [ { - "id": 39816, + "id": 39910, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39785, - "src": "5478:1:62", + "referencedDeclaration": 39879, + "src": "5478:1:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5594,48 +6024,48 @@ ], "expression": { "expression": { - "id": 39813, + "id": 39907, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39506, - "src": "5462:1:62", + "referencedDeclaration": 39600, + "src": "5462:1:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$37763_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 39814, + "id": 39908, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5464:10:62", + "memberLocation": "5464:10:63", "memberName": "validators", "nodeType": "MemberAccess", - "referencedDeclaration": 37705, - "src": "5462:12:62", + "referencedDeclaration": 37848, + "src": "5462:12:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$31538_storage", + "typeIdentifier": "t_struct$_AddressSet_$31590_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 39815, + "id": 39909, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5475:2:62", + "memberLocation": "5475:2:63", "memberName": "at", "nodeType": "MemberAccess", - "referencedDeclaration": 31661, - "src": "5462:15:62", + "referencedDeclaration": 31713, + "src": "5462:15:63", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$31538_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$31538_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$31590_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$31590_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)" } }, - "id": 39817, + "id": 39911, "isConstant": false, "isLValue": false, "isPure": false, @@ -5644,7 +6074,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5462:18:62", + "src": "5462:18:63", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -5656,51 +6086,51 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5435:46:62", + "src": "5435:46:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_FvmAddress_$39337_storage", + "typeIdentifier": "t_struct$_FvmAddress_$39431_storage", "typeString": "struct FvmAddress storage ref" } }, { "baseExpression": { "expression": { - "id": 39819, + "id": 39913, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39506, - "src": "5513:1:62", + "referencedDeclaration": 39600, + "src": "5513:1:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$37763_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 39820, + "id": 39914, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5515:21:62", + "memberLocation": "5515:21:63", "memberName": "validatorNetAddresses", "nodeType": "MemberAccess", - "referencedDeclaration": 37726, - "src": "5513:23:62", + "referencedDeclaration": 37796, + "src": "5513:23:63", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_string_storage_$", "typeString": "mapping(address => string storage ref)" } }, - "id": 39826, + "id": 39920, "indexExpression": { "arguments": [ { - "id": 39824, + "id": 39918, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39785, - "src": "5553:1:62", + "referencedDeclaration": 39879, + "src": "5553:1:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5716,48 +6146,48 @@ ], "expression": { "expression": { - "id": 39821, + "id": 39915, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39506, - "src": "5537:1:62", + "referencedDeclaration": 39600, + "src": "5537:1:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$37763_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 39822, + "id": 39916, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5539:10:62", + "memberLocation": "5539:10:63", "memberName": "validators", "nodeType": "MemberAccess", - "referencedDeclaration": 37705, - "src": "5537:12:62", + "referencedDeclaration": 37848, + "src": "5537:12:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$31538_storage", + "typeIdentifier": "t_struct$_AddressSet_$31590_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 39823, + "id": 39917, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5550:2:62", + "memberLocation": "5550:2:63", "memberName": "at", "nodeType": "MemberAccess", - "referencedDeclaration": 31661, - "src": "5537:15:62", + "referencedDeclaration": 31713, + "src": "5537:15:63", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$31538_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$31538_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$31590_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$31590_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)" } }, - "id": 39825, + "id": 39919, "isConstant": false, "isLValue": false, "isPure": false, @@ -5766,7 +6196,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5537:18:62", + "src": "5537:18:63", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -5778,7 +6208,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5513:43:62", + "src": "5513:43:63", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -5796,7 +6226,7 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_struct$_FvmAddress_$39337_storage", + "typeIdentifier": "t_struct$_FvmAddress_$39431_storage", "typeString": "struct FvmAddress storage ref" }, { @@ -5804,28 +6234,28 @@ "typeString": "string storage ref" } ], - "id": 39797, + "id": 39891, "name": "ValidatorInfo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39408, - "src": "5296:13:62", + "referencedDeclaration": 39502, + "src": "5296:13:63", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_ValidatorInfo_$39408_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_ValidatorInfo_$39502_storage_ptr_$", "typeString": "type(struct ValidatorInfo storage pointer)" } }, - "id": 39827, + "id": 39921, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ - "5328:4:62", - "5370:6:62", - "5423:10:62", - "5499:12:62" + "5328:4:63", + "5370:6:63", + "5423:10:63", + "5499:12:63" ], "names": [ "addr", @@ -5834,22 +6264,22 @@ "netAddresses" ], "nodeType": "FunctionCall", - "src": "5296:275:62", + "src": "5296:275:63", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_ValidatorInfo_$39408_memory_ptr", + "typeIdentifier": "t_struct$_ValidatorInfo_$39502_memory_ptr", "typeString": "struct ValidatorInfo memory" } }, - "src": "5283:288:62", + "src": "5283:288:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_ValidatorInfo_$39408_memory_ptr", + "typeIdentifier": "t_struct$_ValidatorInfo_$39502_memory_ptr", "typeString": "struct ValidatorInfo memory" } }, - "id": 39829, + "id": 39923, "nodeType": "ExpressionStatement", - "src": "5283:288:62" + "src": "5283:288:63" } ] }, @@ -5858,18 +6288,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 39790, + "id": 39884, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 39788, + "id": 39882, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39785, - "src": "5252:1:62", + "referencedDeclaration": 39879, + "src": "5252:1:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5878,38 +6308,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 39789, + "id": 39883, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39766, - "src": "5256:6:62", + "referencedDeclaration": 39860, + "src": "5256:6:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5252:10:62", + "src": "5252:10:63", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 39831, + "id": 39925, "initializationExpression": { "assignments": [ - 39785 + 39879 ], "declarations": [ { "constant": false, - "id": 39785, + "id": 39879, "mutability": "mutable", "name": "i", - "nameLocation": "5245:1:62", + "nameLocation": "5245:1:63", "nodeType": "VariableDeclaration", - "scope": 39831, - "src": "5237:9:62", + "scope": 39925, + "src": "5237:9:63", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5917,10 +6347,10 @@ "typeString": "uint256" }, "typeName": { - "id": 39784, + "id": 39878, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5237:7:62", + "src": "5237:7:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5929,17 +6359,17 @@ "visibility": "internal" } ], - "id": 39787, + "id": 39881, "initialValue": { "hexValue": "30", - "id": 39786, + "id": 39880, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5249:1:62", + "src": "5249:1:63", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -5947,11 +6377,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "5237:13:62" + "src": "5237:13:63" }, "loopExpression": { "expression": { - "id": 39792, + "id": 39886, "isConstant": false, "isLValue": false, "isPure": false, @@ -5959,14 +6389,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "5264:3:62", + "src": "5264:3:63", "subExpression": { - "id": 39791, + "id": 39885, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39785, - "src": "5264:1:62", + "referencedDeclaration": 39879, + "src": "5264:1:63", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5977,51 +6407,51 @@ "typeString": "uint256" } }, - "id": 39793, + "id": 39887, "nodeType": "ExpressionStatement", - "src": "5264:3:62" + "src": "5264:3:63" }, "nodeType": "ForStatement", - "src": "5232:350:62" + "src": "5232:350:63" }, { "expression": { "arguments": [ { - "id": 39833, + "id": 39927, "name": "details", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39776, - "src": "5625:7:62", + "referencedDeclaration": 39870, + "src": "5625:7:63", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ValidatorInfo_$39408_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_ValidatorInfo_$39502_memory_ptr_$dyn_memory_ptr", "typeString": "struct ValidatorInfo memory[] memory" } }, { "expression": { - "id": 39834, + "id": 39928, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39506, - "src": "5655:1:62", + "referencedDeclaration": 39600, + "src": "5655:1:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$37763_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 39835, + "id": 39929, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5657:19:62", + "memberLocation": "5657:19:63", "memberName": "configurationNumber", "nodeType": "MemberAccess", - "referencedDeclaration": 37688, - "src": "5655:21:62", + "referencedDeclaration": 37820, + "src": "5655:21:63", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -6031,7 +6461,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_array$_t_struct$_ValidatorInfo_$39408_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_ValidatorInfo_$39502_memory_ptr_$dyn_memory_ptr", "typeString": "struct ValidatorInfo memory[] memory" }, { @@ -6039,50 +6469,50 @@ "typeString": "uint64" } ], - "id": 39832, + "id": 39926, "name": "ValidatorSet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39415, - "src": "5599:12:62", + "referencedDeclaration": 39509, + "src": "5599:12:63", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_ValidatorSet_$39415_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_ValidatorSet_$39509_storage_ptr_$", "typeString": "type(struct ValidatorSet storage pointer)" } }, - "id": 39836, + "id": 39930, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ - "5613:10:62", - "5634:19:62" + "5613:10:63", + "5634:19:63" ], "names": [ "validators", "configurationNumber" ], "nodeType": "FunctionCall", - "src": "5599:79:62", + "src": "5599:79:63", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_ValidatorSet_$39415_memory_ptr", + "typeIdentifier": "t_struct$_ValidatorSet_$39509_memory_ptr", "typeString": "struct ValidatorSet memory" } }, - "functionReturnParameters": 39764, - "id": 39837, + "functionReturnParameters": 39858, + "id": 39931, "nodeType": "Return", - "src": "5592:86:62" + "src": "5592:86:63" } ] }, "documentation": { - "id": 39759, + "id": 39853, "nodeType": "StructuredDocumentation", - "src": "4949:77:62", + "src": "4949:77:63", "text": "@notice get the full details of the validators, not just their addresses." }, "functionSelector": "cf331250", @@ -6090,58 +6520,719 @@ "kind": "function", "modifiers": [], "name": "getValidatorSet", - "nameLocation": "5040:15:62", + "nameLocation": "5040:15:63", "parameters": { - "id": 39760, + "id": 39854, "nodeType": "ParameterList", "parameters": [], - "src": "5055:2:62" + "src": "5055:2:63" }, "returnParameters": { - "id": 39764, + "id": 39858, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39763, + "id": 39857, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 39839, - "src": "5081:19:62", + "scope": 39933, + "src": "5081:19:63", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_ValidatorSet_$39415_memory_ptr", + "typeIdentifier": "t_struct$_ValidatorSet_$39509_memory_ptr", "typeString": "struct ValidatorSet" }, "typeName": { - "id": 39762, + "id": 39856, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39761, + "id": 39855, "name": "ValidatorSet", "nameLocations": [ - "5081:12:62" + "5081:12:63" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39415, - "src": "5081:12:62" + "referencedDeclaration": 39509, + "src": "5081:12:63" }, - "referencedDeclaration": 39415, - "src": "5081:12:62", + "referencedDeclaration": 39509, + "src": "5081:12:63", "typeDescriptions": { - "typeIdentifier": "t_struct$_ValidatorSet_$39415_storage_ptr", + "typeIdentifier": "t_struct$_ValidatorSet_$39509_storage_ptr", "typeString": "struct ValidatorSet" } }, "visibility": "internal" } ], - "src": "5080:21:62" + "src": "5080:21:63" + }, + "scope": 39991, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 39990, + "nodeType": "FunctionDefinition", + "src": "5753:457:63", + "nodes": [], + "body": { + "id": 39989, + "nodeType": "Block", + "src": "5894:316:63", + "nodes": [], + "statements": [ + { + "assignments": [ + 39946 + ], + "declarations": [ + { + "constant": false, + "id": 39946, + "mutability": "mutable", + "name": "size", + "nameLocation": "5911:4:63", + "nodeType": "VariableDeclaration", + "scope": 39989, + "src": "5904:11:63", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 39945, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "5904:6:63", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "id": 39950, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 39949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 39947, + "name": "toEpoch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39938, + "src": "5918:7:63", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 39948, + "name": "fromEpoch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39936, + "src": "5928:9:63", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "5918:19:63", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5904:33:63" + }, + { + "assignments": [ + 39955 + ], + "declarations": [ + { + "constant": false, + "id": 39955, + "mutability": "mutable", + "name": "out", + "nameLocation": "5975:3:63", + "nodeType": "VariableDeclaration", + "scope": 39989, + "src": "5947:31:63", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_BottomUpCheckpoint_$39332_memory_ptr_$dyn_memory_ptr", + "typeString": "struct BottomUpCheckpoint[]" + }, + "typeName": { + "baseType": { + "id": 39953, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39952, + "name": "BottomUpCheckpoint", + "nameLocations": [ + "5947:18:63" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 39332, + "src": "5947:18:63" + }, + "referencedDeclaration": 39332, + "src": "5947:18:63", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage_ptr", + "typeString": "struct BottomUpCheckpoint" + } + }, + "id": 39954, + "nodeType": "ArrayTypeName", + "src": "5947:20:63", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_BottomUpCheckpoint_$39332_storage_$dyn_storage_ptr", + "typeString": "struct BottomUpCheckpoint[]" + } + }, + "visibility": "internal" + } + ], + "id": 39962, + "initialValue": { + "arguments": [ + { + "id": 39960, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39946, + "src": "6006:4:63", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 39959, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "5981:24:63", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_BottomUpCheckpoint_$39332_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct BottomUpCheckpoint memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 39957, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39956, + "name": "BottomUpCheckpoint", + "nameLocations": [ + "5985:18:63" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 39332, + "src": "5985:18:63" + }, + "referencedDeclaration": 39332, + "src": "5985:18:63", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage_ptr", + "typeString": "struct BottomUpCheckpoint" + } + }, + "id": 39958, + "nodeType": "ArrayTypeName", + "src": "5985:20:63", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_BottomUpCheckpoint_$39332_storage_$dyn_storage_ptr", + "typeString": "struct BottomUpCheckpoint[]" + } + } + }, + "id": 39961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5981:30:63", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_BottomUpCheckpoint_$39332_memory_ptr_$dyn_memory_ptr", + "typeString": "struct BottomUpCheckpoint memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5947:64:63" + }, + { + "body": { + "id": 39985, + "nodeType": "Block", + "src": "6053:130:63", + "statements": [ + { + "expression": { + "id": 39979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 39970, + "name": "out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39955, + "src": "6067:3:63", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_BottomUpCheckpoint_$39332_memory_ptr_$dyn_memory_ptr", + "typeString": "struct BottomUpCheckpoint memory[] memory" + } + }, + "id": 39972, + "indexExpression": { + "id": 39971, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39964, + "src": "6071:1:63", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6067:6:63", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_memory_ptr", + "typeString": "struct BottomUpCheckpoint memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "expression": { + "id": 39973, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39600, + "src": "6076:1:63", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", + "typeString": "struct SubnetActorStorage storage ref" + } + }, + "id": 39974, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6078:20:63", + "memberName": "committedCheckpoints", + "nodeType": "MemberAccess", + "referencedDeclaration": 37808, + "src": "6076:22:63", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$39332_storage_$", + "typeString": "mapping(uint64 => struct BottomUpCheckpoint storage ref)" + } + }, + "id": 39978, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 39977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 39975, + "name": "fromEpoch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39936, + "src": "6099:9:63", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 39976, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39964, + "src": "6111:1:63", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "6099:13:63", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6076:37:63", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage", + "typeString": "struct BottomUpCheckpoint storage ref" + } + }, + "src": "6067:46:63", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_memory_ptr", + "typeString": "struct BottomUpCheckpoint memory" + } + }, + "id": 39980, + "nodeType": "ExpressionStatement", + "src": "6067:46:63" + }, + { + "id": 39984, + "nodeType": "UncheckedBlock", + "src": "6127:46:63", + "statements": [ + { + "expression": { + "id": 39982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6155:3:63", + "subExpression": { + "id": 39981, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39964, + "src": "6155:1:63", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 39983, + "nodeType": "ExpressionStatement", + "src": "6155:3:63" + } + ] + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 39969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 39967, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39964, + "src": "6041:1:63", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 39968, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39946, + "src": "6045:4:63", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "6041:8:63", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 39986, + "initializationExpression": { + "assignments": [ + 39964 + ], + "declarations": [ + { + "constant": false, + "id": 39964, + "mutability": "mutable", + "name": "i", + "nameLocation": "6034:1:63", + "nodeType": "VariableDeclaration", + "scope": 39986, + "src": "6027:8:63", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 39963, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "6027:6:63", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "id": 39966, + "initialValue": { + "hexValue": "30", + "id": 39965, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6038:1:63", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "6027:12:63" + }, + "nodeType": "ForStatement", + "src": "6022:161:63" + }, + { + "expression": { + "id": 39987, + "name": "out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39955, + "src": "6200:3:63", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_BottomUpCheckpoint_$39332_memory_ptr_$dyn_memory_ptr", + "typeString": "struct BottomUpCheckpoint memory[] memory" + } + }, + "functionReturnParameters": 39944, + "id": 39988, + "nodeType": "Return", + "src": "6193:10:63" + } + ] + }, + "documentation": { + "id": 39934, + "nodeType": "StructuredDocumentation", + "src": "5691:57:63", + "text": "@notice returns the list of registered subnets in IPC" + }, + "functionSelector": "ac9c2a6f", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "listBottomUpCheckpoints", + "nameLocation": "5762:23:63", + "parameters": { + "id": 39939, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39936, + "mutability": "mutable", + "name": "fromEpoch", + "nameLocation": "5802:9:63", + "nodeType": "VariableDeclaration", + "scope": 39990, + "src": "5795:16:63", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 39935, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "5795:6:63", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 39938, + "mutability": "mutable", + "name": "toEpoch", + "nameLocation": "5828:7:63", + "nodeType": "VariableDeclaration", + "scope": 39990, + "src": "5821:14:63", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 39937, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "5821:6:63", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "5785:56:63" + }, + "returnParameters": { + "id": 39944, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39943, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 39990, + "src": "5865:27:63", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_BottomUpCheckpoint_$39332_memory_ptr_$dyn_memory_ptr", + "typeString": "struct BottomUpCheckpoint[]" + }, + "typeName": { + "baseType": { + "id": 39941, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 39940, + "name": "BottomUpCheckpoint", + "nameLocations": [ + "5865:18:63" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 39332, + "src": "5865:18:63" + }, + "referencedDeclaration": 39332, + "src": "5865:18:63", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage_ptr", + "typeString": "struct BottomUpCheckpoint" + } + }, + "id": 39942, + "nodeType": "ArrayTypeName", + "src": "5865:20:63", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_BottomUpCheckpoint_$39332_storage_$dyn_storage_ptr", + "typeString": "struct BottomUpCheckpoint[]" + } + }, + "visibility": "internal" + } + ], + "src": "5864:29:63" }, - "scope": 39840, + "scope": 39991, "stateMutability": "view", "virtual": false, "visibility": "external" @@ -6154,15 +7245,15 @@ "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ - 39840 + 39991 ], "name": "SubnetActorGetterFacet", - "nameLocation": "1536:22:62", - "scope": 39841, + "nameLocation": "1536:22:63", + "scope": 39992, "usedErrors": [] } ], "license": "UNLICENSED" }, - "id": 62 + "id": 63 } \ No newline at end of file diff --git a/src/checkpoint/bottomup.rs b/src/checkpoint/bottomup.rs index d470eabc..10b79bfe 100644 --- a/src/checkpoint/bottomup.rs +++ b/src/checkpoint/bottomup.rs @@ -6,10 +6,14 @@ use crate::checkpoint::{CheckpointManager, CheckpointMetadata, CheckpointQuery}; use crate::config::Subnet; use anyhow::{anyhow, Result}; use async_trait::async_trait; +use base64::Engine; use fvm_shared::address::Address; use fvm_shared::clock::ChainEpoch; use ipc_gateway::checkpoint::BatchCrossMsgs; use ipc_sdk::subnet_id::SubnetID; +use num_traits::ToPrimitive; +use serde::ser::SerializeStruct; +use serde::{Serialize, Serializer}; use std::fmt::{Display, Formatter}; /// Native bottom up checkpoint struct independent of chain specific implementations. @@ -180,3 +184,132 @@ impl CheckpointManager for BottomUpManag Ok(true) } } + +// Serialization related + +/// A helper struct to serialize struct to json. +/// +/// Most of the types should have no need to use this struct. But some types that are shared between +/// actor, which are using cbor tuple serialization and json rpc response. We are using this wrapper +/// to handle convert to json instead. +#[derive(Debug)] +struct SerializeToJson(pub T); + +impl Serialize for NativeBottomUpCheckpoint { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + let encoding_optional_bytes = |optional: &Option>| { + if let Some(p) = optional { + base64::engine::general_purpose::STANDARD.encode(p) + } else { + String::from("") + } + }; + + let NativeBottomUpCheckpoint { + source, + proof, + epoch, + prev_check, + children, + cross_msgs, + sig, + } = self; + + let source = source.to_string(); + + let proof = encoding_optional_bytes(proof); + let prev_check = encoding_optional_bytes(prev_check); + + let children = children + .iter() + .map(|c| { + let source = c.source.to_string(); + let checks = c + .checks + .iter() + .map(|bytes| base64::engine::general_purpose::STANDARD.encode(bytes)) + .collect::>(); + serde_json::json!({ + "source": source, + "checks": checks, + }) + }) + .collect::>(); + + let cross_msgs = SerializeToJson(cross_msgs); + + let mut state = serializer.serialize_struct("CheckData", 7)?; + state.serialize_field("source", &source)?; + state.serialize_field("proof", &proof)?; + state.serialize_field("epoch", epoch)?; + state.serialize_field("prev_check", &prev_check)?; + state.serialize_field("children", &children)?; + state.serialize_field("cross_msgs", &cross_msgs)?; + state.serialize_field( + "sig", + &base64::engine::general_purpose::STANDARD.encode(sig), + )?; + + state.end() + } +} + +impl<'a> Serialize for SerializeToJson<&'a BatchCrossMsgs> { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + let BatchCrossMsgs { cross_msgs, fee } = self.0; + + let mut state = serializer.serialize_struct("BatchCrossMsgs", 2)?; + state.serialize_field("fee", fee)?; + + if let Some(cross_msgs) = cross_msgs { + let vs = cross_msgs.iter().map(|c| { + serde_json::json!({ + "from": c.msg.from.to_string().unwrap(), // safe to unwrap + "to": c.msg.to.to_string().unwrap(), // safe to unwrap + "method": c.msg.method, + "params": base64::engine::general_purpose::STANDARD.encode(c.msg.params.bytes()), + "value": c.msg.value.atto().to_u64().unwrap_or_default(), + "nonce": c.msg.nonce, + }) + }) + .collect::>(); + state.serialize_field("cross_msgs", &vs)?; + } else { + state.serialize_field::>("cross_msgs", &vec![])?; + }; + + state.end() + } +} + +#[cfg(test)] +mod tests { + use crate::checkpoint::{NativeBottomUpCheckpoint, NativeChildCheck}; + use ipc_gateway::checkpoint::BatchCrossMsgs; + use ipc_sdk::subnet_id::SubnetID; + + #[test] + fn test_serialization() { + let root = SubnetID::new_root(123); + let cp = NativeBottomUpCheckpoint { + source: root.clone(), + proof: Some(vec![1, 2, 3]), + epoch: 100, + prev_check: Some(vec![2, 3, 4]), + children: vec![NativeChildCheck { + source: root, + checks: vec![vec![1, 2, 3]], + }], + cross_msgs: BatchCrossMsgs::default(), + sig: vec![1, 2, 3], + }; + let v = serde_json::to_string(&cp); + assert_eq!(v.is_ok(), true); + } +} diff --git a/src/lib.rs b/src/lib.rs index c56a6f05..1157ab0e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -11,5 +11,4 @@ pub mod jsonrpc; pub mod lotus; pub mod manager; pub mod sdk; -mod serialization; pub mod server; diff --git a/src/manager/evm/convert/checkpoint.rs b/src/manager/evm/convert/checkpoint.rs index 7ba6da76..0834a52e 100644 --- a/src/manager/evm/convert/checkpoint.rs +++ b/src/manager/evm/convert/checkpoint.rs @@ -3,7 +3,9 @@ use crate::checkpoint::{NativeBottomUpCheckpoint, NativeChildCheck}; use crate::manager::evm::convert::{eth_to_fil_amount, fil_to_eth_amount}; -use crate::manager::evm::manager::{gateway_router_facet, subnet_actor_manager_facet}; +use crate::manager::evm::manager::{ + gateway_router_facet, subnet_actor_getter_facet, subnet_actor_manager_facet, +}; use anyhow::anyhow; use fvm_shared::clock::ChainEpoch; use ipc_gateway::checkpoint::BatchCrossMsgs; @@ -25,127 +27,133 @@ impl TryFrom for gateway_router_facet::TopDownCheckpoint { } } -// Native child check -impl TryFrom for subnet_actor_manager_facet::ChildCheck { - type Error = anyhow::Error; - - fn try_from(value: NativeChildCheck) -> Result { - let vec_to_array = |v: Vec| { - let bytes = if v.len() > 32 { - log::warn!("child check more than 32 bytes, taking only first 32 bytes"); - &v[0..32] - } else { - &v - }; - - let mut array = [0u8; 32]; - array.copy_from_slice(bytes); - - array - }; - let checks: Vec<[u8; 32]> = value - .checks - .into_iter() - .map(vec_to_array) - .collect::>(); - Ok(Self { - source: subnet_actor_manager_facet::SubnetID::try_from(&value.source)?, - checks, - }) - } -} - -impl TryFrom for NativeChildCheck { - type Error = anyhow::Error; - - fn try_from(value: subnet_actor_manager_facet::ChildCheck) -> Result { - let checks = value.checks.into_iter().map(|v| v.to_vec()).collect(); - Ok(Self { - source: SubnetID::try_from(value.source)?, - checks, - }) - } -} - -impl TryFrom for NativeBottomUpCheckpoint { - type Error = anyhow::Error; - - fn try_from( - value: subnet_actor_manager_facet::BottomUpCheckpoint, - ) -> Result { - let children = value - .children - .into_iter() - .map(NativeChildCheck::try_from) - .collect::>()?; - - let cross_msgs = value - .cross_msgs - .into_iter() - .map(|i| { - CrossMsg::try_from(i).map_err(|e| anyhow!("cannot convert cross msg due to: {e:}")) - }) - .collect::, _>>()?; - - let b = NativeBottomUpCheckpoint { - source: SubnetID::try_from(value.source)?, - proof: Some(value.proof.to_vec()), - epoch: value.epoch as ChainEpoch, - prev_check: Some(value.prev_hash.to_vec()), - children, - cross_msgs: BatchCrossMsgs { - cross_msgs: Some(cross_msgs), - fee: eth_to_fil_amount(&value.fee)?, - }, - sig: vec![], - }; - Ok(b) - } -} +/// Derive the conversion for bottom up checkpoint +macro_rules! bottom_up_checkpoint { + ($module:ident) => { + impl TryFrom for $module::ChildCheck { + type Error = anyhow::Error; + + fn try_from(value: NativeChildCheck) -> Result { + let vec_to_array = |v: Vec| { + let bytes = if v.len() > 32 { + log::warn!("child check more than 32 bytes, taking only first 32 bytes"); + &v[0..32] + } else { + &v + }; + + let mut array = [0u8; 32]; + array.copy_from_slice(bytes); + + array + }; + let checks: Vec<[u8; 32]> = value + .checks + .into_iter() + .map(vec_to_array) + .collect::>(); + Ok(Self { + source: $module::SubnetID::try_from(&value.source)?, + checks, + }) + } + } -impl TryFrom for subnet_actor_manager_facet::BottomUpCheckpoint { - type Error = anyhow::Error; + impl TryFrom<$module::ChildCheck> for NativeChildCheck { + type Error = anyhow::Error; - fn try_from(value: NativeBottomUpCheckpoint) -> Result { - let cross_msgs = value - .cross_msgs - .cross_msgs - .unwrap_or_default() - .into_iter() - .map(|i| { - subnet_actor_manager_facet::CrossMsg::try_from(i) - .map_err(|e| anyhow!("cannot convert cross msg due to: {e:}")) - }) - .collect::, _>>()?; - let children = value - .children - .into_iter() - .map(|i| { - subnet_actor_manager_facet::ChildCheck::try_from(i) - .map_err(|e| anyhow!("cannot convert child check due to: {e:}")) - }) - .collect::, _>>()?; - - let mut prev_hash = [0u8; 32]; - if let Some(v) = &value.prev_check { - prev_hash.copy_from_slice(v); + fn try_from(value: $module::ChildCheck) -> Result { + let checks = value.checks.into_iter().map(|v| v.to_vec()).collect(); + Ok(Self { + source: SubnetID::try_from(value.source)?, + checks, + }) + } } - let proof = if let Some(v) = value.proof { - ethers::core::types::Bytes::from(v) - } else { - ethers::core::types::Bytes::default() - }; + impl TryFrom<$module::BottomUpCheckpoint> for NativeBottomUpCheckpoint { + type Error = anyhow::Error; + + fn try_from(value: $module::BottomUpCheckpoint) -> Result { + let children = value + .children + .into_iter() + .map(NativeChildCheck::try_from) + .collect::>()?; + + let cross_msgs = value + .cross_msgs + .into_iter() + .map(|i| { + CrossMsg::try_from(i) + .map_err(|e| anyhow!("cannot convert cross msg due to: {e:}")) + }) + .collect::, _>>()?; + + let b = NativeBottomUpCheckpoint { + source: SubnetID::try_from(value.source)?, + proof: Some(value.proof.to_vec()), + epoch: value.epoch as ChainEpoch, + prev_check: Some(value.prev_hash.to_vec()), + children, + cross_msgs: BatchCrossMsgs { + cross_msgs: Some(cross_msgs), + fee: eth_to_fil_amount(&value.fee)?, + }, + sig: vec![], + }; + Ok(b) + } + } - let b = subnet_actor_manager_facet::BottomUpCheckpoint { - source: subnet_actor_manager_facet::SubnetID::try_from(&value.source)?, - epoch: value.epoch as u64, - fee: fil_to_eth_amount(&value.cross_msgs.fee)?, - cross_msgs, - children, - prev_hash, - proof, - }; - Ok(b) - } + impl TryFrom for $module::BottomUpCheckpoint { + type Error = anyhow::Error; + + fn try_from(value: NativeBottomUpCheckpoint) -> Result { + let cross_msgs = value + .cross_msgs + .cross_msgs + .unwrap_or_default() + .into_iter() + .map(|i| { + $module::CrossMsg::try_from(i) + .map_err(|e| anyhow!("cannot convert cross msg due to: {e:}")) + }) + .collect::, _>>()?; + let children = value + .children + .into_iter() + .map(|i| { + $module::ChildCheck::try_from(i) + .map_err(|e| anyhow!("cannot convert child check due to: {e:}")) + }) + .collect::, _>>()?; + + let mut prev_hash = [0u8; 32]; + if let Some(v) = &value.prev_check { + prev_hash.copy_from_slice(v); + } + + let proof = if let Some(v) = value.proof { + ethers::core::types::Bytes::from(v) + } else { + ethers::core::types::Bytes::default() + }; + + let b = $module::BottomUpCheckpoint { + source: $module::SubnetID::try_from(&value.source)?, + epoch: value.epoch as u64, + fee: fil_to_eth_amount(&value.cross_msgs.fee)?, + cross_msgs, + children, + prev_hash, + proof, + }; + Ok(b) + } + } + }; } + +bottom_up_checkpoint!(subnet_actor_manager_facet); +bottom_up_checkpoint!(subnet_actor_getter_facet); diff --git a/src/manager/evm/convert/mod.rs b/src/manager/evm/convert/mod.rs index 1cdaea49..5dff1878 100644 --- a/src/manager/evm/convert/mod.rs +++ b/src/manager/evm/convert/mod.rs @@ -178,6 +178,7 @@ base_type_conversion!(subnet_actor_manager_facet); base_type_conversion!(gateway_getter_facet); cross_msg_types!(subnet_actor_manager_facet); +cross_msg_types!(subnet_actor_getter_facet); cross_msg_types!(gateway_getter_facet); cross_msg_types!(gateway_router_facet); diff --git a/src/manager/evm/manager.rs b/src/manager/evm/manager.rs index f761b4a3..beedd036 100644 --- a/src/manager/evm/manager.rs +++ b/src/manager/evm/manager.rs @@ -18,7 +18,7 @@ use ethers::types::Eip1559TransactionRequest; use fvm_shared::address::Payload; use fvm_shared::clock::ChainEpoch; use fvm_shared::{address::Address, econ::TokenAmount}; -use ipc_gateway::{BottomUpCheckpoint, TopDownCheckpoint}; +use ipc_gateway::TopDownCheckpoint; use ipc_identity::{EvmKeyStore, PersistentKeyStore}; use ipc_sdk::subnet_id::SubnetID; use ipc_subnet_actor::ConstructParams; @@ -342,17 +342,36 @@ impl SubnetManager for EthSubnetManager { Ok(TokenAmount::from_atto(balance.as_u128())) } - async fn last_topdown_executed(&self, _gateway_addr: &Address) -> Result { - todo!() + async fn last_topdown_executed(&self, gateway_addr: &Address) -> Result { + self.ensure_same_gateway(gateway_addr)?; + + let gateway_contract = + GatewayGetterFacet::new(self.ipc_contract_info.gateway_addr, Arc::new(signer)); + let epoch = gateway_contract.last_voting_executed_epoch().call().await?; + + Ok(epoch as ChainEpoch) } async fn list_checkpoints( &self, - _subnet_id: SubnetID, - _from_epoch: ChainEpoch, - _to_epoch: ChainEpoch, - ) -> Result> { - todo!() + subnet_id: SubnetID, + from_epoch: ChainEpoch, + to_epoch: ChainEpoch, + ) -> Result> { + let address = contract_address_from_subnet(&subnet_id)?; + log::info!("listing checkpoints in evm subnet: {subnet_id} at contract: {address}"); + + let contract = + SubnetActorGetterFacet::new(address, Arc::new(self.ipc_contract_info.provider.clone())); + let checkpoints = contract + .list_bottom_up_checkpoints(from_epoch as u64, to_epoch as u64) + .call() + .await? + .into_iter() + .map(NativeBottomUpCheckpoint::try_from) + .collect::>>()?; + + Ok(checkpoints) } async fn get_validator_set( diff --git a/src/manager/fvm/mod.rs b/src/manager/fvm/mod.rs index 948ca6bb..37244a11 100644 --- a/src/manager/fvm/mod.rs +++ b/src/manager/fvm/mod.rs @@ -344,11 +344,14 @@ impl SubnetManager for LotusSubnetManager { subnet_id: SubnetID, from_epoch: ChainEpoch, to_epoch: ChainEpoch, - ) -> Result> { + ) -> Result> { let checkpoints = self .lotus_client .ipc_list_checkpoints(subnet_id, from_epoch, to_epoch) - .await?; + .await? + .into_iter() + .map(NativeBottomUpCheckpoint::try_from) + .collect::>>()?; Ok(checkpoints) } diff --git a/src/manager/subnet.rs b/src/manager/subnet.rs index ffe145f3..d856c7ca 100644 --- a/src/manager/subnet.rs +++ b/src/manager/subnet.rs @@ -3,12 +3,12 @@ ///! IPC node-specific traits. use std::collections::HashMap; +use crate::checkpoint::NativeBottomUpCheckpoint; use anyhow::Result; use async_trait::async_trait; use cid::Cid; use fvm_shared::clock::ChainEpoch; use fvm_shared::{address::Address, econ::TokenAmount}; -use ipc_gateway::BottomUpCheckpoint; use ipc_sdk::subnet_id::SubnetID; use ipc_subnet_actor::ConstructParams; @@ -113,7 +113,7 @@ pub trait SubnetManager: Send + Sync { subnet_id: SubnetID, from_epoch: ChainEpoch, to_epoch: ChainEpoch, - ) -> Result>; + ) -> Result>; /// Returns the validator set async fn get_validator_set( diff --git a/src/serialization/checkpoint.rs b/src/serialization/checkpoint.rs deleted file mode 100644 index 13866bad..00000000 --- a/src/serialization/checkpoint.rs +++ /dev/null @@ -1,119 +0,0 @@ -// Copyright 2022-2023 Protocol Labs -// SPDX-License-Identifier: MIT -//! Json serialization of checkpoints - -use crate::serialization::SerializeToJson; -use base64::Engine; -use ipc_gateway::checkpoint::{BatchCrossMsgs, CheckData}; -use ipc_gateway::BottomUpCheckpoint; -use num_traits::ToPrimitive; -use serde::ser::SerializeStruct; -use serde::{Serialize, Serializer}; - -impl Serialize for SerializeToJson { - fn serialize(&self, serializer: S) -> Result - where - S: Serializer, - { - let BottomUpCheckpoint { data, sig } = &self.0; - - let data = SerializeToJson(data); - let sig = base64::engine::general_purpose::STANDARD.encode(sig); - - let mut state = serializer.serialize_struct("BottomUpCheckpoint", 2)?; - state.serialize_field("data", &data)?; - state.serialize_field("sig", &sig)?; - state.end() - } -} - -impl<'a> Serialize for SerializeToJson<&'a CheckData> { - fn serialize(&self, serializer: S) -> Result - where - S: Serializer, - { - let CheckData { - source, - proof, - epoch, - prev_check, - children, - cross_msgs, - } = self.0; - - let source = source.to_string(); - let proof = base64::engine::general_purpose::STANDARD.encode(proof); - let prev_check = prev_check.to_string(); - let children = children - .iter() - .map(|c| { - let source = c.source.to_string(); - let checks = c - .checks - .iter() - .map(|cid| cid.to_string()) - .collect::>(); - serde_json::json!({ - "source": source, - "checks": checks, - }) - }) - .collect::>(); - let cross_msgs = SerializeToJson(cross_msgs); - - let mut state = serializer.serialize_struct("CheckData", 6)?; - state.serialize_field("source", &source)?; - state.serialize_field("proof", &proof)?; - state.serialize_field("epoch", epoch)?; - state.serialize_field("prev_check", &prev_check)?; - state.serialize_field("children", &children)?; - state.serialize_field("cross_msgs", &cross_msgs)?; - - state.end() - } -} - -impl<'a> Serialize for SerializeToJson<&'a BatchCrossMsgs> { - fn serialize(&self, serializer: S) -> Result - where - S: Serializer, - { - let BatchCrossMsgs { cross_msgs, fee } = self.0; - - let mut state = serializer.serialize_struct("BatchCrossMsgs", 2)?; - state.serialize_field("fee", fee)?; - - if let Some(cross_msgs) = cross_msgs { - let vs = cross_msgs.iter().map(|c| { - serde_json::json!({ - "from": c.msg.from.to_string().unwrap(), // safe to unwrap - "to": c.msg.to.to_string().unwrap(), // safe to unwrap - "method": c.msg.method, - "params": base64::engine::general_purpose::STANDARD.encode(c.msg.params.bytes()), - "value": c.msg.value.atto().to_u64().unwrap_or_default(), - "nonce": c.msg.nonce, - }) - }) - .collect::>(); - state.serialize_field("cross_msgs", &vs)?; - } else { - state.serialize_field::>("cross_msgs", &vec![])?; - }; - - state.end() - } -} - -#[cfg(test)] -mod tests { - use crate::serialization::SerializeToJson; - use ipc_gateway::{BottomUpCheckpoint, SubnetID}; - - #[test] - fn test_serialization() { - let root = SubnetID::new_root(123); - let cp = BottomUpCheckpoint::new(root, 10); - let v = serde_json::to_string(&SerializeToJson(cp)).unwrap(); - println!("{v:}"); - } -} diff --git a/src/serialization/mod.rs b/src/serialization/mod.rs deleted file mode 100644 index fa2d73e3..00000000 --- a/src/serialization/mod.rs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2022-2023 Protocol Labs -// SPDX-License-Identifier: MIT -// Copyright 2022-2023 Protocol Labs -//! Handles the serialization of different types between actor cbor tuple serialization and json rpc -//! json serialization. - -mod checkpoint; - -/// A helper struct to serialize struct to json. -/// -/// Most of the types should have no need to use this struct. But some types that are shared between -/// actor, which are using cbor tuple serialization and json rpc response. We are using this wrapper -/// to handle convert to json instead. -#[derive(Debug)] -pub struct SerializeToJson(pub T); diff --git a/src/server/handlers/manager/list_checkpoints.rs b/src/server/handlers/manager/list_checkpoints.rs index 886915e6..45b43ff1 100644 --- a/src/server/handlers/manager/list_checkpoints.rs +++ b/src/server/handlers/manager/list_checkpoints.rs @@ -5,14 +5,13 @@ use std::str::FromStr; use std::sync::Arc; +use crate::checkpoint::NativeBottomUpCheckpoint; use anyhow::anyhow; use async_trait::async_trait; use fvm_shared::clock::ChainEpoch; -use ipc_gateway::BottomUpCheckpoint; use ipc_sdk::subnet_id::SubnetID; use serde::{Deserialize, Serialize}; -use crate::serialization::SerializeToJson; use crate::server::handlers::manager::check_subnet; use crate::server::handlers::manager::subnet::SubnetManagerPool; use crate::server::JsonRPCRequestHandler; @@ -38,7 +37,7 @@ impl ListBottomUpCheckpointsHandler { #[async_trait] impl JsonRPCRequestHandler for ListBottomUpCheckpointsHandler { type Request = ListBottomUpCheckpointsParams; - type Response = Vec>; + type Response = Vec; async fn handle(&self, request: Self::Request) -> anyhow::Result { let child_subnet_id = SubnetID::from_str(request.subnet_id.as_str())?; @@ -57,10 +56,7 @@ impl JsonRPCRequestHandler for ListBottomUpCheckpointsHandler { let checkpoints = conn .manager() .list_checkpoints(child_subnet_id, request.from_epoch, request.to_epoch) - .await? - .into_iter() - .map(SerializeToJson) - .collect(); + .await?; Ok(checkpoints) } From ba5ecf33e900ed2161735796e329218955597599 Mon Sep 17 00:00:00 2001 From: cryptoAtwill Date: Thu, 27 Jul 2023 16:20:24 +0800 Subject: [PATCH 11/17] fix error --- src/manager/evm/manager.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/manager/evm/manager.rs b/src/manager/evm/manager.rs index beedd036..ae91f376 100644 --- a/src/manager/evm/manager.rs +++ b/src/manager/evm/manager.rs @@ -345,8 +345,10 @@ impl SubnetManager for EthSubnetManager { async fn last_topdown_executed(&self, gateway_addr: &Address) -> Result { self.ensure_same_gateway(gateway_addr)?; - let gateway_contract = - GatewayGetterFacet::new(self.ipc_contract_info.gateway_addr, Arc::new(signer)); + let gateway_contract = GatewayGetterFacet::new( + self.ipc_contract_info.gateway_addr, + Arc::new(self.ipc_contract_info.provider.clone()), + ); let epoch = gateway_contract.last_voting_executed_epoch().call().await?; Ok(epoch as ChainEpoch) From d850c9d2ca3057ee5525dba60a087f1024eab8bd Mon Sep 17 00:00:00 2001 From: cryptoAtwill Date: Thu, 27 Jul 2023 16:45:32 +0800 Subject: [PATCH 12/17] lint --- src/checkpoint/bottomup.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/checkpoint/bottomup.rs b/src/checkpoint/bottomup.rs index 10b79bfe..08d1ddbd 100644 --- a/src/checkpoint/bottomup.rs +++ b/src/checkpoint/bottomup.rs @@ -310,6 +310,6 @@ mod tests { sig: vec![1, 2, 3], }; let v = serde_json::to_string(&cp); - assert_eq!(v.is_ok(), true); + assert!(v.is_ok()); } } From 327db1c93efd03affb94381905b375401e4377e6 Mon Sep 17 00:00:00 2001 From: cryptoAtwill Date: Thu, 27 Jul 2023 17:13:39 +0800 Subject: [PATCH 13/17] more logs --- src/manager/evm/manager.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/manager/evm/manager.rs b/src/manager/evm/manager.rs index ae91f376..f06e8de0 100644 --- a/src/manager/evm/manager.rs +++ b/src/manager/evm/manager.rs @@ -214,6 +214,8 @@ impl SubnetManager for EthSubnetManager { let mut s = HashMap::new(); let evm_subnets = gateway_contract.list_subnets().call().await?; + log::debug!("raw subnet: {evm_subnets:?}"); + for subnet in evm_subnets { let info = SubnetInfo::try_from(subnet)?; s.insert(info.id.clone(), info); From aad0e337d14df92a4fa7e59cf89f79f4e46e8821 Mon Sep 17 00:00:00 2001 From: cryptoAtwill Date: Thu, 27 Jul 2023 18:29:07 +0800 Subject: [PATCH 14/17] update abi --- contracts/GatewayGetterFacet.json | 3862 +++++++------- contracts/GatewayManagerFacet.json | 3692 ++++++------- contracts/GatewayRouterFacet.json | 6584 ++++++++++++------------ contracts/SubnetActorGetterFacet.json | 2 +- contracts/SubnetActorManagerFacet.json | 5588 ++++++++++---------- 5 files changed, 9928 insertions(+), 9800 deletions(-) diff --git a/contracts/GatewayGetterFacet.json b/contracts/GatewayGetterFacet.json index c57e2629..cf2aa94f 100644 --- a/contracts/GatewayGetterFacet.json +++ b/contracts/GatewayGetterFacet.json @@ -623,21 +623,6 @@ }, { "components": [ - { - "internalType": "enum Status", - "name": "status", - "type": "uint8" - }, - { - "internalType": "uint64", - "name": "topDownNonce", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "appliedBottomUpNonce", - "type": "uint64" - }, { "internalType": "uint256", "name": "stake", @@ -653,6 +638,21 @@ "name": "circSupply", "type": "uint256" }, + { + "internalType": "uint64", + "name": "topDownNonce", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "appliedBottomUpNonce", + "type": "uint64" + }, + { + "internalType": "enum Status", + "name": "status", + "type": "uint8" + }, { "components": [ { @@ -1385,21 +1385,6 @@ "outputs": [ { "components": [ - { - "internalType": "enum Status", - "name": "status", - "type": "uint8" - }, - { - "internalType": "uint64", - "name": "topDownNonce", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "appliedBottomUpNonce", - "type": "uint64" - }, { "internalType": "uint256", "name": "stake", @@ -1415,6 +1400,21 @@ "name": "circSupply", "type": "uint256" }, + { + "internalType": "uint64", + "name": "topDownNonce", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "appliedBottomUpNonce", + "type": "uint64" + }, + { + "internalType": "enum Status", + "name": "status", + "type": "uint8" + }, { "components": [ { @@ -1922,21 +1922,6 @@ "outputs": [ { "components": [ - { - "internalType": "enum Status", - "name": "status", - "type": "uint8" - }, - { - "internalType": "uint64", - "name": "topDownNonce", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "appliedBottomUpNonce", - "type": "uint64" - }, { "internalType": "uint256", "name": "stake", @@ -1952,6 +1937,21 @@ "name": "circSupply", "type": "uint256" }, + { + "internalType": "uint64", + "name": "topDownNonce", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "appliedBottomUpNonce", + "type": "uint64" + }, + { + "internalType": "enum Status", + "name": "status", + "type": "uint8" + }, { "components": [ { @@ -2334,13 +2334,13 @@ } ], "bytecode": { - "object": "0x608060405234801561001057600080fd5b50615189806100206000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80635d029685116100de57806394074b03116100975780639e530b57116100715780639e530b5714610447578063a2b6715814610479578063ad81e2441461048a578063c66c66a11461049257600080fd5b806394074b031461041757806396c82e571461042c5780639d3070b51461043457600080fd5b80635d0296851461034757806366d7bbbc1461035c5780636cb2ecee146103ac5780637d9740f4146103cd5780638789f83b146103de5780638cfd78e7146103f657600080fd5b8063158ef93e1161014b578063375b3c0a11610125578063375b3c0a146102c657806341b6a2e8146102ce57806351392fc0146102df578063599c7bd11461031657600080fd5b8063158ef93e1461027d57806324729425146102945780632cc14ea2146102a657600080fd5b806302e30f9a1461019357806306c46853146101bc5780630ea746f2146101e157806310d500e114610201578063133f74ea14610233578063135493151461025d575b600080fd5b6101a66101a1366004614640565b6104b3565b6040516101b39190614a5f565b60405180910390f35b6006546001600160401b03165b6040516001600160401b0390911681526020016101b3565b6101f46101ef366004614be3565b611005565b6040516101b39190614c27565b6102096113c2565b604080516001600160401b03948516815292841660208401529216918101919091526060016101b3565b610246610241366004614c3a565b611421565b6040805192151583526020830191909152016101b3565b61027061026b366004614c6d565b6114ba565b6040516101b39190614cba565b60115460ff165b60405190151581526020016101b3565b600b545b6040519081526020016101b3565b6102b96102b4366004614c3a565b6119bb565b6040516101b39190614ccd565b600354610298565b600a546001600160401b03166101c9565b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27054600160401b90046001600160401b03166101c9565b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27054600160801b900460ff166101c9565b61034f612044565b6040516101b39190614ce0565b61028461036a366004614d42565b6001600160401b03821660009081526012602090815260408083208054845260030182528083206001600160a01b038516845290915290205460ff1692915050565b6103bf6103ba366004614c3a565b612c43565b6040516101b3929190614d6c565b6008546001600160401b03166101c9565b600a54600160401b90046001600160401b03166101c9565b610409610404366004614640565b613347565b6040516101b3929190614d8f565b61041f6136d2565b6040516101b39190614db3565b600c54610298565b610298610442366004614dc6565b613761565b61045a610455366004614dfa565b613779565b6040805192151583526001600160401b039091166020830152016101b3565b6002546001600160401b03166101c9565b6101c96137bb565b6104a56104a0366004614dfa565b6137ee565b6040516101b3929190614e2e565b6104bb6144d9565b60008281526004602052604090819020815161012081019092528054829060ff1660058111156104ed576104ed614659565b60058111156104fe576104fe614659565b815281546001600160401b0361010082048116602080850191909152600160481b90920481166040808501919091526001850154606085015260028501546080850152600385015460a085015280518082018252600486018054909316815260058601805483518187028101870190945280845260c09096019591948581019392908301828280156105b957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161059b575b50505091909252505050815260408051610120810182526006840180546001600160401b031660e083019081526007860180548551602082810282018101909752818152968601969495939486948693610100870193909183018282801561064a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161062c575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015610a545760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561075b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161073d575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061079590614e49565b80601f01602080910402602001604051908101604052809291908181526020018280546107c190614e49565b801561080e5780601f106107e35761010080835404028352916020019161080e565b820191906000526020600020905b8154815290600101906020018083116107f157829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561089f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610881575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906108d990614e49565b80601f016020809104026020016040519081016040528092919081815260200182805461090590614e49565b80156109525780601f1061092757610100808354040283529160200191610952565b820191906000526020600020905b81548152906001019060200180831161093557829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916109ad90614e49565b80601f01602080910402602001604051908101604052809291908181526020018280546109d990614e49565b8015610a265780601f106109fb57610100808354040283529160200191610a26565b820191906000526020600020905b815481529060010190602001808311610a0957829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016106b5565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015610b8b576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015610b1757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610af9575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610b7357602002820191906000526020600020905b815481526020019060010190808311610b5f575b50505050508152505081526020019060010190610a81565b50505050815260200160068201548152602001600782018054610bad90614e49565b80601f0160208091040260200160405190810160405280929190818152602001828054610bd990614e49565b8015610c265780601f10610bfb57610100808354040283529160200191610c26565b820191906000526020600020905b815481529060010190602001808311610c0957829003601f168201915b5050505050815250508152602001600e8201805480602002602001604051908101604052809291908181526020016000905b82821015610ff75760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015610cfe57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ce0575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610d3890614e49565b80601f0160208091040260200160405190810160405280929190818152602001828054610d6490614e49565b8015610db15780601f10610d8657610100808354040283529160200191610db1565b820191906000526020600020905b815481529060010190602001808311610d9457829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015610e4257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e24575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610e7c90614e49565b80601f0160208091040260200160405190810160405280929190818152602001828054610ea890614e49565b8015610ef55780601f10610eca57610100808354040283529160200191610ef5565b820191906000526020600020905b815481529060010190602001808311610ed857829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191610f5090614e49565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7c90614e49565b8015610fc95780601f10610f9e57610100808354040283529160200191610fc9565b820191906000526020600020905b815481529060010190602001808311610fac57829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101610c58565b505050915250909392505050565b61100d61453b565b600061101884614346565b91505080600e01838154811061103057611030614e7d565b60009182526020918290206040805161018081018252600c90930290910180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d019390918301828280156110cf57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116110b1575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061110990614e49565b80601f016020809104026020016040519081016040528092919081815260200182805461113590614e49565b80156111825780601f1061115757610100808354040283529160200191611182565b820191906000526020600020905b81548152906001019060200180831161116557829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561121357602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116111f5575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061124d90614e49565b80601f016020809104026020016040519081016040528092919081815260200182805461127990614e49565b80156112c65780601f1061129b576101008083540402835291602001916112c6565b820191906000526020600020905b8154815290600101906020018083116112a957829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161132190614e49565b80601f016020809104026020016040519081016040528092919081815260200182805461134d90614e49565b801561139a5780601f1061136f5761010080835404028352916020019161139a565b820191906000526020600020905b81548152906001019060200180831161137d57829003601f168201915b505050919092525050508152600b919091015460ff1615156020909101529150505b92915050565b60008060006114167f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27154600160401b81046001600160401b0390811692600160801b8304821692600160c01b900490911690565b925092509250909192565b60008060008061143085612c43565b6040516339aa47fb60e01b81529193509150829073__$1cd67d4dc9e627f0bec7928aa480e7d951$__906339aa47fb9061146e90859060040161501a565b602060405180830381865af415801561148b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114af91906150b7565b935093505050915091565b60606000806114d06114cb866150d0565b614346565b915091508161151457604080516000808252602082019092529061150a565b6114f761453b565b8152602001906001900390816114ef5790505b50925050506113bc565b600e8101546001600160401b03851681811061156757604080516000808252602082019092529061155b565b61154861453b565b8152602001906001900390816115405790505b509450505050506113bc565b600061157382846150f2565b90506000816001600160401b0381111561158f5761158f614a79565b6040519080825280602002602001820160405280156115c857816020015b6115b561453b565b8152602001906001900390816115ad5790505b50905060005b828110156119ae57600e86016115e48583615105565b815481106115f4576115f4614e7d565b60009182526020918290206040805161018081018252600c90930290910180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561169357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611675575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906116cd90614e49565b80601f01602080910402602001604051908101604052809291908181526020018280546116f990614e49565b80156117465780601f1061171b57610100808354040283529160200191611746565b820191906000526020600020905b81548152906001019060200180831161172957829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156117d757602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116117b9575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061181190614e49565b80601f016020809104026020016040519081016040528092919081815260200182805461183d90614e49565b801561188a5780601f1061185f5761010080835404028352916020019161188a565b820191906000526020600020905b81548152906001019060200180831161186d57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916118e590614e49565b80601f016020809104026020016040519081016040528092919081815260200182805461191190614e49565b801561195e5780601f106119335761010080835404028352916020019161195e565b820191906000526020600020905b81548152906001019060200180831161194157829003601f168201915b505050919092525050508152600b919091015460ff161515602090910152825183908390811061199057611990614e7d565b602002602001018190525080806119a690615118565b9150506115ce565b5098975050505050505050565b6119c361455b565b6001600160401b03808316600090815260096020908152604091829020825161012081018452815490941660e0850190815260018201805485518186028101860190965280865292948694929386936101008701939190830182828015611a5357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611a35575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015611e5d5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015611b6457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611b46575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190611b9e90614e49565b80601f0160208091040260200160405190810160405280929190818152602001828054611bca90614e49565b8015611c175780601f10611bec57610100808354040283529160200191611c17565b820191906000526020600020905b815481529060010190602001808311611bfa57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015611ca857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611c8a575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190611ce290614e49565b80601f0160208091040260200160405190810160405280929190818152602001828054611d0e90614e49565b8015611d5b5780601f10611d3057610100808354040283529160200191611d5b565b820191906000526020600020905b815481529060010190602001808311611d3e57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191611db690614e49565b80601f0160208091040260200160405190810160405280929190818152602001828054611de290614e49565b8015611e2f5780601f10611e0457610100808354040283529160200191611e2f565b820191906000526020600020905b815481529060010190602001808311611e1257829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101611abe565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015611f94576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015611f2057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611f02575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015611f7c57602002820191906000526020600020905b815481526020019060010190808311611f68575b50505050508152505081526020019060010190611e8a565b50505050815260200160068201548152602001600782018054611fb690614e49565b80601f0160208091040260200160405190810160405280929190818152602001828054611fe290614e49565b801561202f5780601f106120045761010080835404028352916020019161202f565b820191906000526020600020905b81548152906001019060200180831161201257829003601f168201915b5050505050815250509050919050565b905090565b6005546060906000816001600160401b0381111561206457612064614a79565b60405190808252806020026020018201604052801561209d57816020015b61208a6144d9565b8152602001906001900390816120825790505b50905060005b82811015612c3c5760008060050182815481106120c2576120c2614e7d565b6000918252602080832090910154808352600490915260409182902082516101208101909352805491935090829060ff16600581111561210457612104614659565b600581111561211557612115614659565b815281546001600160401b0361010082048116602080850191909152600160481b90920481166040808501919091526001850154606085015260028501546080850152600385015460a085015280518082018252600486018054909316815260058601805483518187028101870190945280845260c09096019591948581019392908301828280156121d057602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116121b2575b50505091909252505050815260408051610120810182526006840180546001600160401b031660e083019081526007860180548551602082810282018101909752818152968601969495939486948693610100870193909183018282801561226157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612243575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b8282101561266b5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561237257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612354575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906123ac90614e49565b80601f01602080910402602001604051908101604052809291908181526020018280546123d890614e49565b80156124255780601f106123fa57610100808354040283529160200191612425565b820191906000526020600020905b81548152906001019060200180831161240857829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156124b657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612498575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906124f090614e49565b80601f016020809104026020016040519081016040528092919081815260200182805461251c90614e49565b80156125695780601f1061253e57610100808354040283529160200191612569565b820191906000526020600020905b81548152906001019060200180831161254c57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916125c490614e49565b80601f01602080910402602001604051908101604052809291908181526020018280546125f090614e49565b801561263d5780601f106126125761010080835404028352916020019161263d565b820191906000526020600020905b81548152906001019060200180831161262057829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016122cc565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b828210156127a2576000848152602090819020604080516080810182526003860290920180546001600160401b03168383019081526001820180548451818802810188019095528085529495929486949293869360608701939092909183018282801561272e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612710575b50505050508152505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561278a57602002820191906000526020600020905b815481526020019060010190808311612776575b50505050508152505081526020019060010190612698565b505050508152602001600682015481526020016007820180546127c490614e49565b80601f01602080910402602001604051908101604052809291908181526020018280546127f090614e49565b801561283d5780601f106128125761010080835404028352916020019161283d565b820191906000526020600020905b81548152906001019060200180831161282057829003601f168201915b5050505050815250508152602001600e8201805480602002602001604051908101604052809291908181526020016000905b82821015612c0e5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561291557602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116128f7575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061294f90614e49565b80601f016020809104026020016040519081016040528092919081815260200182805461297b90614e49565b80156129c85780601f1061299d576101008083540402835291602001916129c8565b820191906000526020600020905b8154815290600101906020018083116129ab57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015612a5957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612a3b575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190612a9390614e49565b80601f0160208091040260200160405190810160405280929190818152602001828054612abf90614e49565b8015612b0c5780601f10612ae157610100808354040283529160200191612b0c565b820191906000526020600020905b815481529060010190602001808311612aef57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191612b6790614e49565b80601f0160208091040260200160405190810160405280929190818152602001828054612b9390614e49565b8015612be05780601f10612bb557610100808354040283529160200191612be0565b820191906000526020600020905b815481529060010190602001808311612bc357829003601f168201915b505050919092525050508152600b919091015460ff161515602091820152908252600192909201910161286f565b5050505081525050838381518110612c2857612c28614e7d565b6020908102919091010152506001016120a3565b5092915050565b6000612c4d61455b565b6001600160401b03808416600090815260096020908152604091829020825161012081018452815490941660e0850190815260018201805485518186028101860190965280865292948694929386936101008701939190830182828015612cdd57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612cbf575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156130e75760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015612dee57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612dd0575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190612e2890614e49565b80601f0160208091040260200160405190810160405280929190818152602001828054612e5490614e49565b8015612ea15780601f10612e7657610100808354040283529160200191612ea1565b820191906000526020600020905b815481529060010190602001808311612e8457829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015612f3257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f14575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190612f6c90614e49565b80601f0160208091040260200160405190810160405280929190818152602001828054612f9890614e49565b8015612fe55780601f10612fba57610100808354040283529160200191612fe5565b820191906000526020600020905b815481529060010190602001808311612fc857829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161304090614e49565b80601f016020809104026020016040519081016040528092919081815260200182805461306c90614e49565b80156130b95780601f1061308e576101008083540402835291602001916130b9565b820191906000526020600020905b81548152906001019060200180831161309c57829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101612d48565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b8282101561321e576000848152602090819020604080516080810182526003860290920180546001600160401b0316838301908152600182018054845181880281018801909552808552949592948694929386936060870193909290918301828280156131aa57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161318c575b50505050508152505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561320657602002820191906000526020600020905b8154815260200190600101908083116131f2575b50505050508152505081526020019060010190613114565b5050505081526020016006820154815260200160078201805461324090614e49565b80601f016020809104026020016040519081016040528092919081815260200182805461326c90614e49565b80156132b95780601f1061328e576101008083540402835291602001916132b9565b820191906000526020600020905b81548152906001019060200180831161329c57829003601f168201915b5050509190925250508151604051630c133d1360e31b815292935073__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e89892506132fe9190600401614db3565b602060405180830381865af415801561331b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061333f9190615131565b159150915091565b61334f6145a6565b6000828152600760209081526040808320600b81015482516101408101845282546001600160401b03166101008201908152600184018054865181890281018901909752808752949660ff9094169592948794869460c086019487948694919386936101208a01939092918301828280156133f357602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116133d5575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061342d90614e49565b80601f016020809104026020016040519081016040528092919081815260200182805461345990614e49565b80156134a65780601f1061347b576101008083540402835291602001916134a6565b820191906000526020600020905b81548152906001019060200180831161348957829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561353757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613519575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061357190614e49565b80601f016020809104026020016040519081016040528092919081815260200182805461359d90614e49565b80156135ea5780601f106135bf576101008083540402835291602001916135ea565b820191906000526020600020905b8154815290600101906020018083116135cd57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161364590614e49565b80601f016020809104026020016040519081016040528092919081815260200182805461367190614e49565b80156136be5780601f10613693576101008083540402835291602001916136be565b820191906000526020600020905b8154815290600101906020018083116136a157829003601f168201915b505050505081525050915091509150915091565b604080518082018252600080825260606020808401919091528351808501855282546001600160401b0316815260018054865181850281018501909752808752949591948584019383018282801561375357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613735575b505050505081525050905090565b60008061376d83614346565b600e0154949350505050565b600080808061378a6114cb866150d0565b91509150816137a0575060009485945092505050565b546001956101009091046001600160401b0316945092505050565b600061203f7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e270546001600160401b031690565b60006137f86144d9565b6138046114cb846150d0565b60408051610120810190915281548290829060ff16600581111561382a5761382a614659565b600581111561383b5761383b614659565b815281546001600160401b0361010082048116602080850191909152600160481b90920481166040808501919091526001850154606085015260028501546080850152600385015460a085015280518082018252600486018054909316815260058601805483518187028101870190945280845260c09096019591948581019392908301828280156138f657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116138d8575b50505091909252505050815260408051610120810182526006840180546001600160401b031660e083019081526007860180548551602082810282018101909752818152968601969495939486948693610100870193909183018282801561398757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613969575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015613d915760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015613a9857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613a7a575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190613ad290614e49565b80601f0160208091040260200160405190810160405280929190818152602001828054613afe90614e49565b8015613b4b5780601f10613b2057610100808354040283529160200191613b4b565b820191906000526020600020905b815481529060010190602001808311613b2e57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015613bdc57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613bbe575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190613c1690614e49565b80601f0160208091040260200160405190810160405280929190818152602001828054613c4290614e49565b8015613c8f5780601f10613c6457610100808354040283529160200191613c8f565b820191906000526020600020905b815481529060010190602001808311613c7257829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191613cea90614e49565b80601f0160208091040260200160405190810160405280929190818152602001828054613d1690614e49565b8015613d635780601f10613d3857610100808354040283529160200191613d63565b820191906000526020600020905b815481529060010190602001808311613d4657829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016139f2565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015613ec8576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015613e5457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613e36575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015613eb057602002820191906000526020600020905b815481526020019060010190808311613e9c575b50505050508152505081526020019060010190613dbe565b50505050815260200160068201548152602001600782018054613eea90614e49565b80601f0160208091040260200160405190810160405280929190818152602001828054613f1690614e49565b8015613f635780601f10613f3857610100808354040283529160200191613f63565b820191906000526020600020905b815481529060010190602001808311613f4657829003601f168201915b5050505050815250508152602001600e8201805480602002602001604051908101604052809291908181526020016000905b828210156143345760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561403b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161401d575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061407590614e49565b80601f01602080910402602001604051908101604052809291908181526020018280546140a190614e49565b80156140ee5780601f106140c3576101008083540402835291602001916140ee565b820191906000526020600020905b8154815290600101906020018083116140d157829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561417f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311614161575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906141b990614e49565b80601f01602080910402602001604051908101604052809291908181526020018280546141e590614e49565b80156142325780601f1061420757610100808354040283529160200191614232565b820191906000526020600020905b81548152906001019060200180831161421557829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161428d90614e49565b80601f01602080910402602001604051908101604052809291908181526020018280546142b990614e49565b80156143065780601f106142db57610100808354040283529160200191614306565b820191906000526020600020905b8154815290600101906020018083116142e957829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101613f95565b50505091525092969095509350505050565b6040516390ba52cf60e01b815260009081908190600490829073__$a0fe38a9a81205afccc10810b09a4d3f45$__906390ba52cf906143889089908601614db3565b602060405180830381865af41580156143a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143c991906150b7565b81526020808201929092526040908101600020815180830183526004820180546001600160401b03168252600583018054855181880281018801909652808652939750919490938582019390929183018282801561445057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311614432575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e898925061448f91600401614db3565b602060405180830381865af41580156144ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144d09190615131565b15925050915091565b60408051610120810182526000808252602080830182905282840182905260608084018390526080840183905260a0840183905284518086019095529184528301529060c0820190815260200161452e61455b565b8152602001606081525090565b604051806040016040528061454e6145a6565b8152600060209091015290565b6040805161012081018252600060e0820181815260606101008401819052908352602083018290529282018190528282018390526080820183905260a082015260c081019190915290565b6040518060c001604052806145b96145fb565b81526020016145c66145fb565b81526020016000815260200160006001600160401b0316815260200160006001600160e01b0319168152602001606081525090565b604080516080810182526000918101918252606080820152908190815260200161463b6040518060400160405280600060ff168152602001606081525090565b905290565b60006020828403121561465257600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b6006811061468d57634e487b7160e01b600052602160045260246000fd5b9052565b6000604083016001600160401b0383511684526020808401516040828701528281518085526060880191508383019450600092505b808310156146ef5784516001600160a01b031682529383019360019290920191908301906146c6565b509695505050505050565b6000815180845260005b8181101561472057602081850181015186830182015201614704565b506000602082860101526020601f19601f83011685010191505092915050565b60008151604084526147556040850182614691565b90506020830151848203602086015260ff8151168252602081015190506040602083015261478660408301826146fa565b95945050505050565b6000815160c084526147a460c0850182614740565b9050602083015184820360208601526147bd8282614740565b915050604083015160408501526001600160401b03606084015116606085015263ffffffff60e01b608084015116608085015260a083015184820360a086015261478682826146fa565b600081516040845261481c604085018261478f565b6020938401511515949093019390935250919050565b600081518084526020808501808196508360051b8101915082860160005b8581101561487a578284038952614868848351614807565b98850198935090840190600101614850565b5091979650505050505050565b6000815160e0845261489c60e0850182614691565b905060206001600160401b0381850151168186015260408085015181870152606085015186840360608801526148d28482614832565b935050608085015186840360808801528381518086528486019150848160051b87010185840193506000805b8381101561497257888303601f190185528551805188855261492289860182614691565b918a0151858303868c01528051808452908b01928592508b01905b8083101561495d5783518252928b019260019290920191908b019061493d565b50978a0197968a0196945050506001016148fe565b505060a089015160a08b015260c0890151965089810360c08b015261499781886146fa565b9a9950505050505050505050565b60006101206149b584845161466f565b60208301516149cf60208601826001600160401b03169052565b5060408301516149ea60408601826001600160401b03169052565b50606083015160608501526080830151608085015260a083015160a085015260c08301518160c0860152614a2082860182614691565b91505060e083015184820360e0860152614a3a8282614887565b9150506101008084015185830382870152614a558382614832565b9695505050505050565b602081526000614a7260208301846149a5565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715614ab157614ab1614a79565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614adf57614adf614a79565b604052919050565b80356001600160401b0381168114614afe57600080fd5b919050565b80356001600160a01b0381168114614afe57600080fd5b600060408284031215614b2c57600080fd5b614b34614a8f565b9050614b3f82614ae7565b81526020808301356001600160401b0380821115614b5c57600080fd5b818501915085601f830112614b7057600080fd5b813581811115614b8257614b82614a79565b8060051b9150614b93848301614ab7565b8181529183018401918481019088841115614bad57600080fd5b938501935b83851015614bd257614bc385614b03565b82529385019390850190614bb2565b808688015250505050505092915050565b60008060408385031215614bf657600080fd5b82356001600160401b03811115614c0c57600080fd5b614c1885828601614b1a565b95602094909401359450505050565b602081526000614a726020830184614807565b600060208284031215614c4c57600080fd5b614a7282614ae7565b600060408284031215614c6757600080fd5b50919050565b60008060408385031215614c8057600080fd5b82356001600160401b03811115614c9657600080fd5b614ca285828601614c55565b925050614cb160208401614ae7565b90509250929050565b602081526000614a726020830184614832565b602081526000614a726020830184614887565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015614d3557603f19888603018452614d238583516149a5565b94509285019290850190600101614d07565b5092979650505050505050565b60008060408385031215614d5557600080fd5b614d5e83614ae7565b9150614cb160208401614b03565b8215158152604060208201526000614d876040830184614887565b949350505050565b604081526000614da2604083018561478f565b905082151560208301529392505050565b602081526000614a726020830184614691565b600060208284031215614dd857600080fd5b81356001600160401b03811115614dee57600080fd5b614d8784828501614b1a565b600060208284031215614e0c57600080fd5b81356001600160401b03811115614e2257600080fd5b614d8784828501614c55565b8215158152604060208201526000614d8760408301846149a5565b600181811c90821680614e5d57607f821691505b602082108103614c6757634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501808196508360051b8101915082860160005b8581101561487a578284038952815160408151818752805160c080848a0152614ede6101008a0183614740565b915089830151603f196060818c860301818d0152614efc8584614740565b9686015160808d810191909152908601516001600160401b031660a0808e0191909152908601516001600160e01b031916938c0193909352918401518a860390920160e08b015250929050614f5181846146fa565b93890151801515898b0152939250614f67915050565b9986019994505090840190600101614eb1565b600081518084526020808501808196508360051b810191508286016000805b8681101561500c578385038a52825160408151818852614fbb82890182614691565b92890151888403898b01528051808552908a01938693508a0191505b80831015614ff75783518252928901926001929092019190890190614fd7565b509b88019b9650505091850191600101614f99565b509298975050505050505050565b602081526000825160e06020840152615037610100840182614691565b90506001600160401b036020850151166040840152604084015160608401526060840151601f19808584030160808601526150728383614e93565b925060808601519150808584030160a086015261508f8383614f7a565b925060a086015160c086015260c08601519150808584030160e08601525061478682826146fa565b6000602082840312156150c957600080fd5b5051919050565b60006113bc3683614b1a565b634e487b7160e01b600052601160045260246000fd5b818103818111156113bc576113bc6150dc565b808201808211156113bc576113bc6150dc565b60006001820161512a5761512a6150dc565b5060010190565b60006020828403121561514357600080fd5b81518015158114614a7257600080fdfea2646970667358221220093e9f897f124f4f421a87c9575f21d8f027b11fcfe20d45e804e0fcb886b40564736f6c63430008130033", - "sourceMap": "691:6655:33:-:0;;;;;;;;;;;;;;;;;;;", + "object": "0x608060405234801561001057600080fd5b506151bd806100206000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80635d029685116100de57806394074b03116100975780639e530b57116100715780639e530b571461042c578063a2b671581461045e578063ad81e24414610476578063c66c66a11461047e57600080fd5b806394074b03146103fc57806396c82e57146104115780639d3070b51461041957600080fd5b80635d0296851461032557806366d7bbbc1461033a5780636cb2ecee1461038a5780637d9740f4146103ab5780638789f83b146103c35780638cfd78e7146103db57600080fd5b8063158ef93e1161014b578063375b3c0a11610125578063375b3c0a146102cd57806341b6a2e8146102d557806351392fc0146102e6578063599c7bd11461031d57600080fd5b8063158ef93e1461027d578063247294251461029b5780632cc14ea2146102ad57600080fd5b806302e30f9a1461019357806306c46853146101bc5780630ea746f2146101e157806310d500e114610201578063133f74ea14610233578063135493151461025d575b600080fd5b6101a66101a1366004614672565b61049f565b6040516101b39190614a93565b60405180910390f35b600f546001600160401b03165b6040516001600160401b0390911681526020016101b3565b6101f46101ef366004614c17565b610ffa565b6040516101b39190614c5b565b6102096113b7565b604080516001600160401b03948516815292841660208401529216918101919091526060016101b3565b610246610241366004614c6e565b611416565b6040805192151583526020830191909152016101b3565b61027061026b366004614ca1565b6114af565b6040516101b39190614cee565b600f54600160401b900460ff165b60405190151581526020016101b3565b600c545b6040519081526020016101b3565b6102c06102bb366004614c6e565b6119b0565b6040516101b39190614d01565b600a5461029f565b600e546001600160401b03166101c9565b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27054600160401b90046001600160401b03166101c9565b6101c9612039565b61032d612066565b6040516101b39190614d14565b61028b610348366004614d76565b6001600160401b03821660009081526006602090815260408083208054845260030182528083206001600160a01b038516845290915290205460ff1692915050565b61039d610398366004614c6e565b612c6c565b6040516101b3929190614da0565b600e54600160801b90046001600160401b03166101c9565b600e54600160401b90046001600160401b03166101c9565b6103ee6103e9366004614672565b613370565b6040516101b3929190614dc3565b6104046136fb565b6040516101b39190614de7565b600d5461029f565b61029f610427366004614dfa565b613790565b61043f61043a366004614e2e565b6137a8565b6040805192151583526001600160401b039091166020830152016101b3565b600e54600160c01b90046001600160401b03166101c9565b6101c96137e9565b61049161048c366004614e2e565b61381c565b6040516101b3929190614e62565b6104a761450b565b600082815260208181526040918290208251610120810184528154815260018201549281019290925260028101549282019290925260038201546001600160401b038082166060840152600160401b820416608083015290919060a0830190600160801b900460ff1660058111156105215761052161468b565b60058111156105325761053261468b565b81526040805180820182526004840180546001600160401b031682526005850180548451602082810282018101909652818152958501959394929385840193909291908301828280156105ae57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610590575b50505091909252505050815260408051610120810182526006840180546001600160401b031660e083019081526007860180548551602082810282018101909752818152968601969495939486948693610100870193909183018282801561063f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610621575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015610a495760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561075057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610732575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061078a90614e7d565b80601f01602080910402602001604051908101604052809291908181526020018280546107b690614e7d565b80156108035780601f106107d857610100808354040283529160200191610803565b820191906000526020600020905b8154815290600101906020018083116107e657829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561089457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610876575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906108ce90614e7d565b80601f01602080910402602001604051908101604052809291908181526020018280546108fa90614e7d565b80156109475780601f1061091c57610100808354040283529160200191610947565b820191906000526020600020905b81548152906001019060200180831161092a57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916109a290614e7d565b80601f01602080910402602001604051908101604052809291908181526020018280546109ce90614e7d565b8015610a1b5780601f106109f057610100808354040283529160200191610a1b565b820191906000526020600020905b8154815290600101906020018083116109fe57829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016106aa565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015610b80576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015610b0c57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610aee575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610b6857602002820191906000526020600020905b815481526020019060010190808311610b54575b50505050508152505081526020019060010190610a76565b50505050815260200160068201548152602001600782018054610ba290614e7d565b80601f0160208091040260200160405190810160405280929190818152602001828054610bce90614e7d565b8015610c1b5780601f10610bf057610100808354040283529160200191610c1b565b820191906000526020600020905b815481529060010190602001808311610bfe57829003601f168201915b5050505050815250508152602001600e8201805480602002602001604051908101604052809291908181526020016000905b82821015610fec5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015610cf357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610cd5575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610d2d90614e7d565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5990614e7d565b8015610da65780601f10610d7b57610100808354040283529160200191610da6565b820191906000526020600020905b815481529060010190602001808311610d8957829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015610e3757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e19575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610e7190614e7d565b80601f0160208091040260200160405190810160405280929190818152602001828054610e9d90614e7d565b8015610eea5780601f10610ebf57610100808354040283529160200191610eea565b820191906000526020600020905b815481529060010190602001808311610ecd57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191610f4590614e7d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7190614e7d565b8015610fbe5780601f10610f9357610100808354040283529160200191610fbe565b820191906000526020600020905b815481529060010190602001808311610fa157829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101610c4d565b505050915250909392505050565b61100261456d565b600061100d84614378565b91505080600e01838154811061102557611025614eb1565b60009182526020918290206040805161018081018252600c90930290910180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d019390918301828280156110c457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116110a6575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906110fe90614e7d565b80601f016020809104026020016040519081016040528092919081815260200182805461112a90614e7d565b80156111775780601f1061114c57610100808354040283529160200191611177565b820191906000526020600020905b81548152906001019060200180831161115a57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561120857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116111ea575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061124290614e7d565b80601f016020809104026020016040519081016040528092919081815260200182805461126e90614e7d565b80156112bb5780601f10611290576101008083540402835291602001916112bb565b820191906000526020600020905b81548152906001019060200180831161129e57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161131690614e7d565b80601f016020809104026020016040519081016040528092919081815260200182805461134290614e7d565b801561138f5780601f106113645761010080835404028352916020019161138f565b820191906000526020600020905b81548152906001019060200180831161137257829003601f168201915b505050919092525050508152600b919091015460ff1615156020909101529150505b92915050565b600080600061140b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27154600160401b81046001600160401b0390811692600160801b8304821692600160c01b900490911690565b925092509250909192565b60008060008061142585612c6c565b6040516339aa47fb60e01b81529193509150829073__$1cd67d4dc9e627f0bec7928aa480e7d951$__906339aa47fb9061146390859060040161504e565b602060405180830381865af4158015611480573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a491906150eb565b935093505050915091565b60606000806114c56114c086615104565b614378565b91509150816115095760408051600080825260208201909252906114ff565b6114ec61456d565b8152602001906001900390816114e45790505b50925050506113b1565b600e8101546001600160401b03851681811061155c576040805160008082526020820190925290611550565b61153d61456d565b8152602001906001900390816115355790505b509450505050506113b1565b60006115688284615126565b90506000816001600160401b0381111561158457611584614aad565b6040519080825280602002602001820160405280156115bd57816020015b6115aa61456d565b8152602001906001900390816115a25790505b50905060005b828110156119a357600e86016115d98583615139565b815481106115e9576115e9614eb1565b60009182526020918290206040805161018081018252600c90930290910180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561168857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161166a575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906116c290614e7d565b80601f01602080910402602001604051908101604052809291908181526020018280546116ee90614e7d565b801561173b5780601f106117105761010080835404028352916020019161173b565b820191906000526020600020905b81548152906001019060200180831161171e57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156117cc57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116117ae575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061180690614e7d565b80601f016020809104026020016040519081016040528092919081815260200182805461183290614e7d565b801561187f5780601f106118545761010080835404028352916020019161187f565b820191906000526020600020905b81548152906001019060200180831161186257829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916118da90614e7d565b80601f016020809104026020016040519081016040528092919081815260200182805461190690614e7d565b80156119535780601f1061192857610100808354040283529160200191611953565b820191906000526020600020905b81548152906001019060200180831161193657829003601f168201915b505050919092525050508152600b919091015460ff161515602090910152825183908390811061198557611985614eb1565b6020026020010181905250808061199b9061514c565b9150506115c3565b5098975050505050505050565b6119b861458d565b6001600160401b03808316600090815260026020908152604091829020825161012081018452815490941660e0850190815260018201805485518186028101860190965280865292948694929386936101008701939190830182828015611a4857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611a2a575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015611e525760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015611b5957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611b3b575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190611b9390614e7d565b80601f0160208091040260200160405190810160405280929190818152602001828054611bbf90614e7d565b8015611c0c5780601f10611be157610100808354040283529160200191611c0c565b820191906000526020600020905b815481529060010190602001808311611bef57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015611c9d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611c7f575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190611cd790614e7d565b80601f0160208091040260200160405190810160405280929190818152602001828054611d0390614e7d565b8015611d505780601f10611d2557610100808354040283529160200191611d50565b820191906000526020600020905b815481529060010190602001808311611d3357829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191611dab90614e7d565b80601f0160208091040260200160405190810160405280929190818152602001828054611dd790614e7d565b8015611e245780601f10611df957610100808354040283529160200191611e24565b820191906000526020600020905b815481529060010190602001808311611e0757829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101611ab3565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015611f89576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015611f1557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611ef7575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015611f7157602002820191906000526020600020905b815481526020019060010190808311611f5d575b50505050508152505081526020019060010190611e7f565b50505050815260200160068201548152602001600782018054611fab90614e7d565b80601f0160208091040260200160405190810160405280929190818152602001828054611fd790614e7d565b80156120245780601f10611ff957610100808354040283529160200191612024565b820191906000526020600020905b81548152906001019060200180831161200757829003601f168201915b5050505050815250509050919050565b905090565b60006120347f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e2735460ff1690565b6007546060906000816001600160401b0381111561208657612086614aad565b6040519080825280602002602001820160405280156120bf57816020015b6120ac61450b565b8152602001906001900390816120a45790505b50905060005b82811015612c655760008060070182815481106120e4576120e4614eb1565b60009182526020808320909101548083528282526040928390208351610120810185528154815260018201549381019390935260028101549383019390935260038301546001600160401b038082166060850152600160401b820416608084015290935090919060a083019060ff600160801b90910416600581111561216c5761216c61468b565b600581111561217d5761217d61468b565b81526040805180820182526004840180546001600160401b031682526005850180548451602082810282018101909652818152958501959394929385840193909291908301828280156121f957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116121db575b50505091909252505050815260408051610120810182526006840180546001600160401b031660e083019081526007860180548551602082810282018101909752818152968601969495939486948693610100870193909183018282801561228a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161226c575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156126945760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561239b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161237d575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906123d590614e7d565b80601f016020809104026020016040519081016040528092919081815260200182805461240190614e7d565b801561244e5780601f106124235761010080835404028352916020019161244e565b820191906000526020600020905b81548152906001019060200180831161243157829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156124df57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116124c1575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061251990614e7d565b80601f016020809104026020016040519081016040528092919081815260200182805461254590614e7d565b80156125925780601f1061256757610100808354040283529160200191612592565b820191906000526020600020905b81548152906001019060200180831161257557829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916125ed90614e7d565b80601f016020809104026020016040519081016040528092919081815260200182805461261990614e7d565b80156126665780601f1061263b57610100808354040283529160200191612666565b820191906000526020600020905b81548152906001019060200180831161264957829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016122f5565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b828210156127cb576000848152602090819020604080516080810182526003860290920180546001600160401b03168383019081526001820180548451818802810188019095528085529495929486949293869360608701939092909183018282801561275757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612739575b5050505050815250508152602001600282018054806020026020016040519081016040528092919081815260200182805480156127b357602002820191906000526020600020905b81548152602001906001019080831161279f575b505050505081525050815260200190600101906126c1565b505050508152602001600682015481526020016007820180546127ed90614e7d565b80601f016020809104026020016040519081016040528092919081815260200182805461281990614e7d565b80156128665780601f1061283b57610100808354040283529160200191612866565b820191906000526020600020905b81548152906001019060200180831161284957829003601f168201915b5050505050815250508152602001600e8201805480602002602001604051908101604052809291908181526020016000905b82821015612c375760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561293e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612920575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061297890614e7d565b80601f01602080910402602001604051908101604052809291908181526020018280546129a490614e7d565b80156129f15780601f106129c6576101008083540402835291602001916129f1565b820191906000526020600020905b8154815290600101906020018083116129d457829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015612a8257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612a64575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190612abc90614e7d565b80601f0160208091040260200160405190810160405280929190818152602001828054612ae890614e7d565b8015612b355780601f10612b0a57610100808354040283529160200191612b35565b820191906000526020600020905b815481529060010190602001808311612b1857829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191612b9090614e7d565b80601f0160208091040260200160405190810160405280929190818152602001828054612bbc90614e7d565b8015612c095780601f10612bde57610100808354040283529160200191612c09565b820191906000526020600020905b815481529060010190602001808311612bec57829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101612898565b5050505081525050838381518110612c5157612c51614eb1565b6020908102919091010152506001016120c5565b5092915050565b6000612c7661458d565b6001600160401b03808416600090815260026020908152604091829020825161012081018452815490941660e0850190815260018201805485518186028101860190965280865292948694929386936101008701939190830182828015612d0657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612ce8575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156131105760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015612e1757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612df9575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190612e5190614e7d565b80601f0160208091040260200160405190810160405280929190818152602001828054612e7d90614e7d565b8015612eca5780601f10612e9f57610100808354040283529160200191612eca565b820191906000526020600020905b815481529060010190602001808311612ead57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015612f5b57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f3d575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190612f9590614e7d565b80601f0160208091040260200160405190810160405280929190818152602001828054612fc190614e7d565b801561300e5780601f10612fe35761010080835404028352916020019161300e565b820191906000526020600020905b815481529060010190602001808311612ff157829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161306990614e7d565b80601f016020809104026020016040519081016040528092919081815260200182805461309590614e7d565b80156130e25780601f106130b7576101008083540402835291602001916130e2565b820191906000526020600020905b8154815290600101906020018083116130c557829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101612d71565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015613247576000848152602090819020604080516080810182526003860290920180546001600160401b0316838301908152600182018054845181880281018801909552808552949592948694929386936060870193909290918301828280156131d357602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116131b5575b50505050508152505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561322f57602002820191906000526020600020905b81548152602001906001019080831161321b575b5050505050815250508152602001906001019061313d565b5050505081526020016006820154815260200160078201805461326990614e7d565b80601f016020809104026020016040519081016040528092919081815260200182805461329590614e7d565b80156132e25780601f106132b7576101008083540402835291602001916132e2565b820191906000526020600020905b8154815290600101906020018083116132c557829003601f168201915b5050509190925250508151604051630c133d1360e31b815292935073__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e89892506133279190600401614de7565b602060405180830381865af4158015613344573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133689190615165565b159150915091565b6133786145d8565b6000828152600160208181526040808420600b81015482516101408101845282546001600160401b031661010082019081529583018054855181880281018801909652808652939660ff9093169591948794869460c086019487948694929386936101208a01939092919083018282801561341c57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116133fe575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061345690614e7d565b80601f016020809104026020016040519081016040528092919081815260200182805461348290614e7d565b80156134cf5780601f106134a4576101008083540402835291602001916134cf565b820191906000526020600020905b8154815290600101906020018083116134b257829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561356057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613542575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061359a90614e7d565b80601f01602080910402602001604051908101604052809291908181526020018280546135c690614e7d565b80156136135780601f106135e857610100808354040283529160200191613613565b820191906000526020600020905b8154815290600101906020018083116135f657829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161366e90614e7d565b80601f016020809104026020016040519081016040528092919081815260200182805461369a90614e7d565b80156136e75780601f106136bc576101008083540402835291602001916136e7565b820191906000526020600020905b8154815290600101906020018083116136ca57829003601f168201915b505050505081525050915091509150915091565b604080518082019091526000815260606020820152604080518082018252600880546001600160401b0316825260098054845160208281028201810190965281815293949293838601939092919083018282801561378257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613764575b505050505081525050905090565b60008061379c83614378565b600e0154949350505050565b60008080806137b96114c086615104565b91509150816137cf575060009485945092505050565b600301546001956001600160401b03909116945092505050565b60006120347f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e270546001600160401b031690565b600061382661450b565b6138326114c084615104565b6040805161012081018252825481526001830154602082015260028301549181019190915260038201546001600160401b038082166060840152600160401b8204166080830152829060a0830190600160801b900460ff16600581111561389b5761389b61468b565b60058111156138ac576138ac61468b565b81526040805180820182526004840180546001600160401b0316825260058501805484516020828102820181019096528181529585019593949293858401939092919083018282801561392857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161390a575b50505091909252505050815260408051610120810182526006840180546001600160401b031660e08301908152600786018054855160208281028201810190975281815296860196949593948694869361010087019390918301828280156139b957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161399b575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015613dc35760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015613aca57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613aac575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190613b0490614e7d565b80601f0160208091040260200160405190810160405280929190818152602001828054613b3090614e7d565b8015613b7d5780601f10613b5257610100808354040283529160200191613b7d565b820191906000526020600020905b815481529060010190602001808311613b6057829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015613c0e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613bf0575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190613c4890614e7d565b80601f0160208091040260200160405190810160405280929190818152602001828054613c7490614e7d565b8015613cc15780601f10613c9657610100808354040283529160200191613cc1565b820191906000526020600020905b815481529060010190602001808311613ca457829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191613d1c90614e7d565b80601f0160208091040260200160405190810160405280929190818152602001828054613d4890614e7d565b8015613d955780601f10613d6a57610100808354040283529160200191613d95565b820191906000526020600020905b815481529060010190602001808311613d7857829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101613a24565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015613efa576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015613e8657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613e68575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015613ee257602002820191906000526020600020905b815481526020019060010190808311613ece575b50505050508152505081526020019060010190613df0565b50505050815260200160068201548152602001600782018054613f1c90614e7d565b80601f0160208091040260200160405190810160405280929190818152602001828054613f4890614e7d565b8015613f955780601f10613f6a57610100808354040283529160200191613f95565b820191906000526020600020905b815481529060010190602001808311613f7857829003601f168201915b5050505050815250508152602001600e8201805480602002602001604051908101604052809291908181526020016000905b828210156143665760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561406d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161404f575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906140a790614e7d565b80601f01602080910402602001604051908101604052809291908181526020018280546140d390614e7d565b80156141205780601f106140f557610100808354040283529160200191614120565b820191906000526020600020905b81548152906001019060200180831161410357829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156141b157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311614193575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906141eb90614e7d565b80601f016020809104026020016040519081016040528092919081815260200182805461421790614e7d565b80156142645780601f1061423957610100808354040283529160200191614264565b820191906000526020600020905b81548152906001019060200180831161424757829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916142bf90614e7d565b80601f01602080910402602001604051908101604052809291908181526020018280546142eb90614e7d565b80156143385780601f1061430d57610100808354040283529160200191614338565b820191906000526020600020905b81548152906001019060200180831161431b57829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101613fc7565b50505091525092969095509350505050565b6040516390ba52cf60e01b8152600090819081908190819073__$a0fe38a9a81205afccc10810b09a4d3f45$__906390ba52cf906143ba908990600401614de7565b602060405180830381865af41580156143d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143fb91906150eb565b81526020808201929092526040908101600020815180830183526004820180546001600160401b03168252600583018054855181880281018801909652808652939750919490938582019390929183018282801561448257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311614464575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e89892506144c191600401614de7565b602060405180830381865af41580156144de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145029190615165565b15925050915091565b60408051610120810182526000808252602080830182905282840182905260608084018390526080840183905260a0840183905284518086019095529184528301529060c0820190815260200161456061458d565b8152602001606081525090565b60405180604001604052806145806145d8565b8152600060209091015290565b6040805161012081018252600060e0820181815260606101008401819052908352602083018290529282018190528282018390526080820183905260a082015260c081019190915290565b6040518060c001604052806145eb61462d565b81526020016145f861462d565b81526020016000815260200160006001600160401b0316815260200160006001600160e01b0319168152602001606081525090565b604080516080810182526000918101918252606080820152908190815260200161466d6040518060400160405280600060ff168152602001606081525090565b905290565b60006020828403121561468457600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b600681106146bf57634e487b7160e01b600052602160045260246000fd5b9052565b6000604083016001600160401b0383511684526020808401516040828701528281518085526060880191508383019450600092505b808310156147215784516001600160a01b031682529383019360019290920191908301906146f8565b509695505050505050565b6000815180845260005b8181101561475257602081850181015186830182015201614736565b506000602082860101526020601f19601f83011685010191505092915050565b600081516040845261478760408501826146c3565b90506020830151848203602086015260ff815116825260208101519050604060208301526147b8604083018261472c565b95945050505050565b6000815160c084526147d660c0850182614772565b9050602083015184820360208601526147ef8282614772565b915050604083015160408501526001600160401b03606084015116606085015263ffffffff60e01b608084015116608085015260a083015184820360a08601526147b8828261472c565b600081516040845261484e60408501826147c1565b6020938401511515949093019390935250919050565b600081518084526020808501808196508360051b8101915082860160005b858110156148ac57828403895261489a848351614839565b98850198935090840190600101614882565b5091979650505050505050565b6000815160e084526148ce60e08501826146c3565b905060206001600160401b0381850151168186015260408085015181870152606085015186840360608801526149048482614864565b935050608085015186840360808801528381518086528486019150848160051b87010185840193506000805b838110156149a457888303601f1901855285518051888552614954898601826146c3565b918a0151858303868c01528051808452908b01928592508b01905b8083101561498f5783518252928b019260019290920191908b019061496f565b50978a0197968a019694505050600101614930565b505060a089015160a08b015260c0890151965089810360c08b01526149c9818861472c565b9a9950505050505050505050565b60006101208251845260208301516020850152604083015160408501526060830151614a0e60608601826001600160401b03169052565b506080830151614a2960808601826001600160401b03169052565b5060a0830151614a3c60a08601826146a1565b5060c08301518160c0860152614a54828601826146c3565b91505060e083015184820360e0860152614a6e82826148b9565b9150506101008084015185830382870152614a898382614864565b9695505050505050565b602081526000614aa660208301846149d7565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715614ae557614ae5614aad565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614b1357614b13614aad565b604052919050565b80356001600160401b0381168114614b3257600080fd5b919050565b80356001600160a01b0381168114614b3257600080fd5b600060408284031215614b6057600080fd5b614b68614ac3565b9050614b7382614b1b565b81526020808301356001600160401b0380821115614b9057600080fd5b818501915085601f830112614ba457600080fd5b813581811115614bb657614bb6614aad565b8060051b9150614bc7848301614aeb565b8181529183018401918481019088841115614be157600080fd5b938501935b83851015614c0657614bf785614b37565b82529385019390850190614be6565b808688015250505050505092915050565b60008060408385031215614c2a57600080fd5b82356001600160401b03811115614c4057600080fd5b614c4c85828601614b4e565b95602094909401359450505050565b602081526000614aa66020830184614839565b600060208284031215614c8057600080fd5b614aa682614b1b565b600060408284031215614c9b57600080fd5b50919050565b60008060408385031215614cb457600080fd5b82356001600160401b03811115614cca57600080fd5b614cd685828601614c89565b925050614ce560208401614b1b565b90509250929050565b602081526000614aa66020830184614864565b602081526000614aa660208301846148b9565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015614d6957603f19888603018452614d578583516149d7565b94509285019290850190600101614d3b565b5092979650505050505050565b60008060408385031215614d8957600080fd5b614d9283614b1b565b9150614ce560208401614b37565b8215158152604060208201526000614dbb60408301846148b9565b949350505050565b604081526000614dd660408301856147c1565b905082151560208301529392505050565b602081526000614aa660208301846146c3565b600060208284031215614e0c57600080fd5b81356001600160401b03811115614e2257600080fd5b614dbb84828501614b4e565b600060208284031215614e4057600080fd5b81356001600160401b03811115614e5657600080fd5b614dbb84828501614c89565b8215158152604060208201526000614dbb60408301846149d7565b600181811c90821680614e9157607f821691505b602082108103614c9b57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501808196508360051b8101915082860160005b858110156148ac578284038952815160408151818752805160c080848a0152614f126101008a0183614772565b915089830151603f196060818c860301818d0152614f308584614772565b9686015160808d810191909152908601516001600160401b031660a0808e0191909152908601516001600160e01b031916938c0193909352918401518a860390920160e08b015250929050614f85818461472c565b93890151801515898b0152939250614f9b915050565b9986019994505090840190600101614ee5565b600081518084526020808501808196508360051b810191508286016000805b86811015615040578385038a52825160408151818852614fef828901826146c3565b92890151888403898b01528051808552908a01938693508a0191505b8083101561502b578351825292890192600192909201919089019061500b565b509b88019b9650505091850191600101614fcd565b509298975050505050505050565b602081526000825160e0602084015261506b6101008401826146c3565b90506001600160401b036020850151166040840152604084015160608401526060840151601f19808584030160808601526150a68383614ec7565b925060808601519150808584030160a08601526150c38383614fae565b925060a086015160c086015260c08601519150808584030160e0860152506147b8828261472c565b6000602082840312156150fd57600080fd5b5051919050565b60006113b13683614b4e565b634e487b7160e01b600052601160045260246000fd5b818103818111156113b1576113b1615110565b808201808211156113b1576113b1615110565b60006001820161515e5761515e615110565b5060010190565b60006020828403121561517757600080fd5b81518015158114614aa657600080fdfea26469706673582212207a625a0e3cc65a789d7becd58d6bf122a0f739a4d9a2b5642bb6ba600fb61d5664736f6c63430008130033", + "sourceMap": "691:6655:34:-:0;;;;;;;;;;;;;;;;;;;", "linkReferences": { "src/lib/CheckpointHelper.sol": { "CheckpointHelper": [ { - "start": 5222, + "start": 5211, "length": 20 } ] @@ -2348,15 +2348,15 @@ "src/lib/SubnetIDHelper.sol": { "SubnetIDHelper": [ { - "start": 13046, + "start": 13087, "length": 20 }, { - "start": 17281, + "start": 17330, "length": 20 }, { - "start": 17544, + "start": 17594, "length": 20 } ] @@ -2364,13 +2364,13 @@ } }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b506004361061018e5760003560e01c80635d029685116100de57806394074b03116100975780639e530b57116100715780639e530b5714610447578063a2b6715814610479578063ad81e2441461048a578063c66c66a11461049257600080fd5b806394074b031461041757806396c82e571461042c5780639d3070b51461043457600080fd5b80635d0296851461034757806366d7bbbc1461035c5780636cb2ecee146103ac5780637d9740f4146103cd5780638789f83b146103de5780638cfd78e7146103f657600080fd5b8063158ef93e1161014b578063375b3c0a11610125578063375b3c0a146102c657806341b6a2e8146102ce57806351392fc0146102df578063599c7bd11461031657600080fd5b8063158ef93e1461027d57806324729425146102945780632cc14ea2146102a657600080fd5b806302e30f9a1461019357806306c46853146101bc5780630ea746f2146101e157806310d500e114610201578063133f74ea14610233578063135493151461025d575b600080fd5b6101a66101a1366004614640565b6104b3565b6040516101b39190614a5f565b60405180910390f35b6006546001600160401b03165b6040516001600160401b0390911681526020016101b3565b6101f46101ef366004614be3565b611005565b6040516101b39190614c27565b6102096113c2565b604080516001600160401b03948516815292841660208401529216918101919091526060016101b3565b610246610241366004614c3a565b611421565b6040805192151583526020830191909152016101b3565b61027061026b366004614c6d565b6114ba565b6040516101b39190614cba565b60115460ff165b60405190151581526020016101b3565b600b545b6040519081526020016101b3565b6102b96102b4366004614c3a565b6119bb565b6040516101b39190614ccd565b600354610298565b600a546001600160401b03166101c9565b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27054600160401b90046001600160401b03166101c9565b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27054600160801b900460ff166101c9565b61034f612044565b6040516101b39190614ce0565b61028461036a366004614d42565b6001600160401b03821660009081526012602090815260408083208054845260030182528083206001600160a01b038516845290915290205460ff1692915050565b6103bf6103ba366004614c3a565b612c43565b6040516101b3929190614d6c565b6008546001600160401b03166101c9565b600a54600160401b90046001600160401b03166101c9565b610409610404366004614640565b613347565b6040516101b3929190614d8f565b61041f6136d2565b6040516101b39190614db3565b600c54610298565b610298610442366004614dc6565b613761565b61045a610455366004614dfa565b613779565b6040805192151583526001600160401b039091166020830152016101b3565b6002546001600160401b03166101c9565b6101c96137bb565b6104a56104a0366004614dfa565b6137ee565b6040516101b3929190614e2e565b6104bb6144d9565b60008281526004602052604090819020815161012081019092528054829060ff1660058111156104ed576104ed614659565b60058111156104fe576104fe614659565b815281546001600160401b0361010082048116602080850191909152600160481b90920481166040808501919091526001850154606085015260028501546080850152600385015460a085015280518082018252600486018054909316815260058601805483518187028101870190945280845260c09096019591948581019392908301828280156105b957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161059b575b50505091909252505050815260408051610120810182526006840180546001600160401b031660e083019081526007860180548551602082810282018101909752818152968601969495939486948693610100870193909183018282801561064a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161062c575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015610a545760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561075b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161073d575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061079590614e49565b80601f01602080910402602001604051908101604052809291908181526020018280546107c190614e49565b801561080e5780601f106107e35761010080835404028352916020019161080e565b820191906000526020600020905b8154815290600101906020018083116107f157829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561089f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610881575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906108d990614e49565b80601f016020809104026020016040519081016040528092919081815260200182805461090590614e49565b80156109525780601f1061092757610100808354040283529160200191610952565b820191906000526020600020905b81548152906001019060200180831161093557829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916109ad90614e49565b80601f01602080910402602001604051908101604052809291908181526020018280546109d990614e49565b8015610a265780601f106109fb57610100808354040283529160200191610a26565b820191906000526020600020905b815481529060010190602001808311610a0957829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016106b5565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015610b8b576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015610b1757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610af9575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610b7357602002820191906000526020600020905b815481526020019060010190808311610b5f575b50505050508152505081526020019060010190610a81565b50505050815260200160068201548152602001600782018054610bad90614e49565b80601f0160208091040260200160405190810160405280929190818152602001828054610bd990614e49565b8015610c265780601f10610bfb57610100808354040283529160200191610c26565b820191906000526020600020905b815481529060010190602001808311610c0957829003601f168201915b5050505050815250508152602001600e8201805480602002602001604051908101604052809291908181526020016000905b82821015610ff75760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015610cfe57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ce0575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610d3890614e49565b80601f0160208091040260200160405190810160405280929190818152602001828054610d6490614e49565b8015610db15780601f10610d8657610100808354040283529160200191610db1565b820191906000526020600020905b815481529060010190602001808311610d9457829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015610e4257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e24575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610e7c90614e49565b80601f0160208091040260200160405190810160405280929190818152602001828054610ea890614e49565b8015610ef55780601f10610eca57610100808354040283529160200191610ef5565b820191906000526020600020905b815481529060010190602001808311610ed857829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191610f5090614e49565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7c90614e49565b8015610fc95780601f10610f9e57610100808354040283529160200191610fc9565b820191906000526020600020905b815481529060010190602001808311610fac57829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101610c58565b505050915250909392505050565b61100d61453b565b600061101884614346565b91505080600e01838154811061103057611030614e7d565b60009182526020918290206040805161018081018252600c90930290910180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d019390918301828280156110cf57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116110b1575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061110990614e49565b80601f016020809104026020016040519081016040528092919081815260200182805461113590614e49565b80156111825780601f1061115757610100808354040283529160200191611182565b820191906000526020600020905b81548152906001019060200180831161116557829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561121357602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116111f5575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061124d90614e49565b80601f016020809104026020016040519081016040528092919081815260200182805461127990614e49565b80156112c65780601f1061129b576101008083540402835291602001916112c6565b820191906000526020600020905b8154815290600101906020018083116112a957829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161132190614e49565b80601f016020809104026020016040519081016040528092919081815260200182805461134d90614e49565b801561139a5780601f1061136f5761010080835404028352916020019161139a565b820191906000526020600020905b81548152906001019060200180831161137d57829003601f168201915b505050919092525050508152600b919091015460ff1615156020909101529150505b92915050565b60008060006114167f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27154600160401b81046001600160401b0390811692600160801b8304821692600160c01b900490911690565b925092509250909192565b60008060008061143085612c43565b6040516339aa47fb60e01b81529193509150829073__$1cd67d4dc9e627f0bec7928aa480e7d951$__906339aa47fb9061146e90859060040161501a565b602060405180830381865af415801561148b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114af91906150b7565b935093505050915091565b60606000806114d06114cb866150d0565b614346565b915091508161151457604080516000808252602082019092529061150a565b6114f761453b565b8152602001906001900390816114ef5790505b50925050506113bc565b600e8101546001600160401b03851681811061156757604080516000808252602082019092529061155b565b61154861453b565b8152602001906001900390816115405790505b509450505050506113bc565b600061157382846150f2565b90506000816001600160401b0381111561158f5761158f614a79565b6040519080825280602002602001820160405280156115c857816020015b6115b561453b565b8152602001906001900390816115ad5790505b50905060005b828110156119ae57600e86016115e48583615105565b815481106115f4576115f4614e7d565b60009182526020918290206040805161018081018252600c90930290910180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561169357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611675575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906116cd90614e49565b80601f01602080910402602001604051908101604052809291908181526020018280546116f990614e49565b80156117465780601f1061171b57610100808354040283529160200191611746565b820191906000526020600020905b81548152906001019060200180831161172957829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156117d757602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116117b9575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061181190614e49565b80601f016020809104026020016040519081016040528092919081815260200182805461183d90614e49565b801561188a5780601f1061185f5761010080835404028352916020019161188a565b820191906000526020600020905b81548152906001019060200180831161186d57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916118e590614e49565b80601f016020809104026020016040519081016040528092919081815260200182805461191190614e49565b801561195e5780601f106119335761010080835404028352916020019161195e565b820191906000526020600020905b81548152906001019060200180831161194157829003601f168201915b505050919092525050508152600b919091015460ff161515602090910152825183908390811061199057611990614e7d565b602002602001018190525080806119a690615118565b9150506115ce565b5098975050505050505050565b6119c361455b565b6001600160401b03808316600090815260096020908152604091829020825161012081018452815490941660e0850190815260018201805485518186028101860190965280865292948694929386936101008701939190830182828015611a5357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611a35575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015611e5d5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015611b6457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611b46575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190611b9e90614e49565b80601f0160208091040260200160405190810160405280929190818152602001828054611bca90614e49565b8015611c175780601f10611bec57610100808354040283529160200191611c17565b820191906000526020600020905b815481529060010190602001808311611bfa57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015611ca857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611c8a575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190611ce290614e49565b80601f0160208091040260200160405190810160405280929190818152602001828054611d0e90614e49565b8015611d5b5780601f10611d3057610100808354040283529160200191611d5b565b820191906000526020600020905b815481529060010190602001808311611d3e57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191611db690614e49565b80601f0160208091040260200160405190810160405280929190818152602001828054611de290614e49565b8015611e2f5780601f10611e0457610100808354040283529160200191611e2f565b820191906000526020600020905b815481529060010190602001808311611e1257829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101611abe565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015611f94576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015611f2057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611f02575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015611f7c57602002820191906000526020600020905b815481526020019060010190808311611f68575b50505050508152505081526020019060010190611e8a565b50505050815260200160068201548152602001600782018054611fb690614e49565b80601f0160208091040260200160405190810160405280929190818152602001828054611fe290614e49565b801561202f5780601f106120045761010080835404028352916020019161202f565b820191906000526020600020905b81548152906001019060200180831161201257829003601f168201915b5050505050815250509050919050565b905090565b6005546060906000816001600160401b0381111561206457612064614a79565b60405190808252806020026020018201604052801561209d57816020015b61208a6144d9565b8152602001906001900390816120825790505b50905060005b82811015612c3c5760008060050182815481106120c2576120c2614e7d565b6000918252602080832090910154808352600490915260409182902082516101208101909352805491935090829060ff16600581111561210457612104614659565b600581111561211557612115614659565b815281546001600160401b0361010082048116602080850191909152600160481b90920481166040808501919091526001850154606085015260028501546080850152600385015460a085015280518082018252600486018054909316815260058601805483518187028101870190945280845260c09096019591948581019392908301828280156121d057602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116121b2575b50505091909252505050815260408051610120810182526006840180546001600160401b031660e083019081526007860180548551602082810282018101909752818152968601969495939486948693610100870193909183018282801561226157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612243575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b8282101561266b5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561237257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612354575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906123ac90614e49565b80601f01602080910402602001604051908101604052809291908181526020018280546123d890614e49565b80156124255780601f106123fa57610100808354040283529160200191612425565b820191906000526020600020905b81548152906001019060200180831161240857829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156124b657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612498575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906124f090614e49565b80601f016020809104026020016040519081016040528092919081815260200182805461251c90614e49565b80156125695780601f1061253e57610100808354040283529160200191612569565b820191906000526020600020905b81548152906001019060200180831161254c57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916125c490614e49565b80601f01602080910402602001604051908101604052809291908181526020018280546125f090614e49565b801561263d5780601f106126125761010080835404028352916020019161263d565b820191906000526020600020905b81548152906001019060200180831161262057829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016122cc565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b828210156127a2576000848152602090819020604080516080810182526003860290920180546001600160401b03168383019081526001820180548451818802810188019095528085529495929486949293869360608701939092909183018282801561272e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612710575b50505050508152505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561278a57602002820191906000526020600020905b815481526020019060010190808311612776575b50505050508152505081526020019060010190612698565b505050508152602001600682015481526020016007820180546127c490614e49565b80601f01602080910402602001604051908101604052809291908181526020018280546127f090614e49565b801561283d5780601f106128125761010080835404028352916020019161283d565b820191906000526020600020905b81548152906001019060200180831161282057829003601f168201915b5050505050815250508152602001600e8201805480602002602001604051908101604052809291908181526020016000905b82821015612c0e5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561291557602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116128f7575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061294f90614e49565b80601f016020809104026020016040519081016040528092919081815260200182805461297b90614e49565b80156129c85780601f1061299d576101008083540402835291602001916129c8565b820191906000526020600020905b8154815290600101906020018083116129ab57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015612a5957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612a3b575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190612a9390614e49565b80601f0160208091040260200160405190810160405280929190818152602001828054612abf90614e49565b8015612b0c5780601f10612ae157610100808354040283529160200191612b0c565b820191906000526020600020905b815481529060010190602001808311612aef57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191612b6790614e49565b80601f0160208091040260200160405190810160405280929190818152602001828054612b9390614e49565b8015612be05780601f10612bb557610100808354040283529160200191612be0565b820191906000526020600020905b815481529060010190602001808311612bc357829003601f168201915b505050919092525050508152600b919091015460ff161515602091820152908252600192909201910161286f565b5050505081525050838381518110612c2857612c28614e7d565b6020908102919091010152506001016120a3565b5092915050565b6000612c4d61455b565b6001600160401b03808416600090815260096020908152604091829020825161012081018452815490941660e0850190815260018201805485518186028101860190965280865292948694929386936101008701939190830182828015612cdd57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612cbf575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156130e75760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015612dee57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612dd0575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190612e2890614e49565b80601f0160208091040260200160405190810160405280929190818152602001828054612e5490614e49565b8015612ea15780601f10612e7657610100808354040283529160200191612ea1565b820191906000526020600020905b815481529060010190602001808311612e8457829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015612f3257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f14575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190612f6c90614e49565b80601f0160208091040260200160405190810160405280929190818152602001828054612f9890614e49565b8015612fe55780601f10612fba57610100808354040283529160200191612fe5565b820191906000526020600020905b815481529060010190602001808311612fc857829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161304090614e49565b80601f016020809104026020016040519081016040528092919081815260200182805461306c90614e49565b80156130b95780601f1061308e576101008083540402835291602001916130b9565b820191906000526020600020905b81548152906001019060200180831161309c57829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101612d48565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b8282101561321e576000848152602090819020604080516080810182526003860290920180546001600160401b0316838301908152600182018054845181880281018801909552808552949592948694929386936060870193909290918301828280156131aa57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161318c575b50505050508152505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561320657602002820191906000526020600020905b8154815260200190600101908083116131f2575b50505050508152505081526020019060010190613114565b5050505081526020016006820154815260200160078201805461324090614e49565b80601f016020809104026020016040519081016040528092919081815260200182805461326c90614e49565b80156132b95780601f1061328e576101008083540402835291602001916132b9565b820191906000526020600020905b81548152906001019060200180831161329c57829003601f168201915b5050509190925250508151604051630c133d1360e31b815292935073__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e89892506132fe9190600401614db3565b602060405180830381865af415801561331b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061333f9190615131565b159150915091565b61334f6145a6565b6000828152600760209081526040808320600b81015482516101408101845282546001600160401b03166101008201908152600184018054865181890281018901909752808752949660ff9094169592948794869460c086019487948694919386936101208a01939092918301828280156133f357602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116133d5575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061342d90614e49565b80601f016020809104026020016040519081016040528092919081815260200182805461345990614e49565b80156134a65780601f1061347b576101008083540402835291602001916134a6565b820191906000526020600020905b81548152906001019060200180831161348957829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561353757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613519575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061357190614e49565b80601f016020809104026020016040519081016040528092919081815260200182805461359d90614e49565b80156135ea5780601f106135bf576101008083540402835291602001916135ea565b820191906000526020600020905b8154815290600101906020018083116135cd57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161364590614e49565b80601f016020809104026020016040519081016040528092919081815260200182805461367190614e49565b80156136be5780601f10613693576101008083540402835291602001916136be565b820191906000526020600020905b8154815290600101906020018083116136a157829003601f168201915b505050505081525050915091509150915091565b604080518082018252600080825260606020808401919091528351808501855282546001600160401b0316815260018054865181850281018501909752808752949591948584019383018282801561375357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613735575b505050505081525050905090565b60008061376d83614346565b600e0154949350505050565b600080808061378a6114cb866150d0565b91509150816137a0575060009485945092505050565b546001956101009091046001600160401b0316945092505050565b600061203f7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e270546001600160401b031690565b60006137f86144d9565b6138046114cb846150d0565b60408051610120810190915281548290829060ff16600581111561382a5761382a614659565b600581111561383b5761383b614659565b815281546001600160401b0361010082048116602080850191909152600160481b90920481166040808501919091526001850154606085015260028501546080850152600385015460a085015280518082018252600486018054909316815260058601805483518187028101870190945280845260c09096019591948581019392908301828280156138f657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116138d8575b50505091909252505050815260408051610120810182526006840180546001600160401b031660e083019081526007860180548551602082810282018101909752818152968601969495939486948693610100870193909183018282801561398757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613969575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015613d915760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015613a9857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613a7a575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190613ad290614e49565b80601f0160208091040260200160405190810160405280929190818152602001828054613afe90614e49565b8015613b4b5780601f10613b2057610100808354040283529160200191613b4b565b820191906000526020600020905b815481529060010190602001808311613b2e57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015613bdc57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613bbe575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190613c1690614e49565b80601f0160208091040260200160405190810160405280929190818152602001828054613c4290614e49565b8015613c8f5780601f10613c6457610100808354040283529160200191613c8f565b820191906000526020600020905b815481529060010190602001808311613c7257829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191613cea90614e49565b80601f0160208091040260200160405190810160405280929190818152602001828054613d1690614e49565b8015613d635780601f10613d3857610100808354040283529160200191613d63565b820191906000526020600020905b815481529060010190602001808311613d4657829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016139f2565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015613ec8576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015613e5457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613e36575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015613eb057602002820191906000526020600020905b815481526020019060010190808311613e9c575b50505050508152505081526020019060010190613dbe565b50505050815260200160068201548152602001600782018054613eea90614e49565b80601f0160208091040260200160405190810160405280929190818152602001828054613f1690614e49565b8015613f635780601f10613f3857610100808354040283529160200191613f63565b820191906000526020600020905b815481529060010190602001808311613f4657829003601f168201915b5050505050815250508152602001600e8201805480602002602001604051908101604052809291908181526020016000905b828210156143345760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561403b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161401d575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061407590614e49565b80601f01602080910402602001604051908101604052809291908181526020018280546140a190614e49565b80156140ee5780601f106140c3576101008083540402835291602001916140ee565b820191906000526020600020905b8154815290600101906020018083116140d157829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561417f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311614161575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906141b990614e49565b80601f01602080910402602001604051908101604052809291908181526020018280546141e590614e49565b80156142325780601f1061420757610100808354040283529160200191614232565b820191906000526020600020905b81548152906001019060200180831161421557829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161428d90614e49565b80601f01602080910402602001604051908101604052809291908181526020018280546142b990614e49565b80156143065780601f106142db57610100808354040283529160200191614306565b820191906000526020600020905b8154815290600101906020018083116142e957829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101613f95565b50505091525092969095509350505050565b6040516390ba52cf60e01b815260009081908190600490829073__$a0fe38a9a81205afccc10810b09a4d3f45$__906390ba52cf906143889089908601614db3565b602060405180830381865af41580156143a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143c991906150b7565b81526020808201929092526040908101600020815180830183526004820180546001600160401b03168252600583018054855181880281018801909652808652939750919490938582019390929183018282801561445057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311614432575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e898925061448f91600401614db3565b602060405180830381865af41580156144ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144d09190615131565b15925050915091565b60408051610120810182526000808252602080830182905282840182905260608084018390526080840183905260a0840183905284518086019095529184528301529060c0820190815260200161452e61455b565b8152602001606081525090565b604051806040016040528061454e6145a6565b8152600060209091015290565b6040805161012081018252600060e0820181815260606101008401819052908352602083018290529282018190528282018390526080820183905260a082015260c081019190915290565b6040518060c001604052806145b96145fb565b81526020016145c66145fb565b81526020016000815260200160006001600160401b0316815260200160006001600160e01b0319168152602001606081525090565b604080516080810182526000918101918252606080820152908190815260200161463b6040518060400160405280600060ff168152602001606081525090565b905290565b60006020828403121561465257600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b6006811061468d57634e487b7160e01b600052602160045260246000fd5b9052565b6000604083016001600160401b0383511684526020808401516040828701528281518085526060880191508383019450600092505b808310156146ef5784516001600160a01b031682529383019360019290920191908301906146c6565b509695505050505050565b6000815180845260005b8181101561472057602081850181015186830182015201614704565b506000602082860101526020601f19601f83011685010191505092915050565b60008151604084526147556040850182614691565b90506020830151848203602086015260ff8151168252602081015190506040602083015261478660408301826146fa565b95945050505050565b6000815160c084526147a460c0850182614740565b9050602083015184820360208601526147bd8282614740565b915050604083015160408501526001600160401b03606084015116606085015263ffffffff60e01b608084015116608085015260a083015184820360a086015261478682826146fa565b600081516040845261481c604085018261478f565b6020938401511515949093019390935250919050565b600081518084526020808501808196508360051b8101915082860160005b8581101561487a578284038952614868848351614807565b98850198935090840190600101614850565b5091979650505050505050565b6000815160e0845261489c60e0850182614691565b905060206001600160401b0381850151168186015260408085015181870152606085015186840360608801526148d28482614832565b935050608085015186840360808801528381518086528486019150848160051b87010185840193506000805b8381101561497257888303601f190185528551805188855261492289860182614691565b918a0151858303868c01528051808452908b01928592508b01905b8083101561495d5783518252928b019260019290920191908b019061493d565b50978a0197968a0196945050506001016148fe565b505060a089015160a08b015260c0890151965089810360c08b015261499781886146fa565b9a9950505050505050505050565b60006101206149b584845161466f565b60208301516149cf60208601826001600160401b03169052565b5060408301516149ea60408601826001600160401b03169052565b50606083015160608501526080830151608085015260a083015160a085015260c08301518160c0860152614a2082860182614691565b91505060e083015184820360e0860152614a3a8282614887565b9150506101008084015185830382870152614a558382614832565b9695505050505050565b602081526000614a7260208301846149a5565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715614ab157614ab1614a79565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614adf57614adf614a79565b604052919050565b80356001600160401b0381168114614afe57600080fd5b919050565b80356001600160a01b0381168114614afe57600080fd5b600060408284031215614b2c57600080fd5b614b34614a8f565b9050614b3f82614ae7565b81526020808301356001600160401b0380821115614b5c57600080fd5b818501915085601f830112614b7057600080fd5b813581811115614b8257614b82614a79565b8060051b9150614b93848301614ab7565b8181529183018401918481019088841115614bad57600080fd5b938501935b83851015614bd257614bc385614b03565b82529385019390850190614bb2565b808688015250505050505092915050565b60008060408385031215614bf657600080fd5b82356001600160401b03811115614c0c57600080fd5b614c1885828601614b1a565b95602094909401359450505050565b602081526000614a726020830184614807565b600060208284031215614c4c57600080fd5b614a7282614ae7565b600060408284031215614c6757600080fd5b50919050565b60008060408385031215614c8057600080fd5b82356001600160401b03811115614c9657600080fd5b614ca285828601614c55565b925050614cb160208401614ae7565b90509250929050565b602081526000614a726020830184614832565b602081526000614a726020830184614887565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015614d3557603f19888603018452614d238583516149a5565b94509285019290850190600101614d07565b5092979650505050505050565b60008060408385031215614d5557600080fd5b614d5e83614ae7565b9150614cb160208401614b03565b8215158152604060208201526000614d876040830184614887565b949350505050565b604081526000614da2604083018561478f565b905082151560208301529392505050565b602081526000614a726020830184614691565b600060208284031215614dd857600080fd5b81356001600160401b03811115614dee57600080fd5b614d8784828501614b1a565b600060208284031215614e0c57600080fd5b81356001600160401b03811115614e2257600080fd5b614d8784828501614c55565b8215158152604060208201526000614d8760408301846149a5565b600181811c90821680614e5d57607f821691505b602082108103614c6757634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501808196508360051b8101915082860160005b8581101561487a578284038952815160408151818752805160c080848a0152614ede6101008a0183614740565b915089830151603f196060818c860301818d0152614efc8584614740565b9686015160808d810191909152908601516001600160401b031660a0808e0191909152908601516001600160e01b031916938c0193909352918401518a860390920160e08b015250929050614f5181846146fa565b93890151801515898b0152939250614f67915050565b9986019994505090840190600101614eb1565b600081518084526020808501808196508360051b810191508286016000805b8681101561500c578385038a52825160408151818852614fbb82890182614691565b92890151888403898b01528051808552908a01938693508a0191505b80831015614ff75783518252928901926001929092019190890190614fd7565b509b88019b9650505091850191600101614f99565b509298975050505050505050565b602081526000825160e06020840152615037610100840182614691565b90506001600160401b036020850151166040840152604084015160608401526060840151601f19808584030160808601526150728383614e93565b925060808601519150808584030160a086015261508f8383614f7a565b925060a086015160c086015260c08601519150808584030160e08601525061478682826146fa565b6000602082840312156150c957600080fd5b5051919050565b60006113bc3683614b1a565b634e487b7160e01b600052601160045260246000fd5b818103818111156113bc576113bc6150dc565b808201808211156113bc576113bc6150dc565b60006001820161512a5761512a6150dc565b5060010190565b60006020828403121561514357600080fd5b81518015158114614a7257600080fdfea2646970667358221220093e9f897f124f4f421a87c9575f21d8f027b11fcfe20d45e804e0fcb886b40564736f6c63430008130033", - "sourceMap": "691:6655:33:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2259:109;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1391:107;1470:21;;-1:-1:-1;;;;;1470:21:33;1391:107;;;-1:-1:-1;;;;;7840:31:68;;;7822:50;;7810:2;7795:18;1391:107:33;7678:200:68;2792:278:33;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;6434:174::-;;;:::i;:::-;;;;-1:-1:-1;;;;;10883:15:68;;;10865:34;;10935:15;;;10930:2;10915:18;;10908:43;10987:15;;10967:18;;;10960:43;;;;10816:2;10801:18;6434:174:33;10632:377:68;6024:240:33;;;;;;:::i;:::-;;:::i;:::-;;;;11396:14:68;;11389:22;11371:41;;11443:2;11428:18;;11421:34;;;;11344:18;6024:240:33;11203:258:68;3329:752:33;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1296:89::-;1365:13;;;;1296:89;;;12556:14:68;;12549:22;12531:41;;12519:2;12504:18;1296:89:33;12391:187:68;906:92:33;978:13;;906:92;;;12729:25:68;;;12717:2;12702:18;906:92:33;12583:177:68;1724:137:33;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1204:86::-;1273:10;;1204:86;;1004:95;1077:15;;-1:-1:-1;;;;;1077:15:33;1004:95;;6270:158;1522:42:53;3643:14;-1:-1:-1;;;3643:14:53;;-1:-1:-1;;;;;3643:14:53;6270:158:33;;6743:113;1522:42:53;10064:20;-1:-1:-1;;;10064:20:53;;;;6743:113:33;6270:158;6969:375;;;:::i;:::-;;;;;;;:::i;5070:285::-;;;;;;:::i;:::-;-1:-1:-1;;;;;5234:29:33;;5166:4;5234:29;;;:22;:29;;;;;;;;5311:25;;5280:57;;:30;;:57;;;;;-1:-1:-1;;;;;5280:68:33;;;;;;;;;;;;5070:285;;;;;5566:240;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;1504:105::-;1582:20;;-1:-1:-1;;;;;1582:20:33;1504:105;;4605;4682:21;;-1:-1:-1;;;4682:21:33;;-1:-1:-1;;;;;4682:21:33;4605:105;;4716:166;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;1615:103::-;;;:::i;:::-;;;;;;;:::i;4509:90::-;4579:13;;4509:90;;2443:262;;;;;;:::i;:::-;;:::i;4204:299::-;;;;;;:::i;:::-;;:::i;:::-;;;;16084:14:68;;16077:22;16059:41;;-1:-1:-1;;;;;16136:31:68;;;16131:2;16116:18;;16109:59;16032:18;4204:299:33;15893:281:68;1105:93:33;1177:14;;-1:-1:-1;;;;;1177:14:33;1105:93;;6614:123;;;:::i;2057:196::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;2259:109::-;2310:20;;:::i;:::-;2349:1;:12;;;:9;:12;;;;;;;2342:19;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2342:19:33;;;;;;;;;;;;;-1:-1:-1;;;2342:19:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:33;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:33;;;;-1:-1:-1;;;2342:19:33;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:33;-1:-1:-1;;;;;2342:19:33;-1:-1:-1;;;;;2342:19:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:33;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:33;;;;-1:-1:-1;;;2342:19:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:33;;;;-1:-1:-1;;;2342:19:33;;-1:-1:-1;2342:19:33;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:33;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:33;;;;-1:-1:-1;;;2342:19:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:33;;;;-1:-1:-1;;;2342:19:33;;-1:-1:-1;2342:19:33;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:33;;;;;;-1:-1:-1;;;2342:19:33;;;;-1:-1:-1;;;;;;2342:19:33;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:33;;;;-1:-1:-1;;;2342:19:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:33;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:33;;;;-1:-1:-1;;;2342:19:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:33;;;;-1:-1:-1;;;2342:19:33;;-1:-1:-1;2342:19:33;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:33;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:33;;;;-1:-1:-1;;;2342:19:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:33;;;;-1:-1:-1;;;2342:19:33;;-1:-1:-1;2342:19:33;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:33;;;;;;-1:-1:-1;;;2342:19:33;;;;-1:-1:-1;;;;;;2342:19:33;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:33;;;;-1:-1:-1;;;2342:19:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:33;;-1:-1:-1;2342:19:33;;2259:109;-1:-1:-1;;;2259:109:33:o;2792:278::-;2885:15;;:::i;:::-;2966:21;2991:30;3012:8;2991:20;:30::i;:::-;2963:58;;;3038:6;:18;;3057:5;3038:25;;;;;;;;:::i;:::-;;;;;;;;;;3031:32;;;;;;;;3038:25;;;;;;;3031:32;;-1:-1:-1;;;;;3031:32:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;3038:25;;3031:32;;;;;3038:25;;3031:32;;;;;;3038:25;;3031:32;;3038:25;;3031:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3031:32:33;;;;;;;;;;;;;;;;-1:-1:-1;;;3031:32:33;;;;-1:-1:-1;;;3031:32:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3031:32:33;;;;-1:-1:-1;;;3031:32:33;;-1:-1:-1;3031:32:33;;;;;;;;;;;;;;;-1:-1:-1;;;;;3031:32:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3031:32:33;;;;;;;;;;;;;;;;-1:-1:-1;;;3031:32:33;;;;-1:-1:-1;;;3031:32:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3031:32:33;;;;-1:-1:-1;;;3031:32:33;;-1:-1:-1;3031:32:33;;;;;;;;;;;;;;-1:-1:-1;;;;;3031:32:33;;;;;;-1:-1:-1;;;3031:32:33;;;;-1:-1:-1;;;;;;3031:32:33;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3031:32:33;;;;-1:-1:-1;;;3031:32:33;;;;;;;;;;;;;;;;;;-1:-1:-1;;2792:278:33;;;;;:::o;6434:174::-;6482:6;6490;6498;6574:27;9676:17:53;:24;-1:-1:-1;;;9676:24:53;;-1:-1:-1;;;;;9676:24:53;;;;-1:-1:-1;;;9702:23:53;;;;;-1:-1:-1;;;9727:22:53;;;;;;9533:224;6574:27:33;6567:34;;;;;;6434:174;;;:::o;6024:240::-;6100:4;6106:7;6126:11;6139:36;6179:32;6205:5;6179:25;:32::i;:::-;6237:19;;-1:-1:-1;;;6237:19:33;;6125:86;;-1:-1:-1;6125:86:33;-1:-1:-1;6125:86:33;;6237:17;;;;:19;;6125:86;;6237:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6221:36;;;;;;6024:240;;;:::o;3329:752::-;3422:17;3452:15;;3494:30;;3515:8;3494:30;:::i;:::-;:20;:30::i;:::-;3451:73;;;;3539:10;3534:66;;3572:17;;;3587:1;3572:17;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;3565:24;;;;;;3534:66;3632:18;;;:25;-1:-1:-1;;;;;3691:18:33;;3723:28;;;3719:83;;3774:17;;;3789:1;3774:17;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;3767:24;;;;;;;;3719:83;3812:17;3832:27;3846:13;3832:11;:27;:::i;:::-;3812:47;;3869:26;3913:9;-1:-1:-1;;;;;3898:25:33;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;3869:54;;3938:9;3933:116;3957:9;3953:1;:13;3933:116;;;4001:18;;;4020:17;4024:13;4020:1;:17;:::i;:::-;4001:37;;;;;;;;:::i;:::-;;;;;;;;;;3987:51;;;;;;;;4001:37;;;;;;;3987:51;;-1:-1:-1;;;;;3987:51:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;4001:37;;3987:51;;;;;4001:37;;3987:51;;;;;;4001:37;;3987:51;;4001:37;;3987:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3987:51:33;;;;;;;;;;;;;;;;-1:-1:-1;;;3987:51:33;;;;-1:-1:-1;;;3987:51:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3987:51:33;;;;-1:-1:-1;;;3987:51:33;;-1:-1:-1;3987:51:33;;;;;;;;;;;;;;;-1:-1:-1;;;;;3987:51:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3987:51:33;;;;;;;;;;;;;;;;-1:-1:-1;;;3987:51:33;;;;-1:-1:-1;;;3987:51:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3987:51:33;;;;-1:-1:-1;;;3987:51:33;;-1:-1:-1;3987:51:33;;;;;;;;;;;;;;-1:-1:-1;;;;;3987:51:33;;;;;;-1:-1:-1;;;3987:51:33;;;;-1:-1:-1;;;;;;3987:51:33;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3987:51:33;;;;-1:-1:-1;;;3987:51:33;;;;;;;;;;;;;;;;;:11;;:8;;3996:1;;3987:11;;;;;;:::i;:::-;;;;;;:51;;;;3968:3;;;;;:::i;:::-;;;;3933:116;;;-1:-1:-1;4066:8:33;3329:752;-1:-1:-1;;;;;;;;3329:752:33:o;1724:137::-;1786:25;;:::i;:::-;-1:-1:-1;;;;;1830:24:33;;;:1;:24;;;:21;:24;;;;;;;;;1823:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1830:24;;1823:31;;;;1830:24;;1823:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1823:31:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1823:31:33;-1:-1:-1;;;;;1823:31:33;-1:-1:-1;;;;;1823:31:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1823:31:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1823:31:33;;;;;;;;;;;;;;;;-1:-1:-1;;;1823:31:33;;;;-1:-1:-1;;;1823:31:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1823:31:33;;;;-1:-1:-1;;;1823:31:33;;-1:-1:-1;1823:31:33;;;;;;;;;;;;;;;-1:-1:-1;;;;;1823:31:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1823:31:33;;;;;;;;;;;;;;;;-1:-1:-1;;;1823:31:33;;;;-1:-1:-1;;;1823:31:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1823:31:33;;;;-1:-1:-1;;;1823:31:33;;-1:-1:-1;1823:31:33;;;;;;;;;;;;;;-1:-1:-1;;;;;1823:31:33;;;;;;-1:-1:-1;;;1823:31:33;;;;-1:-1:-1;;;;;;1823:31:33;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1823:31:33;;;;-1:-1:-1;;;1823:31:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1823:31:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1823:31:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1724:137;;;:::o;6394:27::-;6387:34;;6270:158;:::o;6969:375::-;7057:12;:19;7015:15;;7042:12;7057:19;-1:-1:-1;;;;;7108:18:33;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;7086:40;;7141:9;7136:182;7160:4;7156:1;:8;7136:182;;;7182:11;7196:1;:12;;7209:1;7196:15;;;;;;;;:::i;:::-;;;;;;;;;;;;;7234:14;;;:9;:14;;;;;;;;7225:23;;;;;;;;;;7196:15;;-1:-1:-1;7234:14:33;7225:23;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;7225:23:33;;;;;;;;;;;;;-1:-1:-1;;;7225:23:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:33;;;;;;;;;;;;;;;;-1:-1:-1;;;7225:23:33;;;;-1:-1:-1;;;7225:23:33;;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:33;-1:-1:-1;;;;;7225:23:33;-1:-1:-1;;;;;7225:23:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:33;;;;;;;;;;;;;;;;-1:-1:-1;;;7225:23:33;;;;-1:-1:-1;;;7225:23:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7225:23:33;;;;-1:-1:-1;;;7225:23:33;;-1:-1:-1;7225:23:33;;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:33;;;;;;;;;;;;;;;;-1:-1:-1;;;7225:23:33;;;;-1:-1:-1;;;7225:23:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7225:23:33;;;;-1:-1:-1;;;7225:23:33;;-1:-1:-1;7225:23:33;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:33;;;;;;-1:-1:-1;;;7225:23:33;;;;-1:-1:-1;;;;;;7225:23:33;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7225:23:33;;;;-1:-1:-1;;;7225:23:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:33;;;;;;;;;;;;;;;;-1:-1:-1;;;7225:23:33;;;;-1:-1:-1;;;7225:23:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7225:23:33;;;;-1:-1:-1;;;7225:23:33;;-1:-1:-1;7225:23:33;;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:33;;;;;;;;;;;;;;;;-1:-1:-1;;;7225:23:33;;;;-1:-1:-1;;;7225:23:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7225:23:33;;;;-1:-1:-1;;;7225:23:33;;-1:-1:-1;7225:23:33;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:33;;;;;;-1:-1:-1;;;7225:23:33;;;;-1:-1:-1;;;;;;7225:23:33;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7225:23:33;;;;-1:-1:-1;;;7225:23:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:3;7229:1;7225:6;;;;;;;;:::i;:::-;;;;;;;;;;:23;-1:-1:-1;7290:3:33;;7136:182;;;-1:-1:-1;7334:3:33;6969:375;-1:-1:-1;;6969:375:33:o;5566:240::-;5650:11;5663:36;;:::i;:::-;-1:-1:-1;;;;;5724:28:33;;;:1;:28;;;:21;:28;;;;;;;;;5711:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5724:28;;5711:41;;;;5724:28;;5711:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5711:41:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5711:41:33;-1:-1:-1;;;;;5711:41:33;-1:-1:-1;;;;;5711:41:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5711:41:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5711:41:33;;;;;;;;;;;;;;;;-1:-1:-1;;;5711:41:33;;;;-1:-1:-1;;;5711:41:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5711:41:33;;;;-1:-1:-1;;;5711:41:33;;-1:-1:-1;5711:41:33;;;;;;;;;;;;;;;-1:-1:-1;;;;;5711:41:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5711:41:33;;;;;;;;;;;;;;;;-1:-1:-1;;;5711:41:33;;;;-1:-1:-1;;;5711:41:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5711:41:33;;;;-1:-1:-1;;;5711:41:33;;-1:-1:-1;5711:41:33;;;;;;;;;;;;;;-1:-1:-1;;;;;5711:41:33;;;;;;-1:-1:-1;;;5711:41:33;;;;-1:-1:-1;;;;;;5711:41:33;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5711:41:33;;;;-1:-1:-1;;;5711:41:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5711:41:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5711:41:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5711:41:33;;;;-1:-1:-1;;5772:17:33;;:27;;-1:-1:-1;;;5772:27:33;;5711:41;;-1:-1:-1;5772:25:33;;;;-1:-1:-1;5772:27:33;;:17;:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5771:28;5762:37;;5566:240;;;:::o;4716:166::-;4766:30;;:::i;:::-;4798:12;4830:13;;;:9;:13;;;;;;;;4853:21;;;;4822:53;;;;;;;;;-1:-1:-1;;;;;4822:53:33;4853:21;4822:53;;;;;4853:21;4822:53;;;;;;;;;;;;;;;;;;;4830:13;;4853:21;;;;;4822:53;;4830:13;;4822:53;;;;;;4830:13;;4822:53;;;;4830:13;;4822:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4822:53:33;;;;;;;;;;;;;;;;-1:-1:-1;;;4822:53:33;;;;-1:-1:-1;;;4822:53:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4822:53:33;;;;-1:-1:-1;;;4822:53:33;;-1:-1:-1;4822:53:33;;;;;;;;;;;;;;;-1:-1:-1;;;;;4822:53:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4822:53:33;;;;;;;;;;;;;;;;-1:-1:-1;;;4822:53:33;;;;-1:-1:-1;;;4822:53:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4822:53:33;;;;-1:-1:-1;;;4822:53:33;;-1:-1:-1;4822:53:33;;;;;;;;;;;;;;-1:-1:-1;;;;;4822:53:33;;;;;;-1:-1:-1;;;4822:53:33;;;;-1:-1:-1;;;;;;4822:53:33;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4716:166;;;:::o;1615:103::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;1691:20:33;;;;;;;;;-1:-1:-1;;;;;1691:20:33;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1691:20:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1691:20:33;;;;;;;;;;;;;;;;;;;;;;;;;;;1615:103;:::o;2443:262::-;2528:7;2601:21;2626:30;2647:8;2626:20;:30::i;:::-;2673:18;;:25;;2443:262;-1:-1:-1;;;;2443:262:33:o;4204:299::-;4287:4;;;;4354:30;;4375:8;4354:30;:::i;:::-;4311:73;;;;4399:10;4394:59;;-1:-1:-1;4433:5:33;;;;-1:-1:-1;4204:299:33;-1:-1:-1;;;4204:299:33:o;4394:59::-;4476:19;4470:4;;4476:19;;;;-1:-1:-1;;;;;4476:19:33;;-1:-1:-1;4470:4:33;-1:-1:-1;;;4204:299:33:o;6614:123::-;6670:6;6695:35;1522:42:53;9897:25;-1:-1:-1;;;;;9897:25:53;;9763:166;2057:196:33;2127:4;2133:13;;:::i;:::-;2216:30;;2237:8;2216:30;:::i;:::-;2209:37;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2209:37:33;;;;;;;;;;;;;-1:-1:-1;;;2209:37:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:33;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:33;;;;-1:-1:-1;;;2209:37:33;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:33;-1:-1:-1;;;;;2209:37:33;-1:-1:-1;;;;;2209:37:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:33;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:33;;;;-1:-1:-1;;;2209:37:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:33;;;;-1:-1:-1;;;2209:37:33;;-1:-1:-1;2209:37:33;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:33;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:33;;;;-1:-1:-1;;;2209:37:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:33;;;;-1:-1:-1;;;2209:37:33;;-1:-1:-1;2209:37:33;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:33;;;;;;-1:-1:-1;;;2209:37:33;;;;-1:-1:-1;;;;;;2209:37:33;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:33;;;;-1:-1:-1;;;2209:37:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:33;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:33;;;;-1:-1:-1;;;2209:37:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:33;;;;-1:-1:-1;;;2209:37:33;;-1:-1:-1;2209:37:33;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:33;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:33;;;;-1:-1:-1;;;2209:37:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:33;;;;-1:-1:-1;;;2209:37:33;;-1:-1:-1;2209:37:33;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:33;;;;;;-1:-1:-1;;;2209:37:33;;;;-1:-1:-1;;;;;;2209:37:33;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:33;;;;-1:-1:-1;;;2209:37:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:33;;-1:-1:-1;2209:37:33;;;;-1:-1:-1;2057:196:33;-1:-1:-1;;;;2057:196:33:o;5818:272:49:-;6027:17;;-1:-1:-1;;;6027:17:49;;5886:10;;;;;;6017:9;;5886:10;;6027:15;;;;:17;;:8;;:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6017:28;;;;;;;;;;;;;;-1:-1:-1;6017:28:49;6064:17;;;;;;;:9;;;:17;;-1:-1:-1;;;;;6064:17:49;;;;;;;;;;;;;;;;;;;;;;;6017:28;;-1:-1:-1;6064:17:49;;:9;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6064:17:49;;;;;;;;;;;;;;;;-1:-1:-1;;;6064:17:49;;;;-1:-1:-1;;6064:19:49;;-1:-1:-1;;;6064:19:49;;:17;;;;-1:-1:-1;6064:19:49;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6063:20;6055:28;;5921:169;5818:272;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:180:68:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:68;;14:180;-1:-1:-1;14:180:68:o;199:127::-;260:10;255:3;251:20;248:1;241:31;291:4;288:1;281:15;315:4;312:1;305:15;331:234;409:1;402:5;399:12;389:143;;454:10;449:3;445:20;442:1;435:31;489:4;486:1;479:15;517:4;514:1;507:15;389:143;541:18;;331:234::o;677:689::-;728:3;767:4;762:3;758:14;-1:-1:-1;;;;;803:5:68;797:12;793:37;788:3;781:50;850:4;900:2;893:5;889:14;883:21;934:4;929:2;924:3;920:12;913:26;961:4;994:12;988:19;1029:6;1023:4;1016:20;1063:2;1058:3;1054:12;1045:21;;1107:2;1093:12;1089:21;1075:35;;1128:1;1119:10;;1138:201;1152:6;1149:1;1146:13;1138:201;;;1219:13;;-1:-1:-1;;;;;1215:39:68;1201:54;;1314:15;;;;1251:1;1167:9;;;;;1277:14;;;;1138:201;;;-1:-1:-1;1355:5:68;677:689;-1:-1:-1;;;;;;677:689:68:o;1371:422::-;1412:3;1450:5;1444:12;1477:6;1472:3;1465:19;1502:1;1512:162;1526:6;1523:1;1520:13;1512:162;;;1588:4;1644:13;;;1640:22;;1634:29;1616:11;;;1612:20;;1605:59;1541:12;1512:162;;;1516:3;1719:1;1712:4;1703:6;1698:3;1694:16;1690:27;1683:38;1782:4;1775:2;1771:7;1766:2;1758:6;1754:15;1750:29;1745:3;1741:39;1737:50;1730:57;;;1371:422;;;;:::o;1798:534::-;1851:3;1895:5;1889:12;1922:4;1917:3;1910:17;1948:56;1998:4;1993:3;1989:14;1975:12;1948:56;:::i;:::-;1936:68;;2052:4;2045:5;2041:16;2035:23;2100:3;2094:4;2090:14;2083:4;2078:3;2074:14;2067:38;2154:4;2137:14;2131:21;2127:32;2121:4;2114:46;2217:4;2201:14;2197:25;2191:32;2169:54;;2256:4;2249;2243;2239:15;2232:29;2277:49;2320:4;2314;2310:15;2294:14;2277:49;:::i;:::-;2270:56;1798:534;-1:-1:-1;;;;;1798:534:68:o;2337:768::-;2391:3;2435:5;2429:12;2462:4;2457:3;2450:17;2488:58;2540:4;2535:3;2531:14;2517:12;2488:58;:::i;:::-;2476:70;;2594:4;2587:5;2583:16;2577:23;2642:3;2636:4;2632:14;2625:4;2620:3;2616:14;2609:38;2670:50;2715:4;2699:14;2670:50;:::i;:::-;2656:64;;;2769:4;2762:5;2758:16;2752:23;2745:4;2740:3;2736:14;2729:47;-1:-1:-1;;;;;2829:4:68;2822:5;2818:16;2812:23;2808:48;2801:4;2796:3;2792:14;2785:72;2927:10;2922:3;2918:20;2910:4;2903:5;2899:16;2893:23;2889:50;2882:4;2877:3;2873:14;2866:74;2988:4;2981:5;2977:16;2971:23;3038:3;3030:6;3026:16;3019:4;3014:3;3010:14;3003:40;3059;3092:6;3076:14;3059:40;:::i;3206:305::-;3257:3;3301:5;3295:12;3328:4;3323:3;3316:17;3354:59;3407:4;3402:3;3398:14;3384:12;3354:59;:::i;:::-;3476:4;3465:16;;;3459:23;3452:31;3445:39;3429:14;;;;3422:63;;;;-1:-1:-1;3342:71:68;3206:305;-1:-1:-1;3206:305:68:o;3516:634::-;3577:3;3615:5;3609:12;3642:6;3637:3;3630:19;3668:4;3709:2;3704:3;3700:12;3734:11;3761;3754:18;;3811:6;3808:1;3804:14;3797:5;3793:26;3781:38;;3853:2;3846:5;3842:14;3874:1;3884:240;3898:6;3895:1;3892:13;3884:240;;;3969:5;3963:4;3959:16;3954:3;3947:29;3997:47;4039:4;4030:6;4024:13;3997:47;:::i;:::-;4102:12;;;;3989:55;-1:-1:-1;4067:15:68;;;;3920:1;3913:9;3884:240;;;-1:-1:-1;4140:4:68;;3516:634;-1:-1:-1;;;;;;;3516:634:68:o;4155:2176::-;4216:3;4260:5;4254:12;4287:4;4282:3;4275:17;4313:56;4363:4;4358:3;4354:14;4340:12;4313:56;:::i;:::-;4301:68;;4388:4;-1:-1:-1;;;;;4443:2:68;4436:5;4432:14;4426:21;4422:46;4417:2;4412:3;4408:12;4401:68;4488:4;4539:2;4532:5;4528:14;4522:21;4517:2;4512:3;4508:12;4501:43;4592:4;4585:5;4581:16;4575:23;4640:3;4634:4;4630:14;4623:4;4618:3;4614:14;4607:38;4668:58;4721:4;4705:14;4668:58;:::i;:::-;4654:72;;;4774:4;4767:5;4763:16;4757:23;4824:3;4816:6;4812:16;4805:4;4800:3;4796:14;4789:40;4851:6;4886:14;4880:21;4925:6;4917;4910:22;4962:2;4954:6;4950:15;4941:24;;5021:2;5011:6;5008:1;5004:14;4996:6;4992:27;4988:36;5067:2;5051:14;5047:23;5033:37;;5088:1;5109;5119:991;5135:6;5130:3;5127:15;5119:991;;;5206:19;;;-1:-1:-1;;5202:33:68;5188:48;;5259:13;;5307:9;;5329:18;;;5374:59;5417:15;;;5307:9;5374:59;:::i;:::-;5474:11;;;5468:18;5523:19;;;5506:15;;;5499:44;5604:21;;5638:24;;;5728:23;;;;5775:1;;-1:-1:-1;5684:15:68;;;5789:209;5805:8;5800:3;5797:17;5789:209;;;5882:15;;5868:30;;5967:17;;;;5833:1;5824:11;;;;;5924:14;;;;5789:209;;;-1:-1:-1;6049:15:68;;;;6086:14;;;;6021:5;-1:-1:-1;;;5161:1:68;5152:11;5119:991;;;5123:3;;6159:4;6152:5;6148:16;6142:23;6135:4;6130:3;6126:14;6119:47;6214:4;6207:5;6203:16;6197:23;6175:45;;6264:3;6256:6;6252:16;6245:4;6240:3;6236:14;6229:40;6285;6318:6;6302:14;6285:40;:::i;:::-;6278:47;4155:2176;-1:-1:-1;;;;;;;;;;4155:2176:68:o;6336:1075::-;6385:3;6413:6;6428:41;6465:3;6457:5;6451:12;6428:41;:::i;:::-;6515:4;6508:5;6504:16;6498:23;6530:47;6571:4;6566:3;6562:14;6548:12;-1:-1:-1;;;;;635:30:68;623:43;;570:102;6530:47;;6625:4;6618:5;6614:16;6608:23;6640:49;6683:4;6678:3;6674:14;6658;-1:-1:-1;;;;;635:30:68;623:43;;570:102;6640:49;;6738:4;6731:5;6727:16;6721:23;6714:4;6709:3;6705:14;6698:47;6794:4;6787:5;6783:16;6777:23;6770:4;6765:3;6761:14;6754:47;6850:4;6843:5;6839:16;6833:23;6826:4;6821:3;6817:14;6810:47;6905:4;6898:5;6894:16;6888:23;6943:2;6936:4;6931:3;6927:14;6920:26;6967:56;7019:2;7014:3;7010:12;6994:14;6967:56;:::i;:::-;6955:68;;;7071:4;7064:5;7060:16;7054:23;7119:3;7113:4;7109:14;7102:4;7097:3;7093:14;7086:38;7147:58;7200:4;7184:14;7147:58;:::i;:::-;7133:72;;;7224:6;7278:2;7271:5;7267:14;7261:21;7324:3;7316:6;7312:16;7307:2;7302:3;7298:12;7291:38;7345:60;7398:6;7382:14;7345:60;:::i;:::-;7338:67;6336:1075;-1:-1:-1;;;;;;6336:1075:68:o;7416:257::-;7595:2;7584:9;7577:21;7558:4;7615:52;7663:2;7652:9;7648:18;7640:6;7615:52;:::i;:::-;7607:60;7416:257;-1:-1:-1;;;7416:257:68:o;7883:127::-;7944:10;7939:3;7935:20;7932:1;7925:31;7975:4;7972:1;7965:15;7999:4;7996:1;7989:15;8015:257;8087:4;8081:11;;;8119:17;;-1:-1:-1;;;;;8151:34:68;;8187:22;;;8148:62;8145:88;;;8213:18;;:::i;:::-;8249:4;8242:24;8015:257;:::o;8277:275::-;8348:2;8342:9;8413:2;8394:13;;-1:-1:-1;;8390:27:68;8378:40;;-1:-1:-1;;;;;8433:34:68;;8469:22;;;8430:62;8427:88;;;8495:18;;:::i;:::-;8531:2;8524:22;8277:275;;-1:-1:-1;8277:275:68:o;8557:171::-;8624:20;;-1:-1:-1;;;;;8673:30:68;;8663:41;;8653:69;;8718:1;8715;8708:12;8653:69;8557:171;;;:::o;8733:173::-;8801:20;;-1:-1:-1;;;;;8850:31:68;;8840:42;;8830:70;;8896:1;8893;8886:12;8911:1027;8966:5;9014:4;9002:9;8997:3;8993:19;8989:30;8986:50;;;9032:1;9029;9022:12;8986:50;9054:22;;:::i;:::-;9045:31;;9099:28;9117:9;9099:28;:::i;:::-;9092:5;9085:43;9147:2;9200;9189:9;9185:18;9172:32;-1:-1:-1;;;;;9264:2:68;9256:6;9253:14;9250:34;;;9280:1;9277;9270:12;9250:34;9318:6;9307:9;9303:22;9293:32;;9363:3;9356:4;9352:2;9348:13;9344:23;9334:51;;9381:1;9378;9371:12;9334:51;9417:2;9404:16;9439:2;9435;9432:10;9429:36;;;9445:18;;:::i;:::-;9491:2;9488:1;9484:10;9474:20;;9514:28;9538:2;9534;9530:11;9514:28;:::i;:::-;9576:15;;;9646:11;;;9642:20;;;9607:12;;;;9674:15;;;9671:35;;;9702:1;9699;9692:12;9671:35;9726:11;;;;9746:148;9762:6;9757:3;9754:15;9746:148;;;9828:23;9847:3;9828:23;:::i;:::-;9816:36;;9779:12;;;;9872;;;;9746:148;;;9926:5;9921:2;9914:5;9910:14;9903:29;;;;;;;8911:1027;;;;:::o;9943:416::-;10038:6;10046;10099:2;10087:9;10078:7;10074:23;10070:32;10067:52;;;10115:1;10112;10105:12;10067:52;10155:9;10142:23;-1:-1:-1;;;;;10180:6:68;10177:30;10174:50;;;10220:1;10217;10210:12;10174:50;10243:59;10294:7;10285:6;10274:9;10270:22;10243:59;:::i;:::-;10233:69;10349:2;10334:18;;;;10321:32;;-1:-1:-1;;;;9943:416:68:o;10364:263::-;10547:2;10536:9;10529:21;10510:4;10567:54;10617:2;10606:9;10602:18;10594:6;10567:54;:::i;11014:184::-;11072:6;11125:2;11113:9;11104:7;11100:23;11096:32;11093:52;;;11141:1;11138;11131:12;11093:52;11164:28;11182:9;11164:28;:::i;11466:156::-;11527:5;11572:2;11563:6;11558:3;11554:16;11550:25;11547:45;;;11588:1;11585;11578:12;11547:45;-1:-1:-1;11610:6:68;11466:156;-1:-1:-1;11466:156:68:o;11627:431::-;11723:6;11731;11784:2;11772:9;11763:7;11759:23;11755:32;11752:52;;;11800:1;11797;11790:12;11752:52;11840:9;11827:23;-1:-1:-1;;;;;11865:6:68;11862:30;11859:50;;;11905:1;11902;11895:12;11859:50;11928:68;11988:7;11979:6;11968:9;11964:22;11928:68;:::i;:::-;11918:78;;;12015:37;12048:2;12037:9;12033:18;12015:37;:::i;:::-;12005:47;;11627:431;;;;;:::o;12063:323::-;12296:2;12285:9;12278:21;12259:4;12316:64;12376:2;12365:9;12361:18;12353:6;12316:64;:::i;12765:293::-;12968:2;12957:9;12950:21;12931:4;12988:64;13048:2;13037:9;13033:18;13025:6;12988:64;:::i;13063:840::-;13255:4;13284:2;13324;13313:9;13309:18;13354:2;13343:9;13336:21;13377:6;13412;13406:13;13443:6;13435;13428:22;13481:2;13470:9;13466:18;13459:25;;13543:2;13533:6;13530:1;13526:14;13515:9;13511:30;13507:39;13493:53;;13581:2;13573:6;13569:15;13602:1;13612:262;13626:6;13623:1;13620:13;13612:262;;;13719:2;13715:7;13703:9;13695:6;13691:22;13687:36;13682:3;13675:49;13747:47;13787:6;13778;13772:13;13747:47;:::i;:::-;13737:57;-1:-1:-1;13852:12:68;;;;13817:15;;;;13648:1;13641:9;13612:262;;;-1:-1:-1;13891:6:68;;13063:840;-1:-1:-1;;;;;;;13063:840:68:o;13908:258::-;13975:6;13983;14036:2;14024:9;14015:7;14011:23;14007:32;14004:52;;;14052:1;14049;14042:12;14004:52;14075:28;14093:9;14075:28;:::i;:::-;14065:38;;14122;14156:2;14145:9;14141:18;14122:38;:::i;14171:374::-;14410:6;14403:14;14396:22;14385:9;14378:41;14455:2;14450;14439:9;14435:18;14428:30;14359:4;14475:64;14535:2;14524:9;14520:18;14512:6;14475:64;:::i;:::-;14467:72;14171:374;-1:-1:-1;;;;14171:374:68:o;14550:353::-;14761:2;14750:9;14743:21;14724:4;14781:57;14834:2;14823:9;14819:18;14811:6;14781:57;:::i;:::-;14773:65;;14888:6;14881:14;14874:22;14869:2;14858:9;14854:18;14847:50;14550:353;;;;;:::o;14908:263::-;15091:2;15080:9;15073:21;15054:4;15111:54;15161:2;15150:9;15146:18;15138:6;15111:54;:::i;15176:348::-;15262:6;15315:2;15303:9;15294:7;15290:23;15286:32;15283:52;;;15331:1;15328;15321:12;15283:52;15371:9;15358:23;-1:-1:-1;;;;;15396:6:68;15393:30;15390:50;;;15436:1;15433;15426:12;15390:50;15459:59;15510:7;15501:6;15490:9;15486:22;15459:59;:::i;15529:359::-;15617:6;15670:2;15658:9;15649:7;15645:23;15641:32;15638:52;;;15686:1;15683;15676:12;15638:52;15726:9;15713:23;-1:-1:-1;;;;;15751:6:68;15748:30;15745:50;;;15791:1;15788;15781:12;15745:50;15814:68;15874:7;15865:6;15854:9;15850:22;15814:68;:::i;16179:338::-;16394:6;16387:14;16380:22;16369:9;16362:41;16439:2;16434;16423:9;16419:18;16412:30;16343:4;16459:52;16507:2;16496:9;16492:18;16484:6;16459:52;:::i;16522:380::-;16601:1;16597:12;;;;16644;;;16665:61;;16719:4;16711:6;16707:17;16697:27;;16665:61;16772:2;16764:6;16761:14;16741:18;16738:38;16735:161;;16818:10;16813:3;16809:20;16806:1;16799:31;16853:4;16850:1;16843:15;16881:4;16878:1;16871:15;16907:127;16968:10;16963:3;16959:20;16956:1;16949:31;16999:4;16996:1;16989:15;17023:4;17020:1;17013:15;17039:1902;17137:3;17175:5;17169:12;17202:6;17197:3;17190:19;17228:4;17269:2;17264:3;17260:12;17294:11;17321;17314:18;;17371:6;17368:1;17364:14;17357:5;17353:26;17341:38;;17413:2;17406:5;17402:14;17434:1;17444:1471;17458:6;17455:1;17452:13;17444:1471;;;17529:5;17523:4;17519:16;17514:3;17507:29;17565:6;17559:13;17595:4;17638:2;17632:9;17667:2;17661:4;17654:16;17711:12;17705:19;17747:4;17786:2;17781;17775:4;17771:13;17764:25;17816:60;17871:3;17865:4;17861:14;17845;17816:60;:::i;:::-;17802:74;;17935:2;17921:12;17917:21;17911:28;17966:2;17962:7;17992:2;18052;18045:4;18037:6;18033:17;18029:26;18024:2;18018:4;18014:13;18007:49;18083:52;18128:6;18112:14;18083:52;:::i;:::-;18164:21;;;18158:28;18209:3;18232:13;;;18225:25;;;;18291:21;;;18285:28;-1:-1:-1;;;;;18374:39:68;18336:3;18359:13;;;18352:62;;;;18459:21;;;18453:28;-1:-1:-1;;;;;;18449:55:68;18434:13;;;18427:78;;;;18546:21;;;18540:28;18608:17;;;18604:26;;;18487:3;18588:14;;18581:50;-1:-1:-1;18540:28:68;18069:66;-1:-1:-1;18657:40:68;18069:66;18540:28;18657:40;:::i;:::-;18738:11;;;18732:18;3180:13;;3173:21;18795:13;;;3161:34;18732:18;18644:53;-1:-1:-1;18763:46:68;;-1:-1:-1;;3110:91:68;18763:46;18893:12;;;;18830:5;-1:-1:-1;;18858:15:68;;;;17480:1;17473:9;17444:1471;;18946:1398;19009:3;19047:5;19041:12;19074:6;19069:3;19062:19;19100:4;19141:2;19136:3;19132:12;19166:11;19193;19186:18;;19243:6;19240:1;19236:14;19229:5;19225:26;19213:38;;19285:2;19278:5;19274:14;19306:1;19327;19337:981;19353:6;19348:3;19345:15;19337:981;;;19428:5;19422:4;19418:16;19413:3;19406:29;19464:6;19458:13;19494:4;19537:2;19531:9;19566:2;19560:4;19553:16;19596:55;19647:2;19641:4;19637:13;19623:12;19596:55;:::i;:::-;19692:11;;;19686:18;19739:17;;;19724:13;;;19717:40;19818:21;;19852:24;;;19942:23;;;;19989:1;;-1:-1:-1;19898:15:68;;;-1:-1:-1;20003:209:68;20019:8;20014:3;20011:17;20003:209;;;20096:15;;20082:30;;20181:17;;;;20047:1;20038:11;;;;;20138:14;;;;20003:209;;;-1:-1:-1;20296:12:68;;;;20233:5;-1:-1:-1;;;20261:15:68;;;;19379:1;19370:11;19337:981;;;-1:-1:-1;20334:4:68;;18946:1398;-1:-1:-1;;;;;;;;18946:1398:68:o;20349:1248::-;20560:2;20549:9;20542:21;20523:4;20598:6;20592:13;20641:4;20636:2;20625:9;20621:18;20614:32;20669:61;20725:3;20714:9;20710:19;20696:12;20669:61;:::i;:::-;20655:75;;-1:-1:-1;;;;;20788:2:68;20780:6;20776:15;20770:22;20766:47;20761:2;20750:9;20746:18;20739:75;20868:2;20860:6;20856:15;20850:22;20845:2;20834:9;20830:18;20823:50;20922:2;20914:6;20910:15;20904:22;20949:2;20945:7;21017:2;21005:9;20997:6;20993:22;20989:31;20983:3;20972:9;20968:19;20961:60;21044:97;21134:6;21118:14;21044:97;:::i;:::-;21030:111;;21190:3;21182:6;21178:16;21172:23;21150:45;;21260:2;21248:9;21240:6;21236:22;21232:31;21226:3;21215:9;21211:19;21204:60;21287:62;21342:6;21326:14;21287:62;:::i;:::-;21273:76;;21404:3;21396:6;21392:16;21386:23;21380:3;21369:9;21365:19;21358:52;21459:3;21451:6;21447:16;21441:23;21419:45;;21530:2;21518:9;21510:6;21506:22;21502:31;21495:4;21484:9;21480:20;21473:61;;21551:40;21584:6;21568:14;21551:40;:::i;21602:184::-;21672:6;21725:2;21713:9;21704:7;21700:23;21696:32;21693:52;;;21741:1;21738;21731:12;21693:52;-1:-1:-1;21764:16:68;;21602:184;-1:-1:-1;21602:184:68:o;21791:198::-;21897:9;21934:49;21968:14;21961:5;21934:49;:::i;21994:127::-;22055:10;22050:3;22046:20;22043:1;22036:31;22086:4;22083:1;22076:15;22110:4;22107:1;22100:15;22126:128;22193:9;;;22214:11;;;22211:37;;;22228:18;;:::i;22259:125::-;22324:9;;;22345:10;;;22342:36;;;22358:18;;:::i;22389:135::-;22428:3;22449:17;;;22446:43;;22469:18;;:::i;:::-;-1:-1:-1;22516:1:68;22505:13;;22389:135::o;22805:277::-;22872:6;22925:2;22913:9;22904:7;22900:23;22896:32;22893:52;;;22941:1;22938;22931:12;22893:52;22973:9;22967:16;23026:5;23019:13;23012:21;23005:5;23002:32;22992:60;;23048:1;23045;23038:12", + "object": "0x608060405234801561001057600080fd5b506004361061018e5760003560e01c80635d029685116100de57806394074b03116100975780639e530b57116100715780639e530b571461042c578063a2b671581461045e578063ad81e24414610476578063c66c66a11461047e57600080fd5b806394074b03146103fc57806396c82e57146104115780639d3070b51461041957600080fd5b80635d0296851461032557806366d7bbbc1461033a5780636cb2ecee1461038a5780637d9740f4146103ab5780638789f83b146103c35780638cfd78e7146103db57600080fd5b8063158ef93e1161014b578063375b3c0a11610125578063375b3c0a146102cd57806341b6a2e8146102d557806351392fc0146102e6578063599c7bd11461031d57600080fd5b8063158ef93e1461027d578063247294251461029b5780632cc14ea2146102ad57600080fd5b806302e30f9a1461019357806306c46853146101bc5780630ea746f2146101e157806310d500e114610201578063133f74ea14610233578063135493151461025d575b600080fd5b6101a66101a1366004614672565b61049f565b6040516101b39190614a93565b60405180910390f35b600f546001600160401b03165b6040516001600160401b0390911681526020016101b3565b6101f46101ef366004614c17565b610ffa565b6040516101b39190614c5b565b6102096113b7565b604080516001600160401b03948516815292841660208401529216918101919091526060016101b3565b610246610241366004614c6e565b611416565b6040805192151583526020830191909152016101b3565b61027061026b366004614ca1565b6114af565b6040516101b39190614cee565b600f54600160401b900460ff165b60405190151581526020016101b3565b600c545b6040519081526020016101b3565b6102c06102bb366004614c6e565b6119b0565b6040516101b39190614d01565b600a5461029f565b600e546001600160401b03166101c9565b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27054600160401b90046001600160401b03166101c9565b6101c9612039565b61032d612066565b6040516101b39190614d14565b61028b610348366004614d76565b6001600160401b03821660009081526006602090815260408083208054845260030182528083206001600160a01b038516845290915290205460ff1692915050565b61039d610398366004614c6e565b612c6c565b6040516101b3929190614da0565b600e54600160801b90046001600160401b03166101c9565b600e54600160401b90046001600160401b03166101c9565b6103ee6103e9366004614672565b613370565b6040516101b3929190614dc3565b6104046136fb565b6040516101b39190614de7565b600d5461029f565b61029f610427366004614dfa565b613790565b61043f61043a366004614e2e565b6137a8565b6040805192151583526001600160401b039091166020830152016101b3565b600e54600160c01b90046001600160401b03166101c9565b6101c96137e9565b61049161048c366004614e2e565b61381c565b6040516101b3929190614e62565b6104a761450b565b600082815260208181526040918290208251610120810184528154815260018201549281019290925260028101549282019290925260038201546001600160401b038082166060840152600160401b820416608083015290919060a0830190600160801b900460ff1660058111156105215761052161468b565b60058111156105325761053261468b565b81526040805180820182526004840180546001600160401b031682526005850180548451602082810282018101909652818152958501959394929385840193909291908301828280156105ae57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610590575b50505091909252505050815260408051610120810182526006840180546001600160401b031660e083019081526007860180548551602082810282018101909752818152968601969495939486948693610100870193909183018282801561063f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610621575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015610a495760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561075057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610732575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061078a90614e7d565b80601f01602080910402602001604051908101604052809291908181526020018280546107b690614e7d565b80156108035780601f106107d857610100808354040283529160200191610803565b820191906000526020600020905b8154815290600101906020018083116107e657829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561089457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610876575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906108ce90614e7d565b80601f01602080910402602001604051908101604052809291908181526020018280546108fa90614e7d565b80156109475780601f1061091c57610100808354040283529160200191610947565b820191906000526020600020905b81548152906001019060200180831161092a57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916109a290614e7d565b80601f01602080910402602001604051908101604052809291908181526020018280546109ce90614e7d565b8015610a1b5780601f106109f057610100808354040283529160200191610a1b565b820191906000526020600020905b8154815290600101906020018083116109fe57829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016106aa565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015610b80576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015610b0c57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610aee575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610b6857602002820191906000526020600020905b815481526020019060010190808311610b54575b50505050508152505081526020019060010190610a76565b50505050815260200160068201548152602001600782018054610ba290614e7d565b80601f0160208091040260200160405190810160405280929190818152602001828054610bce90614e7d565b8015610c1b5780601f10610bf057610100808354040283529160200191610c1b565b820191906000526020600020905b815481529060010190602001808311610bfe57829003601f168201915b5050505050815250508152602001600e8201805480602002602001604051908101604052809291908181526020016000905b82821015610fec5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015610cf357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610cd5575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610d2d90614e7d565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5990614e7d565b8015610da65780601f10610d7b57610100808354040283529160200191610da6565b820191906000526020600020905b815481529060010190602001808311610d8957829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015610e3757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e19575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610e7190614e7d565b80601f0160208091040260200160405190810160405280929190818152602001828054610e9d90614e7d565b8015610eea5780601f10610ebf57610100808354040283529160200191610eea565b820191906000526020600020905b815481529060010190602001808311610ecd57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191610f4590614e7d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7190614e7d565b8015610fbe5780601f10610f9357610100808354040283529160200191610fbe565b820191906000526020600020905b815481529060010190602001808311610fa157829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101610c4d565b505050915250909392505050565b61100261456d565b600061100d84614378565b91505080600e01838154811061102557611025614eb1565b60009182526020918290206040805161018081018252600c90930290910180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d019390918301828280156110c457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116110a6575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906110fe90614e7d565b80601f016020809104026020016040519081016040528092919081815260200182805461112a90614e7d565b80156111775780601f1061114c57610100808354040283529160200191611177565b820191906000526020600020905b81548152906001019060200180831161115a57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561120857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116111ea575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061124290614e7d565b80601f016020809104026020016040519081016040528092919081815260200182805461126e90614e7d565b80156112bb5780601f10611290576101008083540402835291602001916112bb565b820191906000526020600020905b81548152906001019060200180831161129e57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161131690614e7d565b80601f016020809104026020016040519081016040528092919081815260200182805461134290614e7d565b801561138f5780601f106113645761010080835404028352916020019161138f565b820191906000526020600020905b81548152906001019060200180831161137257829003601f168201915b505050919092525050508152600b919091015460ff1615156020909101529150505b92915050565b600080600061140b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27154600160401b81046001600160401b0390811692600160801b8304821692600160c01b900490911690565b925092509250909192565b60008060008061142585612c6c565b6040516339aa47fb60e01b81529193509150829073__$1cd67d4dc9e627f0bec7928aa480e7d951$__906339aa47fb9061146390859060040161504e565b602060405180830381865af4158015611480573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a491906150eb565b935093505050915091565b60606000806114c56114c086615104565b614378565b91509150816115095760408051600080825260208201909252906114ff565b6114ec61456d565b8152602001906001900390816114e45790505b50925050506113b1565b600e8101546001600160401b03851681811061155c576040805160008082526020820190925290611550565b61153d61456d565b8152602001906001900390816115355790505b509450505050506113b1565b60006115688284615126565b90506000816001600160401b0381111561158457611584614aad565b6040519080825280602002602001820160405280156115bd57816020015b6115aa61456d565b8152602001906001900390816115a25790505b50905060005b828110156119a357600e86016115d98583615139565b815481106115e9576115e9614eb1565b60009182526020918290206040805161018081018252600c90930290910180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561168857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161166a575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906116c290614e7d565b80601f01602080910402602001604051908101604052809291908181526020018280546116ee90614e7d565b801561173b5780601f106117105761010080835404028352916020019161173b565b820191906000526020600020905b81548152906001019060200180831161171e57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156117cc57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116117ae575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061180690614e7d565b80601f016020809104026020016040519081016040528092919081815260200182805461183290614e7d565b801561187f5780601f106118545761010080835404028352916020019161187f565b820191906000526020600020905b81548152906001019060200180831161186257829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916118da90614e7d565b80601f016020809104026020016040519081016040528092919081815260200182805461190690614e7d565b80156119535780601f1061192857610100808354040283529160200191611953565b820191906000526020600020905b81548152906001019060200180831161193657829003601f168201915b505050919092525050508152600b919091015460ff161515602090910152825183908390811061198557611985614eb1565b6020026020010181905250808061199b9061514c565b9150506115c3565b5098975050505050505050565b6119b861458d565b6001600160401b03808316600090815260026020908152604091829020825161012081018452815490941660e0850190815260018201805485518186028101860190965280865292948694929386936101008701939190830182828015611a4857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611a2a575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015611e525760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015611b5957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611b3b575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190611b9390614e7d565b80601f0160208091040260200160405190810160405280929190818152602001828054611bbf90614e7d565b8015611c0c5780601f10611be157610100808354040283529160200191611c0c565b820191906000526020600020905b815481529060010190602001808311611bef57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015611c9d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611c7f575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190611cd790614e7d565b80601f0160208091040260200160405190810160405280929190818152602001828054611d0390614e7d565b8015611d505780601f10611d2557610100808354040283529160200191611d50565b820191906000526020600020905b815481529060010190602001808311611d3357829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191611dab90614e7d565b80601f0160208091040260200160405190810160405280929190818152602001828054611dd790614e7d565b8015611e245780601f10611df957610100808354040283529160200191611e24565b820191906000526020600020905b815481529060010190602001808311611e0757829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101611ab3565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015611f89576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015611f1557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611ef7575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015611f7157602002820191906000526020600020905b815481526020019060010190808311611f5d575b50505050508152505081526020019060010190611e7f565b50505050815260200160068201548152602001600782018054611fab90614e7d565b80601f0160208091040260200160405190810160405280929190818152602001828054611fd790614e7d565b80156120245780601f10611ff957610100808354040283529160200191612024565b820191906000526020600020905b81548152906001019060200180831161200757829003601f168201915b5050505050815250509050919050565b905090565b60006120347f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e2735460ff1690565b6007546060906000816001600160401b0381111561208657612086614aad565b6040519080825280602002602001820160405280156120bf57816020015b6120ac61450b565b8152602001906001900390816120a45790505b50905060005b82811015612c655760008060070182815481106120e4576120e4614eb1565b60009182526020808320909101548083528282526040928390208351610120810185528154815260018201549381019390935260028101549383019390935260038301546001600160401b038082166060850152600160401b820416608084015290935090919060a083019060ff600160801b90910416600581111561216c5761216c61468b565b600581111561217d5761217d61468b565b81526040805180820182526004840180546001600160401b031682526005850180548451602082810282018101909652818152958501959394929385840193909291908301828280156121f957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116121db575b50505091909252505050815260408051610120810182526006840180546001600160401b031660e083019081526007860180548551602082810282018101909752818152968601969495939486948693610100870193909183018282801561228a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161226c575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156126945760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561239b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161237d575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906123d590614e7d565b80601f016020809104026020016040519081016040528092919081815260200182805461240190614e7d565b801561244e5780601f106124235761010080835404028352916020019161244e565b820191906000526020600020905b81548152906001019060200180831161243157829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156124df57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116124c1575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061251990614e7d565b80601f016020809104026020016040519081016040528092919081815260200182805461254590614e7d565b80156125925780601f1061256757610100808354040283529160200191612592565b820191906000526020600020905b81548152906001019060200180831161257557829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916125ed90614e7d565b80601f016020809104026020016040519081016040528092919081815260200182805461261990614e7d565b80156126665780601f1061263b57610100808354040283529160200191612666565b820191906000526020600020905b81548152906001019060200180831161264957829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016122f5565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b828210156127cb576000848152602090819020604080516080810182526003860290920180546001600160401b03168383019081526001820180548451818802810188019095528085529495929486949293869360608701939092909183018282801561275757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612739575b5050505050815250508152602001600282018054806020026020016040519081016040528092919081815260200182805480156127b357602002820191906000526020600020905b81548152602001906001019080831161279f575b505050505081525050815260200190600101906126c1565b505050508152602001600682015481526020016007820180546127ed90614e7d565b80601f016020809104026020016040519081016040528092919081815260200182805461281990614e7d565b80156128665780601f1061283b57610100808354040283529160200191612866565b820191906000526020600020905b81548152906001019060200180831161284957829003601f168201915b5050505050815250508152602001600e8201805480602002602001604051908101604052809291908181526020016000905b82821015612c375760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561293e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612920575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061297890614e7d565b80601f01602080910402602001604051908101604052809291908181526020018280546129a490614e7d565b80156129f15780601f106129c6576101008083540402835291602001916129f1565b820191906000526020600020905b8154815290600101906020018083116129d457829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015612a8257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612a64575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190612abc90614e7d565b80601f0160208091040260200160405190810160405280929190818152602001828054612ae890614e7d565b8015612b355780601f10612b0a57610100808354040283529160200191612b35565b820191906000526020600020905b815481529060010190602001808311612b1857829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191612b9090614e7d565b80601f0160208091040260200160405190810160405280929190818152602001828054612bbc90614e7d565b8015612c095780601f10612bde57610100808354040283529160200191612c09565b820191906000526020600020905b815481529060010190602001808311612bec57829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101612898565b5050505081525050838381518110612c5157612c51614eb1565b6020908102919091010152506001016120c5565b5092915050565b6000612c7661458d565b6001600160401b03808416600090815260026020908152604091829020825161012081018452815490941660e0850190815260018201805485518186028101860190965280865292948694929386936101008701939190830182828015612d0657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612ce8575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156131105760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015612e1757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612df9575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190612e5190614e7d565b80601f0160208091040260200160405190810160405280929190818152602001828054612e7d90614e7d565b8015612eca5780601f10612e9f57610100808354040283529160200191612eca565b820191906000526020600020905b815481529060010190602001808311612ead57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015612f5b57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f3d575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190612f9590614e7d565b80601f0160208091040260200160405190810160405280929190818152602001828054612fc190614e7d565b801561300e5780601f10612fe35761010080835404028352916020019161300e565b820191906000526020600020905b815481529060010190602001808311612ff157829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161306990614e7d565b80601f016020809104026020016040519081016040528092919081815260200182805461309590614e7d565b80156130e25780601f106130b7576101008083540402835291602001916130e2565b820191906000526020600020905b8154815290600101906020018083116130c557829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101612d71565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015613247576000848152602090819020604080516080810182526003860290920180546001600160401b0316838301908152600182018054845181880281018801909552808552949592948694929386936060870193909290918301828280156131d357602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116131b5575b50505050508152505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561322f57602002820191906000526020600020905b81548152602001906001019080831161321b575b5050505050815250508152602001906001019061313d565b5050505081526020016006820154815260200160078201805461326990614e7d565b80601f016020809104026020016040519081016040528092919081815260200182805461329590614e7d565b80156132e25780601f106132b7576101008083540402835291602001916132e2565b820191906000526020600020905b8154815290600101906020018083116132c557829003601f168201915b5050509190925250508151604051630c133d1360e31b815292935073__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e89892506133279190600401614de7565b602060405180830381865af4158015613344573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133689190615165565b159150915091565b6133786145d8565b6000828152600160208181526040808420600b81015482516101408101845282546001600160401b031661010082019081529583018054855181880281018801909652808652939660ff9093169591948794869460c086019487948694929386936101208a01939092919083018282801561341c57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116133fe575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061345690614e7d565b80601f016020809104026020016040519081016040528092919081815260200182805461348290614e7d565b80156134cf5780601f106134a4576101008083540402835291602001916134cf565b820191906000526020600020905b8154815290600101906020018083116134b257829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561356057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613542575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061359a90614e7d565b80601f01602080910402602001604051908101604052809291908181526020018280546135c690614e7d565b80156136135780601f106135e857610100808354040283529160200191613613565b820191906000526020600020905b8154815290600101906020018083116135f657829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161366e90614e7d565b80601f016020809104026020016040519081016040528092919081815260200182805461369a90614e7d565b80156136e75780601f106136bc576101008083540402835291602001916136e7565b820191906000526020600020905b8154815290600101906020018083116136ca57829003601f168201915b505050505081525050915091509150915091565b604080518082019091526000815260606020820152604080518082018252600880546001600160401b0316825260098054845160208281028201810190965281815293949293838601939092919083018282801561378257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613764575b505050505081525050905090565b60008061379c83614378565b600e0154949350505050565b60008080806137b96114c086615104565b91509150816137cf575060009485945092505050565b600301546001956001600160401b03909116945092505050565b60006120347f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e270546001600160401b031690565b600061382661450b565b6138326114c084615104565b6040805161012081018252825481526001830154602082015260028301549181019190915260038201546001600160401b038082166060840152600160401b8204166080830152829060a0830190600160801b900460ff16600581111561389b5761389b61468b565b60058111156138ac576138ac61468b565b81526040805180820182526004840180546001600160401b0316825260058501805484516020828102820181019096528181529585019593949293858401939092919083018282801561392857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161390a575b50505091909252505050815260408051610120810182526006840180546001600160401b031660e08301908152600786018054855160208281028201810190975281815296860196949593948694869361010087019390918301828280156139b957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161399b575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015613dc35760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015613aca57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613aac575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190613b0490614e7d565b80601f0160208091040260200160405190810160405280929190818152602001828054613b3090614e7d565b8015613b7d5780601f10613b5257610100808354040283529160200191613b7d565b820191906000526020600020905b815481529060010190602001808311613b6057829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015613c0e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613bf0575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190613c4890614e7d565b80601f0160208091040260200160405190810160405280929190818152602001828054613c7490614e7d565b8015613cc15780601f10613c9657610100808354040283529160200191613cc1565b820191906000526020600020905b815481529060010190602001808311613ca457829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191613d1c90614e7d565b80601f0160208091040260200160405190810160405280929190818152602001828054613d4890614e7d565b8015613d955780601f10613d6a57610100808354040283529160200191613d95565b820191906000526020600020905b815481529060010190602001808311613d7857829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101613a24565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015613efa576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015613e8657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613e68575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015613ee257602002820191906000526020600020905b815481526020019060010190808311613ece575b50505050508152505081526020019060010190613df0565b50505050815260200160068201548152602001600782018054613f1c90614e7d565b80601f0160208091040260200160405190810160405280929190818152602001828054613f4890614e7d565b8015613f955780601f10613f6a57610100808354040283529160200191613f95565b820191906000526020600020905b815481529060010190602001808311613f7857829003601f168201915b5050505050815250508152602001600e8201805480602002602001604051908101604052809291908181526020016000905b828210156143665760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561406d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161404f575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906140a790614e7d565b80601f01602080910402602001604051908101604052809291908181526020018280546140d390614e7d565b80156141205780601f106140f557610100808354040283529160200191614120565b820191906000526020600020905b81548152906001019060200180831161410357829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156141b157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311614193575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906141eb90614e7d565b80601f016020809104026020016040519081016040528092919081815260200182805461421790614e7d565b80156142645780601f1061423957610100808354040283529160200191614264565b820191906000526020600020905b81548152906001019060200180831161424757829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916142bf90614e7d565b80601f01602080910402602001604051908101604052809291908181526020018280546142eb90614e7d565b80156143385780601f1061430d57610100808354040283529160200191614338565b820191906000526020600020905b81548152906001019060200180831161431b57829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101613fc7565b50505091525092969095509350505050565b6040516390ba52cf60e01b8152600090819081908190819073__$a0fe38a9a81205afccc10810b09a4d3f45$__906390ba52cf906143ba908990600401614de7565b602060405180830381865af41580156143d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143fb91906150eb565b81526020808201929092526040908101600020815180830183526004820180546001600160401b03168252600583018054855181880281018801909652808652939750919490938582019390929183018282801561448257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311614464575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e89892506144c191600401614de7565b602060405180830381865af41580156144de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145029190615165565b15925050915091565b60408051610120810182526000808252602080830182905282840182905260608084018390526080840183905260a0840183905284518086019095529184528301529060c0820190815260200161456061458d565b8152602001606081525090565b60405180604001604052806145806145d8565b8152600060209091015290565b6040805161012081018252600060e0820181815260606101008401819052908352602083018290529282018190528282018390526080820183905260a082015260c081019190915290565b6040518060c001604052806145eb61462d565b81526020016145f861462d565b81526020016000815260200160006001600160401b0316815260200160006001600160e01b0319168152602001606081525090565b604080516080810182526000918101918252606080820152908190815260200161466d6040518060400160405280600060ff168152602001606081525090565b905290565b60006020828403121561468457600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b600681106146bf57634e487b7160e01b600052602160045260246000fd5b9052565b6000604083016001600160401b0383511684526020808401516040828701528281518085526060880191508383019450600092505b808310156147215784516001600160a01b031682529383019360019290920191908301906146f8565b509695505050505050565b6000815180845260005b8181101561475257602081850181015186830182015201614736565b506000602082860101526020601f19601f83011685010191505092915050565b600081516040845261478760408501826146c3565b90506020830151848203602086015260ff815116825260208101519050604060208301526147b8604083018261472c565b95945050505050565b6000815160c084526147d660c0850182614772565b9050602083015184820360208601526147ef8282614772565b915050604083015160408501526001600160401b03606084015116606085015263ffffffff60e01b608084015116608085015260a083015184820360a08601526147b8828261472c565b600081516040845261484e60408501826147c1565b6020938401511515949093019390935250919050565b600081518084526020808501808196508360051b8101915082860160005b858110156148ac57828403895261489a848351614839565b98850198935090840190600101614882565b5091979650505050505050565b6000815160e084526148ce60e08501826146c3565b905060206001600160401b0381850151168186015260408085015181870152606085015186840360608801526149048482614864565b935050608085015186840360808801528381518086528486019150848160051b87010185840193506000805b838110156149a457888303601f1901855285518051888552614954898601826146c3565b918a0151858303868c01528051808452908b01928592508b01905b8083101561498f5783518252928b019260019290920191908b019061496f565b50978a0197968a019694505050600101614930565b505060a089015160a08b015260c0890151965089810360c08b01526149c9818861472c565b9a9950505050505050505050565b60006101208251845260208301516020850152604083015160408501526060830151614a0e60608601826001600160401b03169052565b506080830151614a2960808601826001600160401b03169052565b5060a0830151614a3c60a08601826146a1565b5060c08301518160c0860152614a54828601826146c3565b91505060e083015184820360e0860152614a6e82826148b9565b9150506101008084015185830382870152614a898382614864565b9695505050505050565b602081526000614aa660208301846149d7565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715614ae557614ae5614aad565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614b1357614b13614aad565b604052919050565b80356001600160401b0381168114614b3257600080fd5b919050565b80356001600160a01b0381168114614b3257600080fd5b600060408284031215614b6057600080fd5b614b68614ac3565b9050614b7382614b1b565b81526020808301356001600160401b0380821115614b9057600080fd5b818501915085601f830112614ba457600080fd5b813581811115614bb657614bb6614aad565b8060051b9150614bc7848301614aeb565b8181529183018401918481019088841115614be157600080fd5b938501935b83851015614c0657614bf785614b37565b82529385019390850190614be6565b808688015250505050505092915050565b60008060408385031215614c2a57600080fd5b82356001600160401b03811115614c4057600080fd5b614c4c85828601614b4e565b95602094909401359450505050565b602081526000614aa66020830184614839565b600060208284031215614c8057600080fd5b614aa682614b1b565b600060408284031215614c9b57600080fd5b50919050565b60008060408385031215614cb457600080fd5b82356001600160401b03811115614cca57600080fd5b614cd685828601614c89565b925050614ce560208401614b1b565b90509250929050565b602081526000614aa66020830184614864565b602081526000614aa660208301846148b9565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015614d6957603f19888603018452614d578583516149d7565b94509285019290850190600101614d3b565b5092979650505050505050565b60008060408385031215614d8957600080fd5b614d9283614b1b565b9150614ce560208401614b37565b8215158152604060208201526000614dbb60408301846148b9565b949350505050565b604081526000614dd660408301856147c1565b905082151560208301529392505050565b602081526000614aa660208301846146c3565b600060208284031215614e0c57600080fd5b81356001600160401b03811115614e2257600080fd5b614dbb84828501614b4e565b600060208284031215614e4057600080fd5b81356001600160401b03811115614e5657600080fd5b614dbb84828501614c89565b8215158152604060208201526000614dbb60408301846149d7565b600181811c90821680614e9157607f821691505b602082108103614c9b57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501808196508360051b8101915082860160005b858110156148ac578284038952815160408151818752805160c080848a0152614f126101008a0183614772565b915089830151603f196060818c860301818d0152614f308584614772565b9686015160808d810191909152908601516001600160401b031660a0808e0191909152908601516001600160e01b031916938c0193909352918401518a860390920160e08b015250929050614f85818461472c565b93890151801515898b0152939250614f9b915050565b9986019994505090840190600101614ee5565b600081518084526020808501808196508360051b810191508286016000805b86811015615040578385038a52825160408151818852614fef828901826146c3565b92890151888403898b01528051808552908a01938693508a0191505b8083101561502b578351825292890192600192909201919089019061500b565b509b88019b9650505091850191600101614fcd565b509298975050505050505050565b602081526000825160e0602084015261506b6101008401826146c3565b90506001600160401b036020850151166040840152604084015160608401526060840151601f19808584030160808601526150a68383614ec7565b925060808601519150808584030160a08601526150c38383614fae565b925060a086015160c086015260c08601519150808584030160e0860152506147b8828261472c565b6000602082840312156150fd57600080fd5b5051919050565b60006113b13683614b4e565b634e487b7160e01b600052601160045260246000fd5b818103818111156113b1576113b1615110565b808201808211156113b1576113b1615110565b60006001820161515e5761515e615110565b5060010190565b60006020828403121561517757600080fd5b81518015158114614aa657600080fdfea26469706673582212207a625a0e3cc65a789d7becd58d6bf122a0f739a4d9a2b5642bb6ba600fb61d5664736f6c63430008130033", + "sourceMap": "691:6655:34:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2259:109;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1391:107;1470:21;;-1:-1:-1;;;;;1470:21:34;1391:107;;;-1:-1:-1;;;;;7972:31:78;;;7954:50;;7942:2;7927:18;1391:107:34;7810:200:78;2792:278:34;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;6434:174::-;;;:::i;:::-;;;;-1:-1:-1;;;;;11015:15:78;;;10997:34;;11067:15;;;11062:2;11047:18;;11040:43;11119:15;;11099:18;;;11092:43;;;;10948:2;10933:18;6434:174:34;10764:377:78;6024:240:34;;;;;;:::i;:::-;;:::i;:::-;;;;11528:14:78;;11521:22;11503:41;;11575:2;11560:18;;11553:34;;;;11476:18;6024:240:34;11335:258:78;3329:752:34;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1296:89::-;1365:13;;-1:-1:-1;;;1365:13:34;;;;1296:89;;;12717:14:78;;12710:22;12692:41;;12680:2;12665:18;1296:89:34;12552:187:78;906:92:34;978:13;;906:92;;;12890:25:78;;;12878:2;12863:18;906:92:34;12744:177:78;1724:137:34;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1204:86::-;1273:10;;1204:86;;1004:95;1077:15;;-1:-1:-1;;;;;1077:15:34;1004:95;;6270:158;1522:42:54;3643:14;-1:-1:-1;;;3643:14:54;;-1:-1:-1;;;;;3643:14:54;6270:158:34;;6743:113;;;:::i;6969:375::-;;;:::i;:::-;;;;;;;:::i;5070:285::-;;;;;;:::i;:::-;-1:-1:-1;;;;;5234:29:34;;5166:4;5234:29;;;:22;:29;;;;;;;;5311:25;;5280:57;;:30;;:57;;;;;-1:-1:-1;;;;;5280:68:34;;;;;;;;;;;;5070:285;;;;;5566:240;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;1504:105::-;1582:20;;-1:-1:-1;;;1582:20:34;;-1:-1:-1;;;;;1582:20:34;1504:105;;4605;4682:21;;-1:-1:-1;;;4682:21:34;;-1:-1:-1;;;;;4682:21:34;4605:105;;4716:166;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;1615:103::-;;;:::i;:::-;;;;;;;:::i;4509:90::-;4579:13;;4509:90;;2443:262;;;;;;:::i;:::-;;:::i;4204:299::-;;;;;;:::i;:::-;;:::i;:::-;;;;16245:14:78;;16238:22;16220:41;;-1:-1:-1;;;;;16297:31:78;;;16292:2;16277:18;;16270:59;16193:18;4204:299:34;16054:281:78;1105:93:34;1177:14;;-1:-1:-1;;;1177:14:34;;-1:-1:-1;;;;;1177:14:34;1105:93;;6614:123;;;:::i;2057:196::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;2259:109::-;2310:20;;:::i;:::-;2349:1;:12;;;;;;;;;;;;2342:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:34;;;;;;;-1:-1:-1;;;2342:19:34;;;;;;;;;2349:12;2342:19;;;;-1:-1:-1;;;2342:19:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:34;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:34;;;;-1:-1:-1;;;2342:19:34;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:34;-1:-1:-1;;;;;2342:19:34;-1:-1:-1;;;;;2342:19:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:34;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:34;;;;-1:-1:-1;;;2342:19:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:34;;;;-1:-1:-1;;;2342:19:34;;-1:-1:-1;2342:19:34;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:34;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:34;;;;-1:-1:-1;;;2342:19:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:34;;;;-1:-1:-1;;;2342:19:34;;-1:-1:-1;2342:19:34;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:34;;;;;;-1:-1:-1;;;2342:19:34;;;;-1:-1:-1;;;;;;2342:19:34;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:34;;;;-1:-1:-1;;;2342:19:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:34;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:34;;;;-1:-1:-1;;;2342:19:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:34;;;;-1:-1:-1;;;2342:19:34;;-1:-1:-1;2342:19:34;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:34;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:34;;;;-1:-1:-1;;;2342:19:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:34;;;;-1:-1:-1;;;2342:19:34;;-1:-1:-1;2342:19:34;;;;;;;;;;;;;;-1:-1:-1;;;;;2342:19:34;;;;;;-1:-1:-1;;;2342:19:34;;;;-1:-1:-1;;;;;;2342:19:34;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:34;;;;-1:-1:-1;;;2342:19:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2342:19:34;;-1:-1:-1;2342:19:34;;2259:109;-1:-1:-1;;;2259:109:34:o;2792:278::-;2885:15;;:::i;:::-;2966:21;2991:30;3012:8;2991:20;:30::i;:::-;2963:58;;;3038:6;:18;;3057:5;3038:25;;;;;;;;:::i;:::-;;;;;;;;;;3031:32;;;;;;;;3038:25;;;;;;;3031:32;;-1:-1:-1;;;;;3031:32:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;3038:25;;3031:32;;;;;3038:25;;3031:32;;;;;;3038:25;;3031:32;;3038:25;;3031:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3031:32:34;;;;;;;;;;;;;;;;-1:-1:-1;;;3031:32:34;;;;-1:-1:-1;;;3031:32:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3031:32:34;;;;-1:-1:-1;;;3031:32:34;;-1:-1:-1;3031:32:34;;;;;;;;;;;;;;;-1:-1:-1;;;;;3031:32:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3031:32:34;;;;;;;;;;;;;;;;-1:-1:-1;;;3031:32:34;;;;-1:-1:-1;;;3031:32:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3031:32:34;;;;-1:-1:-1;;;3031:32:34;;-1:-1:-1;3031:32:34;;;;;;;;;;;;;;-1:-1:-1;;;;;3031:32:34;;;;;;-1:-1:-1;;;3031:32:34;;;;-1:-1:-1;;;;;;3031:32:34;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3031:32:34;;;;-1:-1:-1;;;3031:32:34;;;;;;;;;;;;;;;;;;-1:-1:-1;;2792:278:34;;;;;:::o;6434:174::-;6482:6;6490;6498;6574:27;9676:17:54;:24;-1:-1:-1;;;9676:24:54;;-1:-1:-1;;;;;9676:24:54;;;;-1:-1:-1;;;9702:23:54;;;;;-1:-1:-1;;;9727:22:54;;;;;;9533:224;6574:27:34;6567:34;;;;;;6434:174;;;:::o;6024:240::-;6100:4;6106:7;6126:11;6139:36;6179:32;6205:5;6179:25;:32::i;:::-;6237:19;;-1:-1:-1;;;6237:19:34;;6125:86;;-1:-1:-1;6125:86:34;-1:-1:-1;6125:86:34;;6237:17;;;;:19;;6125:86;;6237:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6221:36;;;;;;6024:240;;;:::o;3329:752::-;3422:17;3452:15;;3494:30;;3515:8;3494:30;:::i;:::-;:20;:30::i;:::-;3451:73;;;;3539:10;3534:66;;3572:17;;;3587:1;3572:17;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;3565:24;;;;;;3534:66;3632:18;;;:25;-1:-1:-1;;;;;3691:18:34;;3723:28;;;3719:83;;3774:17;;;3789:1;3774:17;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;3767:24;;;;;;;;3719:83;3812:17;3832:27;3846:13;3832:11;:27;:::i;:::-;3812:47;;3869:26;3913:9;-1:-1:-1;;;;;3898:25:34;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;3869:54;;3938:9;3933:116;3957:9;3953:1;:13;3933:116;;;4001:18;;;4020:17;4024:13;4020:1;:17;:::i;:::-;4001:37;;;;;;;;:::i;:::-;;;;;;;;;;3987:51;;;;;;;;4001:37;;;;;;;3987:51;;-1:-1:-1;;;;;3987:51:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;4001:37;;3987:51;;;;;4001:37;;3987:51;;;;;;4001:37;;3987:51;;4001:37;;3987:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3987:51:34;;;;;;;;;;;;;;;;-1:-1:-1;;;3987:51:34;;;;-1:-1:-1;;;3987:51:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3987:51:34;;;;-1:-1:-1;;;3987:51:34;;-1:-1:-1;3987:51:34;;;;;;;;;;;;;;;-1:-1:-1;;;;;3987:51:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3987:51:34;;;;;;;;;;;;;;;;-1:-1:-1;;;3987:51:34;;;;-1:-1:-1;;;3987:51:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3987:51:34;;;;-1:-1:-1;;;3987:51:34;;-1:-1:-1;3987:51:34;;;;;;;;;;;;;;-1:-1:-1;;;;;3987:51:34;;;;;;-1:-1:-1;;;3987:51:34;;;;-1:-1:-1;;;;;;3987:51:34;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3987:51:34;;;;-1:-1:-1;;;3987:51:34;;;;;;;;;;;;;;;;;:11;;:8;;3996:1;;3987:11;;;;;;:::i;:::-;;;;;;:51;;;;3968:3;;;;;:::i;:::-;;;;3933:116;;;-1:-1:-1;4066:8:34;3329:752;-1:-1:-1;;;;;;;;3329:752:34:o;1724:137::-;1786:25;;:::i;:::-;-1:-1:-1;;;;;1830:24:34;;;:1;:24;;;:21;:24;;;;;;;;;1823:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1830:24;;1823:31;;;;1830:24;;1823:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1823:31:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1823:31:34;-1:-1:-1;;;;;1823:31:34;-1:-1:-1;;;;;1823:31:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1823:31:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1823:31:34;;;;;;;;;;;;;;;;-1:-1:-1;;;1823:31:34;;;;-1:-1:-1;;;1823:31:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1823:31:34;;;;-1:-1:-1;;;1823:31:34;;-1:-1:-1;1823:31:34;;;;;;;;;;;;;;;-1:-1:-1;;;;;1823:31:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1823:31:34;;;;;;;;;;;;;;;;-1:-1:-1;;;1823:31:34;;;;-1:-1:-1;;;1823:31:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1823:31:34;;;;-1:-1:-1;;;1823:31:34;;-1:-1:-1;1823:31:34;;;;;;;;;;;;;;-1:-1:-1;;;;;1823:31:34;;;;;;-1:-1:-1;;;1823:31:34;;;;-1:-1:-1;;;;;;1823:31:34;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1823:31:34;;;;-1:-1:-1;;;1823:31:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1823:31:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1823:31:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1724:137;;;:::o;6394:27::-;6387:34;;6270:158;:::o;6743:113::-;6794:6;6819:30;10064:20:54;;;;;9935:156;6969:375:34;7057:12;:19;7015:15;;7042:12;7057:19;-1:-1:-1;;;;;7108:18:34;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;7086:40;;7141:9;7136:182;7160:4;7156:1;:8;7136:182;;;7182:11;7196:1;:12;;7209:1;7196:15;;;;;;;;:::i;:::-;;;;;;;;;;;;;7234:14;;;;;;;;;;;7225:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:34;;;;;;;-1:-1:-1;;;7225:23:34;;;;;;;7196:15;;-1:-1:-1;7225:23:34;;7234:14;7225:23;;;;;-1:-1:-1;;;7225:23:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:34;;;;;;;;;;;;;;;;-1:-1:-1;;;7225:23:34;;;;-1:-1:-1;;;7225:23:34;;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:34;-1:-1:-1;;;;;7225:23:34;-1:-1:-1;;;;;7225:23:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:34;;;;;;;;;;;;;;;;-1:-1:-1;;;7225:23:34;;;;-1:-1:-1;;;7225:23:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7225:23:34;;;;-1:-1:-1;;;7225:23:34;;-1:-1:-1;7225:23:34;;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:34;;;;;;;;;;;;;;;;-1:-1:-1;;;7225:23:34;;;;-1:-1:-1;;;7225:23:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7225:23:34;;;;-1:-1:-1;;;7225:23:34;;-1:-1:-1;7225:23:34;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:34;;;;;;-1:-1:-1;;;7225:23:34;;;;-1:-1:-1;;;;;;7225:23:34;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7225:23:34;;;;-1:-1:-1;;;7225:23:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:34;;;;;;;;;;;;;;;;-1:-1:-1;;;7225:23:34;;;;-1:-1:-1;;;7225:23:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7225:23:34;;;;-1:-1:-1;;;7225:23:34;;-1:-1:-1;7225:23:34;;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:34;;;;;;;;;;;;;;;;-1:-1:-1;;;7225:23:34;;;;-1:-1:-1;;;7225:23:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7225:23:34;;;;-1:-1:-1;;;7225:23:34;;-1:-1:-1;7225:23:34;;;;;;;;;;;;;;-1:-1:-1;;;;;7225:23:34;;;;;;-1:-1:-1;;;7225:23:34;;;;-1:-1:-1;;;;;;7225:23:34;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7225:23:34;;;;-1:-1:-1;;;7225:23:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:3;7229:1;7225:6;;;;;;;;:::i;:::-;;;;;;;;;;:23;-1:-1:-1;7290:3:34;;7136:182;;;-1:-1:-1;7334:3:34;6969:375;-1:-1:-1;;6969:375:34:o;5566:240::-;5650:11;5663:36;;:::i;:::-;-1:-1:-1;;;;;5724:28:34;;;:1;:28;;;:21;:28;;;;;;;;;5711:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5724:28;;5711:41;;;;5724:28;;5711:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5711:41:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5711:41:34;-1:-1:-1;;;;;5711:41:34;-1:-1:-1;;;;;5711:41:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5711:41:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5711:41:34;;;;;;;;;;;;;;;;-1:-1:-1;;;5711:41:34;;;;-1:-1:-1;;;5711:41:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5711:41:34;;;;-1:-1:-1;;;5711:41:34;;-1:-1:-1;5711:41:34;;;;;;;;;;;;;;;-1:-1:-1;;;;;5711:41:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5711:41:34;;;;;;;;;;;;;;;;-1:-1:-1;;;5711:41:34;;;;-1:-1:-1;;;5711:41:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5711:41:34;;;;-1:-1:-1;;;5711:41:34;;-1:-1:-1;5711:41:34;;;;;;;;;;;;;;-1:-1:-1;;;;;5711:41:34;;;;;;-1:-1:-1;;;5711:41:34;;;;-1:-1:-1;;;;;;5711:41:34;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5711:41:34;;;;-1:-1:-1;;;5711:41:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5711:41:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5711:41:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5711:41:34;;;;-1:-1:-1;;5772:17:34;;:27;;-1:-1:-1;;;5772:27:34;;5711:41;;-1:-1:-1;5772:25:34;;;;-1:-1:-1;5772:27:34;;:17;:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5771:28;5762:37;;5566:240;;;:::o;4716:166::-;4766:30;;:::i;:::-;4798:12;4830:13;;;:9;:13;;;;;;;;4853:21;;;;4822:53;;;;;;;;;-1:-1:-1;;;;;4822:53:34;4853:21;4822:53;;;;;;;;;;;;;;;;;;;;;;;;;4830:13;;4853:21;;;;;4822:53;;4830:13;;4822:53;;;;;;4830:13;;4822:53;;;;4830:13;;4822:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4822:53:34;;;;;;;;;;;;;;;;-1:-1:-1;;;4822:53:34;;;;-1:-1:-1;;;4822:53:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4822:53:34;;;;-1:-1:-1;;;4822:53:34;;-1:-1:-1;4822:53:34;;;;;;;;;;;;;;;-1:-1:-1;;;;;4822:53:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4822:53:34;;;;;;;;;;;;;;;;-1:-1:-1;;;4822:53:34;;;;-1:-1:-1;;;4822:53:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4822:53:34;;;;-1:-1:-1;;;4822:53:34;;-1:-1:-1;4822:53:34;;;;;;;;;;;;;;-1:-1:-1;;;;;4822:53:34;;;;;;-1:-1:-1;;;4822:53:34;;;;-1:-1:-1;;;;;;4822:53:34;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4716:166;;;:::o;1615:103::-;-1:-1:-1;;;;;;;;;;;;;;;;;1691:20:34;;;;;;;;1698:13;1691:20;;-1:-1:-1;;;;;1691:20:34;;;;;;;;;;;;;;;;;;;;;;;;1698:13;;1691:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1691:20:34;;;;;;;;;;;;;;;;;;;;;;;;;;;1615:103;:::o;2443:262::-;2528:7;2601:21;2626:30;2647:8;2626:20;:30::i;:::-;2673:18;;:25;;2443:262;-1:-1:-1;;;;2443:262:34:o;4204:299::-;4287:4;;;;4354:30;;4375:8;4354:30;:::i;:::-;4311:73;;;;4399:10;4394:59;;-1:-1:-1;4433:5:34;;;;-1:-1:-1;4204:299:34;-1:-1:-1;;;4204:299:34:o;4394:59::-;4476:19;;;4470:4;;-1:-1:-1;;;;;4476:19:34;;;;-1:-1:-1;4204:299:34;-1:-1:-1;;;4204:299:34:o;6614:123::-;6670:6;6695:35;1522:42:54;9897:25;-1:-1:-1;;;;;9897:25:54;;9763:166;2057:196:34;2127:4;2133:13;;:::i;:::-;2216:30;;2237:8;2216:30;:::i;:::-;2209:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:34;;;;;;;-1:-1:-1;;;2209:37:34;;;;;;;;;;;;;-1:-1:-1;;;2209:37:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:34;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:34;;;;-1:-1:-1;;;2209:37:34;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:34;-1:-1:-1;;;;;2209:37:34;-1:-1:-1;;;;;2209:37:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:34;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:34;;;;-1:-1:-1;;;2209:37:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:34;;;;-1:-1:-1;;;2209:37:34;;-1:-1:-1;2209:37:34;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:34;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:34;;;;-1:-1:-1;;;2209:37:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:34;;;;-1:-1:-1;;;2209:37:34;;-1:-1:-1;2209:37:34;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:34;;;;;;-1:-1:-1;;;2209:37:34;;;;-1:-1:-1;;;;;;2209:37:34;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:34;;;;-1:-1:-1;;;2209:37:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:34;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:34;;;;-1:-1:-1;;;2209:37:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:34;;;;-1:-1:-1;;;2209:37:34;;-1:-1:-1;2209:37:34;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:34;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:34;;;;-1:-1:-1;;;2209:37:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:34;;;;-1:-1:-1;;;2209:37:34;;-1:-1:-1;2209:37:34;;;;;;;;;;;;;;-1:-1:-1;;;;;2209:37:34;;;;;;-1:-1:-1;;;2209:37:34;;;;-1:-1:-1;;;;;;2209:37:34;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:34;;;;-1:-1:-1;;;2209:37:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2209:37:34;;-1:-1:-1;2209:37:34;;;;-1:-1:-1;2057:196:34;-1:-1:-1;;;;2057:196:34:o;5818:272:50:-;6027:17;;-1:-1:-1;;;6027:17:50;;5886:10;;;;;;;;;;6027:15;;;;:17;;:8;;:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6017:28;;;;;;;;;;;;;;-1:-1:-1;6017:28:50;6064:17;;;;;;;:9;;;:17;;-1:-1:-1;;;;;6064:17:50;;;;;;;;;;;;;;;;;;;;;;;6017:28;;-1:-1:-1;6064:17:50;;:9;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6064:17:50;;;;;;;;;;;;;;;;-1:-1:-1;;;6064:17:50;;;;-1:-1:-1;;6064:19:50;;-1:-1:-1;;;6064:19:50;;:17;;;;-1:-1:-1;6064:19:50;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6063:20;6055:28;;5921:169;5818:272;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:180:78:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:78;;14:180;-1:-1:-1;14:180:78:o;306:127::-;367:10;362:3;358:20;355:1;348:31;398:4;395:1;388:15;422:4;419:1;412:15;438:234;516:1;509:5;506:12;496:143;;561:10;556:3;552:20;549:1;542:31;596:4;593:1;586:15;624:4;621:1;614:15;496:143;648:18;;438:234::o;677:689::-;728:3;767:4;762:3;758:14;-1:-1:-1;;;;;803:5:78;797:12;793:37;788:3;781:50;850:4;900:2;893:5;889:14;883:21;934:4;929:2;924:3;920:12;913:26;961:4;994:12;988:19;1029:6;1023:4;1016:20;1063:2;1058:3;1054:12;1045:21;;1107:2;1093:12;1089:21;1075:35;;1128:1;1119:10;;1138:201;1152:6;1149:1;1146:13;1138:201;;;1219:13;;-1:-1:-1;;;;;1215:39:78;1201:54;;1314:15;;;;1251:1;1167:9;;;;;1277:14;;;;1138:201;;;-1:-1:-1;1355:5:78;677:689;-1:-1:-1;;;;;;677:689:78:o;1371:422::-;1412:3;1450:5;1444:12;1477:6;1472:3;1465:19;1502:1;1512:162;1526:6;1523:1;1520:13;1512:162;;;1588:4;1644:13;;;1640:22;;1634:29;1616:11;;;1612:20;;1605:59;1541:12;1512:162;;;1516:3;1719:1;1712:4;1703:6;1698:3;1694:16;1690:27;1683:38;1782:4;1775:2;1771:7;1766:2;1758:6;1754:15;1750:29;1745:3;1741:39;1737:50;1730:57;;;1371:422;;;;:::o;1798:534::-;1851:3;1895:5;1889:12;1922:4;1917:3;1910:17;1948:56;1998:4;1993:3;1989:14;1975:12;1948:56;:::i;:::-;1936:68;;2052:4;2045:5;2041:16;2035:23;2100:3;2094:4;2090:14;2083:4;2078:3;2074:14;2067:38;2154:4;2137:14;2131:21;2127:32;2121:4;2114:46;2217:4;2201:14;2197:25;2191:32;2169:54;;2256:4;2249;2243;2239:15;2232:29;2277:49;2320:4;2314;2310:15;2294:14;2277:49;:::i;:::-;2270:56;1798:534;-1:-1:-1;;;;;1798:534:78:o;2337:768::-;2391:3;2435:5;2429:12;2462:4;2457:3;2450:17;2488:58;2540:4;2535:3;2531:14;2517:12;2488:58;:::i;:::-;2476:70;;2594:4;2587:5;2583:16;2577:23;2642:3;2636:4;2632:14;2625:4;2620:3;2616:14;2609:38;2670:50;2715:4;2699:14;2670:50;:::i;:::-;2656:64;;;2769:4;2762:5;2758:16;2752:23;2745:4;2740:3;2736:14;2729:47;-1:-1:-1;;;;;2829:4:78;2822:5;2818:16;2812:23;2808:48;2801:4;2796:3;2792:14;2785:72;2927:10;2922:3;2918:20;2910:4;2903:5;2899:16;2893:23;2889:50;2882:4;2877:3;2873:14;2866:74;2988:4;2981:5;2977:16;2971:23;3038:3;3030:6;3026:16;3019:4;3014:3;3010:14;3003:40;3059;3092:6;3076:14;3059:40;:::i;3206:305::-;3257:3;3301:5;3295:12;3328:4;3323:3;3316:17;3354:59;3407:4;3402:3;3398:14;3384:12;3354:59;:::i;:::-;3476:4;3465:16;;;3459:23;3452:31;3445:39;3429:14;;;;3422:63;;;;-1:-1:-1;3342:71:78;3206:305;-1:-1:-1;3206:305:78:o;3516:663::-;3606:3;3644:5;3638:12;3671:6;3666:3;3659:19;3697:4;3738:2;3733:3;3729:12;3763:11;3790;3783:18;;3840:6;3837:1;3833:14;3826:5;3822:26;3810:38;;3882:2;3875:5;3871:14;3903:1;3913:240;3927:6;3924:1;3921:13;3913:240;;;3998:5;3992:4;3988:16;3983:3;3976:29;4026:47;4068:4;4059:6;4053:13;4026:47;:::i;:::-;4131:12;;;;4018:55;-1:-1:-1;4096:15:78;;;;3949:1;3942:9;3913:240;;;-1:-1:-1;4169:4:78;;3516:663;-1:-1:-1;;;;;;;3516:663:78:o;4184:2205::-;4245:3;4289:5;4283:12;4316:4;4311:3;4304:17;4342:56;4392:4;4387:3;4383:14;4369:12;4342:56;:::i;:::-;4330:68;;4417:4;-1:-1:-1;;;;;4472:2:78;4465:5;4461:14;4455:21;4451:46;4446:2;4441:3;4437:12;4430:68;4517:4;4568:2;4561:5;4557:14;4551:21;4546:2;4541:3;4537:12;4530:43;4621:4;4614:5;4610:16;4604:23;4669:3;4663:4;4659:14;4652:4;4647:3;4643:14;4636:38;4697:87;4779:4;4763:14;4697:87;:::i;:::-;4683:101;;;4832:4;4825:5;4821:16;4815:23;4882:3;4874:6;4870:16;4863:4;4858:3;4854:14;4847:40;4909:6;4944:14;4938:21;4983:6;4975;4968:22;5020:2;5012:6;5008:15;4999:24;;5079:2;5069:6;5066:1;5062:14;5054:6;5050:27;5046:36;5125:2;5109:14;5105:23;5091:37;;5146:1;5167;5177:991;5193:6;5188:3;5185:15;5177:991;;;5264:19;;;-1:-1:-1;;5260:33:78;5246:48;;5317:13;;5365:9;;5387:18;;;5432:59;5475:15;;;5365:9;5432:59;:::i;:::-;5532:11;;;5526:18;5581:19;;;5564:15;;;5557:44;5662:21;;5696:24;;;5786:23;;;;5833:1;;-1:-1:-1;5742:15:78;;;5847:209;5863:8;5858:3;5855:17;5847:209;;;5940:15;;5926:30;;6025:17;;;;5891:1;5882:11;;;;;5982:14;;;;5847:209;;;-1:-1:-1;6107:15:78;;;;6144:14;;;;6079:5;-1:-1:-1;;;5219:1:78;5210:11;5177:991;;;5181:3;;6217:4;6210:5;6206:16;6200:23;6193:4;6188:3;6184:14;6177:47;6272:4;6265:5;6261:16;6255:23;6233:45;;6322:3;6314:6;6310:16;6303:4;6298:3;6294:14;6287:40;6343;6376:6;6360:14;6343:40;:::i;:::-;6336:47;4184:2205;-1:-1:-1;;;;;;;;;;4184:2205:78:o;6394:1149::-;6443:3;6471:6;6504:5;6498:12;6493:3;6486:25;6560:4;6553:5;6549:16;6543:23;6536:4;6531:3;6527:14;6520:47;6616:4;6609:5;6605:16;6599:23;6592:4;6587:3;6583:14;6576:47;6669:4;6662:5;6658:16;6652:23;6684:47;6725:4;6720:3;6716:14;6702:12;-1:-1:-1;;;;;264:30:78;252:43;;199:102;6684:47;;6779:4;6772:5;6768:16;6762:23;6794:49;6837:4;6832:3;6828:14;6812;-1:-1:-1;;;;;264:30:78;252:43;;199:102;6794:49;;6891:4;6884:5;6880:16;6874:23;6906:54;6954:4;6949:3;6945:14;6929;6906:54;:::i;:::-;;7008:4;7001:5;6997:16;6991:23;7046:2;7039:4;7034:3;7030:14;7023:26;7070:56;7122:2;7117:3;7113:12;7097:14;7070:56;:::i;:::-;7058:68;;;7174:4;7167:5;7163:16;7157:23;7222:3;7216:4;7212:14;7205:4;7200:3;7196:14;7189:38;7250:58;7303:4;7287:14;7250:58;:::i;:::-;7236:72;;;7327:6;7381:2;7374:5;7370:14;7364:21;7427:3;7419:6;7415:16;7410:2;7405:3;7401:12;7394:38;7448:89;7530:6;7514:14;7448:89;:::i;:::-;7441:96;6394:1149;-1:-1:-1;;;;;;6394:1149:78:o;7548:257::-;7727:2;7716:9;7709:21;7690:4;7747:52;7795:2;7784:9;7780:18;7772:6;7747:52;:::i;:::-;7739:60;7548:257;-1:-1:-1;;;7548:257:78:o;8015:127::-;8076:10;8071:3;8067:20;8064:1;8057:31;8107:4;8104:1;8097:15;8131:4;8128:1;8121:15;8147:257;8219:4;8213:11;;;8251:17;;-1:-1:-1;;;;;8283:34:78;;8319:22;;;8280:62;8277:88;;;8345:18;;:::i;:::-;8381:4;8374:24;8147:257;:::o;8409:275::-;8480:2;8474:9;8545:2;8526:13;;-1:-1:-1;;8522:27:78;8510:40;;-1:-1:-1;;;;;8565:34:78;;8601:22;;;8562:62;8559:88;;;8627:18;;:::i;:::-;8663:2;8656:22;8409:275;;-1:-1:-1;8409:275:78:o;8689:171::-;8756:20;;-1:-1:-1;;;;;8805:30:78;;8795:41;;8785:69;;8850:1;8847;8840:12;8785:69;8689:171;;;:::o;8865:173::-;8933:20;;-1:-1:-1;;;;;8982:31:78;;8972:42;;8962:70;;9028:1;9025;9018:12;9043:1027;9098:5;9146:4;9134:9;9129:3;9125:19;9121:30;9118:50;;;9164:1;9161;9154:12;9118:50;9186:22;;:::i;:::-;9177:31;;9231:28;9249:9;9231:28;:::i;:::-;9224:5;9217:43;9279:2;9332;9321:9;9317:18;9304:32;-1:-1:-1;;;;;9396:2:78;9388:6;9385:14;9382:34;;;9412:1;9409;9402:12;9382:34;9450:6;9439:9;9435:22;9425:32;;9495:3;9488:4;9484:2;9480:13;9476:23;9466:51;;9513:1;9510;9503:12;9466:51;9549:2;9536:16;9571:2;9567;9564:10;9561:36;;;9577:18;;:::i;:::-;9623:2;9620:1;9616:10;9606:20;;9646:28;9670:2;9666;9662:11;9646:28;:::i;:::-;9708:15;;;9778:11;;;9774:20;;;9739:12;;;;9806:15;;;9803:35;;;9834:1;9831;9824:12;9803:35;9858:11;;;;9878:148;9894:6;9889:3;9886:15;9878:148;;;9960:23;9979:3;9960:23;:::i;:::-;9948:36;;9911:12;;;;10004;;;;9878:148;;;10058:5;10053:2;10046:5;10042:14;10035:29;;;;;;;9043:1027;;;;:::o;10075:416::-;10170:6;10178;10231:2;10219:9;10210:7;10206:23;10202:32;10199:52;;;10247:1;10244;10237:12;10199:52;10287:9;10274:23;-1:-1:-1;;;;;10312:6:78;10309:30;10306:50;;;10352:1;10349;10342:12;10306:50;10375:59;10426:7;10417:6;10406:9;10402:22;10375:59;:::i;:::-;10365:69;10481:2;10466:18;;;;10453:32;;-1:-1:-1;;;;10075:416:78:o;10496:263::-;10679:2;10668:9;10661:21;10642:4;10699:54;10749:2;10738:9;10734:18;10726:6;10699:54;:::i;11146:184::-;11204:6;11257:2;11245:9;11236:7;11232:23;11228:32;11225:52;;;11273:1;11270;11263:12;11225:52;11296:28;11314:9;11296:28;:::i;11598:156::-;11659:5;11704:2;11695:6;11690:3;11686:16;11682:25;11679:45;;;11720:1;11717;11710:12;11679:45;-1:-1:-1;11742:6:78;11598:156;-1:-1:-1;11598:156:78:o;11759:431::-;11855:6;11863;11916:2;11904:9;11895:7;11891:23;11887:32;11884:52;;;11932:1;11929;11922:12;11884:52;11972:9;11959:23;-1:-1:-1;;;;;11997:6:78;11994:30;11991:50;;;12037:1;12034;12027:12;11991:50;12060:68;12120:7;12111:6;12100:9;12096:22;12060:68;:::i;:::-;12050:78;;;12147:37;12180:2;12169:9;12165:18;12147:37;:::i;:::-;12137:47;;11759:431;;;;;:::o;12195:352::-;12428:2;12417:9;12410:21;12391:4;12448:93;12537:2;12526:9;12522:18;12514:6;12448:93;:::i;12926:293::-;13129:2;13118:9;13111:21;13092:4;13149:64;13209:2;13198:9;13194:18;13186:6;13149:64;:::i;13224:840::-;13416:4;13445:2;13485;13474:9;13470:18;13515:2;13504:9;13497:21;13538:6;13573;13567:13;13604:6;13596;13589:22;13642:2;13631:9;13627:18;13620:25;;13704:2;13694:6;13691:1;13687:14;13676:9;13672:30;13668:39;13654:53;;13742:2;13734:6;13730:15;13763:1;13773:262;13787:6;13784:1;13781:13;13773:262;;;13880:2;13876:7;13864:9;13856:6;13852:22;13848:36;13843:3;13836:49;13908:47;13948:6;13939;13933:13;13908:47;:::i;:::-;13898:57;-1:-1:-1;14013:12:78;;;;13978:15;;;;13809:1;13802:9;13773:262;;;-1:-1:-1;14052:6:78;;13224:840;-1:-1:-1;;;;;;;13224:840:78:o;14069:258::-;14136:6;14144;14197:2;14185:9;14176:7;14172:23;14168:32;14165:52;;;14213:1;14210;14203:12;14165:52;14236:28;14254:9;14236:28;:::i;:::-;14226:38;;14283;14317:2;14306:9;14302:18;14283:38;:::i;14332:374::-;14571:6;14564:14;14557:22;14546:9;14539:41;14616:2;14611;14600:9;14596:18;14589:30;14520:4;14636:64;14696:2;14685:9;14681:18;14673:6;14636:64;:::i;:::-;14628:72;14332:374;-1:-1:-1;;;;14332:374:78:o;14711:353::-;14922:2;14911:9;14904:21;14885:4;14942:57;14995:2;14984:9;14980:18;14972:6;14942:57;:::i;:::-;14934:65;;15049:6;15042:14;15035:22;15030:2;15019:9;15015:18;15008:50;14711:353;;;;;:::o;15069:263::-;15252:2;15241:9;15234:21;15215:4;15272:54;15322:2;15311:9;15307:18;15299:6;15272:54;:::i;15337:348::-;15423:6;15476:2;15464:9;15455:7;15451:23;15447:32;15444:52;;;15492:1;15489;15482:12;15444:52;15532:9;15519:23;-1:-1:-1;;;;;15557:6:78;15554:30;15551:50;;;15597:1;15594;15587:12;15551:50;15620:59;15671:7;15662:6;15651:9;15647:22;15620:59;:::i;15690:359::-;15778:6;15831:2;15819:9;15810:7;15806:23;15802:32;15799:52;;;15847:1;15844;15837:12;15799:52;15887:9;15874:23;-1:-1:-1;;;;;15912:6:78;15909:30;15906:50;;;15952:1;15949;15942:12;15906:50;15975:68;16035:7;16026:6;16015:9;16011:22;15975:68;:::i;16340:338::-;16555:6;16548:14;16541:22;16530:9;16523:41;16600:2;16595;16584:9;16580:18;16573:30;16504:4;16620:52;16668:2;16657:9;16653:18;16645:6;16620:52;:::i;16683:380::-;16762:1;16758:12;;;;16805;;;16826:61;;16880:4;16872:6;16868:17;16858:27;;16826:61;16933:2;16925:6;16922:14;16902:18;16899:38;16896:161;;16979:10;16974:3;16970:20;16967:1;16960:31;17014:4;17011:1;17004:15;17042:4;17039:1;17032:15;17068:127;17129:10;17124:3;17120:20;17117:1;17110:31;17160:4;17157:1;17150:15;17184:4;17181:1;17174:15;17200:1865;17261:3;17299:5;17293:12;17326:6;17321:3;17314:19;17352:4;17393:2;17388:3;17384:12;17418:11;17445;17438:18;;17495:6;17492:1;17488:14;17481:5;17477:26;17465:38;;17537:2;17530:5;17526:14;17558:1;17568:1471;17582:6;17579:1;17576:13;17568:1471;;;17653:5;17647:4;17643:16;17638:3;17631:29;17689:6;17683:13;17719:4;17762:2;17756:9;17791:2;17785:4;17778:16;17835:12;17829:19;17871:4;17910:2;17905;17899:4;17895:13;17888:25;17940:60;17995:3;17989:4;17985:14;17969;17940:60;:::i;:::-;17926:74;;18059:2;18045:12;18041:21;18035:28;18090:2;18086:7;18116:2;18176;18169:4;18161:6;18157:17;18153:26;18148:2;18142:4;18138:13;18131:49;18207:52;18252:6;18236:14;18207:52;:::i;:::-;18288:21;;;18282:28;18333:3;18356:13;;;18349:25;;;;18415:21;;;18409:28;-1:-1:-1;;;;;18498:39:78;18460:3;18483:13;;;18476:62;;;;18583:21;;;18577:28;-1:-1:-1;;;;;;18573:55:78;18558:13;;;18551:78;;;;18670:21;;;18664:28;18732:17;;;18728:26;;;18611:3;18712:14;;18705:50;-1:-1:-1;18664:28:78;18193:66;-1:-1:-1;18781:40:78;18193:66;18664:28;18781:40;:::i;:::-;18862:11;;;18856:18;3180:13;;3173:21;18919:13;;;3161:34;18856:18;18768:53;-1:-1:-1;18887:46:78;;-1:-1:-1;;3110:91:78;18887:46;19017:12;;;;18954:5;-1:-1:-1;;18982:15:78;;;;17604:1;17597:9;17568:1471;;19070:1398;19133:3;19171:5;19165:12;19198:6;19193:3;19186:19;19224:4;19265:2;19260:3;19256:12;19290:11;19317;19310:18;;19367:6;19364:1;19360:14;19353:5;19349:26;19337:38;;19409:2;19402:5;19398:14;19430:1;19451;19461:981;19477:6;19472:3;19469:15;19461:981;;;19552:5;19546:4;19542:16;19537:3;19530:29;19588:6;19582:13;19618:4;19661:2;19655:9;19690:2;19684:4;19677:16;19720:55;19771:2;19765:4;19761:13;19747:12;19720:55;:::i;:::-;19816:11;;;19810:18;19863:17;;;19848:13;;;19841:40;19942:21;;19976:24;;;20066:23;;;;20113:1;;-1:-1:-1;20022:15:78;;;-1:-1:-1;20127:209:78;20143:8;20138:3;20135:17;20127:209;;;20220:15;;20206:30;;20305:17;;;;20171:1;20162:11;;;;;20262:14;;;;20127:209;;;-1:-1:-1;20420:12:78;;;;20357:5;-1:-1:-1;;;20385:15:78;;;;19503:1;19494:11;19461:981;;;-1:-1:-1;20458:4:78;;19070:1398;-1:-1:-1;;;;;;;;19070:1398:78:o;20473:1211::-;20684:2;20673:9;20666:21;20647:4;20722:6;20716:13;20765:4;20760:2;20749:9;20745:18;20738:32;20793:61;20849:3;20838:9;20834:19;20820:12;20793:61;:::i;:::-;20779:75;;-1:-1:-1;;;;;20912:2:78;20904:6;20900:15;20894:22;20890:47;20885:2;20874:9;20870:18;20863:75;20992:2;20984:6;20980:15;20974:22;20969:2;20958:9;20954:18;20947:50;21046:2;21038:6;21034:15;21028:22;21073:2;21069:7;21141:2;21129:9;21121:6;21117:22;21113:31;21107:3;21096:9;21092:19;21085:60;21168;21221:6;21205:14;21168:60;:::i;:::-;21154:74;;21277:3;21269:6;21265:16;21259:23;21237:45;;21347:2;21335:9;21327:6;21323:22;21319:31;21313:3;21302:9;21298:19;21291:60;21374:62;21429:6;21413:14;21374:62;:::i;:::-;21360:76;;21491:3;21483:6;21479:16;21473:23;21467:3;21456:9;21452:19;21445:52;21546:3;21538:6;21534:16;21528:23;21506:45;;21617:2;21605:9;21597:6;21593:22;21589:31;21582:4;21571:9;21567:20;21560:61;;21638:40;21671:6;21655:14;21638:40;:::i;21689:184::-;21759:6;21812:2;21800:9;21791:7;21787:23;21783:32;21780:52;;;21828:1;21825;21818:12;21780:52;-1:-1:-1;21851:16:78;;21689:184;-1:-1:-1;21689:184:78:o;21878:198::-;21984:9;22021:49;22055:14;22048:5;22021:49;:::i;22081:127::-;22142:10;22137:3;22133:20;22130:1;22123:31;22173:4;22170:1;22163:15;22197:4;22194:1;22187:15;22213:128;22280:9;;;22301:11;;;22298:37;;;22315:18;;:::i;22346:125::-;22411:9;;;22432:10;;;22429:36;;;22445:18;;:::i;22476:135::-;22515:3;22536:17;;;22533:43;;22556:18;;:::i;:::-;-1:-1:-1;22603:1:78;22592:13;;22476:135::o;22892:277::-;22959:6;23012:2;23000:9;22991:7;22987:23;22983:32;22980:52;;;23028:1;23025;23018:12;22980:52;23060:9;23054:16;23113:5;23106:13;23099:21;23092:5;23089:32;23079:60;;23135:1;23132;23125:12", "linkReferences": { "src/lib/CheckpointHelper.sol": { "CheckpointHelper": [ { - "start": 5190, + "start": 5179, "length": 20 } ] @@ -2378,15 +2378,15 @@ "src/lib/SubnetIDHelper.sol": { "SubnetIDHelper": [ { - "start": 13014, + "start": 13055, "length": 20 }, { - "start": 17249, + "start": 17298, "length": 20 }, { - "start": 17512, + "start": 17562, "length": 20 } ] @@ -2421,7 +2421,7 @@ "totalSubnets()": "a2b67158", "totalWeight()": "96c82e57" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"appliedTopDownNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpCheckPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"}],\"name\":\"bottomUpCheckpointAtEpoch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"checks\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ChildCheck[]\",\"name\":\"children\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"}],\"name\":\"bottomUpCheckpointHashAtEpoch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"e\",\"type\":\"uint64\"}],\"name\":\"bottomUpCheckpoints\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"checks\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ChildCheck[]\",\"name\":\"children\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"crossMsgFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executableQueue\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"getAppliedTopDownNonce\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGenesisEpoch\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNetworkName\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"getSubnet\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"enum Status\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"topDownNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"appliedBottomUpNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"genesisEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"circSupply\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"id\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"checks\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ChildCheck[]\",\"name\":\"children\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"prevCheckpoint\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"topDownMsgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Subnet\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getSubnetTopDownMsg\",\"outputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"getSubnetTopDownMsgsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"fromNonce\",\"type\":\"uint64\"}],\"name\":\"getTopDownMsgs\",\"outputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"hasValidatorVotedForSubmission\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastVotingExecutedEpoch\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"listSubnets\",\"outputs\":[{\"components\":[{\"internalType\":\"enum Status\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"topDownNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"appliedBottomUpNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"genesisEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"circSupply\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"id\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"checks\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ChildCheck[]\",\"name\":\"children\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"prevCheckpoint\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"topDownMsgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Subnet[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"majorityPercentage\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"postbox\",\"outputs\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"storableMsg\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"h\",\"type\":\"bytes32\"}],\"name\":\"subnets\",\"outputs\":[{\"components\":[{\"internalType\":\"enum Status\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"topDownNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"appliedBottomUpNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"genesisEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"circSupply\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"id\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"checks\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ChildCheck[]\",\"name\":\"children\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"prevCheckpoint\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"topDownMsgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Subnet\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"topDownCheckPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSubnets\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"bottomUpCheckpointAtEpoch(uint64)\":{\"params\":{\"epoch\":\"- the epoch to check\"},\"returns\":{\"checkpoint\":\"- the checkpoint struct\",\"exists\":\"- whether the checkpoint exists\"}},\"bottomUpCheckpointHashAtEpoch(uint64)\":{\"params\":{\"epoch\":\"- the epoch to check\"},\"returns\":{\"_0\":\"exists - whether the checkpoint exists\",\"_1\":\"hash - the hash of the checkpoint\"}},\"getAppliedTopDownNonce((uint64,address[]))\":{\"params\":{\"subnetId\":\"- The subnet id to fetch messages from\"}},\"getSubnet((uint64,address[]))\":{\"params\":{\"subnetId\":\"the id of the subnet\"},\"returns\":{\"_0\":\"found whether the subnet exists\",\"_1\":\"subnet - the subnet struct\"}},\"getTopDownMsgs((uint64,address[]),uint64)\":{\"params\":{\"fromNonce\":\"- The starting nonce to get top down messages, inclusive.\",\"subnetId\":\"- The subnet id to fetch messages from\"}},\"hasValidatorVotedForSubmission(uint64,address)\":{\"params\":{\"epoch\":\"- the epoch to check\",\"submitter\":\"- the validator to check\"}},\"listSubnets()\":{\"returns\":{\"_0\":\"subnet - the list of subnets\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"bottomUpCheckpointAtEpoch(uint64)\":{\"notice\":\"returns the current bottom-up checkpoint\"},\"bottomUpCheckpointHashAtEpoch(uint64)\":{\"notice\":\"returns the historical bottom-up checkpoint hash\"},\"getAppliedTopDownNonce((uint64,address[]))\":{\"notice\":\"Get the latest applied top down nonce\"},\"getSubnet((uint64,address[]))\":{\"notice\":\"returns the subnet with the given id\"},\"getSubnetTopDownMsg((uint64,address[]),uint256)\":{\"notice\":\"get the top-down message at the given index for the given subnet\"},\"getSubnetTopDownMsgsLength((uint64,address[]))\":{\"notice\":\"get number of top-down messages for the given subnet\"},\"getTopDownMsgs((uint64,address[]),uint64)\":{\"notice\":\"get the list of top down messages from nonce, we may also consider introducing pagination.\"},\"hasValidatorVotedForSubmission(uint64,address)\":{\"notice\":\"whether a validator has voted for a checkpoint submission during an epoch\"},\"listSubnets()\":{\"notice\":\"returns the list of registered subnets in IPC\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/GatewayGetterFacet.sol\":\"GatewayGetterFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xb8d40721965efd93b5369d55083181226d3c7e1be4a968c04de35d44ba44f29a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5c4b0089788aa7112cce88602212c3895999f464e00d1c40d7f27ac9288798b\",\"dweb:/ipfs/Qmd69EuGeoCYPfPkGA4hayH4s2upmAe3XaoDf4ggYNEoZ4\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x31f34a3baec77c087d2bdbc5c277f169e505b905aeb43cfcea1734175140f621\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5a3bc8093b31b685ef879e8ffaaab614594cb6f98ddac4f18c411f7bbf99d0d\",\"dweb:/ipfs/QmSFfA9pH3xo8hnWKCFKTwGi8kz68YXuAwyLXsYe6KjC3Z\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xdb6d7e26320438bdd421598eb64e6fe2b03867a4dd07c9c820994b7bec26f7b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2adf1566393ddf260fb2064dd0c67be00123b8978be8b62cc45ac97aff859949\",\"dweb:/ipfs/QmaDLzQpnitEJDAJo4squpKumr5x4D2QYetPdT3jZd8hYm\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x8a925dea568a61a38de9615aae7bb462d9eb6f8eb2c6ca409f1e740519077ab8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b7e2f836581694867c09bb9c80ff2ab6ae039ece2ff3bbf4d1bc2026449fa551\",\"dweb:/ipfs/QmVMvaQSCRBHZudSV8AzimYre76tJVm4UrHYnrT89zcjho\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0xf29c18f694b5acc919b7cada2875ca3bd2c52ddd7ef86ee747aab0faeb50ac8b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d8fb92f533cc119c578da73b06efe76b0efaa612af7c77178eb903952fcf53df\",\"dweb:/ipfs/QmdosRgUmvwXRnxq5TmoJoFMs7TULduTFpMUNyYXQNGfQD\"]},\"src/enums/VoteExecutionStatus.sol\":{\"keccak256\":\"0x56d1db8abf83feb0f1d69f1919fbd5bd79c6f3c5bf3c149950d307b9d62b6455\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb2ec0f87a9091eab463ac6a776d5737189e0239f412b36b975bb0be1fcb4ad8\",\"dweb:/ipfs/QmWiXwab54Ag2f1kyGjqT3brh5JrV5Lc7cqod9VPaS5ey6\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xab09aee88feca01f5c23baa475aa02bb8c1b189e60a7b81848a07e00b9ab708c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1f5d874688d7316a0eb382b6fb1e7ea6648b15aaaab95acc51f18bfcab851d61\",\"dweb:/ipfs/QmdZRRmWrkrn5MmEX3n5yWEREtoCvXNxzoVkPWSH64ENpd\"]},\"src/gateway/GatewayGetterFacet.sol\":{\"keccak256\":\"0x9c8a5409e7101c58229e677a8b181a51897c6f1786b4016f429ed0c5615141bf\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ce3b5c0ea24dc7f4b8907aea25a2ed58d3c8d8d69b0bd61aa4dc7fc087725fa9\",\"dweb:/ipfs/QmZA7Ggh1NwhHRX28k88vXHgrFXu3VbRcbc8zk3GPrDmVf\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x57865785239b076bc429cd989bc5cb2a2e68050c7293a5a537d8cdeded170294\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://28285703560a0bbfa247c894c9f14f2a14e02e430e7dedb0a05b58c53aed3763\",\"dweb:/ipfs/QmcrNx18jZYJ7dRduWu1do3th74cHy7zn9Zx8x13WsCLj5\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0xe3f7371c7c7af8dfa71daa6c4171f6853c9ab1fdd619c09eb12c11ff18d17d91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6a09ea45ed335eada22e7cf3643c17d1c59750ed2156cc29c0960a8e8b53e394\",\"dweb:/ipfs/QmSYTNGqP9wEJnPDXmvghfL8zL8BrHGnixhbsimA9oydLG\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x86bf44c7e35907c1b0ed2fd55a6a8a277b46e6ee52b6933610504bc1d2de3b12\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb47357cd7342f951e5d08b1960e9ab7d458463e71ce08ff61b900bbb04118f0\",\"dweb:/ipfs/QmTKHhnYs1xKZUwCmSRPmSi5utfGrosYV57fSoGF7bGnJs\"]},\"src/lib/CheckpointHelper.sol\":{\"keccak256\":\"0x25d67ccc67b6b537df920c92dc3c704dc097e000c444149d3732e1d20848a269\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5823e88c38b5c4e90ee5700cee5a5fd8d982015dab7ea1cbe2f26d62a359ae76\",\"dweb:/ipfs/QmT9Ves86HoEqQciunzEwvDsyv2dgQwF8uPUjNuGsycHuF\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0xe7aacc0bc5eb10763685d6766524f6db05b151b37de4ccbd2b04649e54b9af36\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d6fae33fe9dc258efc3e0c484c6e69ff8314af266c78fd9b3d20c5bf8f251865\",\"dweb:/ipfs/QmYYpC6GnJNRvAg3MCSHKHk47cas888N3HzmMrmiRT4bnJ\"]},\"src/lib/EpochVoteSubmissionHelper.sol\":{\"keccak256\":\"0x1eaf867ddfc3e83d5a2ca50a81809e1529ea2436a8d2697d868bc8653b8c6c9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://65eb6a69fdb0fd8bfc1cd3d5044791225ff9fa8887dda49fd530e7c46e6e5366\",\"dweb:/ipfs/QmepF17eiqGqiNJRfeCohdeVw2aJxgkFS1AyFSM78v16nC\"]},\"src/lib/ExecutableQueueHelper.sol\":{\"keccak256\":\"0x64569fd85dac9617c7cf0e2991bf3bc2f1678b9b4f87945290606d1f821ce826\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8fb7927c7ca76f45f68b2552c4a59047597ccae0c9010c847e75f203f49820bc\",\"dweb:/ipfs/Qmcsg1b1GNBRAzz2CBDufdL3TspdZqx9wUoZ1uVcy3H8EN\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x80d7d30532305664e31ad114d702904287e6f93954b420315f660ddf30791ac6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0b108070a13f76614f36e46f0af85d12aa53209ff9bb9c32ee1945be3e0a1fe1\",\"dweb:/ipfs/QmcyMuCZB4Z3qFUUjvcoVeSePJXU5F9hN4Zhy94U2qqcPq\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0x3cf0150c6f1e19b48ca307604973f583aba8d2192a6d39572e2e780991a9c916\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://64d570ab21b83384e044296b02c63e195a5eb53a68ea527aaa62862e47edd627\",\"dweb:/ipfs/QmUwdSq1J5LzUxAHjKk395BWsobnYSh9fsJBQeiUbz2NJe\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0xf5534c6017d30d169bdec855a27204ded2a158619cadcf60b0a7265c20b18e4d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://989ff1cbbda8a9b660865aa7b7af3baa4c2f2f0d8f44f17654575f5559b1845d\",\"dweb:/ipfs/QmUviQKm6cmyHL3airE6Z2MDestGssajkC671kemVntsjK\"]},\"src/lib/LibVoting.sol\":{\"keccak256\":\"0x0eb430669ede92f847f6fbb6fc37d37fe2294e72e4714c13e1cd5027ce1c9178\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://139de5e7126f01b3844ac61a5ccf10c065dadb77c3edf25a465e6f5809ecdf7b\",\"dweb:/ipfs/QmW6gmvRboJgXYoMpdj56DMnZVNUCoQxw5uQ7y8vL6u7RC\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0xf82021571aa9a7b021b2d24b2c0eb80c5796b9f28ebb6a1c239146c0c0168817\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b546fc429093a558b9382e28886d1f09e7f308e55f6398989583bc420a630326\",\"dweb:/ipfs/QmSmQPQbMBX8N8r8nGboBWdzJjUaK7ACaFUf8XosZVZPT8\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0xcddaa4630a6f68c59a819bafee579a8979cc9fd7b00d5b49f99eeefb9ce0c02c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9713f988a5709dea3ee0fb204a2d0b64b0dc115912ed9eb128f479156d97a949\",\"dweb:/ipfs/QmUjTAvd2eAYQFqgfZUf5R67daeC7eUKrL6WrFb8oEWB9j\"]},\"src/structs/EpochVoteSubmission.sol\":{\"keccak256\":\"0x4cc52a36cac1a063bf1f996b91ea81ce118b7ce8923e62cec6e5bf08b689e96a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb33236d8c7a40e17c416a21e9f0df268d6a7f4d6ba1df86ab0c2dbf444702e9\",\"dweb:/ipfs/QmXEbdkweqL1f4Q71YPiuxwhQooh1oim9oBybAbr9Jd3A2\"]},\"src/structs/ExecutableQueue.sol\":{\"keccak256\":\"0x89580931bf354ed3586ca69483307e4f0a6a626bd7798657faf303281f514e8a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://16f79b68d393fe338e0f5e47e1de4615f45ea754cd98b6f8fe87ba6efc513fcd\",\"dweb:/ipfs/QmVymcARk7QY8d9ZB6omv5kNn6kFB6v249WXP5ULAVvEDi\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xbaae3da91048d76b5bab0404eebf7dc41ed273a8cd1f4143ea1b3403d89f77c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5a69d76f5022d2e19f69ef0d70d4c5e3a3e7ae8e02fcfdb2682c901ac2f3a707\",\"dweb:/ipfs/QmYEWyPz9UqVssUpU42VTv6DhzRNAfaHKt9ZsNCAvtLjTr\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0xb37b12df0c9ff47c2e88f9612b624bb44e6de5dfb8030dfd83582997dcd6aa83\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a321a05abf7b3b461e3d6c4ac27b18d3e14dffad9e2bf9a0ceb68538a02ab1e4\",\"dweb:/ipfs/QmPo878trP8pv9yXXpwUHSnP7Xt6uz9eWuB25pz2JGiCot\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"appliedTopDownNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpCheckPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"}],\"name\":\"bottomUpCheckpointAtEpoch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"checks\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ChildCheck[]\",\"name\":\"children\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"}],\"name\":\"bottomUpCheckpointHashAtEpoch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"e\",\"type\":\"uint64\"}],\"name\":\"bottomUpCheckpoints\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"checks\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ChildCheck[]\",\"name\":\"children\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"crossMsgFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executableQueue\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"getAppliedTopDownNonce\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGenesisEpoch\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNetworkName\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"getSubnet\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"genesisEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"circSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"topDownNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"appliedBottomUpNonce\",\"type\":\"uint64\"},{\"internalType\":\"enum Status\",\"name\":\"status\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"id\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"checks\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ChildCheck[]\",\"name\":\"children\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"prevCheckpoint\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"topDownMsgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Subnet\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getSubnetTopDownMsg\",\"outputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"getSubnetTopDownMsgsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"fromNonce\",\"type\":\"uint64\"}],\"name\":\"getTopDownMsgs\",\"outputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"hasValidatorVotedForSubmission\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastVotingExecutedEpoch\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"listSubnets\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"genesisEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"circSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"topDownNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"appliedBottomUpNonce\",\"type\":\"uint64\"},{\"internalType\":\"enum Status\",\"name\":\"status\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"id\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"checks\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ChildCheck[]\",\"name\":\"children\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"prevCheckpoint\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"topDownMsgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Subnet[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"majorityPercentage\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"postbox\",\"outputs\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"storableMsg\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"h\",\"type\":\"bytes32\"}],\"name\":\"subnets\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"genesisEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"circSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"topDownNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"appliedBottomUpNonce\",\"type\":\"uint64\"},{\"internalType\":\"enum Status\",\"name\":\"status\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"id\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"checks\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ChildCheck[]\",\"name\":\"children\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"prevCheckpoint\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"topDownMsgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Subnet\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"topDownCheckPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSubnets\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"bottomUpCheckpointAtEpoch(uint64)\":{\"params\":{\"epoch\":\"- the epoch to check\"},\"returns\":{\"checkpoint\":\"- the checkpoint struct\",\"exists\":\"- whether the checkpoint exists\"}},\"bottomUpCheckpointHashAtEpoch(uint64)\":{\"params\":{\"epoch\":\"- the epoch to check\"},\"returns\":{\"_0\":\"exists - whether the checkpoint exists\",\"_1\":\"hash - the hash of the checkpoint\"}},\"getAppliedTopDownNonce((uint64,address[]))\":{\"params\":{\"subnetId\":\"- The subnet id to fetch messages from\"}},\"getSubnet((uint64,address[]))\":{\"params\":{\"subnetId\":\"the id of the subnet\"},\"returns\":{\"_0\":\"found whether the subnet exists\",\"_1\":\"subnet - the subnet struct\"}},\"getTopDownMsgs((uint64,address[]),uint64)\":{\"params\":{\"fromNonce\":\"- The starting nonce to get top down messages, inclusive.\",\"subnetId\":\"- The subnet id to fetch messages from\"}},\"hasValidatorVotedForSubmission(uint64,address)\":{\"params\":{\"epoch\":\"- the epoch to check\",\"submitter\":\"- the validator to check\"}},\"listSubnets()\":{\"returns\":{\"_0\":\"subnet - the list of subnets\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"bottomUpCheckpointAtEpoch(uint64)\":{\"notice\":\"returns the current bottom-up checkpoint\"},\"bottomUpCheckpointHashAtEpoch(uint64)\":{\"notice\":\"returns the historical bottom-up checkpoint hash\"},\"getAppliedTopDownNonce((uint64,address[]))\":{\"notice\":\"Get the latest applied top down nonce\"},\"getSubnet((uint64,address[]))\":{\"notice\":\"returns the subnet with the given id\"},\"getSubnetTopDownMsg((uint64,address[]),uint256)\":{\"notice\":\"get the top-down message at the given index for the given subnet\"},\"getSubnetTopDownMsgsLength((uint64,address[]))\":{\"notice\":\"get number of top-down messages for the given subnet\"},\"getTopDownMsgs((uint64,address[]),uint64)\":{\"notice\":\"get the list of top down messages from nonce, we may also consider introducing pagination.\"},\"hasValidatorVotedForSubmission(uint64,address)\":{\"notice\":\"whether a validator has voted for a checkpoint submission during an epoch\"},\"listSubnets()\":{\"notice\":\"returns the list of registered subnets in IPC\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/GatewayGetterFacet.sol\":\"GatewayGetterFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x8a925dea568a61a38de9615aae7bb462d9eb6f8eb2c6ca409f1e740519077ab8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b7e2f836581694867c09bb9c80ff2ab6ae039ece2ff3bbf4d1bc2026449fa551\",\"dweb:/ipfs/QmVMvaQSCRBHZudSV8AzimYre76tJVm4UrHYnrT89zcjho\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0xf29c18f694b5acc919b7cada2875ca3bd2c52ddd7ef86ee747aab0faeb50ac8b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d8fb92f533cc119c578da73b06efe76b0efaa612af7c77178eb903952fcf53df\",\"dweb:/ipfs/QmdosRgUmvwXRnxq5TmoJoFMs7TULduTFpMUNyYXQNGfQD\"]},\"src/enums/VoteExecutionStatus.sol\":{\"keccak256\":\"0x56d1db8abf83feb0f1d69f1919fbd5bd79c6f3c5bf3c149950d307b9d62b6455\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb2ec0f87a9091eab463ac6a776d5737189e0239f412b36b975bb0be1fcb4ad8\",\"dweb:/ipfs/QmWiXwab54Ag2f1kyGjqT3brh5JrV5Lc7cqod9VPaS5ey6\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xab09aee88feca01f5c23baa475aa02bb8c1b189e60a7b81848a07e00b9ab708c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1f5d874688d7316a0eb382b6fb1e7ea6648b15aaaab95acc51f18bfcab851d61\",\"dweb:/ipfs/QmdZRRmWrkrn5MmEX3n5yWEREtoCvXNxzoVkPWSH64ENpd\"]},\"src/gateway/GatewayGetterFacet.sol\":{\"keccak256\":\"0x9c8a5409e7101c58229e677a8b181a51897c6f1786b4016f429ed0c5615141bf\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ce3b5c0ea24dc7f4b8907aea25a2ed58d3c8d8d69b0bd61aa4dc7fc087725fa9\",\"dweb:/ipfs/QmZA7Ggh1NwhHRX28k88vXHgrFXu3VbRcbc8zk3GPrDmVf\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x57865785239b076bc429cd989bc5cb2a2e68050c7293a5a537d8cdeded170294\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://28285703560a0bbfa247c894c9f14f2a14e02e430e7dedb0a05b58c53aed3763\",\"dweb:/ipfs/QmcrNx18jZYJ7dRduWu1do3th74cHy7zn9Zx8x13WsCLj5\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0xe3f7371c7c7af8dfa71daa6c4171f6853c9ab1fdd619c09eb12c11ff18d17d91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6a09ea45ed335eada22e7cf3643c17d1c59750ed2156cc29c0960a8e8b53e394\",\"dweb:/ipfs/QmSYTNGqP9wEJnPDXmvghfL8zL8BrHGnixhbsimA9oydLG\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x86bf44c7e35907c1b0ed2fd55a6a8a277b46e6ee52b6933610504bc1d2de3b12\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb47357cd7342f951e5d08b1960e9ab7d458463e71ce08ff61b900bbb04118f0\",\"dweb:/ipfs/QmTKHhnYs1xKZUwCmSRPmSi5utfGrosYV57fSoGF7bGnJs\"]},\"src/lib/CheckpointHelper.sol\":{\"keccak256\":\"0x25d67ccc67b6b537df920c92dc3c704dc097e000c444149d3732e1d20848a269\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5823e88c38b5c4e90ee5700cee5a5fd8d982015dab7ea1cbe2f26d62a359ae76\",\"dweb:/ipfs/QmT9Ves86HoEqQciunzEwvDsyv2dgQwF8uPUjNuGsycHuF\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0xe7aacc0bc5eb10763685d6766524f6db05b151b37de4ccbd2b04649e54b9af36\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d6fae33fe9dc258efc3e0c484c6e69ff8314af266c78fd9b3d20c5bf8f251865\",\"dweb:/ipfs/QmYYpC6GnJNRvAg3MCSHKHk47cas888N3HzmMrmiRT4bnJ\"]},\"src/lib/EpochVoteSubmissionHelper.sol\":{\"keccak256\":\"0x1eaf867ddfc3e83d5a2ca50a81809e1529ea2436a8d2697d868bc8653b8c6c9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://65eb6a69fdb0fd8bfc1cd3d5044791225ff9fa8887dda49fd530e7c46e6e5366\",\"dweb:/ipfs/QmepF17eiqGqiNJRfeCohdeVw2aJxgkFS1AyFSM78v16nC\"]},\"src/lib/ExecutableQueueHelper.sol\":{\"keccak256\":\"0x64569fd85dac9617c7cf0e2991bf3bc2f1678b9b4f87945290606d1f821ce826\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8fb7927c7ca76f45f68b2552c4a59047597ccae0c9010c847e75f203f49820bc\",\"dweb:/ipfs/Qmcsg1b1GNBRAzz2CBDufdL3TspdZqx9wUoZ1uVcy3H8EN\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x80d7d30532305664e31ad114d702904287e6f93954b420315f660ddf30791ac6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0b108070a13f76614f36e46f0af85d12aa53209ff9bb9c32ee1945be3e0a1fe1\",\"dweb:/ipfs/QmcyMuCZB4Z3qFUUjvcoVeSePJXU5F9hN4Zhy94U2qqcPq\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0x3cf0150c6f1e19b48ca307604973f583aba8d2192a6d39572e2e780991a9c916\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://64d570ab21b83384e044296b02c63e195a5eb53a68ea527aaa62862e47edd627\",\"dweb:/ipfs/QmUwdSq1J5LzUxAHjKk395BWsobnYSh9fsJBQeiUbz2NJe\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x7adf56c4f8e2504dbbdac2f81d892cb912a1be2f9f629e16d7c796c958032f5b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://438d31911f5ac80ab0d2137506fd411b82a8117ca8d78707598ca2cf61068357\",\"dweb:/ipfs/QmeujmuXKY2uDdDkcipWwfiHDixEaEgaCkQ9YN5nbDhsuF\"]},\"src/lib/LibVoting.sol\":{\"keccak256\":\"0x6f020ef598ce576688275e5b4b8910beb31afb3427ac3d0896d6b62d71ab3050\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f1dd4f3411e3d01b60fb263120355e34f467fade66bd4076688bd046434df400\",\"dweb:/ipfs/QmWH7F7B44PjwB9eV65JiqQbQdkfSc2yrEsQH9KesU9Lhd\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0xf82021571aa9a7b021b2d24b2c0eb80c5796b9f28ebb6a1c239146c0c0168817\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b546fc429093a558b9382e28886d1f09e7f308e55f6398989583bc420a630326\",\"dweb:/ipfs/QmSmQPQbMBX8N8r8nGboBWdzJjUaK7ACaFUf8XosZVZPT8\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0xcddaa4630a6f68c59a819bafee579a8979cc9fd7b00d5b49f99eeefb9ce0c02c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9713f988a5709dea3ee0fb204a2d0b64b0dc115912ed9eb128f479156d97a949\",\"dweb:/ipfs/QmUjTAvd2eAYQFqgfZUf5R67daeC7eUKrL6WrFb8oEWB9j\"]},\"src/structs/EpochVoteSubmission.sol\":{\"keccak256\":\"0x4cc52a36cac1a063bf1f996b91ea81ce118b7ce8923e62cec6e5bf08b689e96a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb33236d8c7a40e17c416a21e9f0df268d6a7f4d6ba1df86ab0c2dbf444702e9\",\"dweb:/ipfs/QmXEbdkweqL1f4Q71YPiuxwhQooh1oim9oBybAbr9Jd3A2\"]},\"src/structs/ExecutableQueue.sol\":{\"keccak256\":\"0x89580931bf354ed3586ca69483307e4f0a6a626bd7798657faf303281f514e8a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://16f79b68d393fe338e0f5e47e1de4615f45ea754cd98b6f8fe87ba6efc513fcd\",\"dweb:/ipfs/QmVymcARk7QY8d9ZB6omv5kNn6kFB6v249WXP5ULAVvEDi\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xbaae3da91048d76b5bab0404eebf7dc41ed273a8cd1f4143ea1b3403d89f77c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5a69d76f5022d2e19f69ef0d70d4c5e3a3e7ae8e02fcfdb2682c901ac2f3a707\",\"dweb:/ipfs/QmYEWyPz9UqVssUpU42VTv6DhzRNAfaHKt9ZsNCAvtLjTr\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0xf707af307e7f2654d44d3fbd6eb0c44c837da7c0941ad0b826e990198d96f67d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://79cd51a4ea33be35dd774b314ec44df5b8b0c112b06dd8f155c80dc4c2e6e0d0\",\"dweb:/ipfs/QmRyAF4prSLXGuz2Q9PzdcTb8EkC67qdfhgKPtb36997Pm\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.19+commit.7dd6d404" @@ -3057,21 +3057,6 @@ "name": "", "type": "tuple", "components": [ - { - "internalType": "enum Status", - "name": "status", - "type": "uint8" - }, - { - "internalType": "uint64", - "name": "topDownNonce", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "appliedBottomUpNonce", - "type": "uint64" - }, { "internalType": "uint256", "name": "stake", @@ -3087,6 +3072,21 @@ "name": "circSupply", "type": "uint256" }, + { + "internalType": "uint64", + "name": "topDownNonce", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "appliedBottomUpNonce", + "type": "uint64" + }, + { + "internalType": "enum Status", + "name": "status", + "type": "uint8" + }, { "internalType": "struct SubnetID", "name": "id", @@ -3819,21 +3819,6 @@ "name": "", "type": "tuple[]", "components": [ - { - "internalType": "enum Status", - "name": "status", - "type": "uint8" - }, - { - "internalType": "uint64", - "name": "topDownNonce", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "appliedBottomUpNonce", - "type": "uint64" - }, { "internalType": "uint256", "name": "stake", @@ -3849,6 +3834,21 @@ "name": "circSupply", "type": "uint256" }, + { + "internalType": "uint64", + "name": "topDownNonce", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "appliedBottomUpNonce", + "type": "uint64" + }, + { + "internalType": "enum Status", + "name": "status", + "type": "uint8" + }, { "internalType": "struct SubnetID", "name": "id", @@ -4356,21 +4356,6 @@ "name": "subnet", "type": "tuple", "components": [ - { - "internalType": "enum Status", - "name": "status", - "type": "uint8" - }, - { - "internalType": "uint64", - "name": "topDownNonce", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "appliedBottomUpNonce", - "type": "uint64" - }, { "internalType": "uint256", "name": "stake", @@ -4386,6 +4371,21 @@ "name": "circSupply", "type": "uint256" }, + { + "internalType": "uint64", + "name": "topDownNonce", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "appliedBottomUpNonce", + "type": "uint64" + }, + { + "internalType": "enum Status", + "name": "status", + "type": "uint8" + }, { "internalType": "struct SubnetID", "name": "id", @@ -4885,26 +4885,26 @@ "license": "MIT" }, "lib/openzeppelin-contracts/contracts/utils/Address.sol": { - "keccak256": "0xb8d40721965efd93b5369d55083181226d3c7e1be4a968c04de35d44ba44f29a", + "keccak256": "0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1", "urls": [ - "bzz-raw://e5c4b0089788aa7112cce88602212c3895999f464e00d1c40d7f27ac9288798b", - "dweb:/ipfs/Qmd69EuGeoCYPfPkGA4hayH4s2upmAe3XaoDf4ggYNEoZ4" + "bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5", + "dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo" ], "license": "MIT" }, "lib/openzeppelin-contracts/contracts/utils/Strings.sol": { - "keccak256": "0x31f34a3baec77c087d2bdbc5c277f169e505b905aeb43cfcea1734175140f621", + "keccak256": "0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da", "urls": [ - "bzz-raw://b5a3bc8093b31b685ef879e8ffaaab614594cb6f98ddac4f18c411f7bbf99d0d", - "dweb:/ipfs/QmSFfA9pH3xo8hnWKCFKTwGi8kz68YXuAwyLXsYe6KjC3Z" + "bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a", + "dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB" ], "license": "MIT" }, "lib/openzeppelin-contracts/contracts/utils/math/Math.sol": { - "keccak256": "0xdb6d7e26320438bdd421598eb64e6fe2b03867a4dd07c9c820994b7bec26f7b0", + "keccak256": "0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c", "urls": [ - "bzz-raw://2adf1566393ddf260fb2064dd0c67be00123b8978be8b62cc45ac97aff859949", - "dweb:/ipfs/QmaDLzQpnitEJDAJo4squpKumr5x4D2QYetPdT3jZd8hYm" + "bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81", + "dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k" ], "license": "MIT" }, @@ -5029,18 +5029,18 @@ "license": "UNLICENSED" }, "src/lib/LibGatewayActorStorage.sol": { - "keccak256": "0xf5534c6017d30d169bdec855a27204ded2a158619cadcf60b0a7265c20b18e4d", + "keccak256": "0x7adf56c4f8e2504dbbdac2f81d892cb912a1be2f9f629e16d7c796c958032f5b", "urls": [ - "bzz-raw://989ff1cbbda8a9b660865aa7b7af3baa4c2f2f0d8f44f17654575f5559b1845d", - "dweb:/ipfs/QmUviQKm6cmyHL3airE6Z2MDestGssajkC671kemVntsjK" + "bzz-raw://438d31911f5ac80ab0d2137506fd411b82a8117ca8d78707598ca2cf61068357", + "dweb:/ipfs/QmeujmuXKY2uDdDkcipWwfiHDixEaEgaCkQ9YN5nbDhsuF" ], "license": "UNLICENSED" }, "src/lib/LibVoting.sol": { - "keccak256": "0x0eb430669ede92f847f6fbb6fc37d37fe2294e72e4714c13e1cd5027ce1c9178", + "keccak256": "0x6f020ef598ce576688275e5b4b8910beb31afb3427ac3d0896d6b62d71ab3050", "urls": [ - "bzz-raw://139de5e7126f01b3844ac61a5ccf10c065dadb77c3edf25a465e6f5809ecdf7b", - "dweb:/ipfs/QmW6gmvRboJgXYoMpdj56DMnZVNUCoQxw5uQ7y8vL6u7RC" + "bzz-raw://f1dd4f3411e3d01b60fb263120355e34f467fade66bd4076688bd046434df400", + "dweb:/ipfs/QmWH7F7B44PjwB9eV65JiqQbQdkfSc2yrEsQH9KesU9Lhd" ], "license": "UNLICENSED" }, @@ -5085,10 +5085,10 @@ "license": "UNLICENSED" }, "src/structs/Subnet.sol": { - "keccak256": "0xb37b12df0c9ff47c2e88f9612b624bb44e6de5dfb8030dfd83582997dcd6aa83", + "keccak256": "0xf707af307e7f2654d44d3fbd6eb0c44c837da7c0941ad0b826e990198d96f67d", "urls": [ - "bzz-raw://a321a05abf7b3b461e3d6c4ac27b18d3e14dffad9e2bf9a0ceb68538a02ab1e4", - "dweb:/ipfs/QmPo878trP8pv9yXXpwUHSnP7Xt6uz9eWuB25pz2JGiCot" + "bzz-raw://79cd51a4ea33be35dd774b314ec44df5b8b0c112b06dd8f155c80dc4c2e6e0d0", + "dweb:/ipfs/QmRyAF4prSLXGuz2Q9PzdcTb8EkC67qdfhgKPtb36997Pm" ], "license": "UNLICENSED" } @@ -5097,61 +5097,61 @@ }, "ast": { "absolutePath": "src/gateway/GatewayGetterFacet.sol", - "id": 33729, + "id": 33823, "exportedSymbols": { "BottomUpCheckpoint": [ - 39238 + 39332 ], "CheckpointHelper": [ - 35838 + 35932 ], "ChildCheck": [ - 39252 + 39346 ], "CrossMsg": [ - 39258 + 39352 ], "EpochVoteTopDownSubmission": [ - 39306 + 39400 ], "GatewayActorStorage": [ - 37456 + 37549 ], "GatewayGetterFacet": [ - 33728 + 33822 ], "LibGateway": [ - 37327 + 37421 ], "LibVoting": [ - 38520 + 38614 ], "NotRegisteredSubnet": [ - 33142 + 33236 ], "Status": [ - 33059 + 33153 ], "StorableMsg": [ - 39273 + 39367 ], "Subnet": [ - 39387 + 39481 ], "SubnetID": [ - 39363 + 39457 ], "SubnetIDHelper": [ - 39213 + 39307 ] }, "nodeType": "SourceUnit", - "src": "39:7308:33", + "src": "39:7308:34", "nodes": [ { - "id": 33162, + "id": 33256, "nodeType": "PragmaDirective", - "src": "39:23:33", + "src": "39:23:34", "nodes": [], "literals": [ "solidity", @@ -5160,24 +5160,24 @@ ] }, { - "id": 33164, + "id": 33258, "nodeType": "ImportDirective", - "src": "64:43:33", + "src": "64:43:34", "nodes": [], "absolutePath": "src/enums/Status.sol", "file": "../enums/Status.sol", "nameLocation": "-1:-1:-1", - "scope": 33729, - "sourceUnit": 33060, + "scope": 33823, + "sourceUnit": 33154, "symbolAliases": [ { "foreign": { - "id": 33163, + "id": 33257, "name": "Status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33059, - "src": "72:6:33", + "referencedDeclaration": 33153, + "src": "72:6:34", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -5186,60 +5186,60 @@ "unitAlias": "" }, { - "id": 33169, + "id": 33263, "nodeType": "ImportDirective", - "src": "108:96:33", + "src": "108:96:34", "nodes": [], "absolutePath": "src/structs/Checkpoint.sol", "file": "../structs/Checkpoint.sol", "nameLocation": "-1:-1:-1", - "scope": 33729, - "sourceUnit": 39274, + "scope": 33823, + "sourceUnit": 39368, "symbolAliases": [ { "foreign": { - "id": 33165, + "id": 33259, "name": "CrossMsg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39258, - "src": "116:8:33", + "referencedDeclaration": 39352, + "src": "116:8:34", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 33166, + "id": 33260, "name": "BottomUpCheckpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39238, - "src": "126:18:33", + "referencedDeclaration": 39332, + "src": "126:18:34", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 33167, + "id": 33261, "name": "StorableMsg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39273, - "src": "146:11:33", + "referencedDeclaration": 39367, + "src": "146:11:34", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 33168, + "id": 33262, "name": "ChildCheck", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39252, - "src": "159:10:33", + "referencedDeclaration": 39346, + "src": "159:10:34", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -5248,24 +5248,24 @@ "unitAlias": "" }, { - "id": 33171, + "id": 33265, "nodeType": "ImportDirective", - "src": "205:78:33", + "src": "205:78:34", "nodes": [], "absolutePath": "src/structs/EpochVoteSubmission.sol", "file": "../structs/EpochVoteSubmission.sol", "nameLocation": "-1:-1:-1", - "scope": 33729, - "sourceUnit": 39316, + "scope": 33823, + "sourceUnit": 39410, "symbolAliases": [ { "foreign": { - "id": 33170, + "id": 33264, "name": "EpochVoteTopDownSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39306, - "src": "213:26:33", + "referencedDeclaration": 39400, + "src": "213:26:34", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -5274,36 +5274,36 @@ "unitAlias": "" }, { - "id": 33174, + "id": 33268, "nodeType": "ImportDirective", - "src": "284:55:33", + "src": "284:55:34", "nodes": [], "absolutePath": "src/structs/Subnet.sol", "file": "../structs/Subnet.sol", "nameLocation": "-1:-1:-1", - "scope": 33729, - "sourceUnit": 39395, + "scope": 33823, + "sourceUnit": 39489, "symbolAliases": [ { "foreign": { - "id": 33172, + "id": 33266, "name": "SubnetID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39363, - "src": "292:8:33", + "referencedDeclaration": 39457, + "src": "292:8:34", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 33173, + "id": 33267, "name": "Subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39387, - "src": "302:6:33", + "referencedDeclaration": 39481, + "src": "302:6:34", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -5312,24 +5312,24 @@ "unitAlias": "" }, { - "id": 33176, + "id": 33270, "nodeType": "ImportDirective", - "src": "340:60:33", + "src": "340:60:34", "nodes": [], "absolutePath": "src/errors/IPCErrors.sol", "file": "../errors/IPCErrors.sol", "nameLocation": "-1:-1:-1", - "scope": 33729, - "sourceUnit": 33161, + "scope": 33823, + "sourceUnit": 33255, "symbolAliases": [ { "foreign": { - "id": 33175, + "id": 33269, "name": "NotRegisteredSubnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33142, - "src": "348:19:33", + "referencedDeclaration": 33236, + "src": "348:19:34", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -5338,24 +5338,24 @@ "unitAlias": "" }, { - "id": 33178, + "id": 33272, "nodeType": "ImportDirective", - "src": "401:61:33", + "src": "401:61:34", "nodes": [], "absolutePath": "src/lib/CheckpointHelper.sol", "file": "../lib/CheckpointHelper.sol", "nameLocation": "-1:-1:-1", - "scope": 33729, - "sourceUnit": 35839, + "scope": 33823, + "sourceUnit": 35933, "symbolAliases": [ { "foreign": { - "id": 33177, + "id": 33271, "name": "CheckpointHelper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 35838, - "src": "409:16:33", + "referencedDeclaration": 35932, + "src": "409:16:34", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -5364,24 +5364,24 @@ "unitAlias": "" }, { - "id": 33180, + "id": 33274, "nodeType": "ImportDirective", - "src": "463:49:33", + "src": "463:49:34", "nodes": [], "absolutePath": "src/lib/LibGateway.sol", "file": "../lib/LibGateway.sol", "nameLocation": "-1:-1:-1", - "scope": 33729, - "sourceUnit": 37328, + "scope": 33823, + "sourceUnit": 37422, "symbolAliases": [ { "foreign": { - "id": 33179, + "id": 33273, "name": "LibGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 37327, - "src": "471:10:33", + "referencedDeclaration": 37421, + "src": "471:10:34", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -5390,24 +5390,24 @@ "unitAlias": "" }, { - "id": 33182, + "id": 33276, "nodeType": "ImportDirective", - "src": "513:70:33", + "src": "513:70:34", "nodes": [], "absolutePath": "src/lib/LibGatewayActorStorage.sol", "file": "../lib/LibGatewayActorStorage.sol", "nameLocation": "-1:-1:-1", - "scope": 33729, - "sourceUnit": 37574, + "scope": 33823, + "sourceUnit": 37667, "symbolAliases": [ { "foreign": { - "id": 33181, + "id": 33275, "name": "GatewayActorStorage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 37456, - "src": "521:19:33", + "referencedDeclaration": 37549, + "src": "521:19:34", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -5416,24 +5416,24 @@ "unitAlias": "" }, { - "id": 33184, + "id": 33278, "nodeType": "ImportDirective", - "src": "584:47:33", + "src": "584:47:34", "nodes": [], "absolutePath": "src/lib/LibVoting.sol", "file": "../lib/LibVoting.sol", "nameLocation": "-1:-1:-1", - "scope": 33729, - "sourceUnit": 38521, + "scope": 33823, + "sourceUnit": 38615, "symbolAliases": [ { "foreign": { - "id": 33183, + "id": 33277, "name": "LibVoting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38520, - "src": "592:9:33", + "referencedDeclaration": 38614, + "src": "592:9:34", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -5442,24 +5442,24 @@ "unitAlias": "" }, { - "id": 33186, + "id": 33280, "nodeType": "ImportDirective", - "src": "632:57:33", + "src": "632:57:34", "nodes": [], "absolutePath": "src/lib/SubnetIDHelper.sol", "file": "../lib/SubnetIDHelper.sol", "nameLocation": "-1:-1:-1", - "scope": 33729, - "sourceUnit": 39214, + "scope": 33823, + "sourceUnit": 39308, "symbolAliases": [ { "foreign": { - "id": 33185, + "id": 33279, "name": "SubnetIDHelper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39213, - "src": "640:14:33", + "referencedDeclaration": 39307, + "src": "640:14:34", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -5468,166 +5468,166 @@ "unitAlias": "" }, { - "id": 33728, + "id": 33822, "nodeType": "ContractDefinition", - "src": "691:6655:33", + "src": "691:6655:34", "nodes": [ { - "id": 33189, + "id": 33283, "nodeType": "VariableDeclaration", - "src": "778:30:33", + "src": "778:30:34", "nodes": [], "constant": false, "mutability": "mutable", "name": "s", - "nameLocation": "807:1:33", - "scope": 33728, + "nameLocation": "807:1:34", + "scope": 33822, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$37456_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage" }, "typeName": { - "id": 33188, + "id": 33282, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33187, + "id": 33281, "name": "GatewayActorStorage", "nameLocations": [ - "778:19:33" + "778:19:34" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 37456, - "src": "778:19:33" + "referencedDeclaration": 37549, + "src": "778:19:34" }, - "referencedDeclaration": 37456, - "src": "778:19:33", + "referencedDeclaration": 37549, + "src": "778:19:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$37456_storage_ptr", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage_ptr", "typeString": "struct GatewayActorStorage" } }, "visibility": "internal" }, { - "id": 33193, + "id": 33287, "nodeType": "UsingForDirective", - "src": "815:34:33", + "src": "815:34:34", "nodes": [], "global": false, "libraryName": { - "id": 33190, + "id": 33284, "name": "SubnetIDHelper", "nameLocations": [ - "821:14:33" + "821:14:34" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39213, - "src": "821:14:33" + "referencedDeclaration": 39307, + "src": "821:14:34" }, "typeName": { - "id": 33192, + "id": 33286, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33191, + "id": 33285, "name": "SubnetID", "nameLocations": [ - "840:8:33" + "840:8:34" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39363, - "src": "840:8:33" + "referencedDeclaration": 39457, + "src": "840:8:34" }, - "referencedDeclaration": 39363, - "src": "840:8:33", + "referencedDeclaration": 39457, + "src": "840:8:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39363_storage_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage_ptr", "typeString": "struct SubnetID" } } }, { - "id": 33197, + "id": 33291, "nodeType": "UsingForDirective", - "src": "854:46:33", + "src": "854:46:34", "nodes": [], "global": false, "libraryName": { - "id": 33194, + "id": 33288, "name": "CheckpointHelper", "nameLocations": [ - "860:16:33" + "860:16:34" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 35838, - "src": "860:16:33" + "referencedDeclaration": 35932, + "src": "860:16:34" }, "typeName": { - "id": 33196, + "id": 33290, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33195, + "id": 33289, "name": "BottomUpCheckpoint", "nameLocations": [ - "881:18:33" + "881:18:34" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39238, - "src": "881:18:33" + "referencedDeclaration": 39332, + "src": "881:18:34" }, - "referencedDeclaration": 39238, - "src": "881:18:33", + "referencedDeclaration": 39332, + "src": "881:18:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39238_storage_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage_ptr", "typeString": "struct BottomUpCheckpoint" } } }, { - "id": 33206, + "id": 33300, "nodeType": "FunctionDefinition", - "src": "906:92:33", + "src": "906:92:34", "nodes": [], "body": { - "id": 33205, + "id": 33299, "nodeType": "Block", - "src": "961:37:33", + "src": "961:37:34", "nodes": [], "statements": [ { "expression": { "expression": { - "id": 33202, + "id": 33296, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33189, - "src": "978:1:33", + "referencedDeclaration": 33283, + "src": "978:1:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$37456_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 33203, + "id": 33297, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "980:11:33", + "memberLocation": "980:11:34", "memberName": "crossMsgFee", "nodeType": "MemberAccess", - "referencedDeclaration": 37415, - "src": "978:13:33", + "referencedDeclaration": 37528, + "src": "978:13:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 33201, - "id": 33204, + "functionReturnParameters": 33295, + "id": 33298, "nodeType": "Return", - "src": "971:20:33" + "src": "971:20:34" } ] }, @@ -5636,26 +5636,26 @@ "kind": "function", "modifiers": [], "name": "crossMsgFee", - "nameLocation": "915:11:33", + "nameLocation": "915:11:34", "parameters": { - "id": 33198, + "id": 33292, "nodeType": "ParameterList", "parameters": [], - "src": "926:2:33" + "src": "926:2:34" }, "returnParameters": { - "id": 33201, + "id": 33295, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33200, + "id": 33294, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 33206, - "src": "952:7:33", + "scope": 33300, + "src": "952:7:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5663,10 +5663,10 @@ "typeString": "uint256" }, "typeName": { - "id": 33199, + "id": 33293, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "952:7:33", + "src": "952:7:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5675,57 +5675,57 @@ "visibility": "internal" } ], - "src": "951:9:33" + "src": "951:9:34" }, - "scope": 33728, + "scope": 33822, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 33215, + "id": 33309, "nodeType": "FunctionDefinition", - "src": "1004:95:33", + "src": "1004:95:34", "nodes": [], "body": { - "id": 33214, + "id": 33308, "nodeType": "Block", - "src": "1060:39:33", + "src": "1060:39:34", "nodes": [], "statements": [ { "expression": { "expression": { - "id": 33211, + "id": 33305, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33189, - "src": "1077:1:33", + "referencedDeclaration": 33283, + "src": "1077:1:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$37456_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 33212, + "id": 33306, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "1079:13:33", + "memberLocation": "1079:13:34", "memberName": "bottomUpNonce", "nodeType": "MemberAccess", - "referencedDeclaration": 37409, - "src": "1077:15:33", + "referencedDeclaration": 37534, + "src": "1077:15:34", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "functionReturnParameters": 33210, - "id": 33213, + "functionReturnParameters": 33304, + "id": 33307, "nodeType": "Return", - "src": "1070:22:33" + "src": "1070:22:34" } ] }, @@ -5734,26 +5734,26 @@ "kind": "function", "modifiers": [], "name": "bottomUpNonce", - "nameLocation": "1013:13:33", + "nameLocation": "1013:13:34", "parameters": { - "id": 33207, + "id": 33301, "nodeType": "ParameterList", "parameters": [], - "src": "1026:2:33" + "src": "1026:2:34" }, "returnParameters": { - "id": 33210, + "id": 33304, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33209, + "id": 33303, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 33215, - "src": "1052:6:33", + "scope": 33309, + "src": "1052:6:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5761,10 +5761,10 @@ "typeString": "uint64" }, "typeName": { - "id": 33208, + "id": 33302, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "1052:6:33", + "src": "1052:6:34", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -5773,57 +5773,57 @@ "visibility": "internal" } ], - "src": "1051:8:33" + "src": "1051:8:34" }, - "scope": 33728, + "scope": 33822, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 33224, + "id": 33318, "nodeType": "FunctionDefinition", - "src": "1105:93:33", + "src": "1105:93:34", "nodes": [], "body": { - "id": 33223, + "id": 33317, "nodeType": "Block", - "src": "1160:38:33", + "src": "1160:38:34", "nodes": [], "statements": [ { "expression": { "expression": { - "id": 33220, + "id": 33314, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33189, - "src": "1177:1:33", + "referencedDeclaration": 33283, + "src": "1177:1:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$37456_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 33221, + "id": 33315, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "1179:12:33", + "memberLocation": "1179:12:34", "memberName": "totalSubnets", "nodeType": "MemberAccess", - "referencedDeclaration": 37375, - "src": "1177:14:33", + "referencedDeclaration": 37543, + "src": "1177:14:34", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "functionReturnParameters": 33219, - "id": 33222, + "functionReturnParameters": 33313, + "id": 33316, "nodeType": "Return", - "src": "1170:21:33" + "src": "1170:21:34" } ] }, @@ -5832,26 +5832,26 @@ "kind": "function", "modifiers": [], "name": "totalSubnets", - "nameLocation": "1114:12:33", + "nameLocation": "1114:12:34", "parameters": { - "id": 33216, + "id": 33310, "nodeType": "ParameterList", "parameters": [], - "src": "1126:2:33" + "src": "1126:2:34" }, "returnParameters": { - "id": 33219, + "id": 33313, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33218, + "id": 33312, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 33224, - "src": "1152:6:33", + "scope": 33318, + "src": "1152:6:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5859,10 +5859,10 @@ "typeString": "uint64" }, "typeName": { - "id": 33217, + "id": 33311, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "1152:6:33", + "src": "1152:6:34", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -5871,57 +5871,57 @@ "visibility": "internal" } ], - "src": "1151:8:33" + "src": "1151:8:34" }, - "scope": 33728, + "scope": 33822, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 33233, + "id": 33327, "nodeType": "FunctionDefinition", - "src": "1204:86:33", + "src": "1204:86:34", "nodes": [], "body": { - "id": 33232, + "id": 33326, "nodeType": "Block", - "src": "1256:34:33", + "src": "1256:34:34", "nodes": [], "statements": [ { "expression": { "expression": { - "id": 33229, + "id": 33323, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33189, - "src": "1273:1:33", + "referencedDeclaration": 33283, + "src": "1273:1:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$37456_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 33230, + "id": 33324, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "1275:8:33", + "memberLocation": "1275:8:34", "memberName": "minStake", "nodeType": "MemberAccess", - "referencedDeclaration": 37378, - "src": "1273:10:33", + "referencedDeclaration": 37522, + "src": "1273:10:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 33228, - "id": 33231, + "functionReturnParameters": 33322, + "id": 33325, "nodeType": "Return", - "src": "1266:17:33" + "src": "1266:17:34" } ] }, @@ -5930,26 +5930,26 @@ "kind": "function", "modifiers": [], "name": "minStake", - "nameLocation": "1213:8:33", + "nameLocation": "1213:8:34", "parameters": { - "id": 33225, + "id": 33319, "nodeType": "ParameterList", "parameters": [], - "src": "1221:2:33" + "src": "1221:2:34" }, "returnParameters": { - "id": 33228, + "id": 33322, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33227, + "id": 33321, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 33233, - "src": "1247:7:33", + "scope": 33327, + "src": "1247:7:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5957,10 +5957,10 @@ "typeString": "uint256" }, "typeName": { - "id": 33226, + "id": 33320, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1247:7:33", + "src": "1247:7:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5969,57 +5969,57 @@ "visibility": "internal" } ], - "src": "1246:9:33" + "src": "1246:9:34" }, - "scope": 33728, + "scope": 33822, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 33242, + "id": 33336, "nodeType": "FunctionDefinition", - "src": "1296:89:33", + "src": "1296:89:34", "nodes": [], "body": { - "id": 33241, + "id": 33335, "nodeType": "Block", - "src": "1348:37:33", + "src": "1348:37:34", "nodes": [], "statements": [ { "expression": { "expression": { - "id": 33238, + "id": 33332, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33189, - "src": "1365:1:33", + "referencedDeclaration": 33283, + "src": "1365:1:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$37456_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 33239, + "id": 33333, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "1367:11:33", + "memberLocation": "1367:11:34", "memberName": "initialized", "nodeType": "MemberAccess", - "referencedDeclaration": 37449, - "src": "1365:13:33", + "referencedDeclaration": 37548, + "src": "1365:13:34", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 33237, - "id": 33240, + "functionReturnParameters": 33331, + "id": 33334, "nodeType": "Return", - "src": "1358:20:33" + "src": "1358:20:34" } ] }, @@ -6028,26 +6028,26 @@ "kind": "function", "modifiers": [], "name": "initialized", - "nameLocation": "1305:11:33", + "nameLocation": "1305:11:34", "parameters": { - "id": 33234, + "id": 33328, "nodeType": "ParameterList", "parameters": [], - "src": "1316:2:33" + "src": "1316:2:34" }, "returnParameters": { - "id": 33237, + "id": 33331, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33236, + "id": 33330, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 33242, - "src": "1342:4:33", + "scope": 33336, + "src": "1342:4:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6055,10 +6055,10 @@ "typeString": "bool" }, "typeName": { - "id": 33235, + "id": 33329, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1342:4:33", + "src": "1342:4:34", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6067,57 +6067,57 @@ "visibility": "internal" } ], - "src": "1341:6:33" + "src": "1341:6:34" }, - "scope": 33728, + "scope": 33822, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 33251, + "id": 33345, "nodeType": "FunctionDefinition", - "src": "1391:107:33", + "src": "1391:107:34", "nodes": [], "body": { - "id": 33250, + "id": 33344, "nodeType": "Block", - "src": "1453:45:33", + "src": "1453:45:34", "nodes": [], "statements": [ { "expression": { "expression": { - "id": 33247, + "id": 33341, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33189, - "src": "1470:1:33", + "referencedDeclaration": 33283, + "src": "1470:1:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$37456_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 33248, + "id": 33342, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "1472:19:33", + "memberLocation": "1472:19:34", "memberName": "bottomUpCheckPeriod", "nodeType": "MemberAccess", - "referencedDeclaration": 37391, - "src": "1470:21:33", + "referencedDeclaration": 37545, + "src": "1470:21:34", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "functionReturnParameters": 33246, - "id": 33249, + "functionReturnParameters": 33340, + "id": 33343, "nodeType": "Return", - "src": "1463:28:33" + "src": "1463:28:34" } ] }, @@ -6126,26 +6126,26 @@ "kind": "function", "modifiers": [], "name": "bottomUpCheckPeriod", - "nameLocation": "1400:19:33", + "nameLocation": "1400:19:34", "parameters": { - "id": 33243, + "id": 33337, "nodeType": "ParameterList", "parameters": [], - "src": "1419:2:33" + "src": "1419:2:34" }, "returnParameters": { - "id": 33246, + "id": 33340, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33245, + "id": 33339, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 33251, - "src": "1445:6:33", + "scope": 33345, + "src": "1445:6:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6153,10 +6153,10 @@ "typeString": "uint64" }, "typeName": { - "id": 33244, + "id": 33338, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "1445:6:33", + "src": "1445:6:34", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -6165,57 +6165,57 @@ "visibility": "internal" } ], - "src": "1444:8:33" + "src": "1444:8:34" }, - "scope": 33728, + "scope": 33822, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 33260, + "id": 33354, "nodeType": "FunctionDefinition", - "src": "1504:105:33", + "src": "1504:105:34", "nodes": [], "body": { - "id": 33259, + "id": 33353, "nodeType": "Block", - "src": "1565:44:33", + "src": "1565:44:34", "nodes": [], "statements": [ { "expression": { "expression": { - "id": 33256, + "id": 33350, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33189, - "src": "1582:1:33", + "referencedDeclaration": 33283, + "src": "1582:1:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$37456_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 33257, + "id": 33351, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "1584:18:33", + "memberLocation": "1584:18:34", "memberName": "topDownCheckPeriod", "nodeType": "MemberAccess", - "referencedDeclaration": 37400, - "src": "1582:20:33", + "referencedDeclaration": 37540, + "src": "1582:20:34", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "functionReturnParameters": 33255, - "id": 33258, + "functionReturnParameters": 33349, + "id": 33352, "nodeType": "Return", - "src": "1575:27:33" + "src": "1575:27:34" } ] }, @@ -6224,26 +6224,26 @@ "kind": "function", "modifiers": [], "name": "topDownCheckPeriod", - "nameLocation": "1513:18:33", + "nameLocation": "1513:18:34", "parameters": { - "id": 33252, + "id": 33346, "nodeType": "ParameterList", "parameters": [], - "src": "1531:2:33" + "src": "1531:2:34" }, "returnParameters": { - "id": 33255, + "id": 33349, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33254, + "id": 33348, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 33260, - "src": "1557:6:33", + "scope": 33354, + "src": "1557:6:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6251,10 +6251,10 @@ "typeString": "uint64" }, "typeName": { - "id": 33253, + "id": 33347, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "1557:6:33", + "src": "1557:6:34", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -6263,57 +6263,57 @@ "visibility": "internal" } ], - "src": "1556:8:33" + "src": "1556:8:34" }, - "scope": 33728, + "scope": 33822, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 33270, + "id": 33364, "nodeType": "FunctionDefinition", - "src": "1615:103:33", + "src": "1615:103:34", "nodes": [], "body": { - "id": 33269, + "id": 33363, "nodeType": "Block", - "src": "1681:37:33", + "src": "1681:37:34", "nodes": [], "statements": [ { "expression": { "expression": { - "id": 33266, + "id": 33360, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33189, - "src": "1698:1:33", + "referencedDeclaration": 33283, + "src": "1698:1:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$37456_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 33267, + "id": 33361, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "1700:11:33", + "memberLocation": "1700:11:34", "memberName": "networkName", "nodeType": "MemberAccess", - "referencedDeclaration": 37372, - "src": "1698:13:33", + "referencedDeclaration": 37519, + "src": "1698:13:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39363_storage", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage", "typeString": "struct SubnetID storage ref" } }, - "functionReturnParameters": 33265, - "id": 33268, + "functionReturnParameters": 33359, + "id": 33362, "nodeType": "Return", - "src": "1691:20:33" + "src": "1691:20:34" } ] }, @@ -6322,111 +6322,111 @@ "kind": "function", "modifiers": [], "name": "getNetworkName", - "nameLocation": "1624:14:33", + "nameLocation": "1624:14:34", "parameters": { - "id": 33261, + "id": 33355, "nodeType": "ParameterList", "parameters": [], - "src": "1638:2:33" + "src": "1638:2:34" }, "returnParameters": { - "id": 33265, + "id": 33359, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33264, + "id": 33358, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 33270, - "src": "1664:15:33", + "scope": 33364, + "src": "1664:15:34", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39363_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID" }, "typeName": { - "id": 33263, + "id": 33357, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33262, + "id": 33356, "name": "SubnetID", "nameLocations": [ - "1664:8:33" + "1664:8:34" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39363, - "src": "1664:8:33" + "referencedDeclaration": 39457, + "src": "1664:8:34" }, - "referencedDeclaration": 39363, - "src": "1664:8:33", + "referencedDeclaration": 39457, + "src": "1664:8:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39363_storage_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage_ptr", "typeString": "struct SubnetID" } }, "visibility": "internal" } ], - "src": "1663:17:33" + "src": "1663:17:34" }, - "scope": 33728, + "scope": 33822, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 33284, + "id": 33378, "nodeType": "FunctionDefinition", - "src": "1724:137:33", + "src": "1724:137:34", "nodes": [], "body": { - "id": 33283, + "id": 33377, "nodeType": "Block", - "src": "1813:48:33", + "src": "1813:48:34", "nodes": [], "statements": [ { "expression": { "baseExpression": { "expression": { - "id": 33278, + "id": 33372, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33189, - "src": "1830:1:33", + "referencedDeclaration": 33283, + "src": "1830:1:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$37456_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 33279, + "id": 33373, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "1832:19:33", + "memberLocation": "1832:19:34", "memberName": "bottomUpCheckpoints", "nodeType": "MemberAccess", - "referencedDeclaration": 37406, - "src": "1830:21:33", + "referencedDeclaration": 37480, + "src": "1830:21:34", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$39238_storage_$", + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$39332_storage_$", "typeString": "mapping(uint64 => struct BottomUpCheckpoint storage ref)" } }, - "id": 33281, + "id": 33375, "indexExpression": { - "id": 33280, + "id": 33374, "name": "e", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33272, - "src": "1852:1:33", + "referencedDeclaration": 33366, + "src": "1852:1:34", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -6437,16 +6437,16 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1830:24:33", + "src": "1830:24:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39238_storage", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage", "typeString": "struct BottomUpCheckpoint storage ref" } }, - "functionReturnParameters": 33277, - "id": 33282, + "functionReturnParameters": 33371, + "id": 33376, "nodeType": "Return", - "src": "1823:31:33" + "src": "1823:31:34" } ] }, @@ -6455,20 +6455,20 @@ "kind": "function", "modifiers": [], "name": "bottomUpCheckpoints", - "nameLocation": "1733:19:33", + "nameLocation": "1733:19:34", "parameters": { - "id": 33273, + "id": 33367, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33272, + "id": 33366, "mutability": "mutable", "name": "e", - "nameLocation": "1760:1:33", + "nameLocation": "1760:1:34", "nodeType": "VariableDeclaration", - "scope": 33284, - "src": "1753:8:33", + "scope": 33378, + "src": "1753:8:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6476,10 +6476,10 @@ "typeString": "uint64" }, "typeName": { - "id": 33271, + "id": 33365, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "1753:6:33", + "src": "1753:6:34", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -6488,80 +6488,80 @@ "visibility": "internal" } ], - "src": "1752:10:33" + "src": "1752:10:34" }, "returnParameters": { - "id": 33277, + "id": 33371, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33276, + "id": 33370, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 33284, - "src": "1786:25:33", + "scope": 33378, + "src": "1786:25:34", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39238_memory_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_memory_ptr", "typeString": "struct BottomUpCheckpoint" }, "typeName": { - "id": 33275, + "id": 33369, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33274, + "id": 33368, "name": "BottomUpCheckpoint", "nameLocations": [ - "1786:18:33" + "1786:18:34" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39238, - "src": "1786:18:33" + "referencedDeclaration": 39332, + "src": "1786:18:34" }, - "referencedDeclaration": 39238, - "src": "1786:18:33", + "referencedDeclaration": 39332, + "src": "1786:18:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39238_storage_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage_ptr", "typeString": "struct BottomUpCheckpoint" } }, "visibility": "internal" } ], - "src": "1785:27:33" + "src": "1785:27:34" }, - "scope": 33728, + "scope": 33822, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 33302, + "id": 33396, "nodeType": "FunctionDefinition", - "src": "2057:196:33", + "src": "2057:196:34", "nodes": [], "body": { - "id": 33301, + "id": 33395, "nodeType": "Block", - "src": "2148:105:33", + "src": "2148:105:34", "nodes": [], "statements": [ { "expression": { "arguments": [ { - "id": 33298, + "id": 33392, "name": "subnetId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33288, - "src": "2237:8:33", + "referencedDeclaration": 33382, + "src": "2237:8:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39363_calldata_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_calldata_ptr", "typeString": "struct SubnetID calldata" } } @@ -6569,38 +6569,38 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_SubnetID_$39363_calldata_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_calldata_ptr", "typeString": "struct SubnetID calldata" } ], "expression": { - "id": 33296, + "id": 33390, "name": "LibGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 37327, - "src": "2216:10:33", + "referencedDeclaration": 37421, + "src": "2216:10:34", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibGateway_$37327_$", + "typeIdentifier": "t_type$_t_contract$_LibGateway_$37421_$", "typeString": "type(library LibGateway)" } }, - "id": 33297, + "id": 33391, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2227:9:33", + "memberLocation": "2227:9:34", "memberName": "getSubnet", "nodeType": "MemberAccess", - "referencedDeclaration": 37326, - "src": "2216:20:33", + "referencedDeclaration": 37420, + "src": "2216:20:34", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_SubnetID_$39363_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$39387_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_SubnetID_$39457_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$39481_storage_ptr_$", "typeString": "function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)" } }, - "id": 33299, + "id": 33393, "isConstant": false, "isLValue": false, "isPure": false, @@ -6609,24 +6609,24 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2216:30:33", + "src": "2216:30:34", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$39387_storage_ptr_$", + "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$39481_storage_ptr_$", "typeString": "tuple(bool,struct Subnet storage pointer)" } }, - "functionReturnParameters": 33295, - "id": 33300, + "functionReturnParameters": 33389, + "id": 33394, "nodeType": "Return", - "src": "2209:37:33" + "src": "2209:37:34" } ] }, "documentation": { - "id": 33285, + "id": 33379, "nodeType": "StructuredDocumentation", - "src": "1867:185:33", + "src": "1867:185:34", "text": "@notice returns the subnet with the given id\n @param subnetId the id of the subnet\n @return found whether the subnet exists\n @return subnet - the subnet struct" }, "functionSelector": "c66c66a1", @@ -6634,64 +6634,64 @@ "kind": "function", "modifiers": [], "name": "getSubnet", - "nameLocation": "2066:9:33", + "nameLocation": "2066:9:34", "parameters": { - "id": 33289, + "id": 33383, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33288, + "id": 33382, "mutability": "mutable", "name": "subnetId", - "nameLocation": "2094:8:33", + "nameLocation": "2094:8:34", "nodeType": "VariableDeclaration", - "scope": 33302, - "src": "2076:26:33", + "scope": 33396, + "src": "2076:26:34", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39363_calldata_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_calldata_ptr", "typeString": "struct SubnetID" }, "typeName": { - "id": 33287, + "id": 33381, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33286, + "id": 33380, "name": "SubnetID", "nameLocations": [ - "2076:8:33" + "2076:8:34" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39363, - "src": "2076:8:33" + "referencedDeclaration": 39457, + "src": "2076:8:34" }, - "referencedDeclaration": 39363, - "src": "2076:8:33", + "referencedDeclaration": 39457, + "src": "2076:8:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39363_storage_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage_ptr", "typeString": "struct SubnetID" } }, "visibility": "internal" } ], - "src": "2075:28:33" + "src": "2075:28:34" }, "returnParameters": { - "id": 33295, + "id": 33389, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33291, + "id": 33385, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 33302, - "src": "2127:4:33", + "scope": 33396, + "src": "2127:4:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6699,10 +6699,10 @@ "typeString": "bool" }, "typeName": { - "id": 33290, + "id": 33384, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2127:4:33", + "src": "2127:4:34", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6712,98 +6712,98 @@ }, { "constant": false, - "id": 33294, + "id": 33388, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 33302, - "src": "2133:13:33", + "scope": 33396, + "src": "2133:13:34", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39387_memory_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_memory_ptr", "typeString": "struct Subnet" }, "typeName": { - "id": 33293, + "id": 33387, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33292, + "id": 33386, "name": "Subnet", "nameLocations": [ - "2133:6:33" + "2133:6:34" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39387, - "src": "2133:6:33" + "referencedDeclaration": 39481, + "src": "2133:6:34" }, - "referencedDeclaration": 39387, - "src": "2133:6:33", + "referencedDeclaration": 39481, + "src": "2133:6:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39387_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet" } }, "visibility": "internal" } ], - "src": "2126:21:33" + "src": "2126:21:34" }, - "scope": 33728, + "scope": 33822, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 33316, + "id": 33410, "nodeType": "FunctionDefinition", - "src": "2259:109:33", + "src": "2259:109:34", "nodes": [], "body": { - "id": 33315, + "id": 33409, "nodeType": "Block", - "src": "2332:36:33", + "src": "2332:36:34", "nodes": [], "statements": [ { "expression": { "baseExpression": { "expression": { - "id": 33310, + "id": 33404, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33189, - "src": "2349:1:33", + "referencedDeclaration": 33283, + "src": "2349:1:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$37456_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 33311, + "id": 33405, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2351:7:33", + "memberLocation": "2351:7:34", "memberName": "subnets", "nodeType": "MemberAccess", - "referencedDeclaration": 37384, - "src": "2349:9:33", + "referencedDeclaration": 37468, + "src": "2349:9:34", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Subnet_$39387_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Subnet_$39481_storage_$", "typeString": "mapping(bytes32 => struct Subnet storage ref)" } }, - "id": 33313, + "id": 33407, "indexExpression": { - "id": 33312, + "id": 33406, "name": "h", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33304, - "src": "2359:1:33", + "referencedDeclaration": 33398, + "src": "2359:1:34", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6814,16 +6814,16 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2349:12:33", + "src": "2349:12:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39387_storage", + "typeIdentifier": "t_struct$_Subnet_$39481_storage", "typeString": "struct Subnet storage ref" } }, - "functionReturnParameters": 33309, - "id": 33314, + "functionReturnParameters": 33403, + "id": 33408, "nodeType": "Return", - "src": "2342:19:33" + "src": "2342:19:34" } ] }, @@ -6832,20 +6832,20 @@ "kind": "function", "modifiers": [], "name": "subnets", - "nameLocation": "2268:7:33", + "nameLocation": "2268:7:34", "parameters": { - "id": 33305, + "id": 33399, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33304, + "id": 33398, "mutability": "mutable", "name": "h", - "nameLocation": "2284:1:33", + "nameLocation": "2284:1:34", "nodeType": "VariableDeclaration", - "scope": 33316, - "src": "2276:9:33", + "scope": 33410, + "src": "2276:9:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6853,10 +6853,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 33303, + "id": 33397, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2276:7:33", + "src": "2276:7:34", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6865,125 +6865,125 @@ "visibility": "internal" } ], - "src": "2275:11:33" + "src": "2275:11:34" }, "returnParameters": { - "id": 33309, + "id": 33403, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33308, + "id": 33402, "mutability": "mutable", "name": "subnet", - "nameLocation": "2324:6:33", + "nameLocation": "2324:6:34", "nodeType": "VariableDeclaration", - "scope": 33316, - "src": "2310:20:33", + "scope": 33410, + "src": "2310:20:34", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39387_memory_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_memory_ptr", "typeString": "struct Subnet" }, "typeName": { - "id": 33307, + "id": 33401, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33306, + "id": 33400, "name": "Subnet", "nameLocations": [ - "2310:6:33" + "2310:6:34" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39387, - "src": "2310:6:33" + "referencedDeclaration": 39481, + "src": "2310:6:34" }, - "referencedDeclaration": 39387, - "src": "2310:6:33", + "referencedDeclaration": 39481, + "src": "2310:6:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39387_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet" } }, "visibility": "internal" } ], - "src": "2309:22:33" + "src": "2309:22:34" }, - "scope": 33728, + "scope": 33822, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 33338, + "id": 33432, "nodeType": "FunctionDefinition", - "src": "2443:262:33", + "src": "2443:262:34", "nodes": [], "body": { - "id": 33337, + "id": 33431, "nodeType": "Block", - "src": "2537:168:33", + "src": "2537:168:34", "nodes": [], "statements": [ { "assignments": [ null, - 33327 + 33421 ], "declarations": [ null, { "constant": false, - "id": 33327, + "id": 33421, "mutability": "mutable", "name": "subnet", - "nameLocation": "2616:6:33", + "nameLocation": "2616:6:34", "nodeType": "VariableDeclaration", - "scope": 33337, - "src": "2601:21:33", + "scope": 33431, + "src": "2601:21:34", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39387_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet" }, "typeName": { - "id": 33326, + "id": 33420, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33325, + "id": 33419, "name": "Subnet", "nameLocations": [ - "2601:6:33" + "2601:6:34" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39387, - "src": "2601:6:33" + "referencedDeclaration": 39481, + "src": "2601:6:34" }, - "referencedDeclaration": 39387, - "src": "2601:6:33", + "referencedDeclaration": 39481, + "src": "2601:6:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39387_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet" } }, "visibility": "internal" } ], - "id": 33332, + "id": 33426, "initialValue": { "arguments": [ { - "id": 33330, + "id": 33424, "name": "subnetId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33320, - "src": "2647:8:33", + "referencedDeclaration": 33414, + "src": "2647:8:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39363_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" } } @@ -6991,38 +6991,38 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_SubnetID_$39363_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" } ], "expression": { - "id": 33328, + "id": 33422, "name": "LibGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 37327, - "src": "2626:10:33", + "referencedDeclaration": 37421, + "src": "2626:10:34", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibGateway_$37327_$", + "typeIdentifier": "t_type$_t_contract$_LibGateway_$37421_$", "typeString": "type(library LibGateway)" } }, - "id": 33329, + "id": 33423, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2637:9:33", + "memberLocation": "2637:9:34", "memberName": "getSubnet", "nodeType": "MemberAccess", - "referencedDeclaration": 37326, - "src": "2626:20:33", + "referencedDeclaration": 37420, + "src": "2626:20:34", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_SubnetID_$39363_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$39387_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_SubnetID_$39457_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$39481_storage_ptr_$", "typeString": "function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)" } }, - "id": 33331, + "id": 33425, "isConstant": false, "isLValue": false, "isPure": false, @@ -7031,71 +7031,71 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2626:30:33", + "src": "2626:30:34", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$39387_storage_ptr_$", + "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$39481_storage_ptr_$", "typeString": "tuple(bool,struct Subnet storage pointer)" } }, "nodeType": "VariableDeclarationStatement", - "src": "2598:58:33" + "src": "2598:58:34" }, { "expression": { "expression": { "expression": { - "id": 33333, + "id": 33427, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33327, - "src": "2673:6:33", + "referencedDeclaration": 33421, + "src": "2673:6:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39387_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet storage pointer" } }, - "id": 33334, + "id": 33428, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2680:11:33", + "memberLocation": "2680:11:34", "memberName": "topDownMsgs", "nodeType": "MemberAccess", - "referencedDeclaration": 39386, - "src": "2673:18:33", + "referencedDeclaration": 39480, + "src": "2673:18:34", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39258_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_storage_$dyn_storage", "typeString": "struct CrossMsg storage ref[] storage ref" } }, - "id": 33335, + "id": 33429, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2692:6:33", + "memberLocation": "2692:6:34", "memberName": "length", "nodeType": "MemberAccess", - "src": "2673:25:33", + "src": "2673:25:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 33324, - "id": 33336, + "functionReturnParameters": 33418, + "id": 33430, "nodeType": "Return", - "src": "2666:32:33" + "src": "2666:32:34" } ] }, "documentation": { - "id": 33317, + "id": 33411, "nodeType": "StructuredDocumentation", - "src": "2374:64:33", + "src": "2374:64:34", "text": "@notice get number of top-down messages for the given subnet" }, "functionSelector": "9d3070b5", @@ -7103,64 +7103,64 @@ "kind": "function", "modifiers": [], "name": "getSubnetTopDownMsgsLength", - "nameLocation": "2452:26:33", + "nameLocation": "2452:26:34", "parameters": { - "id": 33321, + "id": 33415, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33320, + "id": 33414, "mutability": "mutable", "name": "subnetId", - "nameLocation": "2495:8:33", + "nameLocation": "2495:8:34", "nodeType": "VariableDeclaration", - "scope": 33338, - "src": "2479:24:33", + "scope": 33432, + "src": "2479:24:34", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39363_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID" }, "typeName": { - "id": 33319, + "id": 33413, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33318, + "id": 33412, "name": "SubnetID", "nameLocations": [ - "2479:8:33" + "2479:8:34" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39363, - "src": "2479:8:33" + "referencedDeclaration": 39457, + "src": "2479:8:34" }, - "referencedDeclaration": 39363, - "src": "2479:8:33", + "referencedDeclaration": 39457, + "src": "2479:8:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39363_storage_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage_ptr", "typeString": "struct SubnetID" } }, "visibility": "internal" } ], - "src": "2478:26:33" + "src": "2478:26:34" }, "returnParameters": { - "id": 33324, + "id": 33418, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33323, + "id": 33417, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 33338, - "src": "2528:7:33", + "scope": 33432, + "src": "2528:7:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7168,10 +7168,10 @@ "typeString": "uint256" }, "typeName": { - "id": 33322, + "id": 33416, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2528:7:33", + "src": "2528:7:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7180,81 +7180,81 @@ "visibility": "internal" } ], - "src": "2527:9:33" + "src": "2527:9:34" }, - "scope": 33728, + "scope": 33822, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 33364, + "id": 33458, "nodeType": "FunctionDefinition", - "src": "2792:278:33", + "src": "2792:278:34", "nodes": [], "body": { - "id": 33363, + "id": 33457, "nodeType": "Block", - "src": "2902:168:33", + "src": "2902:168:34", "nodes": [], "statements": [ { "assignments": [ null, - 33352 + 33446 ], "declarations": [ null, { "constant": false, - "id": 33352, + "id": 33446, "mutability": "mutable", "name": "subnet", - "nameLocation": "2981:6:33", + "nameLocation": "2981:6:34", "nodeType": "VariableDeclaration", - "scope": 33363, - "src": "2966:21:33", + "scope": 33457, + "src": "2966:21:34", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39387_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet" }, "typeName": { - "id": 33351, + "id": 33445, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33350, + "id": 33444, "name": "Subnet", "nameLocations": [ - "2966:6:33" + "2966:6:34" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39387, - "src": "2966:6:33" + "referencedDeclaration": 39481, + "src": "2966:6:34" }, - "referencedDeclaration": 39387, - "src": "2966:6:33", + "referencedDeclaration": 39481, + "src": "2966:6:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39387_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet" } }, "visibility": "internal" } ], - "id": 33357, + "id": 33451, "initialValue": { "arguments": [ { - "id": 33355, + "id": 33449, "name": "subnetId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33342, - "src": "3012:8:33", + "referencedDeclaration": 33436, + "src": "3012:8:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39363_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" } } @@ -7262,38 +7262,38 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_SubnetID_$39363_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" } ], "expression": { - "id": 33353, + "id": 33447, "name": "LibGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 37327, - "src": "2991:10:33", + "referencedDeclaration": 37421, + "src": "2991:10:34", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibGateway_$37327_$", + "typeIdentifier": "t_type$_t_contract$_LibGateway_$37421_$", "typeString": "type(library LibGateway)" } }, - "id": 33354, + "id": 33448, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3002:9:33", + "memberLocation": "3002:9:34", "memberName": "getSubnet", "nodeType": "MemberAccess", - "referencedDeclaration": 37326, - "src": "2991:20:33", + "referencedDeclaration": 37420, + "src": "2991:20:34", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_SubnetID_$39363_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$39387_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_SubnetID_$39457_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$39481_storage_ptr_$", "typeString": "function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)" } }, - "id": 33356, + "id": 33450, "isConstant": false, "isLValue": false, "isPure": false, @@ -7302,54 +7302,54 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2991:30:33", + "src": "2991:30:34", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$39387_storage_ptr_$", + "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$39481_storage_ptr_$", "typeString": "tuple(bool,struct Subnet storage pointer)" } }, "nodeType": "VariableDeclarationStatement", - "src": "2963:58:33" + "src": "2963:58:34" }, { "expression": { "baseExpression": { "expression": { - "id": 33358, + "id": 33452, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33352, - "src": "3038:6:33", + "referencedDeclaration": 33446, + "src": "3038:6:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39387_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet storage pointer" } }, - "id": 33359, + "id": 33453, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3045:11:33", + "memberLocation": "3045:11:34", "memberName": "topDownMsgs", "nodeType": "MemberAccess", - "referencedDeclaration": 39386, - "src": "3038:18:33", + "referencedDeclaration": 39480, + "src": "3038:18:34", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39258_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_storage_$dyn_storage", "typeString": "struct CrossMsg storage ref[] storage ref" } }, - "id": 33361, + "id": 33455, "indexExpression": { - "id": 33360, + "id": 33454, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33344, - "src": "3057:5:33", + "referencedDeclaration": 33438, + "src": "3057:5:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7360,23 +7360,23 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3038:25:33", + "src": "3038:25:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$39258_storage", + "typeIdentifier": "t_struct$_CrossMsg_$39352_storage", "typeString": "struct CrossMsg storage ref" } }, - "functionReturnParameters": 33349, - "id": 33362, + "functionReturnParameters": 33443, + "id": 33456, "nodeType": "Return", - "src": "3031:32:33" + "src": "3031:32:34" } ] }, "documentation": { - "id": 33339, + "id": 33433, "nodeType": "StructuredDocumentation", - "src": "2711:76:33", + "src": "2711:76:34", "text": "@notice get the top-down message at the given index for the given subnet" }, "functionSelector": "0ea746f2", @@ -7384,43 +7384,43 @@ "kind": "function", "modifiers": [], "name": "getSubnetTopDownMsg", - "nameLocation": "2801:19:33", + "nameLocation": "2801:19:34", "parameters": { - "id": 33345, + "id": 33439, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33342, + "id": 33436, "mutability": "mutable", "name": "subnetId", - "nameLocation": "2837:8:33", + "nameLocation": "2837:8:34", "nodeType": "VariableDeclaration", - "scope": 33364, - "src": "2821:24:33", + "scope": 33458, + "src": "2821:24:34", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39363_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID" }, "typeName": { - "id": 33341, + "id": 33435, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33340, + "id": 33434, "name": "SubnetID", "nameLocations": [ - "2821:8:33" + "2821:8:34" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39363, - "src": "2821:8:33" + "referencedDeclaration": 39457, + "src": "2821:8:34" }, - "referencedDeclaration": 39363, - "src": "2821:8:33", + "referencedDeclaration": 39457, + "src": "2821:8:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39363_storage_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage_ptr", "typeString": "struct SubnetID" } }, @@ -7428,13 +7428,13 @@ }, { "constant": false, - "id": 33344, + "id": 33438, "mutability": "mutable", "name": "index", - "nameLocation": "2855:5:33", + "nameLocation": "2855:5:34", "nodeType": "VariableDeclaration", - "scope": 33364, - "src": "2847:13:33", + "scope": 33458, + "src": "2847:13:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7442,10 +7442,10 @@ "typeString": "uint256" }, "typeName": { - "id": 33343, + "id": 33437, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2847:7:33", + "src": "2847:7:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7454,83 +7454,83 @@ "visibility": "internal" } ], - "src": "2820:41:33" + "src": "2820:41:34" }, "returnParameters": { - "id": 33349, + "id": 33443, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33348, + "id": 33442, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 33364, - "src": "2885:15:33", + "scope": 33458, + "src": "2885:15:34", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$39258_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg" }, "typeName": { - "id": 33347, + "id": 33441, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33346, + "id": 33440, "name": "CrossMsg", "nameLocations": [ - "2885:8:33" + "2885:8:34" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39258, - "src": "2885:8:33" + "referencedDeclaration": 39352, + "src": "2885:8:34" }, - "referencedDeclaration": 39258, - "src": "2885:8:33", + "referencedDeclaration": 39352, + "src": "2885:8:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$39258_storage_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_storage_ptr", "typeString": "struct CrossMsg" } }, "visibility": "internal" } ], - "src": "2884:17:33" + "src": "2884:17:34" }, - "scope": 33728, + "scope": 33822, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 33467, + "id": 33561, "nodeType": "FunctionDefinition", - "src": "3329:752:33", + "src": "3329:752:34", "nodes": [], "body": { - "id": 33466, + "id": 33560, "nodeType": "Block", - "src": "3441:640:33", + "src": "3441:640:34", "nodes": [], "statements": [ { "assignments": [ - 33378, - 33381 + 33472, + 33475 ], "declarations": [ { "constant": false, - "id": 33378, + "id": 33472, "mutability": "mutable", "name": "registered", - "nameLocation": "3457:10:33", + "nameLocation": "3457:10:34", "nodeType": "VariableDeclaration", - "scope": 33466, - "src": "3452:15:33", + "scope": 33560, + "src": "3452:15:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7538,10 +7538,10 @@ "typeString": "bool" }, "typeName": { - "id": 33377, + "id": 33471, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3452:4:33", + "src": "3452:4:34", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7551,54 +7551,54 @@ }, { "constant": false, - "id": 33381, + "id": 33475, "mutability": "mutable", "name": "subnet", - "nameLocation": "3484:6:33", + "nameLocation": "3484:6:34", "nodeType": "VariableDeclaration", - "scope": 33466, - "src": "3469:21:33", + "scope": 33560, + "src": "3469:21:34", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39387_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet" }, "typeName": { - "id": 33380, + "id": 33474, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33379, + "id": 33473, "name": "Subnet", "nameLocations": [ - "3469:6:33" + "3469:6:34" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39387, - "src": "3469:6:33" + "referencedDeclaration": 39481, + "src": "3469:6:34" }, - "referencedDeclaration": 39387, - "src": "3469:6:33", + "referencedDeclaration": 39481, + "src": "3469:6:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39387_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet" } }, "visibility": "internal" } ], - "id": 33386, + "id": 33480, "initialValue": { "arguments": [ { - "id": 33384, + "id": 33478, "name": "subnetId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33368, - "src": "3515:8:33", + "referencedDeclaration": 33462, + "src": "3515:8:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39363_calldata_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_calldata_ptr", "typeString": "struct SubnetID calldata" } } @@ -7606,38 +7606,38 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_SubnetID_$39363_calldata_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_calldata_ptr", "typeString": "struct SubnetID calldata" } ], "expression": { - "id": 33382, + "id": 33476, "name": "LibGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 37327, - "src": "3494:10:33", + "referencedDeclaration": 37421, + "src": "3494:10:34", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibGateway_$37327_$", + "typeIdentifier": "t_type$_t_contract$_LibGateway_$37421_$", "typeString": "type(library LibGateway)" } }, - "id": 33383, + "id": 33477, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3505:9:33", + "memberLocation": "3505:9:34", "memberName": "getSubnet", "nodeType": "MemberAccess", - "referencedDeclaration": 37326, - "src": "3494:20:33", + "referencedDeclaration": 37420, + "src": "3494:20:34", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_SubnetID_$39363_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$39387_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_SubnetID_$39457_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$39481_storage_ptr_$", "typeString": "function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)" } }, - "id": 33385, + "id": 33479, "isConstant": false, "isLValue": false, "isPure": false, @@ -7646,19 +7646,19 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3494:30:33", + "src": "3494:30:34", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$39387_storage_ptr_$", + "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$39481_storage_ptr_$", "typeString": "tuple(bool,struct Subnet storage pointer)" } }, "nodeType": "VariableDeclarationStatement", - "src": "3451:73:33" + "src": "3451:73:34" }, { "condition": { - "id": 33388, + "id": 33482, "isConstant": false, "isLValue": false, "isPure": false, @@ -7666,14 +7666,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "3538:11:33", + "src": "3538:11:34", "subExpression": { - "id": 33387, + "id": 33481, "name": "registered", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33378, - "src": "3539:10:33", + "referencedDeclaration": 33472, + "src": "3539:10:34", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7684,27 +7684,27 @@ "typeString": "bool" } }, - "id": 33397, + "id": 33491, "nodeType": "IfStatement", - "src": "3534:66:33", + "src": "3534:66:34", "trueBody": { - "id": 33396, + "id": 33490, "nodeType": "Block", - "src": "3551:49:33", + "src": "3551:49:34", "statements": [ { "expression": { "arguments": [ { "hexValue": "30", - "id": 33393, + "id": 33487, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3587:1:33", + "src": "3587:1:34", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -7719,48 +7719,48 @@ "typeString": "int_const 0" } ], - "id": 33392, + "id": 33486, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "3572:14:33", + "src": "3572:14:34", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$39258_memory_ptr_$dyn_memory_ptr_$", + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$39352_memory_ptr_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (struct CrossMsg memory[] memory)" }, "typeName": { "baseType": { - "id": 33390, + "id": 33484, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33389, + "id": 33483, "name": "CrossMsg", "nameLocations": [ - "3576:8:33" + "3576:8:34" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39258, - "src": "3576:8:33" + "referencedDeclaration": 39352, + "src": "3576:8:34" }, - "referencedDeclaration": 39258, - "src": "3576:8:33", + "referencedDeclaration": 39352, + "src": "3576:8:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$39258_storage_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_storage_ptr", "typeString": "struct CrossMsg" } }, - "id": 33391, + "id": 33485, "nodeType": "ArrayTypeName", - "src": "3576:10:33", + "src": "3576:10:34", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39258_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_storage_$dyn_storage_ptr", "typeString": "struct CrossMsg[]" } } }, - "id": 33394, + "id": 33488, "isConstant": false, "isLValue": false, "isPure": true, @@ -7769,35 +7769,35 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3572:17:33", + "src": "3572:17:34", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39258_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_memory_ptr_$dyn_memory_ptr", "typeString": "struct CrossMsg memory[] memory" } }, - "functionReturnParameters": 33376, - "id": 33395, + "functionReturnParameters": 33470, + "id": 33489, "nodeType": "Return", - "src": "3565:24:33" + "src": "3565:24:34" } ] } }, { "assignments": [ - 33399 + 33493 ], "declarations": [ { "constant": false, - "id": 33399, + "id": 33493, "mutability": "mutable", "name": "totalLength", - "nameLocation": "3618:11:33", + "nameLocation": "3618:11:34", "nodeType": "VariableDeclaration", - "scope": 33466, - "src": "3610:19:33", + "scope": 33560, + "src": "3610:19:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7805,10 +7805,10 @@ "typeString": "uint256" }, "typeName": { - "id": 33398, + "id": 33492, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3610:7:33", + "src": "3610:7:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7817,67 +7817,67 @@ "visibility": "internal" } ], - "id": 33403, + "id": 33497, "initialValue": { "expression": { "expression": { - "id": 33400, + "id": 33494, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33381, - "src": "3632:6:33", + "referencedDeclaration": 33475, + "src": "3632:6:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39387_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet storage pointer" } }, - "id": 33401, + "id": 33495, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3639:11:33", + "memberLocation": "3639:11:34", "memberName": "topDownMsgs", "nodeType": "MemberAccess", - "referencedDeclaration": 39386, - "src": "3632:18:33", + "referencedDeclaration": 39480, + "src": "3632:18:34", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39258_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_storage_$dyn_storage", "typeString": "struct CrossMsg storage ref[] storage ref" } }, - "id": 33402, + "id": 33496, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3651:6:33", + "memberLocation": "3651:6:34", "memberName": "length", "nodeType": "MemberAccess", - "src": "3632:25:33", + "src": "3632:25:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "3610:47:33" + "src": "3610:47:34" }, { "assignments": [ - 33405 + 33499 ], "declarations": [ { "constant": false, - "id": 33405, + "id": 33499, "mutability": "mutable", "name": "startingNonce", - "nameLocation": "3675:13:33", + "nameLocation": "3675:13:34", "nodeType": "VariableDeclaration", - "scope": 33466, - "src": "3667:21:33", + "scope": 33560, + "src": "3667:21:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7885,10 +7885,10 @@ "typeString": "uint256" }, "typeName": { - "id": 33404, + "id": 33498, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3667:7:33", + "src": "3667:7:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7897,16 +7897,16 @@ "visibility": "internal" } ], - "id": 33410, + "id": 33504, "initialValue": { "arguments": [ { - "id": 33408, + "id": 33502, "name": "fromNonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33370, - "src": "3699:9:33", + "referencedDeclaration": 33464, + "src": "3699:9:34", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -7920,26 +7920,26 @@ "typeString": "uint64" } ], - "id": 33407, + "id": 33501, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3691:7:33", + "src": "3691:7:34", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 33406, + "id": 33500, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3691:7:33", + "src": "3691:7:34", "typeDescriptions": {} } }, - "id": 33409, + "id": 33503, "isConstant": false, "isLValue": false, "isPure": false, @@ -7948,7 +7948,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3691:18:33", + "src": "3691:18:34", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7956,7 +7956,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3667:42:33" + "src": "3667:42:34" }, { "condition": { @@ -7964,18 +7964,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 33413, + "id": 33507, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 33411, + "id": 33505, "name": "startingNonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33405, - "src": "3723:13:33", + "referencedDeclaration": 33499, + "src": "3723:13:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7984,44 +7984,44 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 33412, + "id": 33506, "name": "totalLength", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33399, - "src": "3740:11:33", + "referencedDeclaration": 33493, + "src": "3740:11:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3723:28:33", + "src": "3723:28:34", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 33422, + "id": 33516, "nodeType": "IfStatement", - "src": "3719:83:33", + "src": "3719:83:34", "trueBody": { - "id": 33421, + "id": 33515, "nodeType": "Block", - "src": "3753:49:33", + "src": "3753:49:34", "statements": [ { "expression": { "arguments": [ { "hexValue": "30", - "id": 33418, + "id": 33512, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3789:1:33", + "src": "3789:1:34", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -8036,48 +8036,48 @@ "typeString": "int_const 0" } ], - "id": 33417, + "id": 33511, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "3774:14:33", + "src": "3774:14:34", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$39258_memory_ptr_$dyn_memory_ptr_$", + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$39352_memory_ptr_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (struct CrossMsg memory[] memory)" }, "typeName": { "baseType": { - "id": 33415, + "id": 33509, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33414, + "id": 33508, "name": "CrossMsg", "nameLocations": [ - "3778:8:33" + "3778:8:34" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39258, - "src": "3778:8:33" + "referencedDeclaration": 39352, + "src": "3778:8:34" }, - "referencedDeclaration": 39258, - "src": "3778:8:33", + "referencedDeclaration": 39352, + "src": "3778:8:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$39258_storage_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_storage_ptr", "typeString": "struct CrossMsg" } }, - "id": 33416, + "id": 33510, "nodeType": "ArrayTypeName", - "src": "3778:10:33", + "src": "3778:10:34", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39258_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_storage_$dyn_storage_ptr", "typeString": "struct CrossMsg[]" } } }, - "id": 33419, + "id": 33513, "isConstant": false, "isLValue": false, "isPure": true, @@ -8086,35 +8086,35 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3774:17:33", + "src": "3774:17:34", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39258_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_memory_ptr_$dyn_memory_ptr", "typeString": "struct CrossMsg memory[] memory" } }, - "functionReturnParameters": 33376, - "id": 33420, + "functionReturnParameters": 33470, + "id": 33514, "nodeType": "Return", - "src": "3767:24:33" + "src": "3767:24:34" } ] } }, { "assignments": [ - 33424 + 33518 ], "declarations": [ { "constant": false, - "id": 33424, + "id": 33518, "mutability": "mutable", "name": "msgLength", - "nameLocation": "3820:9:33", + "nameLocation": "3820:9:34", "nodeType": "VariableDeclaration", - "scope": 33466, - "src": "3812:17:33", + "scope": 33560, + "src": "3812:17:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8122,10 +8122,10 @@ "typeString": "uint256" }, "typeName": { - "id": 33423, + "id": 33517, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3812:7:33", + "src": "3812:7:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8134,24 +8134,24 @@ "visibility": "internal" } ], - "id": 33428, + "id": 33522, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 33427, + "id": 33521, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 33425, + "id": 33519, "name": "totalLength", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33399, - "src": "3832:11:33", + "referencedDeclaration": 33493, + "src": "3832:11:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8160,88 +8160,88 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 33426, + "id": 33520, "name": "startingNonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33405, - "src": "3846:13:33", + "referencedDeclaration": 33499, + "src": "3846:13:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3832:27:33", + "src": "3832:27:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "3812:47:33" + "src": "3812:47:34" }, { "assignments": [ - 33433 + 33527 ], "declarations": [ { "constant": false, - "id": 33433, + "id": 33527, "mutability": "mutable", "name": "messages", - "nameLocation": "3887:8:33", + "nameLocation": "3887:8:34", "nodeType": "VariableDeclaration", - "scope": 33466, - "src": "3869:26:33", + "scope": 33560, + "src": "3869:26:34", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39258_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_memory_ptr_$dyn_memory_ptr", "typeString": "struct CrossMsg[]" }, "typeName": { "baseType": { - "id": 33431, + "id": 33525, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33430, + "id": 33524, "name": "CrossMsg", "nameLocations": [ - "3869:8:33" + "3869:8:34" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39258, - "src": "3869:8:33" + "referencedDeclaration": 39352, + "src": "3869:8:34" }, - "referencedDeclaration": 39258, - "src": "3869:8:33", + "referencedDeclaration": 39352, + "src": "3869:8:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$39258_storage_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_storage_ptr", "typeString": "struct CrossMsg" } }, - "id": 33432, + "id": 33526, "nodeType": "ArrayTypeName", - "src": "3869:10:33", + "src": "3869:10:34", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39258_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_storage_$dyn_storage_ptr", "typeString": "struct CrossMsg[]" } }, "visibility": "internal" } ], - "id": 33440, + "id": 33534, "initialValue": { "arguments": [ { - "id": 33438, + "id": 33532, "name": "msgLength", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33424, - "src": "3913:9:33", + "referencedDeclaration": 33518, + "src": "3913:9:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8255,48 +8255,48 @@ "typeString": "uint256" } ], - "id": 33437, + "id": 33531, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "3898:14:33", + "src": "3898:14:34", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$39258_memory_ptr_$dyn_memory_ptr_$", + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$39352_memory_ptr_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (struct CrossMsg memory[] memory)" }, "typeName": { "baseType": { - "id": 33435, + "id": 33529, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33434, + "id": 33528, "name": "CrossMsg", "nameLocations": [ - "3902:8:33" + "3902:8:34" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39258, - "src": "3902:8:33" + "referencedDeclaration": 39352, + "src": "3902:8:34" }, - "referencedDeclaration": 39258, - "src": "3902:8:33", + "referencedDeclaration": 39352, + "src": "3902:8:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$39258_storage_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_storage_ptr", "typeString": "struct CrossMsg" } }, - "id": 33436, + "id": 33530, "nodeType": "ArrayTypeName", - "src": "3902:10:33", + "src": "3902:10:34", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39258_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_storage_$dyn_storage_ptr", "typeString": "struct CrossMsg[]" } } }, - "id": 33439, + "id": 33533, "isConstant": false, "isLValue": false, "isPure": false, @@ -8305,50 +8305,50 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3898:25:33", + "src": "3898:25:34", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39258_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_memory_ptr_$dyn_memory_ptr", "typeString": "struct CrossMsg memory[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "3869:54:33" + "src": "3869:54:34" }, { "body": { - "id": 33462, + "id": 33556, "nodeType": "Block", - "src": "3973:76:33", + "src": "3973:76:34", "statements": [ { "expression": { - "id": 33460, + "id": 33554, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 33451, + "id": 33545, "name": "messages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33433, - "src": "3987:8:33", + "referencedDeclaration": 33527, + "src": "3987:8:34", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39258_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_memory_ptr_$dyn_memory_ptr", "typeString": "struct CrossMsg memory[] memory" } }, - "id": 33453, + "id": 33547, "indexExpression": { - "id": 33452, + "id": 33546, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33442, - "src": "3996:1:33", + "referencedDeclaration": 33536, + "src": "3996:1:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8359,9 +8359,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3987:11:33", + "src": "3987:11:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$39258_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg memory" } }, @@ -8370,50 +8370,50 @@ "rightHandSide": { "baseExpression": { "expression": { - "id": 33454, + "id": 33548, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33381, - "src": "4001:6:33", + "referencedDeclaration": 33475, + "src": "4001:6:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39387_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet storage pointer" } }, - "id": 33455, + "id": 33549, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4008:11:33", + "memberLocation": "4008:11:34", "memberName": "topDownMsgs", "nodeType": "MemberAccess", - "referencedDeclaration": 39386, - "src": "4001:18:33", + "referencedDeclaration": 39480, + "src": "4001:18:34", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39258_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_storage_$dyn_storage", "typeString": "struct CrossMsg storage ref[] storage ref" } }, - "id": 33459, + "id": 33553, "indexExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 33458, + "id": 33552, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 33456, + "id": 33550, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33442, - "src": "4020:1:33", + "referencedDeclaration": 33536, + "src": "4020:1:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8422,18 +8422,18 @@ "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { - "id": 33457, + "id": 33551, "name": "startingNonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33405, - "src": "4024:13:33", + "referencedDeclaration": 33499, + "src": "4024:13:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4020:17:33", + "src": "4020:17:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8444,21 +8444,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4001:37:33", + "src": "4001:37:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$39258_storage", + "typeIdentifier": "t_struct$_CrossMsg_$39352_storage", "typeString": "struct CrossMsg storage ref" } }, - "src": "3987:51:33", + "src": "3987:51:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$39258_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg memory" } }, - "id": 33461, + "id": 33555, "nodeType": "ExpressionStatement", - "src": "3987:51:33" + "src": "3987:51:34" } ] }, @@ -8467,18 +8467,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 33447, + "id": 33541, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 33445, + "id": 33539, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33442, - "src": "3953:1:33", + "referencedDeclaration": 33536, + "src": "3953:1:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8487,38 +8487,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 33446, + "id": 33540, "name": "msgLength", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33424, - "src": "3957:9:33", + "referencedDeclaration": 33518, + "src": "3957:9:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3953:13:33", + "src": "3953:13:34", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 33463, + "id": 33557, "initializationExpression": { "assignments": [ - 33442 + 33536 ], "declarations": [ { "constant": false, - "id": 33442, + "id": 33536, "mutability": "mutable", "name": "i", - "nameLocation": "3946:1:33", + "nameLocation": "3946:1:34", "nodeType": "VariableDeclaration", - "scope": 33463, - "src": "3938:9:33", + "scope": 33557, + "src": "3938:9:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8526,10 +8526,10 @@ "typeString": "uint256" }, "typeName": { - "id": 33441, + "id": 33535, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3938:7:33", + "src": "3938:7:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8538,17 +8538,17 @@ "visibility": "internal" } ], - "id": 33444, + "id": 33538, "initialValue": { "hexValue": "30", - "id": 33443, + "id": 33537, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3950:1:33", + "src": "3950:1:34", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -8556,11 +8556,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "3938:13:33" + "src": "3938:13:34" }, "loopExpression": { "expression": { - "id": 33449, + "id": 33543, "isConstant": false, "isLValue": false, "isPure": false, @@ -8568,14 +8568,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3968:3:33", + "src": "3968:3:34", "subExpression": { - "id": 33448, + "id": 33542, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33442, - "src": "3968:1:33", + "referencedDeclaration": 33536, + "src": "3968:1:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8586,37 +8586,37 @@ "typeString": "uint256" } }, - "id": 33450, + "id": 33544, "nodeType": "ExpressionStatement", - "src": "3968:3:33" + "src": "3968:3:34" }, "nodeType": "ForStatement", - "src": "3933:116:33" + "src": "3933:116:34" }, { "expression": { - "id": 33464, + "id": 33558, "name": "messages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33433, - "src": "4066:8:33", + "referencedDeclaration": 33527, + "src": "4066:8:34", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39258_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_memory_ptr_$dyn_memory_ptr", "typeString": "struct CrossMsg memory[] memory" } }, - "functionReturnParameters": 33376, - "id": 33465, + "functionReturnParameters": 33470, + "id": 33559, "nodeType": "Return", - "src": "4059:15:33" + "src": "4059:15:34" } ] }, "documentation": { - "id": 33365, + "id": 33459, "nodeType": "StructuredDocumentation", - "src": "3076:248:33", + "src": "3076:248:34", "text": "@notice get the list of top down messages from nonce, we may also consider introducing pagination.\n @param subnetId - The subnet id to fetch messages from\n @param fromNonce - The starting nonce to get top down messages, inclusive." }, "functionSelector": "13549315", @@ -8624,43 +8624,43 @@ "kind": "function", "modifiers": [], "name": "getTopDownMsgs", - "nameLocation": "3338:14:33", + "nameLocation": "3338:14:34", "parameters": { - "id": 33371, + "id": 33465, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33368, + "id": 33462, "mutability": "mutable", "name": "subnetId", - "nameLocation": "3371:8:33", + "nameLocation": "3371:8:34", "nodeType": "VariableDeclaration", - "scope": 33467, - "src": "3353:26:33", + "scope": 33561, + "src": "3353:26:34", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39363_calldata_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_calldata_ptr", "typeString": "struct SubnetID" }, "typeName": { - "id": 33367, + "id": 33461, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33366, + "id": 33460, "name": "SubnetID", "nameLocations": [ - "3353:8:33" + "3353:8:34" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39363, - "src": "3353:8:33" + "referencedDeclaration": 39457, + "src": "3353:8:34" }, - "referencedDeclaration": 39363, - "src": "3353:8:33", + "referencedDeclaration": 39457, + "src": "3353:8:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39363_storage_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage_ptr", "typeString": "struct SubnetID" } }, @@ -8668,13 +8668,13 @@ }, { "constant": false, - "id": 33370, + "id": 33464, "mutability": "mutable", "name": "fromNonce", - "nameLocation": "3388:9:33", + "nameLocation": "3388:9:34", "nodeType": "VariableDeclaration", - "scope": 33467, - "src": "3381:16:33", + "scope": 33561, + "src": "3381:16:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8682,10 +8682,10 @@ "typeString": "uint64" }, "typeName": { - "id": 33369, + "id": 33463, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "3381:6:33", + "src": "3381:6:34", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -8694,92 +8694,92 @@ "visibility": "internal" } ], - "src": "3352:46:33" + "src": "3352:46:34" }, "returnParameters": { - "id": 33376, + "id": 33470, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33375, + "id": 33469, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 33467, - "src": "3422:17:33", + "scope": 33561, + "src": "3422:17:34", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39258_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_memory_ptr_$dyn_memory_ptr", "typeString": "struct CrossMsg[]" }, "typeName": { "baseType": { - "id": 33373, + "id": 33467, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33372, + "id": 33466, "name": "CrossMsg", "nameLocations": [ - "3422:8:33" + "3422:8:34" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39258, - "src": "3422:8:33" + "referencedDeclaration": 39352, + "src": "3422:8:34" }, - "referencedDeclaration": 39258, - "src": "3422:8:33", + "referencedDeclaration": 39352, + "src": "3422:8:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$39258_storage_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_storage_ptr", "typeString": "struct CrossMsg" } }, - "id": 33374, + "id": 33468, "nodeType": "ArrayTypeName", - "src": "3422:10:33", + "src": "3422:10:34", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39258_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_storage_$dyn_storage_ptr", "typeString": "struct CrossMsg[]" } }, "visibility": "internal" } ], - "src": "3421:19:33" + "src": "3421:19:34" }, - "scope": 33728, + "scope": 33822, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 33502, + "id": 33596, "nodeType": "FunctionDefinition", - "src": "4204:299:33", + "src": "4204:299:34", "nodes": [], "body": { - "id": 33501, + "id": 33595, "nodeType": "Block", - "src": "4301:202:33", + "src": "4301:202:34", "nodes": [], "statements": [ { "assignments": [ - 33479, - 33482 + 33573, + 33576 ], "declarations": [ { "constant": false, - "id": 33479, + "id": 33573, "mutability": "mutable", "name": "registered", - "nameLocation": "4317:10:33", + "nameLocation": "4317:10:34", "nodeType": "VariableDeclaration", - "scope": 33501, - "src": "4312:15:33", + "scope": 33595, + "src": "4312:15:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8787,10 +8787,10 @@ "typeString": "bool" }, "typeName": { - "id": 33478, + "id": 33572, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4312:4:33", + "src": "4312:4:34", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8800,54 +8800,54 @@ }, { "constant": false, - "id": 33482, + "id": 33576, "mutability": "mutable", "name": "subnet", - "nameLocation": "4344:6:33", + "nameLocation": "4344:6:34", "nodeType": "VariableDeclaration", - "scope": 33501, - "src": "4329:21:33", + "scope": 33595, + "src": "4329:21:34", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39387_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet" }, "typeName": { - "id": 33481, + "id": 33575, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33480, + "id": 33574, "name": "Subnet", "nameLocations": [ - "4329:6:33" + "4329:6:34" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39387, - "src": "4329:6:33" + "referencedDeclaration": 39481, + "src": "4329:6:34" }, - "referencedDeclaration": 39387, - "src": "4329:6:33", + "referencedDeclaration": 39481, + "src": "4329:6:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39387_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet" } }, "visibility": "internal" } ], - "id": 33487, + "id": 33581, "initialValue": { "arguments": [ { - "id": 33485, + "id": 33579, "name": "subnetId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33471, - "src": "4375:8:33", + "referencedDeclaration": 33565, + "src": "4375:8:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39363_calldata_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_calldata_ptr", "typeString": "struct SubnetID calldata" } } @@ -8855,38 +8855,38 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_SubnetID_$39363_calldata_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_calldata_ptr", "typeString": "struct SubnetID calldata" } ], "expression": { - "id": 33483, + "id": 33577, "name": "LibGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 37327, - "src": "4354:10:33", + "referencedDeclaration": 37421, + "src": "4354:10:34", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibGateway_$37327_$", + "typeIdentifier": "t_type$_t_contract$_LibGateway_$37421_$", "typeString": "type(library LibGateway)" } }, - "id": 33484, + "id": 33578, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4365:9:33", + "memberLocation": "4365:9:34", "memberName": "getSubnet", "nodeType": "MemberAccess", - "referencedDeclaration": 37326, - "src": "4354:20:33", + "referencedDeclaration": 37420, + "src": "4354:20:34", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_SubnetID_$39363_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$39387_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_SubnetID_$39457_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$39481_storage_ptr_$", "typeString": "function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)" } }, - "id": 33486, + "id": 33580, "isConstant": false, "isLValue": false, "isPure": false, @@ -8895,19 +8895,19 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4354:30:33", + "src": "4354:30:34", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$39387_storage_ptr_$", + "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$39481_storage_ptr_$", "typeString": "tuple(bool,struct Subnet storage pointer)" } }, "nodeType": "VariableDeclarationStatement", - "src": "4311:73:33" + "src": "4311:73:34" }, { "condition": { - "id": 33489, + "id": 33583, "isConstant": false, "isLValue": false, "isPure": false, @@ -8915,14 +8915,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4398:11:33", + "src": "4398:11:34", "subExpression": { - "id": 33488, + "id": 33582, "name": "registered", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33479, - "src": "4399:10:33", + "referencedDeclaration": 33573, + "src": "4399:10:34", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8933,27 +8933,27 @@ "typeString": "bool" } }, - "id": 33495, + "id": 33589, "nodeType": "IfStatement", - "src": "4394:59:33", + "src": "4394:59:34", "trueBody": { - "id": 33494, + "id": 33588, "nodeType": "Block", - "src": "4411:42:33", + "src": "4411:42:34", "statements": [ { "expression": { "components": [ { "hexValue": "66616c7365", - "id": 33490, + "id": 33584, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4433:5:33", + "src": "4433:5:34", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8962,14 +8962,14 @@ }, { "hexValue": "30", - "id": 33491, + "id": 33585, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4440:1:33", + "src": "4440:1:34", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -8977,23 +8977,23 @@ "value": "0" } ], - "id": 33492, + "id": 33586, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "4432:10:33", + "src": "4432:10:34", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", "typeString": "tuple(bool,int_const 0)" } }, - "functionReturnParameters": 33477, - "id": 33493, + "functionReturnParameters": 33571, + "id": 33587, "nodeType": "Return", - "src": "4425:17:33" + "src": "4425:17:34" } ] } @@ -9003,14 +9003,14 @@ "components": [ { "hexValue": "74727565", - "id": 33496, + "id": 33590, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4470:4:33", + "src": "4470:4:34", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9019,57 +9019,57 @@ }, { "expression": { - "id": 33497, + "id": 33591, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33482, - "src": "4476:6:33", + "referencedDeclaration": 33576, + "src": "4476:6:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39387_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet storage pointer" } }, - "id": 33498, + "id": 33592, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4483:12:33", + "memberLocation": "4483:12:34", "memberName": "topDownNonce", "nodeType": "MemberAccess", - "referencedDeclaration": 39368, - "src": "4476:19:33", + "referencedDeclaration": 39465, + "src": "4476:19:34", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } } ], - "id": 33499, + "id": 33593, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "4469:27:33", + "src": "4469:27:34", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_uint64_$", "typeString": "tuple(bool,uint64)" } }, - "functionReturnParameters": 33477, - "id": 33500, + "functionReturnParameters": 33571, + "id": 33594, "nodeType": "Return", - "src": "4462:34:33" + "src": "4462:34:34" } ] }, "documentation": { - "id": 33468, + "id": 33562, "nodeType": "StructuredDocumentation", - "src": "4087:112:33", + "src": "4087:112:34", "text": "@notice Get the latest applied top down nonce\n @param subnetId - The subnet id to fetch messages from" }, "functionSelector": "9e530b57", @@ -9077,64 +9077,64 @@ "kind": "function", "modifiers": [], "name": "getAppliedTopDownNonce", - "nameLocation": "4213:22:33", + "nameLocation": "4213:22:34", "parameters": { - "id": 33472, + "id": 33566, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33471, + "id": 33565, "mutability": "mutable", "name": "subnetId", - "nameLocation": "4254:8:33", + "nameLocation": "4254:8:34", "nodeType": "VariableDeclaration", - "scope": 33502, - "src": "4236:26:33", + "scope": 33596, + "src": "4236:26:34", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39363_calldata_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_calldata_ptr", "typeString": "struct SubnetID" }, "typeName": { - "id": 33470, + "id": 33564, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33469, + "id": 33563, "name": "SubnetID", "nameLocations": [ - "4236:8:33" + "4236:8:34" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39363, - "src": "4236:8:33" + "referencedDeclaration": 39457, + "src": "4236:8:34" }, - "referencedDeclaration": 39363, - "src": "4236:8:33", + "referencedDeclaration": 39457, + "src": "4236:8:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39363_storage_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage_ptr", "typeString": "struct SubnetID" } }, "visibility": "internal" } ], - "src": "4235:28:33" + "src": "4235:28:34" }, "returnParameters": { - "id": 33477, + "id": 33571, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33474, + "id": 33568, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 33502, - "src": "4287:4:33", + "scope": 33596, + "src": "4287:4:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9142,10 +9142,10 @@ "typeString": "bool" }, "typeName": { - "id": 33473, + "id": 33567, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4287:4:33", + "src": "4287:4:34", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9155,13 +9155,13 @@ }, { "constant": false, - "id": 33476, + "id": 33570, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 33502, - "src": "4293:6:33", + "scope": 33596, + "src": "4293:6:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9169,10 +9169,10 @@ "typeString": "uint64" }, "typeName": { - "id": 33475, + "id": 33569, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "4293:6:33", + "src": "4293:6:34", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -9181,57 +9181,57 @@ "visibility": "internal" } ], - "src": "4286:14:33" + "src": "4286:14:34" }, - "scope": 33728, + "scope": 33822, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 33511, + "id": 33605, "nodeType": "FunctionDefinition", - "src": "4509:90:33", + "src": "4509:90:34", "nodes": [], "body": { - "id": 33510, + "id": 33604, "nodeType": "Block", - "src": "4562:37:33", + "src": "4562:37:34", "nodes": [], "statements": [ { "expression": { "expression": { - "id": 33507, + "id": 33601, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33189, - "src": "4579:1:33", + "referencedDeclaration": 33283, + "src": "4579:1:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$37456_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 33508, + "id": 33602, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4581:11:33", + "memberLocation": "4581:11:34", "memberName": "totalWeight", "nodeType": "MemberAccess", - "referencedDeclaration": 37418, - "src": "4579:13:33", + "referencedDeclaration": 37531, + "src": "4579:13:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 33506, - "id": 33509, + "functionReturnParameters": 33600, + "id": 33603, "nodeType": "Return", - "src": "4572:20:33" + "src": "4572:20:34" } ] }, @@ -9240,26 +9240,26 @@ "kind": "function", "modifiers": [], "name": "totalWeight", - "nameLocation": "4518:11:33", + "nameLocation": "4518:11:34", "parameters": { - "id": 33503, + "id": 33597, "nodeType": "ParameterList", "parameters": [], - "src": "4529:2:33" + "src": "4529:2:34" }, "returnParameters": { - "id": 33506, + "id": 33600, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33505, + "id": 33599, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 33511, - "src": "4553:7:33", + "scope": 33605, + "src": "4553:7:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9267,10 +9267,10 @@ "typeString": "uint256" }, "typeName": { - "id": 33504, + "id": 33598, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4553:7:33", + "src": "4553:7:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9279,57 +9279,57 @@ "visibility": "internal" } ], - "src": "4552:9:33" + "src": "4552:9:34" }, - "scope": 33728, + "scope": 33822, "stateMutability": "view", "virtual": false, "visibility": "public" }, { - "id": 33520, + "id": 33614, "nodeType": "FunctionDefinition", - "src": "4605:105:33", + "src": "4605:105:34", "nodes": [], "body": { - "id": 33519, + "id": 33613, "nodeType": "Block", - "src": "4665:45:33", + "src": "4665:45:34", "nodes": [], "statements": [ { "expression": { "expression": { - "id": 33516, + "id": 33610, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33189, - "src": "4682:1:33", + "referencedDeclaration": 33283, + "src": "4682:1:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$37456_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 33517, + "id": 33611, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4684:19:33", + "memberLocation": "4684:19:34", "memberName": "appliedTopDownNonce", "nodeType": "MemberAccess", - "referencedDeclaration": 37412, - "src": "4682:21:33", + "referencedDeclaration": 37537, + "src": "4682:21:34", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "functionReturnParameters": 33515, - "id": 33518, + "functionReturnParameters": 33609, + "id": 33612, "nodeType": "Return", - "src": "4675:28:33" + "src": "4675:28:34" } ] }, @@ -9338,26 +9338,26 @@ "kind": "function", "modifiers": [], "name": "appliedTopDownNonce", - "nameLocation": "4614:19:33", + "nameLocation": "4614:19:34", "parameters": { - "id": 33512, + "id": 33606, "nodeType": "ParameterList", "parameters": [], - "src": "4633:2:33" + "src": "4633:2:34" }, "returnParameters": { - "id": 33515, + "id": 33609, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33514, + "id": 33608, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 33520, - "src": "4657:6:33", + "scope": 33614, + "src": "4657:6:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9365,10 +9365,10 @@ "typeString": "uint64" }, "typeName": { - "id": 33513, + "id": 33607, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "4657:6:33", + "src": "4657:6:34", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -9377,22 +9377,22 @@ "visibility": "internal" } ], - "src": "4656:8:33" + "src": "4656:8:34" }, - "scope": 33728, + "scope": 33822, "stateMutability": "view", "virtual": false, "visibility": "public" }, { - "id": 33543, + "id": 33637, "nodeType": "FunctionDefinition", - "src": "4716:166:33", + "src": "4716:166:34", "nodes": [], "body": { - "id": 33542, + "id": 33636, "nodeType": "Block", - "src": "4812:70:33", + "src": "4812:70:34", "nodes": [], "statements": [ { @@ -9402,40 +9402,40 @@ "expression": { "baseExpression": { "expression": { - "id": 33530, + "id": 33624, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33189, - "src": "4830:1:33", + "referencedDeclaration": 33283, + "src": "4830:1:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$37456_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 33531, + "id": 33625, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4832:7:33", + "memberLocation": "4832:7:34", "memberName": "postbox", "nodeType": "MemberAccess", - "referencedDeclaration": 37397, - "src": "4830:9:33", + "referencedDeclaration": 37474, + "src": "4830:9:34", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$39258_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$39352_storage_$", "typeString": "mapping(bytes32 => struct CrossMsg storage ref)" } }, - "id": 33533, + "id": 33627, "indexExpression": { - "id": 33532, + "id": 33626, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33522, - "src": "4840:2:33", + "referencedDeclaration": 33616, + "src": "4840:2:34", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9446,24 +9446,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4830:13:33", + "src": "4830:13:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$39258_storage", + "typeIdentifier": "t_struct$_CrossMsg_$39352_storage", "typeString": "struct CrossMsg storage ref" } }, - "id": 33534, + "id": 33628, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4844:7:33", + "memberLocation": "4844:7:34", "memberName": "message", "nodeType": "MemberAccess", - "referencedDeclaration": 39255, - "src": "4830:21:33", + "referencedDeclaration": 39349, + "src": "4830:21:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$39273_storage", + "typeIdentifier": "t_struct$_StorableMsg_$39367_storage", "typeString": "struct StorableMsg storage ref" } }, @@ -9471,40 +9471,40 @@ "expression": { "baseExpression": { "expression": { - "id": 33535, + "id": 33629, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33189, - "src": "4853:1:33", + "referencedDeclaration": 33283, + "src": "4853:1:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$37456_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 33536, + "id": 33630, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4855:7:33", + "memberLocation": "4855:7:34", "memberName": "postbox", "nodeType": "MemberAccess", - "referencedDeclaration": 37397, - "src": "4853:9:33", + "referencedDeclaration": 37474, + "src": "4853:9:34", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$39258_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$39352_storage_$", "typeString": "mapping(bytes32 => struct CrossMsg storage ref)" } }, - "id": 33538, + "id": 33632, "indexExpression": { - "id": 33537, + "id": 33631, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33522, - "src": "4863:2:33", + "referencedDeclaration": 33616, + "src": "4863:2:34", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9515,45 +9515,45 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4853:13:33", + "src": "4853:13:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$39258_storage", + "typeIdentifier": "t_struct$_CrossMsg_$39352_storage", "typeString": "struct CrossMsg storage ref" } }, - "id": 33539, + "id": 33633, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4867:7:33", + "memberLocation": "4867:7:34", "memberName": "wrapped", "nodeType": "MemberAccess", - "referencedDeclaration": 39257, - "src": "4853:21:33", + "referencedDeclaration": 39351, + "src": "4853:21:34", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 33540, + "id": 33634, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "4829:46:33", + "src": "4829:46:34", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_struct$_StorableMsg_$39273_storage_$_t_bool_$", + "typeIdentifier": "t_tuple$_t_struct$_StorableMsg_$39367_storage_$_t_bool_$", "typeString": "tuple(struct StorableMsg storage ref,bool)" } }, - "functionReturnParameters": 33529, - "id": 33541, + "functionReturnParameters": 33623, + "id": 33635, "nodeType": "Return", - "src": "4822:53:33" + "src": "4822:53:34" } ] }, @@ -9562,20 +9562,20 @@ "kind": "function", "modifiers": [], "name": "postbox", - "nameLocation": "4725:7:33", + "nameLocation": "4725:7:34", "parameters": { - "id": 33523, + "id": 33617, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33522, + "id": 33616, "mutability": "mutable", "name": "id", - "nameLocation": "4741:2:33", + "nameLocation": "4741:2:34", "nodeType": "VariableDeclaration", - "scope": 33543, - "src": "4733:10:33", + "scope": 33637, + "src": "4733:10:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9583,10 +9583,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 33521, + "id": 33615, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4733:7:33", + "src": "4733:7:34", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9595,44 +9595,44 @@ "visibility": "internal" } ], - "src": "4732:12:33" + "src": "4732:12:34" }, "returnParameters": { - "id": 33529, + "id": 33623, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33526, + "id": 33620, "mutability": "mutable", "name": "storableMsg", - "nameLocation": "4785:11:33", + "nameLocation": "4785:11:34", "nodeType": "VariableDeclaration", - "scope": 33543, - "src": "4766:30:33", + "scope": 33637, + "src": "4766:30:34", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$39273_memory_ptr", + "typeIdentifier": "t_struct$_StorableMsg_$39367_memory_ptr", "typeString": "struct StorableMsg" }, "typeName": { - "id": 33525, + "id": 33619, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33524, + "id": 33618, "name": "StorableMsg", "nameLocations": [ - "4766:11:33" + "4766:11:34" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39273, - "src": "4766:11:33" + "referencedDeclaration": 39367, + "src": "4766:11:34" }, - "referencedDeclaration": 39273, - "src": "4766:11:33", + "referencedDeclaration": 39367, + "src": "4766:11:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$39273_storage_ptr", + "typeIdentifier": "t_struct$_StorableMsg_$39367_storage_ptr", "typeString": "struct StorableMsg" } }, @@ -9640,13 +9640,13 @@ }, { "constant": false, - "id": 33528, + "id": 33622, "mutability": "mutable", "name": "wrapped", - "nameLocation": "4803:7:33", + "nameLocation": "4803:7:34", "nodeType": "VariableDeclaration", - "scope": 33543, - "src": "4798:12:33", + "scope": 33637, + "src": "4798:12:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9654,10 +9654,10 @@ "typeString": "bool" }, "typeName": { - "id": 33527, + "id": 33621, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4798:4:33", + "src": "4798:4:34", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9666,105 +9666,105 @@ "visibility": "internal" } ], - "src": "4765:46:33" + "src": "4765:46:34" }, - "scope": 33728, + "scope": 33822, "stateMutability": "view", "virtual": false, "visibility": "public" }, { - "id": 33572, + "id": 33666, "nodeType": "FunctionDefinition", - "src": "5070:285:33", + "src": "5070:285:34", "nodes": [], "body": { - "id": 33571, + "id": 33665, "nodeType": "Block", - "src": "5172:183:33", + "src": "5172:183:34", "nodes": [], "statements": [ { "assignments": [ - 33555 + 33649 ], "declarations": [ { "constant": false, - "id": 33555, + "id": 33649, "mutability": "mutable", "name": "voteSubmission", - "nameLocation": "5217:14:33", + "nameLocation": "5217:14:34", "nodeType": "VariableDeclaration", - "scope": 33571, - "src": "5182:49:33", + "scope": 33665, + "src": "5182:49:34", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39306_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39400_storage_ptr", "typeString": "struct EpochVoteTopDownSubmission" }, "typeName": { - "id": 33554, + "id": 33648, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33553, + "id": 33647, "name": "EpochVoteTopDownSubmission", "nameLocations": [ - "5182:26:33" + "5182:26:34" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39306, - "src": "5182:26:33" + "referencedDeclaration": 39400, + "src": "5182:26:34" }, - "referencedDeclaration": 39306, - "src": "5182:26:33", + "referencedDeclaration": 39400, + "src": "5182:26:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39306_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39400_storage_ptr", "typeString": "struct EpochVoteTopDownSubmission" } }, "visibility": "internal" } ], - "id": 33560, + "id": 33654, "initialValue": { "baseExpression": { "expression": { - "id": 33556, + "id": 33650, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33189, - "src": "5234:1:33", + "referencedDeclaration": 33283, + "src": "5234:1:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$37456_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 33557, + "id": 33651, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5236:20:33", + "memberLocation": "5236:20:34", "memberName": "epochVoteSubmissions", "nodeType": "MemberAccess", - "referencedDeclaration": 37455, - "src": "5234:22:33", + "referencedDeclaration": 37511, + "src": "5234:22:34", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_EpochVoteTopDownSubmission_$39306_storage_$", + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_EpochVoteTopDownSubmission_$39400_storage_$", "typeString": "mapping(uint64 => struct EpochVoteTopDownSubmission storage ref)" } }, - "id": 33559, + "id": 33653, "indexExpression": { - "id": 33558, + "id": 33652, "name": "epoch", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33546, - "src": "5257:5:33", + "referencedDeclaration": 33640, + "src": "5257:5:34", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -9775,14 +9775,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5234:29:33", + "src": "5234:29:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39306_storage", + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39400_storage", "typeString": "struct EpochVoteTopDownSubmission storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "5182:81:33" + "src": "5182:81:34" }, { "expression": { @@ -9790,87 +9790,87 @@ "baseExpression": { "expression": { "expression": { - "id": 33561, + "id": 33655, "name": "voteSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33555, - "src": "5280:14:33", + "referencedDeclaration": 33649, + "src": "5280:14:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39306_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39400_storage_ptr", "typeString": "struct EpochVoteTopDownSubmission storage pointer" } }, - "id": 33562, + "id": 33656, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5295:4:33", + "memberLocation": "5295:4:34", "memberName": "vote", "nodeType": "MemberAccess", - "referencedDeclaration": 39300, - "src": "5280:19:33", + "referencedDeclaration": 39394, + "src": "5280:19:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteSubmission_$39297_storage", + "typeIdentifier": "t_struct$_EpochVoteSubmission_$39391_storage", "typeString": "struct EpochVoteSubmission storage ref" } }, - "id": 33563, + "id": 33657, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5300:10:33", + "memberLocation": "5300:10:34", "memberName": "submitters", "nodeType": "MemberAccess", - "referencedDeclaration": 39290, - "src": "5280:30:33", + "referencedDeclaration": 39384, + "src": "5280:30:34", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(uint256 => mapping(address => bool))" } }, - "id": 33567, + "id": 33661, "indexExpression": { "expression": { "expression": { - "id": 33564, + "id": 33658, "name": "voteSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33555, - "src": "5311:14:33", + "referencedDeclaration": 33649, + "src": "5311:14:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39306_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39400_storage_ptr", "typeString": "struct EpochVoteTopDownSubmission storage pointer" } }, - "id": 33565, + "id": 33659, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5326:4:33", + "memberLocation": "5326:4:34", "memberName": "vote", "nodeType": "MemberAccess", - "referencedDeclaration": 39300, - "src": "5311:19:33", + "referencedDeclaration": 39394, + "src": "5311:19:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteSubmission_$39297_storage", + "typeIdentifier": "t_struct$_EpochVoteSubmission_$39391_storage", "typeString": "struct EpochVoteSubmission storage ref" } }, - "id": 33566, + "id": 33660, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5331:5:33", + "memberLocation": "5331:5:34", "memberName": "nonce", "nodeType": "MemberAccess", - "referencedDeclaration": 39280, - "src": "5311:25:33", + "referencedDeclaration": 39374, + "src": "5311:25:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9881,20 +9881,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5280:57:33", + "src": "5280:57:34", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 33569, + "id": 33663, "indexExpression": { - "id": 33568, + "id": 33662, "name": "submitter", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33548, - "src": "5338:9:33", + "referencedDeclaration": 33642, + "src": "5338:9:34", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9905,23 +9905,23 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5280:68:33", + "src": "5280:68:34", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 33552, - "id": 33570, + "functionReturnParameters": 33646, + "id": 33664, "nodeType": "Return", - "src": "5273:75:33" + "src": "5273:75:34" } ] }, "documentation": { - "id": 33544, + "id": 33638, "nodeType": "StructuredDocumentation", - "src": "4888:177:33", + "src": "4888:177:34", "text": "@notice whether a validator has voted for a checkpoint submission during an epoch\n @param epoch - the epoch to check\n @param submitter - the validator to check" }, "functionSelector": "66d7bbbc", @@ -9929,20 +9929,20 @@ "kind": "function", "modifiers": [], "name": "hasValidatorVotedForSubmission", - "nameLocation": "5079:30:33", + "nameLocation": "5079:30:34", "parameters": { - "id": 33549, + "id": 33643, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33546, + "id": 33640, "mutability": "mutable", "name": "epoch", - "nameLocation": "5117:5:33", + "nameLocation": "5117:5:34", "nodeType": "VariableDeclaration", - "scope": 33572, - "src": "5110:12:33", + "scope": 33666, + "src": "5110:12:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9950,10 +9950,10 @@ "typeString": "uint64" }, "typeName": { - "id": 33545, + "id": 33639, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "5110:6:33", + "src": "5110:6:34", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -9963,13 +9963,13 @@ }, { "constant": false, - "id": 33548, + "id": 33642, "mutability": "mutable", "name": "submitter", - "nameLocation": "5132:9:33", + "nameLocation": "5132:9:34", "nodeType": "VariableDeclaration", - "scope": 33572, - "src": "5124:17:33", + "scope": 33666, + "src": "5124:17:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9977,10 +9977,10 @@ "typeString": "address" }, "typeName": { - "id": 33547, + "id": 33641, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5124:7:33", + "src": "5124:7:34", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9990,21 +9990,21 @@ "visibility": "internal" } ], - "src": "5109:33:33" + "src": "5109:33:34" }, "returnParameters": { - "id": 33552, + "id": 33646, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33551, + "id": 33645, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 33572, - "src": "5166:4:33", + "scope": 33666, + "src": "5166:4:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10012,10 +10012,10 @@ "typeString": "bool" }, "typeName": { - "id": 33550, + "id": 33644, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5166:4:33", + "src": "5166:4:34", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10024,40 +10024,40 @@ "visibility": "internal" } ], - "src": "5165:6:33" + "src": "5165:6:34" }, - "scope": 33728, + "scope": 33822, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 33599, + "id": 33693, "nodeType": "FunctionDefinition", - "src": "5566:240:33", + "src": "5566:240:34", "nodes": [], "body": { - "id": 33598, + "id": 33692, "nodeType": "Block", - "src": "5701:105:33", + "src": "5701:105:34", "nodes": [], "statements": [ { "expression": { - "id": 33588, + "id": 33682, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 33583, + "id": 33677, "name": "checkpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33581, - "src": "5711:10:33", + "referencedDeclaration": 33675, + "src": "5711:10:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39238_memory_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_memory_ptr", "typeString": "struct BottomUpCheckpoint memory" } }, @@ -10066,40 +10066,40 @@ "rightHandSide": { "baseExpression": { "expression": { - "id": 33584, + "id": 33678, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33189, - "src": "5724:1:33", + "referencedDeclaration": 33283, + "src": "5724:1:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$37456_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 33585, + "id": 33679, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5726:19:33", + "memberLocation": "5726:19:34", "memberName": "bottomUpCheckpoints", "nodeType": "MemberAccess", - "referencedDeclaration": 37406, - "src": "5724:21:33", + "referencedDeclaration": 37480, + "src": "5724:21:34", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$39238_storage_$", + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$39332_storage_$", "typeString": "mapping(uint64 => struct BottomUpCheckpoint storage ref)" } }, - "id": 33587, + "id": 33681, "indexExpression": { - "id": 33586, + "id": 33680, "name": "epoch", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33575, - "src": "5746:5:33", + "referencedDeclaration": 33669, + "src": "5746:5:34", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -10110,36 +10110,36 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5724:28:33", + "src": "5724:28:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39238_storage", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage", "typeString": "struct BottomUpCheckpoint storage ref" } }, - "src": "5711:41:33", + "src": "5711:41:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39238_memory_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_memory_ptr", "typeString": "struct BottomUpCheckpoint memory" } }, - "id": 33589, + "id": 33683, "nodeType": "ExpressionStatement", - "src": "5711:41:33" + "src": "5711:41:34" }, { "expression": { - "id": 33596, + "id": 33690, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 33590, + "id": 33684, "name": "exists", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33578, - "src": "5762:6:33", + "referencedDeclaration": 33672, + "src": "5762:6:34", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10148,7 +10148,7 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 33595, + "id": 33689, "isConstant": false, "isLValue": false, "isPure": false, @@ -10156,55 +10156,55 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "5771:28:33", + "src": "5771:28:34", "subExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "expression": { - "id": 33591, + "id": 33685, "name": "checkpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33581, - "src": "5772:10:33", + "referencedDeclaration": 33675, + "src": "5772:10:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39238_memory_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_memory_ptr", "typeString": "struct BottomUpCheckpoint memory" } }, - "id": 33592, + "id": 33686, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5783:6:33", + "memberLocation": "5783:6:34", "memberName": "source", "nodeType": "MemberAccess", - "referencedDeclaration": 39221, - "src": "5772:17:33", + "referencedDeclaration": 39315, + "src": "5772:17:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$39363_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" } }, - "id": 33593, + "id": 33687, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5790:7:33", + "memberLocation": "5790:7:34", "memberName": "isEmpty", "nodeType": "MemberAccess", - "referencedDeclaration": 39212, - "src": "5772:25:33", + "referencedDeclaration": 39306, + "src": "5772:25:34", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39363_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$39363_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39457_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$39457_memory_ptr_$", "typeString": "function (struct SubnetID memory) pure returns (bool)" } }, - "id": 33594, + "id": 33688, "isConstant": false, "isLValue": false, "isPure": false, @@ -10213,7 +10213,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5772:27:33", + "src": "5772:27:34", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -10225,22 +10225,22 @@ "typeString": "bool" } }, - "src": "5762:37:33", + "src": "5762:37:34", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 33597, + "id": 33691, "nodeType": "ExpressionStatement", - "src": "5762:37:33" + "src": "5762:37:34" } ] }, "documentation": { - "id": 33573, + "id": 33667, "nodeType": "StructuredDocumentation", - "src": "5361:200:33", + "src": "5361:200:34", "text": "@notice returns the current bottom-up checkpoint\n @param epoch - the epoch to check\n @return exists - whether the checkpoint exists\n @return checkpoint - the checkpoint struct" }, "functionSelector": "6cb2ecee", @@ -10248,20 +10248,20 @@ "kind": "function", "modifiers": [], "name": "bottomUpCheckpointAtEpoch", - "nameLocation": "5575:25:33", + "nameLocation": "5575:25:34", "parameters": { - "id": 33576, + "id": 33670, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33575, + "id": 33669, "mutability": "mutable", "name": "epoch", - "nameLocation": "5617:5:33", + "nameLocation": "5617:5:34", "nodeType": "VariableDeclaration", - "scope": 33599, - "src": "5610:12:33", + "scope": 33693, + "src": "5610:12:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10269,10 +10269,10 @@ "typeString": "uint64" }, "typeName": { - "id": 33574, + "id": 33668, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "5610:6:33", + "src": "5610:6:34", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -10281,21 +10281,21 @@ "visibility": "internal" } ], - "src": "5600:28:33" + "src": "5600:28:34" }, "returnParameters": { - "id": 33582, + "id": 33676, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33578, + "id": 33672, "mutability": "mutable", "name": "exists", - "nameLocation": "5655:6:33", + "nameLocation": "5655:6:34", "nodeType": "VariableDeclaration", - "scope": 33599, - "src": "5650:11:33", + "scope": 33693, + "src": "5650:11:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10303,10 +10303,10 @@ "typeString": "bool" }, "typeName": { - "id": 33577, + "id": 33671, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5650:4:33", + "src": "5650:4:34", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10316,75 +10316,75 @@ }, { "constant": false, - "id": 33581, + "id": 33675, "mutability": "mutable", "name": "checkpoint", - "nameLocation": "5689:10:33", + "nameLocation": "5689:10:34", "nodeType": "VariableDeclaration", - "scope": 33599, - "src": "5663:36:33", + "scope": 33693, + "src": "5663:36:34", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39238_memory_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_memory_ptr", "typeString": "struct BottomUpCheckpoint" }, "typeName": { - "id": 33580, + "id": 33674, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33579, + "id": 33673, "name": "BottomUpCheckpoint", "nameLocations": [ - "5663:18:33" + "5663:18:34" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39238, - "src": "5663:18:33" + "referencedDeclaration": 39332, + "src": "5663:18:34" }, - "referencedDeclaration": 39238, - "src": "5663:18:33", + "referencedDeclaration": 39332, + "src": "5663:18:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39238_storage_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage_ptr", "typeString": "struct BottomUpCheckpoint" } }, "visibility": "internal" } ], - "src": "5649:51:33" + "src": "5649:51:34" }, - "scope": 33728, + "scope": 33822, "stateMutability": "view", "virtual": false, "visibility": "public" }, { - "id": 33625, + "id": 33719, "nodeType": "FunctionDefinition", - "src": "6024:240:33", + "src": "6024:240:34", "nodes": [], "body": { - "id": 33624, + "id": 33718, "nodeType": "Block", - "src": "6115:149:33", + "src": "6115:149:34", "nodes": [], "statements": [ { "assignments": [ - 33610, - 33613 + 33704, + 33707 ], "declarations": [ { "constant": false, - "id": 33610, + "id": 33704, "mutability": "mutable", "name": "exists", - "nameLocation": "6131:6:33", + "nameLocation": "6131:6:34", "nodeType": "VariableDeclaration", - "scope": 33624, - "src": "6126:11:33", + "scope": 33718, + "src": "6126:11:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10392,10 +10392,10 @@ "typeString": "bool" }, "typeName": { - "id": 33609, + "id": 33703, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6126:4:33", + "src": "6126:4:34", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10405,52 +10405,52 @@ }, { "constant": false, - "id": 33613, + "id": 33707, "mutability": "mutable", "name": "checkpoint", - "nameLocation": "6165:10:33", + "nameLocation": "6165:10:34", "nodeType": "VariableDeclaration", - "scope": 33624, - "src": "6139:36:33", + "scope": 33718, + "src": "6139:36:34", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39238_memory_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_memory_ptr", "typeString": "struct BottomUpCheckpoint" }, "typeName": { - "id": 33612, + "id": 33706, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33611, + "id": 33705, "name": "BottomUpCheckpoint", "nameLocations": [ - "6139:18:33" + "6139:18:34" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39238, - "src": "6139:18:33" + "referencedDeclaration": 39332, + "src": "6139:18:34" }, - "referencedDeclaration": 39238, - "src": "6139:18:33", + "referencedDeclaration": 39332, + "src": "6139:18:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39238_storage_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage_ptr", "typeString": "struct BottomUpCheckpoint" } }, "visibility": "internal" } ], - "id": 33617, + "id": 33711, "initialValue": { "arguments": [ { - "id": 33615, + "id": 33709, "name": "epoch", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33602, - "src": "6205:5:33", + "referencedDeclaration": 33696, + "src": "6205:5:34", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -10464,18 +10464,18 @@ "typeString": "uint64" } ], - "id": 33614, + "id": 33708, "name": "bottomUpCheckpointAtEpoch", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33599, - "src": "6179:25:33", + "referencedDeclaration": 33693, + "src": "6179:25:34", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint64_$returns$_t_bool_$_t_struct$_BottomUpCheckpoint_$39238_memory_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_uint64_$returns$_t_bool_$_t_struct$_BottomUpCheckpoint_$39332_memory_ptr_$", "typeString": "function (uint64) view returns (bool,struct BottomUpCheckpoint memory)" } }, - "id": 33616, + "id": 33710, "isConstant": false, "isLValue": false, "isPure": false, @@ -10484,26 +10484,26 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6179:32:33", + "src": "6179:32:34", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_BottomUpCheckpoint_$39238_memory_ptr_$", + "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_BottomUpCheckpoint_$39332_memory_ptr_$", "typeString": "tuple(bool,struct BottomUpCheckpoint memory)" } }, "nodeType": "VariableDeclarationStatement", - "src": "6125:86:33" + "src": "6125:86:34" }, { "expression": { "components": [ { - "id": 33618, + "id": 33712, "name": "exists", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33610, - "src": "6229:6:33", + "referencedDeclaration": 33704, + "src": "6229:6:34", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10514,33 +10514,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 33619, + "id": 33713, "name": "checkpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33613, - "src": "6237:10:33", + "referencedDeclaration": 33707, + "src": "6237:10:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39238_memory_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_memory_ptr", "typeString": "struct BottomUpCheckpoint memory" } }, - "id": 33620, + "id": 33714, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6248:6:33", + "memberLocation": "6248:6:34", "memberName": "toHash", "nodeType": "MemberAccess", - "referencedDeclaration": 35656, - "src": "6237:17:33", + "referencedDeclaration": 35750, + "src": "6237:17:34", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_BottomUpCheckpoint_$39238_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_BottomUpCheckpoint_$39238_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_BottomUpCheckpoint_$39332_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_BottomUpCheckpoint_$39332_memory_ptr_$", "typeString": "function (struct BottomUpCheckpoint memory) pure returns (bytes32)" } }, - "id": 33621, + "id": 33715, "isConstant": false, "isLValue": false, "isPure": false, @@ -10549,7 +10549,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6237:19:33", + "src": "6237:19:34", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -10557,30 +10557,30 @@ } } ], - "id": 33622, + "id": 33716, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "6228:29:33", + "src": "6228:29:34", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$", "typeString": "tuple(bool,bytes32)" } }, - "functionReturnParameters": 33608, - "id": 33623, + "functionReturnParameters": 33702, + "id": 33717, "nodeType": "Return", - "src": "6221:36:33" + "src": "6221:36:34" } ] }, "documentation": { - "id": 33600, + "id": 33694, "nodeType": "StructuredDocumentation", - "src": "5812:207:33", + "src": "5812:207:34", "text": "@notice returns the historical bottom-up checkpoint hash\n @param epoch - the epoch to check\n @return exists - whether the checkpoint exists\n @return hash - the hash of the checkpoint" }, "functionSelector": "133f74ea", @@ -10588,20 +10588,20 @@ "kind": "function", "modifiers": [], "name": "bottomUpCheckpointHashAtEpoch", - "nameLocation": "6033:29:33", + "nameLocation": "6033:29:34", "parameters": { - "id": 33603, + "id": 33697, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33602, + "id": 33696, "mutability": "mutable", "name": "epoch", - "nameLocation": "6070:5:33", + "nameLocation": "6070:5:34", "nodeType": "VariableDeclaration", - "scope": 33625, - "src": "6063:12:33", + "scope": 33719, + "src": "6063:12:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10609,10 +10609,10 @@ "typeString": "uint64" }, "typeName": { - "id": 33601, + "id": 33695, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "6063:6:33", + "src": "6063:6:34", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -10621,21 +10621,21 @@ "visibility": "internal" } ], - "src": "6062:14:33" + "src": "6062:14:34" }, "returnParameters": { - "id": 33608, + "id": 33702, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33605, + "id": 33699, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 33625, - "src": "6100:4:33", + "scope": 33719, + "src": "6100:4:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10643,10 +10643,10 @@ "typeString": "bool" }, "typeName": { - "id": 33604, + "id": 33698, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6100:4:33", + "src": "6100:4:34", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10656,13 +10656,13 @@ }, { "constant": false, - "id": 33607, + "id": 33701, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 33625, - "src": "6106:7:33", + "scope": 33719, + "src": "6106:7:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10670,10 +10670,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 33606, + "id": 33700, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6106:7:33", + "src": "6106:7:34", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10682,22 +10682,22 @@ "visibility": "internal" } ], - "src": "6099:15:33" + "src": "6099:15:34" }, - "scope": 33728, + "scope": 33822, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 33635, + "id": 33729, "nodeType": "FunctionDefinition", - "src": "6270:158:33", + "src": "6270:158:34", "nodes": [], "body": { - "id": 33634, + "id": 33728, "nodeType": "Block", - "src": "6326:102:33", + "src": "6326:102:34", "nodes": [], "statements": [ { @@ -10706,33 +10706,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 33630, + "id": 33724, "name": "LibVoting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38520, - "src": "6394:9:33", + "referencedDeclaration": 38614, + "src": "6394:9:34", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibVoting_$38520_$", + "typeIdentifier": "t_type$_t_contract$_LibVoting_$38614_$", "typeString": "type(library LibVoting)" } }, - "id": 33631, + "id": 33725, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6404:15:33", + "memberLocation": "6404:15:34", "memberName": "getGenesisEpoch", "nodeType": "MemberAccess", - "referencedDeclaration": 38119, - "src": "6394:25:33", + "referencedDeclaration": 38213, + "src": "6394:25:34", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint64_$", "typeString": "function () view returns (uint64)" } }, - "id": 33632, + "id": 33726, "isConstant": false, "isLValue": false, "isPure": false, @@ -10741,17 +10741,17 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6394:27:33", + "src": "6394:27:34", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "functionReturnParameters": 33629, - "id": 33633, + "functionReturnParameters": 33723, + "id": 33727, "nodeType": "Return", - "src": "6387:34:33" + "src": "6387:34:34" } ] }, @@ -10760,26 +10760,26 @@ "kind": "function", "modifiers": [], "name": "getGenesisEpoch", - "nameLocation": "6279:15:33", + "nameLocation": "6279:15:34", "parameters": { - "id": 33626, + "id": 33720, "nodeType": "ParameterList", "parameters": [], - "src": "6294:2:33" + "src": "6294:2:34" }, "returnParameters": { - "id": 33629, + "id": 33723, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33628, + "id": 33722, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 33635, - "src": "6318:6:33", + "scope": 33729, + "src": "6318:6:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10787,10 +10787,10 @@ "typeString": "uint64" }, "typeName": { - "id": 33627, + "id": 33721, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "6318:6:33", + "src": "6318:6:34", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -10799,22 +10799,22 @@ "visibility": "internal" } ], - "src": "6317:8:33" + "src": "6317:8:34" }, - "scope": 33728, + "scope": 33822, "stateMutability": "view", "virtual": false, "visibility": "public" }, { - "id": 33649, + "id": 33743, "nodeType": "FunctionDefinition", - "src": "6434:174:33", + "src": "6434:174:34", "nodes": [], "body": { - "id": 33648, + "id": 33742, "nodeType": "Block", - "src": "6506:102:33", + "src": "6506:102:34", "nodes": [], "statements": [ { @@ -10823,33 +10823,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 33644, + "id": 33738, "name": "LibVoting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38520, - "src": "6574:9:33", + "referencedDeclaration": 38614, + "src": "6574:9:34", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibVoting_$38520_$", + "typeIdentifier": "t_type$_t_contract$_LibVoting_$38614_$", "typeString": "type(library LibVoting)" } }, - "id": 33645, + "id": 33739, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6584:15:33", + "memberLocation": "6584:15:34", "memberName": "executableQueue", "nodeType": "MemberAccess", - "referencedDeclaration": 38469, - "src": "6574:25:33", + "referencedDeclaration": 38563, + "src": "6574:25:34", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint64_$_t_uint64_$_t_uint64_$", "typeString": "function () view returns (uint64,uint64,uint64)" } }, - "id": 33646, + "id": 33740, "isConstant": false, "isLValue": false, "isPure": false, @@ -10858,17 +10858,17 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6574:27:33", + "src": "6574:27:34", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint64_$_t_uint64_$_t_uint64_$", "typeString": "tuple(uint64,uint64,uint64)" } }, - "functionReturnParameters": 33643, - "id": 33647, + "functionReturnParameters": 33737, + "id": 33741, "nodeType": "Return", - "src": "6567:34:33" + "src": "6567:34:34" } ] }, @@ -10877,26 +10877,26 @@ "kind": "function", "modifiers": [], "name": "executableQueue", - "nameLocation": "6443:15:33", + "nameLocation": "6443:15:34", "parameters": { - "id": 33636, + "id": 33730, "nodeType": "ParameterList", "parameters": [], - "src": "6458:2:33" + "src": "6458:2:34" }, "returnParameters": { - "id": 33643, + "id": 33737, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33638, + "id": 33732, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 33649, - "src": "6482:6:33", + "scope": 33743, + "src": "6482:6:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10904,10 +10904,10 @@ "typeString": "uint64" }, "typeName": { - "id": 33637, + "id": 33731, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "6482:6:33", + "src": "6482:6:34", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -10917,13 +10917,13 @@ }, { "constant": false, - "id": 33640, + "id": 33734, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 33649, - "src": "6490:6:33", + "scope": 33743, + "src": "6490:6:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10931,10 +10931,10 @@ "typeString": "uint64" }, "typeName": { - "id": 33639, + "id": 33733, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "6490:6:33", + "src": "6490:6:34", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -10944,13 +10944,13 @@ }, { "constant": false, - "id": 33642, + "id": 33736, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 33649, - "src": "6498:6:33", + "scope": 33743, + "src": "6498:6:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10958,10 +10958,10 @@ "typeString": "uint64" }, "typeName": { - "id": 33641, + "id": 33735, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "6498:6:33", + "src": "6498:6:34", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -10970,22 +10970,22 @@ "visibility": "internal" } ], - "src": "6481:24:33" + "src": "6481:24:34" }, - "scope": 33728, + "scope": 33822, "stateMutability": "view", "virtual": false, "visibility": "public" }, { - "id": 33659, + "id": 33753, "nodeType": "FunctionDefinition", - "src": "6614:123:33", + "src": "6614:123:34", "nodes": [], "body": { - "id": 33658, + "id": 33752, "nodeType": "Block", - "src": "6678:59:33", + "src": "6678:59:34", "nodes": [], "statements": [ { @@ -10994,33 +10994,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 33654, + "id": 33748, "name": "LibVoting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38520, - "src": "6695:9:33", + "referencedDeclaration": 38614, + "src": "6695:9:34", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibVoting_$38520_$", + "typeIdentifier": "t_type$_t_contract$_LibVoting_$38614_$", "typeString": "type(library LibVoting)" } }, - "id": 33655, + "id": 33749, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6705:23:33", + "memberLocation": "6705:23:34", "memberName": "lastVotingExecutedEpoch", "nodeType": "MemberAccess", - "referencedDeclaration": 38484, - "src": "6695:33:33", + "referencedDeclaration": 38578, + "src": "6695:33:34", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint64_$", "typeString": "function () view returns (uint64)" } }, - "id": 33656, + "id": 33750, "isConstant": false, "isLValue": false, "isPure": false, @@ -11029,17 +11029,17 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6695:35:33", + "src": "6695:35:34", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "functionReturnParameters": 33653, - "id": 33657, + "functionReturnParameters": 33747, + "id": 33751, "nodeType": "Return", - "src": "6688:42:33" + "src": "6688:42:34" } ] }, @@ -11048,26 +11048,26 @@ "kind": "function", "modifiers": [], "name": "lastVotingExecutedEpoch", - "nameLocation": "6623:23:33", + "nameLocation": "6623:23:34", "parameters": { - "id": 33650, + "id": 33744, "nodeType": "ParameterList", "parameters": [], - "src": "6646:2:33" + "src": "6646:2:34" }, "returnParameters": { - "id": 33653, + "id": 33747, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33652, + "id": 33746, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 33659, - "src": "6670:6:33", + "scope": 33753, + "src": "6670:6:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11075,10 +11075,10 @@ "typeString": "uint64" }, "typeName": { - "id": 33651, + "id": 33745, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "6670:6:33", + "src": "6670:6:34", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -11087,22 +11087,22 @@ "visibility": "internal" } ], - "src": "6669:8:33" + "src": "6669:8:34" }, - "scope": 33728, + "scope": 33822, "stateMutability": "view", "virtual": false, "visibility": "public" }, { - "id": 33669, + "id": 33763, "nodeType": "FunctionDefinition", - "src": "6743:113:33", + "src": "6743:113:34", "nodes": [], "body": { - "id": 33668, + "id": 33762, "nodeType": "Block", - "src": "6802:54:33", + "src": "6802:54:34", "nodes": [], "statements": [ { @@ -11111,33 +11111,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 33664, + "id": 33758, "name": "LibVoting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38520, - "src": "6819:9:33", + "referencedDeclaration": 38614, + "src": "6819:9:34", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibVoting_$38520_$", + "typeIdentifier": "t_type$_t_contract$_LibVoting_$38614_$", "typeString": "type(library LibVoting)" } }, - "id": 33665, + "id": 33759, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6829:18:33", + "memberLocation": "6829:18:34", "memberName": "majorityPercentage", "nodeType": "MemberAccess", - "referencedDeclaration": 38499, - "src": "6819:28:33", + "referencedDeclaration": 38593, + "src": "6819:28:34", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint64_$", "typeString": "function () view returns (uint64)" } }, - "id": 33666, + "id": 33760, "isConstant": false, "isLValue": false, "isPure": false, @@ -11146,17 +11146,17 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6819:30:33", + "src": "6819:30:34", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "functionReturnParameters": 33663, - "id": 33667, + "functionReturnParameters": 33757, + "id": 33761, "nodeType": "Return", - "src": "6812:37:33" + "src": "6812:37:34" } ] }, @@ -11165,26 +11165,26 @@ "kind": "function", "modifiers": [], "name": "majorityPercentage", - "nameLocation": "6752:18:33", + "nameLocation": "6752:18:34", "parameters": { - "id": 33660, + "id": 33754, "nodeType": "ParameterList", "parameters": [], - "src": "6770:2:33" + "src": "6770:2:34" }, "returnParameters": { - "id": 33663, + "id": 33757, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33662, + "id": 33756, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 33669, - "src": "6794:6:33", + "scope": 33763, + "src": "6794:6:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11192,10 +11192,10 @@ "typeString": "uint64" }, "typeName": { - "id": 33661, + "id": 33755, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "6794:6:33", + "src": "6794:6:34", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -11204,38 +11204,38 @@ "visibility": "internal" } ], - "src": "6793:8:33" + "src": "6793:8:34" }, - "scope": 33728, + "scope": 33822, "stateMutability": "view", "virtual": false, "visibility": "public" }, { - "id": 33727, + "id": 33821, "nodeType": "FunctionDefinition", - "src": "6969:375:33", + "src": "6969:375:34", "nodes": [], "body": { - "id": 33726, + "id": 33820, "nodeType": "Block", - "src": "7032:312:33", + "src": "7032:312:34", "nodes": [], "statements": [ { "assignments": [ - 33678 + 33772 ], "declarations": [ { "constant": false, - "id": 33678, + "id": 33772, "mutability": "mutable", "name": "size", - "nameLocation": "7050:4:33", + "nameLocation": "7050:4:34", "nodeType": "VariableDeclaration", - "scope": 33726, - "src": "7042:12:33", + "scope": 33820, + "src": "7042:12:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11243,10 +11243,10 @@ "typeString": "uint256" }, "typeName": { - "id": 33677, + "id": 33771, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7042:7:33", + "src": "7042:7:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11255,115 +11255,115 @@ "visibility": "internal" } ], - "id": 33682, + "id": 33776, "initialValue": { "expression": { "expression": { - "id": 33679, + "id": 33773, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33189, - "src": "7057:1:33", + "referencedDeclaration": 33283, + "src": "7057:1:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$37456_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 33680, + "id": 33774, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7059:10:33", + "memberLocation": "7059:10:34", "memberName": "subnetKeys", "nodeType": "MemberAccess", - "referencedDeclaration": 37388, - "src": "7057:12:33", + "referencedDeclaration": 37515, + "src": "7057:12:34", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 33681, + "id": 33775, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7070:6:33", + "memberLocation": "7070:6:34", "memberName": "length", "nodeType": "MemberAccess", - "src": "7057:19:33", + "src": "7057:19:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "7042:34:33" + "src": "7042:34:34" }, { "assignments": [ - 33687 + 33781 ], "declarations": [ { "constant": false, - "id": 33687, + "id": 33781, "mutability": "mutable", "name": "out", - "nameLocation": "7102:3:33", + "nameLocation": "7102:3:34", "nodeType": "VariableDeclaration", - "scope": 33726, - "src": "7086:19:33", + "scope": 33820, + "src": "7086:19:34", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Subnet_$39387_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Subnet_$39481_memory_ptr_$dyn_memory_ptr", "typeString": "struct Subnet[]" }, "typeName": { "baseType": { - "id": 33685, + "id": 33779, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33684, + "id": 33778, "name": "Subnet", "nameLocations": [ - "7086:6:33" + "7086:6:34" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39387, - "src": "7086:6:33" + "referencedDeclaration": 39481, + "src": "7086:6:34" }, - "referencedDeclaration": 39387, - "src": "7086:6:33", + "referencedDeclaration": 39481, + "src": "7086:6:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39387_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet" } }, - "id": 33686, + "id": 33780, "nodeType": "ArrayTypeName", - "src": "7086:8:33", + "src": "7086:8:34", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Subnet_$39387_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Subnet_$39481_storage_$dyn_storage_ptr", "typeString": "struct Subnet[]" } }, "visibility": "internal" } ], - "id": 33694, + "id": 33788, "initialValue": { "arguments": [ { - "id": 33692, + "id": 33786, "name": "size", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33678, - "src": "7121:4:33", + "referencedDeclaration": 33772, + "src": "7121:4:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11377,48 +11377,48 @@ "typeString": "uint256" } ], - "id": 33691, + "id": 33785, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "7108:12:33", + "src": "7108:12:34", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Subnet_$39387_memory_ptr_$dyn_memory_ptr_$", + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Subnet_$39481_memory_ptr_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (struct Subnet memory[] memory)" }, "typeName": { "baseType": { - "id": 33689, + "id": 33783, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33688, + "id": 33782, "name": "Subnet", "nameLocations": [ - "7112:6:33" + "7112:6:34" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39387, - "src": "7112:6:33" + "referencedDeclaration": 39481, + "src": "7112:6:34" }, - "referencedDeclaration": 39387, - "src": "7112:6:33", + "referencedDeclaration": 39481, + "src": "7112:6:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39387_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet" } }, - "id": 33690, + "id": 33784, "nodeType": "ArrayTypeName", - "src": "7112:8:33", + "src": "7112:8:34", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Subnet_$39387_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Subnet_$39481_storage_$dyn_storage_ptr", "typeString": "struct Subnet[]" } } }, - "id": 33693, + "id": 33787, "isConstant": false, "isLValue": false, "isPure": false, @@ -11427,36 +11427,36 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7108:18:33", + "src": "7108:18:34", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Subnet_$39387_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Subnet_$39481_memory_ptr_$dyn_memory_ptr", "typeString": "struct Subnet memory[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "7086:40:33" + "src": "7086:40:34" }, { "body": { - "id": 33722, + "id": 33816, "nodeType": "Block", - "src": "7168:150:33", + "src": "7168:150:34", "statements": [ { "assignments": [ - 33703 + 33797 ], "declarations": [ { "constant": false, - "id": 33703, + "id": 33797, "mutability": "mutable", "name": "key", - "nameLocation": "7190:3:33", + "nameLocation": "7190:3:34", "nodeType": "VariableDeclaration", - "scope": 33722, - "src": "7182:11:33", + "scope": 33816, + "src": "7182:11:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11464,10 +11464,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 33702, + "id": 33796, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7182:7:33", + "src": "7182:7:34", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -11476,44 +11476,44 @@ "visibility": "internal" } ], - "id": 33708, + "id": 33802, "initialValue": { "baseExpression": { "expression": { - "id": 33704, + "id": 33798, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33189, - "src": "7196:1:33", + "referencedDeclaration": 33283, + "src": "7196:1:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$37456_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 33705, + "id": 33799, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7198:10:33", + "memberLocation": "7198:10:34", "memberName": "subnetKeys", "nodeType": "MemberAccess", - "referencedDeclaration": 37388, - "src": "7196:12:33", + "referencedDeclaration": 37515, + "src": "7196:12:34", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 33707, + "id": 33801, "indexExpression": { - "id": 33706, + "id": 33800, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33696, - "src": "7209:1:33", + "referencedDeclaration": 33790, + "src": "7209:1:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11524,43 +11524,43 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7196:15:33", + "src": "7196:15:34", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "7182:29:33" + "src": "7182:29:34" }, { "expression": { - "id": 33716, + "id": 33810, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 33709, + "id": 33803, "name": "out", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33687, - "src": "7225:3:33", + "referencedDeclaration": 33781, + "src": "7225:3:34", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Subnet_$39387_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Subnet_$39481_memory_ptr_$dyn_memory_ptr", "typeString": "struct Subnet memory[] memory" } }, - "id": 33711, + "id": 33805, "indexExpression": { - "id": 33710, + "id": 33804, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33696, - "src": "7229:1:33", + "referencedDeclaration": 33790, + "src": "7229:1:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11571,9 +11571,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7225:6:33", + "src": "7225:6:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39387_memory_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_memory_ptr", "typeString": "struct Subnet memory" } }, @@ -11582,40 +11582,40 @@ "rightHandSide": { "baseExpression": { "expression": { - "id": 33712, + "id": 33806, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33189, - "src": "7234:1:33", + "referencedDeclaration": 33283, + "src": "7234:1:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$37456_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 33713, + "id": 33807, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7236:7:33", + "memberLocation": "7236:7:34", "memberName": "subnets", "nodeType": "MemberAccess", - "referencedDeclaration": 37384, - "src": "7234:9:33", + "referencedDeclaration": 37468, + "src": "7234:9:34", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Subnet_$39387_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Subnet_$39481_storage_$", "typeString": "mapping(bytes32 => struct Subnet storage ref)" } }, - "id": 33715, + "id": 33809, "indexExpression": { - "id": 33714, + "id": 33808, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33703, - "src": "7244:3:33", + "referencedDeclaration": 33797, + "src": "7244:3:34", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -11626,30 +11626,30 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7234:14:33", + "src": "7234:14:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39387_storage", + "typeIdentifier": "t_struct$_Subnet_$39481_storage", "typeString": "struct Subnet storage ref" } }, - "src": "7225:23:33", + "src": "7225:23:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39387_memory_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_memory_ptr", "typeString": "struct Subnet memory" } }, - "id": 33717, + "id": 33811, "nodeType": "ExpressionStatement", - "src": "7225:23:33" + "src": "7225:23:34" }, { - "id": 33721, + "id": 33815, "nodeType": "UncheckedBlock", - "src": "7262:46:33", + "src": "7262:46:34", "statements": [ { "expression": { - "id": 33719, + "id": 33813, "isConstant": false, "isLValue": false, "isPure": false, @@ -11657,14 +11657,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": true, - "src": "7290:3:33", + "src": "7290:3:34", "subExpression": { - "id": 33718, + "id": 33812, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33696, - "src": "7292:1:33", + "referencedDeclaration": 33790, + "src": "7292:1:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11675,9 +11675,9 @@ "typeString": "uint256" } }, - "id": 33720, + "id": 33814, "nodeType": "ExpressionStatement", - "src": "7290:3:33" + "src": "7290:3:34" } ] } @@ -11688,18 +11688,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 33701, + "id": 33795, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 33699, + "id": 33793, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33696, - "src": "7156:1:33", + "referencedDeclaration": 33790, + "src": "7156:1:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11708,38 +11708,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 33700, + "id": 33794, "name": "size", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33678, - "src": "7160:4:33", + "referencedDeclaration": 33772, + "src": "7160:4:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7156:8:33", + "src": "7156:8:34", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 33723, + "id": 33817, "initializationExpression": { "assignments": [ - 33696 + 33790 ], "declarations": [ { "constant": false, - "id": 33696, + "id": 33790, "mutability": "mutable", "name": "i", - "nameLocation": "7149:1:33", + "nameLocation": "7149:1:34", "nodeType": "VariableDeclaration", - "scope": 33723, - "src": "7141:9:33", + "scope": 33817, + "src": "7141:9:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11747,10 +11747,10 @@ "typeString": "uint256" }, "typeName": { - "id": 33695, + "id": 33789, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7141:7:33", + "src": "7141:7:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11759,17 +11759,17 @@ "visibility": "internal" } ], - "id": 33698, + "id": 33792, "initialValue": { "hexValue": "30", - "id": 33697, + "id": 33791, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7153:1:33", + "src": "7153:1:34", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -11777,35 +11777,35 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "7141:13:33" + "src": "7141:13:34" }, "nodeType": "ForStatement", - "src": "7136:182:33" + "src": "7136:182:34" }, { "expression": { - "id": 33724, + "id": 33818, "name": "out", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33687, - "src": "7334:3:33", + "referencedDeclaration": 33781, + "src": "7334:3:34", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Subnet_$39387_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Subnet_$39481_memory_ptr_$dyn_memory_ptr", "typeString": "struct Subnet memory[] memory" } }, - "functionReturnParameters": 33676, - "id": 33725, + "functionReturnParameters": 33770, + "id": 33819, "nodeType": "Return", - "src": "7327:10:33" + "src": "7327:10:34" } ] }, "documentation": { - "id": 33670, + "id": 33764, "nodeType": "StructuredDocumentation", - "src": "6862:102:33", + "src": "6862:102:34", "text": "@notice returns the list of registered subnets in IPC\n @return subnet - the list of subnets" }, "functionSelector": "5d029685", @@ -11813,67 +11813,67 @@ "kind": "function", "modifiers": [], "name": "listSubnets", - "nameLocation": "6978:11:33", + "nameLocation": "6978:11:34", "parameters": { - "id": 33671, + "id": 33765, "nodeType": "ParameterList", "parameters": [], - "src": "6989:2:33" + "src": "6989:2:34" }, "returnParameters": { - "id": 33676, + "id": 33770, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 33675, + "id": 33769, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 33727, - "src": "7015:15:33", + "scope": 33821, + "src": "7015:15:34", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Subnet_$39387_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_Subnet_$39481_memory_ptr_$dyn_memory_ptr", "typeString": "struct Subnet[]" }, "typeName": { "baseType": { - "id": 33673, + "id": 33767, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 33672, + "id": 33766, "name": "Subnet", "nameLocations": [ - "7015:6:33" + "7015:6:34" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 39387, - "src": "7015:6:33" + "referencedDeclaration": 39481, + "src": "7015:6:34" }, - "referencedDeclaration": 39387, - "src": "7015:6:33", + "referencedDeclaration": 39481, + "src": "7015:6:34", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$39387_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet" } }, - "id": 33674, + "id": 33768, "nodeType": "ArrayTypeName", - "src": "7015:8:33", + "src": "7015:8:34", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Subnet_$39387_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Subnet_$39481_storage_$dyn_storage_ptr", "typeString": "struct Subnet[]" } }, "visibility": "internal" } ], - "src": "7014:17:33" + "src": "7014:17:34" }, - "scope": 33728, + "scope": 33822, "stateMutability": "view", "virtual": false, "visibility": "external" @@ -11886,15 +11886,15 @@ "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ - 33728 + 33822 ], "name": "GatewayGetterFacet", - "nameLocation": "700:18:33", - "scope": 33729, + "nameLocation": "700:18:34", + "scope": 33823, "usedErrors": [] } ], "license": "UNLICENSED" }, - "id": 33 + "id": 34 } \ No newline at end of file diff --git a/contracts/GatewayManagerFacet.json b/contracts/GatewayManagerFacet.json index 132aaa61..94df0647 100644 --- a/contracts/GatewayManagerFacet.json +++ b/contracts/GatewayManagerFacet.json @@ -254,17 +254,17 @@ } ], "bytecode": { - "object": "0x608060405234801561001057600080fd5b506128de806100206000396000f3fe6080604052600436106100865760003560e01c806345f544851161005957806345f54485146100dd5780635a627dbc146100fd5780636b2c1eef14610105578063f75bc55714610118578063f8703bb81461013857600080fd5b806313f353881461008b57806318f44b70146100ad5780631aa3a008146100c057806341c0e1b5146100c8575b600080fd5b34801561009757600080fd5b506100ab6100a6366004611c32565b610158565b005b6100ab6100bb366004611c6e565b6101dc565b6100ab61031b565b3480156100d457600080fd5b506100ab61050d565b3480156100e957600080fd5b506100ab6100f8366004611cd1565b61078f565b6100ab61098f565b6100ab610113366004611cea565b610a32565b34801561012457600080fd5b506100ab610133366004611e5a565b610ae4565b34801561014457600080fd5b506100ab610153366004611cd1565b610bf0565b610160610c88565b60105460ff16156101835760405162dc149f60e41b815260040160405180910390fd5b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27080546fffffffffffffffff00000000000000001916600160401b6001600160401b03841602179055506010805460ff19166001179055565b6101e4610d1a565b6101ec610daa565b600073__$33b79814e84bf6cf5e47244090b19ce5f8$__6399aa0eb48433856000600a01543461021c9190611f2a565b6040518563ffffffff1660e01b815260040161023b9493929190611fd5565b600060405180830381865af4158015610258573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261028091908101906122e0565b905061028b81610dcd565b610316610297846123fd565b604051632cff562160e11b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__916359feac42916102cd91906004016124b3565b602060405180830381865af41580156102ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030e91906124c6565b600a546110a0565b505050565b60035434101561033e57604051631036b5ad60e31b815260040160405180910390fd5b604080518082018252600080546001600160401b031682526001805484516020828102820181019096528181529294859381860193909290918301828280156103b057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610392575b50505091909252505060405163aa5106cb60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263aa5106cb92506103f19133906004016124e3565b600060405180830381865af415801561040e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610436919081019061250d565b9050600080610444836110fe565b91509150811561046757604051631b538cdf60e11b815260040160405180910390fd5b825160048201805467ffffffffffffffff19166001600160401b0390921691909117815560208085015180518693926104a79260058701929101906119f6565b505034600183810191909155825460ff191681178355436002808501919091558054919250906000906104e49084906001600160401b0316612557565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550505050565b60008061051933611291565b915091508161053b57604051630e991abd60e41b815260040160405180910390fd5b60038101541561055e57604051637c67c70160e11b815260040160405180910390fd5b600180820154600280549192916000906105829084906001600160401b031661257e565b82546101009290920a6001600160401b03818102199093169183160217909155604080518082018252600486810180549094168252600587018054845160208083028201810190965281815292965060009593948086019392919083018282801561061657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116105f8575b5050509190925250506040516390ba52cf60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__926390ba52cf9250610655916004016124b3565b602060405180830381865af4158015610672573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610696919061259e565b815260208101919091526040016000908120805470ffffffffffffffffffffffffffffffffff1916815560018101829055600281018290556003810182905560048101805467ffffffffffffffff19168155909190816106f96005850182611a5b565b505060068201805467ffffffffffffffff191681556000818161071f6007870182611a5b565b505060028201805467ffffffffffffffff1916905560006003830181905561074b906004840190611a7c565b610759600583016000611a9d565b60068201600090556007820160006107719190611abe565b506107829050600e83016000611a7c565b50610316905033826113c9565b7f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600958054600019016107d3576040516329f745a760e01b815260040160405180910390fd5b6001815560008290036107f95760405163c79cad7b60e01b815260040160405180910390fd5b60008061080533611291565b915091508161082757604051630e991abd60e41b815260040160405180910390fd5b838160010154101561084c576040516379b33e7960e01b815260040160405180910390fd5b838160010160008282546108609190611f2a565b90915550506003546001820154101561087f57805460ff191660021781555b6040805180820182526004830180546001600160401b031682526005840180548451602082810282018101909652818152610986958a9594938186019390918301828280156108f757602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116108d9575b505050919092525050604051632cff562160e11b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__926359feac429250610936916004016124b3565b602060405180830381865af4158015610953573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097791906124c6565b6001600160a01b0316906113c9565b50506000905550565b600034116109b057604051631036b5ad60e31b815260040160405180910390fd5b6000806109bc33611291565b91509150816109de57604051630e991abd60e41b815260040160405180910390fd5b348160010160008282546109f291906125b7565b9091555060029050815460ff166005811115610a1057610a10612541565b03610a2e57600354600182015410610a2e57805460ff191660011781555b5050565b610a3a610d1a565b610a42610daa565b600073__$33b79814e84bf6cf5e47244090b19ce5f8$__631860845e6000800133856000600a015434610a759190611f2a565b6040518563ffffffff1660e01b8152600401610a949493929190612637565b600060405180830381865af4158015610ab1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ad991908101906122e0565b9050610a2e8161145e565b610aec610c88565b8051825114610b0e5760405163465f0a7d60e01b815260040160405180910390fd5b600d8054600090610b1e9061267d565b909155508151600090815b81811015610be7576000858281518110610b4557610b45612696565b6020026020010151905060006001600160a01b0316816001600160a01b031614610bde576000858381518110610b7d57610b7d612696565b6020026020010151905080600003610ba85760405163389b457d60e01b815260040160405180910390fd5b600d546000908152600c602090815260408083206001600160a01b03861684529091529020819055610bda81866125b7565b9450505b50600101610b29565b5050600b555050565b7f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095805460001901610c34576040516329f745a760e01b815260040160405180910390fd5b600181556000829003610c5a5760405163c79cad7b60e01b815260040160405180910390fd5b600080610c6633611291565b915091508161087f57604051630e991abd60e41b815260040160405180910390fd5b604051635d3f8a6960e01b815233600482015273__$e800e3908cdbb6b1b5bd452383a17b18f7$__90635d3f8a6990602401602060405180830381865af4158015610cd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfb91906126ac565b610d185760405163f0d97f3b60e01b815260040160405180910390fd5b565b604051630972932760e21b815233600482015273__$e800e3908cdbb6b1b5bd452383a17b18f7$__906325ca4c9c90602401602060405180830381865af4158015610d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8d91906126ac565b610d1857604051630a23da2b60e31b815260040160405180910390fd5b600a54341015610d18576040516334472ad760e11b815260040160405180910390fd5b8051602001515160405163089032d560e01b8152600091829173__$a0fe38a9a81205afccc10810b09a4d3f45$__9163089032d591610e11919085906004016126c7565b600060405180830381865af4158015610e2e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e56919081019061250d565b9050600080610e64836110fe565b9150915081610e8657604051630e991abd60e41b815260040160405180910390fd5b805485516101009091046001600160401b0316606090910181905260019082908290610eb3908290612557565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550846000015160400151816003016000828254610ef391906125b7565b9091555050600e810180546001808201835560009283526020928390208851805180518051600c909602909301805467ffffffffffffffff19166001600160401b039096169590951785558286015180518c979395879593948694938593610f629385019291909101906119f6565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190610f98908261276e565b505050506020838101518051805160048601805467ffffffffffffffff19166001600160401b03909216919091178155818401518051939550909391928492610fe89260058901929101906119f6565b505050602082810151805160028401805460ff191660ff90921691909117815591810151909190600384019061101e908261276e565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a82019061107b908261276e565b50505060209190910151600b909101805460ff19169115159190911790555050505050565b806000036110ac575050565b6103166110c1836001600160a01b0316611669565b6040805160248082018690528251808303909101815260449091019091526020810180516001600160e01b0316632a7edd8f60e21b1790526116b0565b6040516390ba52cf60e01b815260009081908190600490829073__$a0fe38a9a81205afccc10810b09a4d3f45$__906390ba52cf9061114090899086016124b3565b602060405180830381865af415801561115d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611181919061259e565b81526020808201929092526040908101600020815180830183526004820180546001600160401b03168252600583018054855181880281018801909652808652939750919490938582019390929183018282801561120857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116111ea575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e8989250611247916004016124b3565b602060405180830381865af4158015611264573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128891906126ac565b15925050915091565b600080806001600160a01b0384166112bc576040516370e4510960e01b815260040160405180910390fd5b60408051808201825282546001600160401b031681526001830180548351602082810282018101909552818152600094869381860193909183018282801561132d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161130f575b50505091909252505060405163aa5106cb60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263aa5106cb925061136e9189906004016124e3565b600060405180830381865af415801561138b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113b3919081019061250d565b90506113be816110fe565b935093505050915091565b804710156113ea5760405163356680b760e01b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611437576040519150601f19603f3d011682016040523d82523d6000602084013e61143c565b606091505b505090508061031657604051633204506f60e01b815260040160405180910390fd5b6000806114696116ca565b600985015486516001600160401b03909116606090910152600a85015460038201805492955090935091506000906114a29084906125b7565b90915550506004810180546001808201835560009283526020928390208651805180518051600c909602909301805467ffffffffffffffff19166001600160401b039096169590951785558286015180518a9793958795939486949385936115119385019291909101906119f6565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190611547908261276e565b505050506020838101518051805160048601805467ffffffffffffffff19166001600160401b039092169190911781558184015180519395509093919284926115979260058901929101906119f6565b505050602082810151805160028401805460ff191660ff9092169190911781559181015190919060038401906115cd908261276e565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a82019061162a908261276e565b50505060209190910151600b909101805460ff1916911515919091179055600982018054600191906000906104e49084906001600160401b0316612557565b600080600061167784611800565b915091508161168857509192915050565b6000806116948361183c565b91509150816116a7575093949350505050565b95945050505050565b60606116c1838360006118a66118bf565b90505b92915050565b6005546000908190819081906116ea9043906001600160401b0316611965565b6001600160401b038082166000908152600884016020908152604091829020825180840184528154909416845260018101805484518185028101850190955280855295985090965092938693858301939290919083018282801561177757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611759575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e89892506117b6916004016124b3565b602060405180830381865af41580156117d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f791906126ac565b15935050909192565b60008073ffffffffffffffffffffffff0000000000000000831660ff60981b810361183657600192506001600160401b03841691505b50915091565b600080826000526016600a602060006002607f60991b015afa9150600051806001600160a01b031691508060a01c61ffff16905061040a81146118825760009250600091505b5081158061189157503d601614155b156118a157506000928392509050565b915091565b604051630a12f52160e11b815260040160405180910390fd5b6060824710156118e95760405163cd78605960e01b81523060048201526024015b60405180910390fd5b600080866001600160a01b03168587604051611905919061282d565b60006040518083038185875af1925050503d8060008114611942576040519150601f19603f3d011682016040523d82523d6000602084013e611947565b606091505b509150915061195887838387611987565b925050505b949350505050565b6000816119728185612849565b61197d906001612557565b6116c1919061287d565b606083156119d55782516000036119ce57846001600160a01b03163b6000036119ce57604051639996b31560e01b81526001600160a01b03861660048201526024016118e0565b508161195d565b61195d83838151156119ea5781518083602001fd5b6118a68163ffffffff16565b828054828255906000526020600020908101928215611a4b579160200282015b82811115611a4b57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611a16565b50611a57929150611af4565b5090565b5080546000825590600052602060002090810190611a799190611af4565b50565b50805460008255600c0290600052602060002090810190611a799190611b09565b5080546000825560030290600052602060002090810190611a799190611bdb565b508054611aca906126ec565b6000825580601f10611ada575050565b601f016020900490600052602060002090810190611a7991905b5b80821115611a575760008155600101611af5565b80821115611a5757805467ffffffffffffffff191681556000818181818181611b356001830182611a5b565b505060028201805460ff191681556000611b526003850182611abe565b5050505060048201805467ffffffffffffffff1916815560008181611b7a6005870182611a5b565b505060028201805460ff191681556000611b976003850182611abe565b50506000600885018190556009850180546001600160601b0319169055611bc49250600a85019150611abe565b505050600b8101805460ff19169055600c01611b09565b80821115611a5757805467ffffffffffffffff1916815560008181611c036001830182611a5b565b50611c149050600283016000611a5b565b50600301611bdb565b6001600160401b0381168114611a7957600080fd5b600060208284031215611c4457600080fd5b8135611c4f81611c1d565b9392505050565b600060408284031215611c6857600080fd5b50919050565b60008060408385031215611c8157600080fd5b82356001600160401b0380821115611c9857600080fd5b611ca486838701611c56565b93506020850135915080821115611cba57600080fd5b50611cc785828601611c56565b9150509250929050565b600060208284031215611ce357600080fd5b5035919050565b600060208284031215611cfc57600080fd5b81356001600160401b03811115611d1257600080fd5b61195d84828501611c56565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715611d5657611d56611d1e565b60405290565b60405160c081016001600160401b0381118282101715611d5657611d56611d1e565b604051601f8201601f191681016001600160401b0381118282101715611da657611da6611d1e565b604052919050565b60006001600160401b03821115611dc757611dc7611d1e565b5060051b60200190565b6001600160a01b0381168114611a7957600080fd5b600082601f830112611df757600080fd5b81356020611e0c611e0783611dae565b611d7e565b82815260059290921b84018101918181019086841115611e2b57600080fd5b8286015b84811015611e4f578035611e4281611dd1565b8352918301918301611e2f565b509695505050505050565b60008060408385031215611e6d57600080fd5b82356001600160401b0380821115611e8457600080fd5b611e9086838701611de6565b9350602091508185013581811115611ea757600080fd5b85019050601f81018613611eba57600080fd5b8035611ec8611e0782611dae565b81815260059190911b82018301908381019088831115611ee757600080fd5b928401925b82841015611f0557833582529284019290840190611eec565b80955050505050509250929050565b634e487b7160e01b600052601160045260246000fd5b818103818111156116c4576116c4611f14565b60ff81168114611a7957600080fd5b60008135611f5981611f3d565b60ff168352602082013536839003601e19018112611f7657600080fd5b82016020810190356001600160401b03811115611f9257600080fd5b803603821315611fa157600080fd5b60406020860152806040860152808260608701376000606082870101526060601f19601f8301168601019250505092915050565b60808152600060c082018635611fea81611c1d565b6001600160401b03908116608085015260209088820135368a9003601e1901811261201457600080fd5b890182810190358281111561202857600080fd5b8060051b360382131561203a57600080fd5b604060a0880152938490529260e0860191506000905b8082101561208257843561206381611dd1565b6001600160a01b03168352938301939183019160019190910190612050565b50506001600160a01b0388168583015284810360408601526120a48188611f4c565b935050505082606083015295945050505050565b80516120c381611c1d565b919050565b6000604082840312156120da57600080fd5b6120e2611d34565b905081516120ef81611c1d565b81526020828101516001600160401b0381111561210b57600080fd5b8301601f8101851361211c57600080fd5b805161212a611e0782611dae565b81815260059190911b8201830190838101908783111561214957600080fd5b928401925b8284101561217057835161216181611dd1565b8252928401929084019061214e565b8085870152505050505092915050565b60005b8381101561219b578181015183820152602001612183565b50506000910152565b600082601f8301126121b557600080fd5b81516001600160401b038111156121ce576121ce611d1e565b6121e1601f8201601f1916602001611d7e565b8181528460208386010111156121f657600080fd5b61195d826020830160208701612180565b60006040828403121561221957600080fd5b612221611d34565b905081516001600160401b038082111561223a57600080fd5b612246858386016120c8565b8352602084015191508082111561225c57600080fd5b908301906040828603121561227057600080fd5b612278611d34565b825161228381611f3d565b815260208301518281111561229757600080fd5b6122a3878286016121a4565b60208301525080602085015250505092915050565b80516001600160e01b0319811681146120c357600080fd5b805180151581146120c357600080fd5b6000602082840312156122f257600080fd5b81516001600160401b038082111561230957600080fd5b908301906040828603121561231d57600080fd5b612325611d34565b82518281111561233457600080fd5b830160c0818803121561234657600080fd5b61234e611d5c565b81518481111561235d57600080fd5b61236989828501612207565b82525060208201518481111561237e57600080fd5b61238a89828501612207565b602083015250604082015160408201526123a6606083016120b8565b60608201526123b7608083016122b8565b608082015260a0820151848111156123ce57600080fd5b6123da898285016121a4565b60a0830152508252506123ef602084016122d0565b602082015295945050505050565b60006040823603121561240f57600080fd5b612417611d34565b823561242281611c1d565b815260208301356001600160401b0381111561243d57600080fd5b61244936828601611de6565b60208301525092915050565b6000604083016001600160401b0383511684526020808401516040828701528281518085526060880191508383019450600092505b80831015611e4f5784516001600160a01b0316825293830193600192909201919083019061248a565b6020815260006116c16020830184612455565b6000602082840312156124d857600080fd5b8151611c4f81611dd1565b6040815260006124f66040830185612455565b905060018060a01b03831660208301529392505050565b60006020828403121561251f57600080fd5b81516001600160401b0381111561253557600080fd5b61195d848285016120c8565b634e487b7160e01b600052602160045260246000fd5b6001600160401b0381811683821601908082111561257757612577611f14565b5092915050565b6001600160401b0382811682821603908082111561257757612577611f14565b6000602082840312156125b057600080fd5b5051919050565b808201808211156116c4576116c4611f14565b6000604083016001600160401b0383541684526001808401602060408188015283825480865260608901915083600052826000209550600093505b8084101561262b5785546001600160a01b03168252948401949284019290820190612605565b50979650505050505050565b60808152600061264a60808301876125ca565b6001600160a01b0386166020840152828103604084015261266b8186611f4c565b91505082606083015295945050505050565b60006001820161268f5761268f611f14565b5060010190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156126be57600080fd5b6116c1826122d0565b6040815260006126da6040830185612455565b82810360208401526116a781856125ca565b600181811c9082168061270057607f821691505b602082108103611c6857634e487b7160e01b600052602260045260246000fd5b601f82111561031657600081815260208120601f850160051c810160208610156127475750805b601f850160051c820191505b8181101561276657828155600101612753565b505050505050565b81516001600160401b0381111561278757612787611d1e565b61279b8161279584546126ec565b84612720565b602080601f8311600181146127d057600084156127b85750858301515b600019600386901b1c1916600185901b178555612766565b600085815260208120601f198616915b828110156127ff578886015182559484019460019091019084016127e0565b508582101561281d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000825161283f818460208701612180565b9190910192915050565b60006001600160401b038084168061287157634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b6001600160401b038181168382160280821691908281146128a0576128a0611f14565b50509291505056fea2646970667358221220149701e5bce4b12b7b6d6beb34f2e2e2c898c66ffd445c22db65e79fb213e5a664736f6c63430008130033", - "sourceMap": "991:6627:39:-:0;;;;;;;;;;;;;;;;;;;", + "object": "0x608060405234801561001057600080fd5b506129da806100206000396000f3fe6080604052600436106100865760003560e01c806345f544851161005957806345f54485146100dd5780635a627dbc146100fd5780636b2c1eef14610105578063f75bc55714610118578063f8703bb81461013857600080fd5b806313f353881461008b57806318f44b70146100ad5780631aa3a008146100c057806341c0e1b5146100c8575b600080fd5b34801561009757600080fd5b506100ab6100a6366004611d2e565b610158565b005b6100ab6100bb366004611d6a565b610227565b6100ab610366565b3480156100d457600080fd5b506100ab6105ec565b3480156100e957600080fd5b506100ab6100f8366004611dcd565b610871565b6100ab610a75565b6100ab610113366004611de6565b610b29565b34801561012457600080fd5b506100ab610133366004611f56565b610bdc565b34801561014457600080fd5b506100ab610153366004611dcd565b610ce8565b610160610d80565b600f54600160401b900460ff161561018a5760405162dc149f60e41b815260040160405180910390fd5b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27080546fffffffffffffffff00000000000000001916600160401b6001600160401b038416908102919091179091557f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e271805467ffffffffffffffff1916909117905550600f805468ff00000000000000001916600160401b179055565b61022f610e12565b610237610ea2565b600073__$33b79814e84bf6cf5e47244090b19ce5f8$__6399aa0eb48433856000600c0154346102679190612026565b6040518563ffffffff1660e01b815260040161028694939291906120d1565b600060405180830381865af41580156102a3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102cb91908101906123dc565b90506102d681610ec5565b6103616102e2846124f9565b604051632cff562160e11b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__916359feac429161031891906004016125af565b602060405180830381865af4158015610335573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035991906125c2565b600c54611199565b505050565b600a5434101561038957604051631036b5ad60e31b815260040160405180910390fd5b604080518082018252600880546001600160401b03168252600980548451602082810282018101909652818152600095808601939192908301828280156103f957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116103db575b50505091909252505060405163aa5106cb60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263aa5106cb925061043a9133906004016125df565b600060405180830381865af4158015610457573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261047f9190810190612609565b905060008061048d836111f7565b9150915081156104b057604051631b538cdf60e11b815260040160405180910390fd5b825160048201805467ffffffffffffffff19166001600160401b0390921691909117815560208085015180518693926104f0926005870192910190611af2565b50503482555060038101805460ff60801b1916600160801b1790554360018201556040516390ba52cf60e01b815260079073__$a0fe38a9a81205afccc10810b09a4d3f45$__906390ba52cf9061054b9087906004016125af565b602060405180830381865af4158015610568573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058c9190612653565b815460018082018455600093845260209093200155600e80546018906105c3908490600160c01b90046001600160401b031661266c565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550505050565b6000806105f83361138a565b915091508161061a57604051630e991abd60e41b815260040160405180910390fd5b60028101541561063d57604051637c67c70160e11b815260040160405180910390fd5b8054600e805460019190601890610665908490600160c01b90046001600160401b0316612693565b82546101009290920a6001600160401b03818102199093169183160217909155604080518082018252600486018054909316815260058601805483516020808302820181019095528181526000965086959394808601939192908301828280156106f857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116106da575b5050509190925250506040516390ba52cf60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__926390ba52cf9250610737916004016125af565b602060405180830381865af4158015610754573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107789190612653565b815260208101919091526040016000908120818155600181018290556002810182905560038101805470ffffffffffffffffffffffffffffffffff1916905560048101805467ffffffffffffffff19168155909190816107db6005850182611b57565b505060068201805467ffffffffffffffff19168155600081816108016007870182611b57565b505060028201805467ffffffffffffffff1916905560006003830181905561082d906004840190611b78565b61083b600583016000611b99565b60068201600090556007820160006108539190611bba565b506108649050600e83016000611b78565b50610361905033826114c5565b7f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600958054600019016108b5576040516329f745a760e01b815260040160405180910390fd5b6001815560008290036108db5760405163c79cad7b60e01b815260040160405180910390fd5b6000806108e73361138a565b915091508161090957604051630e991abd60e41b815260040160405180910390fd5b805484111561092b576040516379b33e7960e01b815260040160405180910390fd5b8381600001600082825461093f9190612026565b9091555050600a54815410156109655760038101805460ff60801b1916600160811b1790555b6040805180820182526004830180546001600160401b031682526005840180548451602082810282018101909652818152610a6c958a9594938186019390918301828280156109dd57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109bf575b505050919092525050604051632cff562160e11b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__926359feac429250610a1c916004016125af565b602060405180830381865af4158015610a39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5d91906125c2565b6001600160a01b0316906114c5565b50506000905550565b60003411610a9657604051631036b5ad60e31b815260040160405180910390fd5b600080610aa23361138a565b9150915081610ac457604051630e991abd60e41b815260040160405180910390fd5b34816000016000828254610ad891906126b3565b90915550600290506003820154600160801b900460ff166005811115610b0057610b0061263d565b03610b2557600a54815410610b255760038101805460ff60801b1916600160801b1790555b5050565b610b31610e12565b610b39610ea2565b600073__$33b79814e84bf6cf5e47244090b19ce5f8$__631860845e600060080133856000600c015434610b6d9190612026565b6040518563ffffffff1660e01b8152600401610b8c9493929190612733565b600060405180830381865af4158015610ba9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610bd191908101906123dc565b9050610b258161155a565b610be4610d80565b8051825114610c065760405163465f0a7d60e01b815260040160405180910390fd5b600b8054600090610c1690612779565b909155508151600090815b81811015610cdf576000858281518110610c3d57610c3d612792565b6020026020010151905060006001600160a01b0316816001600160a01b031614610cd6576000858381518110610c7557610c75612792565b6020026020010151905080600003610ca05760405163389b457d60e01b815260040160405180910390fd5b600b5460009081526003602090815260408083206001600160a01b03861684529091529020819055610cd281866126b3565b9450505b50600101610c21565b5050600d555050565b7f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095805460001901610d2c576040516329f745a760e01b815260040160405180910390fd5b600181556000829003610d525760405163c79cad7b60e01b815260040160405180910390fd5b600080610d5e3361138a565b915091508161096557604051630e991abd60e41b815260040160405180910390fd5b604051635d3f8a6960e01b815233600482015273__$e800e3908cdbb6b1b5bd452383a17b18f7$__90635d3f8a6990602401602060405180830381865af4158015610dcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df391906127a8565b610e105760405163f0d97f3b60e01b815260040160405180910390fd5b565b604051630972932760e21b815233600482015273__$e800e3908cdbb6b1b5bd452383a17b18f7$__906325ca4c9c90602401602060405180830381865af4158015610e61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8591906127a8565b610e1057604051630a23da2b60e31b815260040160405180910390fd5b600c54341015610e10576040516334472ad760e11b815260040160405180910390fd5b8051602001515160405163089032d560e01b8152600091829173__$a0fe38a9a81205afccc10810b09a4d3f45$__9163089032d591610f0a91906008906004016127c3565b600060405180830381865af4158015610f27573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f4f9190810190612609565b9050600080610f5d836111f7565b9150915081610f7f57604051630e991abd60e41b815260040160405180910390fd5b60038101805486516001600160401b03909116606090910181905260019190600090610fac90849061266c565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550846000015160400151816002016000828254610fec91906126b3565b9091555050600e810180546001808201835560009283526020928390208851805180518051600c909602909301805467ffffffffffffffff19166001600160401b039096169590951785558286015180518c97939587959394869493859361105b938501929190910190611af2565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190611091908261286a565b505050506020838101518051805160048601805467ffffffffffffffff19166001600160401b039092169190911781558184015180519395509093919284926110e1926005890192910190611af2565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190611117908261286a565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a820190611174908261286a565b50505060209190910151600b909101805460ff19169115159190911790555050505050565b806000036111a5575050565b6103616111ba836001600160a01b0316611765565b6040805160248082018690528251808303909101815260449091019091526020810180516001600160e01b0316632a7edd8f60e21b1790526117ac565b6040516390ba52cf60e01b8152600090819081908190819073__$a0fe38a9a81205afccc10810b09a4d3f45$__906390ba52cf906112399089906004016125af565b602060405180830381865af4158015611256573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127a9190612653565b81526020808201929092526040908101600020815180830183526004820180546001600160401b03168252600583018054855181880281018801909652808652939750919490938582019390929183018282801561130157602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116112e3575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e8989250611340916004016125af565b602060405180830381865af415801561135d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138191906127a8565b15925050915091565b600080806001600160a01b0384166113b5576040516370e4510960e01b815260040160405180910390fd5b6040805180820182526008830180546001600160401b0316825260098401805484516020828102820181019096528181526000958086019391929083018282801561142957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161140b575b50505091909252505060405163aa5106cb60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263aa5106cb925061146a9189906004016125df565b600060405180830381865af4158015611487573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114af9190810190612609565b90506114ba816111f7565b935093505050915091565b804710156114e65760405163356680b760e01b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611533576040519150601f19603f3d011682016040523d82523d6000602084013e611538565b606091505b505090508061036157604051633204506f60e01b815260040160405180910390fd5b6000806115656117c6565b600e85015486516001600160401b03909116606090910152600c850154600382018054929550909350915060009061159e9084906126b3565b90915550506004810180546001808201835560009283526020928390208651805180518051600c909602909301805467ffffffffffffffff19166001600160401b039096169590951785558286015180518a97939587959394869493859361160d938501929190910190611af2565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190611643908261286a565b505050506020838101518051805160048601805467ffffffffffffffff19166001600160401b03909216919091178155818401518051939550909391928492611693926005890192910190611af2565b505050602082810151805160028401805460ff191660ff9092169190911781559181015190919060038401906116c9908261286a565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a820190611726908261286a565b50505060209190910151600b909101805460ff1916911515919091179055600e82018054600191906000906105c39084906001600160401b031661266c565b6000806000611773846118fc565b915091508161178457509192915050565b60008061179083611938565b91509150816117a3575093949350505050565b95945050505050565b60606117bd838360006119a26119bb565b90505b92915050565b600f546000908190819081906117e69043906001600160401b0316611a61565b6001600160401b038082166000908152600284016020908152604091829020825180840184528154909416845260018101805484518185028101850190955280855295985090965092938693858301939290919083018282801561187357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611855575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e89892506118b2916004016125af565b602060405180830381865af41580156118cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f391906127a8565b15935050909192565b60008073ffffffffffffffffffffffff0000000000000000831660ff60981b810361193257600192506001600160401b03841691505b50915091565b600080826000526016600a602060006002607f60991b015afa9150600051806001600160a01b031691508060a01c61ffff16905061040a811461197e5760009250600091505b5081158061198d57503d601614155b1561199d57506000928392509050565b915091565b604051630a12f52160e11b815260040160405180910390fd5b6060824710156119e55760405163cd78605960e01b81523060048201526024015b60405180910390fd5b600080866001600160a01b03168587604051611a019190612929565b60006040518083038185875af1925050503d8060008114611a3e576040519150601f19603f3d011682016040523d82523d6000602084013e611a43565b606091505b5091509150611a5487838387611a83565b925050505b949350505050565b600081611a6e8185612945565b611a7990600161266c565b6117bd9190612979565b60608315611ad1578251600003611aca57846001600160a01b03163b600003611aca57604051639996b31560e01b81526001600160a01b03861660048201526024016119dc565b5081611a59565b611a598383815115611ae65781518083602001fd5b6119a28163ffffffff16565b828054828255906000526020600020908101928215611b47579160200282015b82811115611b4757825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611b12565b50611b53929150611bf0565b5090565b5080546000825590600052602060002090810190611b759190611bf0565b50565b50805460008255600c0290600052602060002090810190611b759190611c05565b5080546000825560030290600052602060002090810190611b759190611cd7565b508054611bc6906127e8565b6000825580601f10611bd6575050565b601f016020900490600052602060002090810190611b7591905b5b80821115611b535760008155600101611bf1565b80821115611b5357805467ffffffffffffffff191681556000818181818181611c316001830182611b57565b505060028201805460ff191681556000611c4e6003850182611bba565b5050505060048201805467ffffffffffffffff1916815560008181611c766005870182611b57565b505060028201805460ff191681556000611c936003850182611bba565b50506000600885018190556009850180546001600160601b0319169055611cc09250600a85019150611bba565b505050600b8101805460ff19169055600c01611c05565b80821115611b5357805467ffffffffffffffff1916815560008181611cff6001830182611b57565b50611d109050600283016000611b57565b50600301611cd7565b6001600160401b0381168114611b7557600080fd5b600060208284031215611d4057600080fd5b8135611d4b81611d19565b9392505050565b600060408284031215611d6457600080fd5b50919050565b60008060408385031215611d7d57600080fd5b82356001600160401b0380821115611d9457600080fd5b611da086838701611d52565b93506020850135915080821115611db657600080fd5b50611dc385828601611d52565b9150509250929050565b600060208284031215611ddf57600080fd5b5035919050565b600060208284031215611df857600080fd5b81356001600160401b03811115611e0e57600080fd5b611a5984828501611d52565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715611e5257611e52611e1a565b60405290565b60405160c081016001600160401b0381118282101715611e5257611e52611e1a565b604051601f8201601f191681016001600160401b0381118282101715611ea257611ea2611e1a565b604052919050565b60006001600160401b03821115611ec357611ec3611e1a565b5060051b60200190565b6001600160a01b0381168114611b7557600080fd5b600082601f830112611ef357600080fd5b81356020611f08611f0383611eaa565b611e7a565b82815260059290921b84018101918181019086841115611f2757600080fd5b8286015b84811015611f4b578035611f3e81611ecd565b8352918301918301611f2b565b509695505050505050565b60008060408385031215611f6957600080fd5b82356001600160401b0380821115611f8057600080fd5b611f8c86838701611ee2565b9350602091508185013581811115611fa357600080fd5b85019050601f81018613611fb657600080fd5b8035611fc4611f0382611eaa565b81815260059190911b82018301908381019088831115611fe357600080fd5b928401925b8284101561200157833582529284019290840190611fe8565b80955050505050509250929050565b634e487b7160e01b600052601160045260246000fd5b818103818111156117c0576117c0612010565b60ff81168114611b7557600080fd5b6000813561205581612039565b60ff168352602082013536839003601e1901811261207257600080fd5b82016020810190356001600160401b0381111561208e57600080fd5b80360382131561209d57600080fd5b60406020860152806040860152808260608701376000606082870101526060601f19601f8301168601019250505092915050565b60808152600060c0820186356120e681611d19565b6001600160401b03908116608085015260209088820135368a9003601e1901811261211057600080fd5b890182810190358281111561212457600080fd5b8060051b360382131561213657600080fd5b604060a0880152938490529260e0860191506000905b8082101561217e57843561215f81611ecd565b6001600160a01b0316835293830193918301916001919091019061214c565b50506001600160a01b0388168583015284810360408601526121a08188612048565b935050505082606083015295945050505050565b80516121bf81611d19565b919050565b6000604082840312156121d657600080fd5b6121de611e30565b905081516121eb81611d19565b81526020828101516001600160401b0381111561220757600080fd5b8301601f8101851361221857600080fd5b8051612226611f0382611eaa565b81815260059190911b8201830190838101908783111561224557600080fd5b928401925b8284101561226c57835161225d81611ecd565b8252928401929084019061224a565b8085870152505050505092915050565b60005b8381101561229757818101518382015260200161227f565b50506000910152565b600082601f8301126122b157600080fd5b81516001600160401b038111156122ca576122ca611e1a565b6122dd601f8201601f1916602001611e7a565b8181528460208386010111156122f257600080fd5b611a5982602083016020870161227c565b60006040828403121561231557600080fd5b61231d611e30565b905081516001600160401b038082111561233657600080fd5b612342858386016121c4565b8352602084015191508082111561235857600080fd5b908301906040828603121561236c57600080fd5b612374611e30565b825161237f81612039565b815260208301518281111561239357600080fd5b61239f878286016122a0565b60208301525080602085015250505092915050565b80516001600160e01b0319811681146121bf57600080fd5b805180151581146121bf57600080fd5b6000602082840312156123ee57600080fd5b81516001600160401b038082111561240557600080fd5b908301906040828603121561241957600080fd5b612421611e30565b82518281111561243057600080fd5b830160c0818803121561244257600080fd5b61244a611e58565b81518481111561245957600080fd5b61246589828501612303565b82525060208201518481111561247a57600080fd5b61248689828501612303565b602083015250604082015160408201526124a2606083016121b4565b60608201526124b3608083016123b4565b608082015260a0820151848111156124ca57600080fd5b6124d6898285016122a0565b60a0830152508252506124eb602084016123cc565b602082015295945050505050565b60006040823603121561250b57600080fd5b612513611e30565b823561251e81611d19565b815260208301356001600160401b0381111561253957600080fd5b61254536828601611ee2565b60208301525092915050565b6000604083016001600160401b0383511684526020808401516040828701528281518085526060880191508383019450600092505b80831015611f4b5784516001600160a01b03168252938301936001929092019190830190612586565b6020815260006117bd6020830184612551565b6000602082840312156125d457600080fd5b8151611d4b81611ecd565b6040815260006125f26040830185612551565b905060018060a01b03831660208301529392505050565b60006020828403121561261b57600080fd5b81516001600160401b0381111561263157600080fd5b611a59848285016121c4565b634e487b7160e01b600052602160045260246000fd5b60006020828403121561266557600080fd5b5051919050565b6001600160401b0381811683821601908082111561268c5761268c612010565b5092915050565b6001600160401b0382811682821603908082111561268c5761268c612010565b808201808211156117c0576117c0612010565b6000604083016001600160401b0383541684526001808401602060408188015283825480865260608901915083600052826000209550600093505b808410156127275785546001600160a01b03168252948401949284019290820190612701565b50979650505050505050565b60808152600061274660808301876126c6565b6001600160a01b038616602084015282810360408401526127678186612048565b91505082606083015295945050505050565b60006001820161278b5761278b612010565b5060010190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156127ba57600080fd5b6117bd826123cc565b6040815260006127d66040830185612551565b82810360208401526117a381856126c6565b600181811c908216806127fc57607f821691505b602082108103611d6457634e487b7160e01b600052602260045260246000fd5b601f82111561036157600081815260208120601f850160051c810160208610156128435750805b601f850160051c820191505b818110156128625782815560010161284f565b505050505050565b81516001600160401b0381111561288357612883611e1a565b6128978161289184546127e8565b8461281c565b602080601f8311600181146128cc57600084156128b45750858301515b600019600386901b1c1916600185901b178555612862565b600085815260208120601f198616915b828110156128fb578886015182559484019460019091019084016128dc565b50858210156129195787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000825161293b81846020870161227c565b9190910192915050565b60006001600160401b038084168061296d57634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b6001600160401b0381811683821602808216919082811461299c5761299c612010565b50509291505056fea2646970667358221220948e77a7c9702780e4f789de0d48504db131d78af53dbab7de4cbbba7ec0542e64736f6c63430008130033", + "sourceMap": "991:6681:35:-:0;;;;;;;;;;;;;;;;;;;", "linkReferences": { "src/lib/AccountHelper.sol": { "AccountHelper": [ { - "start": 3261, + "start": 3509, "length": 20 }, { - "start": 3407, + "start": 3655, "length": 20 } ] @@ -272,11 +272,11 @@ "src/lib/CrossMsgHelper.sol": { "CrossMsgHelper": [ { - "start": 528, + "start": 603, "length": 20 }, { - "start": 2662, + "start": 2909, "length": 20 } ] @@ -284,39 +284,43 @@ "src/lib/SubnetIDHelper.sol": { "SubnetIDHelper": [ { - "start": 710, + "start": 785, "length": 20 }, { - "start": 1000, + "start": 1073, "length": 20 }, { - "start": 1614, + "start": 1347, "length": 20 }, { - "start": 2351, + "start": 1840, "length": 20 }, { - "start": 3592, + "start": 2581, "length": 20 }, { - "start": 4409, + "start": 3840, "length": 20 }, { - "start": 4672, + "start": 4657, "length": 20 }, { - "start": 4965, + "start": 4921, "length": 20 }, { - "start": 6063, + "start": 5217, + "length": 20 + }, + { + "start": 6315, "length": 20 } ] @@ -324,17 +328,17 @@ } }, "deployedBytecode": { - "object": "0x6080604052600436106100865760003560e01c806345f544851161005957806345f54485146100dd5780635a627dbc146100fd5780636b2c1eef14610105578063f75bc55714610118578063f8703bb81461013857600080fd5b806313f353881461008b57806318f44b70146100ad5780631aa3a008146100c057806341c0e1b5146100c8575b600080fd5b34801561009757600080fd5b506100ab6100a6366004611c32565b610158565b005b6100ab6100bb366004611c6e565b6101dc565b6100ab61031b565b3480156100d457600080fd5b506100ab61050d565b3480156100e957600080fd5b506100ab6100f8366004611cd1565b61078f565b6100ab61098f565b6100ab610113366004611cea565b610a32565b34801561012457600080fd5b506100ab610133366004611e5a565b610ae4565b34801561014457600080fd5b506100ab610153366004611cd1565b610bf0565b610160610c88565b60105460ff16156101835760405162dc149f60e41b815260040160405180910390fd5b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27080546fffffffffffffffff00000000000000001916600160401b6001600160401b03841602179055506010805460ff19166001179055565b6101e4610d1a565b6101ec610daa565b600073__$33b79814e84bf6cf5e47244090b19ce5f8$__6399aa0eb48433856000600a01543461021c9190611f2a565b6040518563ffffffff1660e01b815260040161023b9493929190611fd5565b600060405180830381865af4158015610258573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261028091908101906122e0565b905061028b81610dcd565b610316610297846123fd565b604051632cff562160e11b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__916359feac42916102cd91906004016124b3565b602060405180830381865af41580156102ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030e91906124c6565b600a546110a0565b505050565b60035434101561033e57604051631036b5ad60e31b815260040160405180910390fd5b604080518082018252600080546001600160401b031682526001805484516020828102820181019096528181529294859381860193909290918301828280156103b057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610392575b50505091909252505060405163aa5106cb60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263aa5106cb92506103f19133906004016124e3565b600060405180830381865af415801561040e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610436919081019061250d565b9050600080610444836110fe565b91509150811561046757604051631b538cdf60e11b815260040160405180910390fd5b825160048201805467ffffffffffffffff19166001600160401b0390921691909117815560208085015180518693926104a79260058701929101906119f6565b505034600183810191909155825460ff191681178355436002808501919091558054919250906000906104e49084906001600160401b0316612557565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550505050565b60008061051933611291565b915091508161053b57604051630e991abd60e41b815260040160405180910390fd5b60038101541561055e57604051637c67c70160e11b815260040160405180910390fd5b600180820154600280549192916000906105829084906001600160401b031661257e565b82546101009290920a6001600160401b03818102199093169183160217909155604080518082018252600486810180549094168252600587018054845160208083028201810190965281815292965060009593948086019392919083018282801561061657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116105f8575b5050509190925250506040516390ba52cf60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__926390ba52cf9250610655916004016124b3565b602060405180830381865af4158015610672573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610696919061259e565b815260208101919091526040016000908120805470ffffffffffffffffffffffffffffffffff1916815560018101829055600281018290556003810182905560048101805467ffffffffffffffff19168155909190816106f96005850182611a5b565b505060068201805467ffffffffffffffff191681556000818161071f6007870182611a5b565b505060028201805467ffffffffffffffff1916905560006003830181905561074b906004840190611a7c565b610759600583016000611a9d565b60068201600090556007820160006107719190611abe565b506107829050600e83016000611a7c565b50610316905033826113c9565b7f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600958054600019016107d3576040516329f745a760e01b815260040160405180910390fd5b6001815560008290036107f95760405163c79cad7b60e01b815260040160405180910390fd5b60008061080533611291565b915091508161082757604051630e991abd60e41b815260040160405180910390fd5b838160010154101561084c576040516379b33e7960e01b815260040160405180910390fd5b838160010160008282546108609190611f2a565b90915550506003546001820154101561087f57805460ff191660021781555b6040805180820182526004830180546001600160401b031682526005840180548451602082810282018101909652818152610986958a9594938186019390918301828280156108f757602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116108d9575b505050919092525050604051632cff562160e11b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__926359feac429250610936916004016124b3565b602060405180830381865af4158015610953573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097791906124c6565b6001600160a01b0316906113c9565b50506000905550565b600034116109b057604051631036b5ad60e31b815260040160405180910390fd5b6000806109bc33611291565b91509150816109de57604051630e991abd60e41b815260040160405180910390fd5b348160010160008282546109f291906125b7565b9091555060029050815460ff166005811115610a1057610a10612541565b03610a2e57600354600182015410610a2e57805460ff191660011781555b5050565b610a3a610d1a565b610a42610daa565b600073__$33b79814e84bf6cf5e47244090b19ce5f8$__631860845e6000800133856000600a015434610a759190611f2a565b6040518563ffffffff1660e01b8152600401610a949493929190612637565b600060405180830381865af4158015610ab1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ad991908101906122e0565b9050610a2e8161145e565b610aec610c88565b8051825114610b0e5760405163465f0a7d60e01b815260040160405180910390fd5b600d8054600090610b1e9061267d565b909155508151600090815b81811015610be7576000858281518110610b4557610b45612696565b6020026020010151905060006001600160a01b0316816001600160a01b031614610bde576000858381518110610b7d57610b7d612696565b6020026020010151905080600003610ba85760405163389b457d60e01b815260040160405180910390fd5b600d546000908152600c602090815260408083206001600160a01b03861684529091529020819055610bda81866125b7565b9450505b50600101610b29565b5050600b555050565b7f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095805460001901610c34576040516329f745a760e01b815260040160405180910390fd5b600181556000829003610c5a5760405163c79cad7b60e01b815260040160405180910390fd5b600080610c6633611291565b915091508161087f57604051630e991abd60e41b815260040160405180910390fd5b604051635d3f8a6960e01b815233600482015273__$e800e3908cdbb6b1b5bd452383a17b18f7$__90635d3f8a6990602401602060405180830381865af4158015610cd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfb91906126ac565b610d185760405163f0d97f3b60e01b815260040160405180910390fd5b565b604051630972932760e21b815233600482015273__$e800e3908cdbb6b1b5bd452383a17b18f7$__906325ca4c9c90602401602060405180830381865af4158015610d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8d91906126ac565b610d1857604051630a23da2b60e31b815260040160405180910390fd5b600a54341015610d18576040516334472ad760e11b815260040160405180910390fd5b8051602001515160405163089032d560e01b8152600091829173__$a0fe38a9a81205afccc10810b09a4d3f45$__9163089032d591610e11919085906004016126c7565b600060405180830381865af4158015610e2e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e56919081019061250d565b9050600080610e64836110fe565b9150915081610e8657604051630e991abd60e41b815260040160405180910390fd5b805485516101009091046001600160401b0316606090910181905260019082908290610eb3908290612557565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550846000015160400151816003016000828254610ef391906125b7565b9091555050600e810180546001808201835560009283526020928390208851805180518051600c909602909301805467ffffffffffffffff19166001600160401b039096169590951785558286015180518c979395879593948694938593610f629385019291909101906119f6565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190610f98908261276e565b505050506020838101518051805160048601805467ffffffffffffffff19166001600160401b03909216919091178155818401518051939550909391928492610fe89260058901929101906119f6565b505050602082810151805160028401805460ff191660ff90921691909117815591810151909190600384019061101e908261276e565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a82019061107b908261276e565b50505060209190910151600b909101805460ff19169115159190911790555050505050565b806000036110ac575050565b6103166110c1836001600160a01b0316611669565b6040805160248082018690528251808303909101815260449091019091526020810180516001600160e01b0316632a7edd8f60e21b1790526116b0565b6040516390ba52cf60e01b815260009081908190600490829073__$a0fe38a9a81205afccc10810b09a4d3f45$__906390ba52cf9061114090899086016124b3565b602060405180830381865af415801561115d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611181919061259e565b81526020808201929092526040908101600020815180830183526004820180546001600160401b03168252600583018054855181880281018801909652808652939750919490938582019390929183018282801561120857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116111ea575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e8989250611247916004016124b3565b602060405180830381865af4158015611264573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128891906126ac565b15925050915091565b600080806001600160a01b0384166112bc576040516370e4510960e01b815260040160405180910390fd5b60408051808201825282546001600160401b031681526001830180548351602082810282018101909552818152600094869381860193909183018282801561132d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161130f575b50505091909252505060405163aa5106cb60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263aa5106cb925061136e9189906004016124e3565b600060405180830381865af415801561138b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113b3919081019061250d565b90506113be816110fe565b935093505050915091565b804710156113ea5760405163356680b760e01b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611437576040519150601f19603f3d011682016040523d82523d6000602084013e61143c565b606091505b505090508061031657604051633204506f60e01b815260040160405180910390fd5b6000806114696116ca565b600985015486516001600160401b03909116606090910152600a85015460038201805492955090935091506000906114a29084906125b7565b90915550506004810180546001808201835560009283526020928390208651805180518051600c909602909301805467ffffffffffffffff19166001600160401b039096169590951785558286015180518a9793958795939486949385936115119385019291909101906119f6565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190611547908261276e565b505050506020838101518051805160048601805467ffffffffffffffff19166001600160401b039092169190911781558184015180519395509093919284926115979260058901929101906119f6565b505050602082810151805160028401805460ff191660ff9092169190911781559181015190919060038401906115cd908261276e565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a82019061162a908261276e565b50505060209190910151600b909101805460ff1916911515919091179055600982018054600191906000906104e49084906001600160401b0316612557565b600080600061167784611800565b915091508161168857509192915050565b6000806116948361183c565b91509150816116a7575093949350505050565b95945050505050565b60606116c1838360006118a66118bf565b90505b92915050565b6005546000908190819081906116ea9043906001600160401b0316611965565b6001600160401b038082166000908152600884016020908152604091829020825180840184528154909416845260018101805484518185028101850190955280855295985090965092938693858301939290919083018282801561177757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611759575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e89892506117b6916004016124b3565b602060405180830381865af41580156117d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f791906126ac565b15935050909192565b60008073ffffffffffffffffffffffff0000000000000000831660ff60981b810361183657600192506001600160401b03841691505b50915091565b600080826000526016600a602060006002607f60991b015afa9150600051806001600160a01b031691508060a01c61ffff16905061040a81146118825760009250600091505b5081158061189157503d601614155b156118a157506000928392509050565b915091565b604051630a12f52160e11b815260040160405180910390fd5b6060824710156118e95760405163cd78605960e01b81523060048201526024015b60405180910390fd5b600080866001600160a01b03168587604051611905919061282d565b60006040518083038185875af1925050503d8060008114611942576040519150601f19603f3d011682016040523d82523d6000602084013e611947565b606091505b509150915061195887838387611987565b925050505b949350505050565b6000816119728185612849565b61197d906001612557565b6116c1919061287d565b606083156119d55782516000036119ce57846001600160a01b03163b6000036119ce57604051639996b31560e01b81526001600160a01b03861660048201526024016118e0565b508161195d565b61195d83838151156119ea5781518083602001fd5b6118a68163ffffffff16565b828054828255906000526020600020908101928215611a4b579160200282015b82811115611a4b57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611a16565b50611a57929150611af4565b5090565b5080546000825590600052602060002090810190611a799190611af4565b50565b50805460008255600c0290600052602060002090810190611a799190611b09565b5080546000825560030290600052602060002090810190611a799190611bdb565b508054611aca906126ec565b6000825580601f10611ada575050565b601f016020900490600052602060002090810190611a7991905b5b80821115611a575760008155600101611af5565b80821115611a5757805467ffffffffffffffff191681556000818181818181611b356001830182611a5b565b505060028201805460ff191681556000611b526003850182611abe565b5050505060048201805467ffffffffffffffff1916815560008181611b7a6005870182611a5b565b505060028201805460ff191681556000611b976003850182611abe565b50506000600885018190556009850180546001600160601b0319169055611bc49250600a85019150611abe565b505050600b8101805460ff19169055600c01611b09565b80821115611a5757805467ffffffffffffffff1916815560008181611c036001830182611a5b565b50611c149050600283016000611a5b565b50600301611bdb565b6001600160401b0381168114611a7957600080fd5b600060208284031215611c4457600080fd5b8135611c4f81611c1d565b9392505050565b600060408284031215611c6857600080fd5b50919050565b60008060408385031215611c8157600080fd5b82356001600160401b0380821115611c9857600080fd5b611ca486838701611c56565b93506020850135915080821115611cba57600080fd5b50611cc785828601611c56565b9150509250929050565b600060208284031215611ce357600080fd5b5035919050565b600060208284031215611cfc57600080fd5b81356001600160401b03811115611d1257600080fd5b61195d84828501611c56565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715611d5657611d56611d1e565b60405290565b60405160c081016001600160401b0381118282101715611d5657611d56611d1e565b604051601f8201601f191681016001600160401b0381118282101715611da657611da6611d1e565b604052919050565b60006001600160401b03821115611dc757611dc7611d1e565b5060051b60200190565b6001600160a01b0381168114611a7957600080fd5b600082601f830112611df757600080fd5b81356020611e0c611e0783611dae565b611d7e565b82815260059290921b84018101918181019086841115611e2b57600080fd5b8286015b84811015611e4f578035611e4281611dd1565b8352918301918301611e2f565b509695505050505050565b60008060408385031215611e6d57600080fd5b82356001600160401b0380821115611e8457600080fd5b611e9086838701611de6565b9350602091508185013581811115611ea757600080fd5b85019050601f81018613611eba57600080fd5b8035611ec8611e0782611dae565b81815260059190911b82018301908381019088831115611ee757600080fd5b928401925b82841015611f0557833582529284019290840190611eec565b80955050505050509250929050565b634e487b7160e01b600052601160045260246000fd5b818103818111156116c4576116c4611f14565b60ff81168114611a7957600080fd5b60008135611f5981611f3d565b60ff168352602082013536839003601e19018112611f7657600080fd5b82016020810190356001600160401b03811115611f9257600080fd5b803603821315611fa157600080fd5b60406020860152806040860152808260608701376000606082870101526060601f19601f8301168601019250505092915050565b60808152600060c082018635611fea81611c1d565b6001600160401b03908116608085015260209088820135368a9003601e1901811261201457600080fd5b890182810190358281111561202857600080fd5b8060051b360382131561203a57600080fd5b604060a0880152938490529260e0860191506000905b8082101561208257843561206381611dd1565b6001600160a01b03168352938301939183019160019190910190612050565b50506001600160a01b0388168583015284810360408601526120a48188611f4c565b935050505082606083015295945050505050565b80516120c381611c1d565b919050565b6000604082840312156120da57600080fd5b6120e2611d34565b905081516120ef81611c1d565b81526020828101516001600160401b0381111561210b57600080fd5b8301601f8101851361211c57600080fd5b805161212a611e0782611dae565b81815260059190911b8201830190838101908783111561214957600080fd5b928401925b8284101561217057835161216181611dd1565b8252928401929084019061214e565b8085870152505050505092915050565b60005b8381101561219b578181015183820152602001612183565b50506000910152565b600082601f8301126121b557600080fd5b81516001600160401b038111156121ce576121ce611d1e565b6121e1601f8201601f1916602001611d7e565b8181528460208386010111156121f657600080fd5b61195d826020830160208701612180565b60006040828403121561221957600080fd5b612221611d34565b905081516001600160401b038082111561223a57600080fd5b612246858386016120c8565b8352602084015191508082111561225c57600080fd5b908301906040828603121561227057600080fd5b612278611d34565b825161228381611f3d565b815260208301518281111561229757600080fd5b6122a3878286016121a4565b60208301525080602085015250505092915050565b80516001600160e01b0319811681146120c357600080fd5b805180151581146120c357600080fd5b6000602082840312156122f257600080fd5b81516001600160401b038082111561230957600080fd5b908301906040828603121561231d57600080fd5b612325611d34565b82518281111561233457600080fd5b830160c0818803121561234657600080fd5b61234e611d5c565b81518481111561235d57600080fd5b61236989828501612207565b82525060208201518481111561237e57600080fd5b61238a89828501612207565b602083015250604082015160408201526123a6606083016120b8565b60608201526123b7608083016122b8565b608082015260a0820151848111156123ce57600080fd5b6123da898285016121a4565b60a0830152508252506123ef602084016122d0565b602082015295945050505050565b60006040823603121561240f57600080fd5b612417611d34565b823561242281611c1d565b815260208301356001600160401b0381111561243d57600080fd5b61244936828601611de6565b60208301525092915050565b6000604083016001600160401b0383511684526020808401516040828701528281518085526060880191508383019450600092505b80831015611e4f5784516001600160a01b0316825293830193600192909201919083019061248a565b6020815260006116c16020830184612455565b6000602082840312156124d857600080fd5b8151611c4f81611dd1565b6040815260006124f66040830185612455565b905060018060a01b03831660208301529392505050565b60006020828403121561251f57600080fd5b81516001600160401b0381111561253557600080fd5b61195d848285016120c8565b634e487b7160e01b600052602160045260246000fd5b6001600160401b0381811683821601908082111561257757612577611f14565b5092915050565b6001600160401b0382811682821603908082111561257757612577611f14565b6000602082840312156125b057600080fd5b5051919050565b808201808211156116c4576116c4611f14565b6000604083016001600160401b0383541684526001808401602060408188015283825480865260608901915083600052826000209550600093505b8084101561262b5785546001600160a01b03168252948401949284019290820190612605565b50979650505050505050565b60808152600061264a60808301876125ca565b6001600160a01b0386166020840152828103604084015261266b8186611f4c565b91505082606083015295945050505050565b60006001820161268f5761268f611f14565b5060010190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156126be57600080fd5b6116c1826122d0565b6040815260006126da6040830185612455565b82810360208401526116a781856125ca565b600181811c9082168061270057607f821691505b602082108103611c6857634e487b7160e01b600052602260045260246000fd5b601f82111561031657600081815260208120601f850160051c810160208610156127475750805b601f850160051c820191505b8181101561276657828155600101612753565b505050505050565b81516001600160401b0381111561278757612787611d1e565b61279b8161279584546126ec565b84612720565b602080601f8311600181146127d057600084156127b85750858301515b600019600386901b1c1916600185901b178555612766565b600085815260208120601f198616915b828110156127ff578886015182559484019460019091019084016127e0565b508582101561281d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000825161283f818460208701612180565b9190910192915050565b60006001600160401b038084168061287157634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b6001600160401b038181168382160280821691908281146128a0576128a0611f14565b50509291505056fea2646970667358221220149701e5bce4b12b7b6d6beb34f2e2e2c898c66ffd445c22db65e79fb213e5a664736f6c63430008130033", - "sourceMap": "991:6627:39:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1307:240;;;;;;;;;;-1:-1:-1;1307:240:39;;;;;:::i;:::-;;:::i;:::-;;4592:387;;;;;;:::i;:::-;;:::i;1658:551::-;;;:::i;3873:454::-;;;;;;;;;;;;;:::i;2833:591::-;;;;;;;;;;-1:-1:-1;2833:591:39;;;;;:::i;:::-;;:::i;2280:489::-;;;:::i;5136:318::-;;;;;;:::i;:::-;;:::i;5644:1972::-;;;;;;;;;;-1:-1:-1;5644:1972:39;;;;;:::i;:::-;;:::i;3430:369::-;;;;;;;;;;-1:-1:-1;3430:369:39;;;;;:::i;:::-;;:::i;1307:240::-;4696:18:55;:16;:18::i;:::-;1393:13:39::1;::::0;::::1;;1389:71;;;1429:20;;-1:-1:-1::0;;;1429:20:39::1;;;;;;;;;;;1389:71;1438:42:58::0;2861:29;;-1:-1:-1;;2861:29:58;-1:-1:-1;;;;;;;;2861:29:58;;;;;;-1:-1:-1;1520:13:39::1;:20:::0;;-1:-1:-1;;1520:20:39::1;1536:4;1520:20;::::0;;1307:240::o;4592:387::-;4620:15:55;:13;:15::i;:::-;4766:9:::1;:7;:9::i;:::-;4705:24:39::2;4732:14;:28;4761:8;4771:10;4783:2;4799:1;:13;;;4787:9;:25;;;;:::i;:::-;4732:81;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;::::0;;::::2;-1:-1:-1::0;;4732:81:39::2;::::0;::::2;;::::0;::::2;::::0;;;::::2;::::0;::::2;:::i;:::-;4705:108;;4860:37;4888:8;4860:27;:37::i;:::-;4908:64;4937:17;:8:::0;:17:::2;:::i;:::-;:19;::::0;-1:-1:-1;;;4937:19:39;;:17:::2;::::0;::::2;::::0;:19:::2;::::0;:17;:19:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4958:13;::::0;4908:28:::2;:64::i;:::-;4695:284;4592:387:::0;;:::o;1658:551::-;1721:10;;1709:9;:22;1705:76;;;1754:16;;-1:-1:-1;;;1754:16:39;;;;;;;;;;;1705:76;1818:28;;;;;;;;1791:24;1818:28;;-1:-1:-1;;;;;1818:28:39;;;;;;;;;;;;;;;;;;;;;;1791:24;;;;1818:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1818:28:39;;;;;;;;;;;;;;;;-1:-1:-1;;;1818:28:39;;;;-1:-1:-1;;1818:40:39;;-1:-1:-1;;;1818:40:39;;:28;;;;-1:-1:-1;1818:40:39;;1847:10;;1818:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1818:40:39;;;;;;;;;;;;:::i;:::-;1791:67;;1870:15;1887:21;1912:30;1933:8;1912:20;:30::i;:::-;1869:73;;;;1957:10;1953:73;;;1990:25;;-1:-1:-1;;;1990:25:39;;;;;;;;;;;1953:73;2036:20;;:9;;;:20;;-1:-1:-1;;2036:20:39;-1:-1:-1;;;;;2036:20:39;;;;;;;;;;;;;;;;;;:9;:20;;;;;;;;;;:::i;:::-;-1:-1:-1;;2081:9:39;2066:12;;;;:24;;;;2100:29;;-1:-1:-1;;2100:29:39;;;;;2161:12;2139:19;;;;:34;;;;2183:19;;2066:12;;-1:-1:-1;2139:19:39;-1:-1:-1;;2183:19:39;;2066:12;;-1:-1:-1;;;;;2183:19:39;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;2183:19:39;;;;;-1:-1:-1;;;;;2183:19:39;;;;;;1695:514;;;1658:551::o;3873:454::-;3909:15;3926:21;3951:32;3972:10;3951:20;:32::i;:::-;3908:75;;;;3999:10;3994:70;;4032:21;;-1:-1:-1;;;4032:21:39;;;;;;;;;;;3994:70;4077:17;;;;:21;4073:85;;4121:26;;-1:-1:-1;;;4121:26:39;;;;;;;;;;;4073:85;4184:12;;;;;4207:14;:19;;4184:12;;;4168:13;;4207:19;;4184:12;;-1:-1:-1;;;;;4207:19:39;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;4207:19:39;;;;;;;;;;;;;;;4254:16;;;;;;;;4244:9;4254;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;4244:9;;-1:-1:-1;;;4254:16:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4254:16:39;;;;;;;;;;;;;;;;-1:-1:-1;;;4254:16:39;;;;-1:-1:-1;;4254:18:39;;-1:-1:-1;;;4254:18:39;;:16;;;;-1:-1:-1;4254:18:39;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4244:29;;;;;;;;;;;-1:-1:-1;4244:29:39;;;4237:36;;-1:-1:-1;;4237:36:39;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4237:36:39;;;4244:29;;-1:-1:-1;;4237:36:39;;;;-1:-1:-1;4237:36:39;:::i;:::-;-1:-1:-1;;4237:36:39;;;;;-1:-1:-1;;4237:36:39;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;4237:36:39;;;;;-1:-1:-1;;4237:36:39;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;4237:36:39;;-1:-1:-1;4237:36:39;;;;;:::i;:::-;-1:-1:-1;4284:36:39;;-1:-1:-1;4292:10:39;4314:5;4284:29;:36::i;2833:591::-;240:48:56;575:8;;-1:-1:-1;;575:20:56;571:50;;604:17;;-1:-1:-1;;;604:17:56;;;;;;;;;;;571:50;470:1;631:19;;:8;2907:11:39;;;2903:68:::1;;2941:19;;-1:-1:-1::0;;;2941:19:39::1;;;;;;;;;;;2903:68;2982:15;2999:21:::0;3024:32:::1;3045:10;3024:20;:32::i;:::-;2981:75;;;;3072:10;3067:70;;3105:21;;-1:-1:-1::0;;;3105:21:39::1;;;;;;;;;;;3067:70;3165:6;3150;:12;;;:21;3146:84;;;3194:25;;-1:-1:-1::0;;;3194:25:39::1;;;;;;;;;;;3146:84;3256:6;3240;:12;;;:22;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;3292:10:39::1;::::0;3277:12:::1;::::0;::::1;::::0;:25:::1;3273:87;;;3318:31:::0;;-1:-1:-1;;3318:31:39::1;3334:15;3318:31;::::0;;3273:87:::1;3378:18;::::0;;;;::::1;::::0;;:9:::1;::::0;::::1;:18:::0;;-1:-1:-1;;;;;3378:18:39::1;::::0;;;;;;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;3370:47:::1;::::0;3410:6;;3378:18;:9;:18;;::::1;::::0;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;3378:18:39::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;;;3378:18:39;;;;-1:-1:-1;;3378:20:39::1;::::0;-1:-1:-1;;;3378:20:39;;:18:::1;::::0;::::1;::::0;-1:-1:-1;3378:20:39::1;::::0;::::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;3370:39:39::1;::::0;::::1;:47::i;:::-;-1:-1:-1::0;;427:1:56;671:23;;-1:-1:-1;2833:591:39:o;2280:489::-;2344:1;2331:9;:14;2327:68;;2368:16;;-1:-1:-1;;;2368:16:39;;;;;;;;;;;2327:68;2406:15;2423:21;2448:32;2469:10;2448:20;:32::i;:::-;2405:75;;;;2496:10;2491:70;;2529:21;;-1:-1:-1;;;2529:21:39;;;;;;;;;;;2491:70;2587:9;2571:6;:12;;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;2628:15:39;;-1:-1:-1;2611:13:39;;;;:32;;;;;;;;:::i;:::-;;2607:156;;2679:10;;2663:12;;;;:26;2659:94;;2709:29;;-1:-1:-1;;2709:29:39;2725:13;2709:29;;;2659:94;2317:452;;2280:489::o;5136:318::-;4620:15:55;:13;:15::i;:::-;4766:9:::1;:7;:9::i;:::-;5224:24:39::2;5251:14;:31;5296:1;:13:::0;::::2;5323:10;5347:2;5375:1;:13;;;5363:9;:25;;;;:::i;:::-;5251:147;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;::::0;;::::2;-1:-1:-1::0;;5251:147:39::2;::::0;::::2;;::::0;::::2;::::0;;;::::2;::::0;::::2;:::i;:::-;5224:174;;5409:38;5438:8;5409:28;:38::i;5644:1972::-:0;4696:18:55;:16;:18::i;:::-;5782:7:39::1;:14;5761:10;:17;:35;5757:109;;5819:36;;-1:-1:-1::0;;;5819:36:39::1;;;;;;;;;;;5757:109;5926:16;5924:18:::0;;5926:1:::1;::::0;5924:18:::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;6063:17:39;;5953:29:::1;::::0;;6090:1473:::1;6140:16;6123:14;:33;6090:1473;;;6174:24;6201:10;6212:14;6201:26;;;;;;;;:::i;:::-;;;;;;;6174:53;;6273:1;-1:-1:-1::0;;;;;6245:30:39::1;:16;-1:-1:-1::0;;;;;6245:30:39::1;;6241:379;;6295:23;6321:7;6329:14;6321:23;;;;;;;;:::i;:::-;;;;;;;6295:49;;6367:15;6386:1;6367:20:::0;6363:97:::1;;6418:23;;-1:-1:-1::0;;;6418:23:39::1;;;;;;;;;;;6363:97;6493:16;::::0;6478:1:::1;:32:::0;;;:14:::1;:32;::::0;;;;;;;-1:-1:-1;;;;;6478:50:39;::::1;::::0;;;;;;;:68;;;6565:40:::1;6531:15:::0;6565:40;::::1;:::i;:::-;;;6277:343;6241:379;-1:-1:-1::0;7522:16:39::1;;6090:1473;;;-1:-1:-1::0;;7572:13:39::1;:37:::0;-1:-1:-1;;5644:1972:39:o;3430:369::-;240:48:56;575:8;;-1:-1:-1;;575:20:56;571:50;;604:17;;-1:-1:-1;;;604:17:56;;;;;;;;;;;571:50;470:1;631:19;;:8;3506:11:39;;;3502:68:::1;;3540:19;;-1:-1:-1::0;;;3540:19:39::1;;;;;;;;;;;3502:68;3581:15;3598:21:::0;3623:32:::1;3644:10;3623:20;:32::i;:::-;3580:75;;;;3670:10;3665:70;;3703:21;;-1:-1:-1::0;;;3703:21:39::1;;;;;;;;;;;4442:138:55::0;4498:26;;-1:-1:-1;;;4498:26:55;;:10;:26;;;18186:51:83;4498:24:55;;;;18159:18:83;;4498:26:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4493:81;;4547:16;;-1:-1:-1;;;4547:16:55;;;;;;;;;;;4493:81;4442:138::o;4170:135::-;4223:22;;-1:-1:-1;;;4223:22:55;;:10;:22;;;18186:51:83;4223:20:55;;;;18159:18:83;;4223:22:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4218:81;;4268:20;;-1:-1:-1;;;4268:20:55;;;;;;;;;;;4311:125;4369:13;;4357:9;:25;4353:77;;;4405:14;;-1:-1:-1;;;4405:14:55;;;;;;;;;;;3353:588:54;3532:20;;:23;;;:32;:52;;-1:-1:-1;;;3532:52:54;;3428:29;;;;3532:37;;;;:52;;:32;3428:29;;3532:52;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3532:52:54;;;;;;;;;;;;:::i;:::-;3505:79;;3596:15;3613:21;3638:19;3648:8;3638:9;:19::i;:::-;3595:62;;;;3673:10;3668:70;;3706:21;;-1:-1:-1;;;3706:21:54;;;;;;;;;;;3668:70;3777:19;;3748:20;;3777:19;;;;-1:-1:-1;;;;;3777:19:54;3748:26;;;;:48;;;3777:19;;;;;;3806:24;;3777:19;;3806:24;:::i;:::-;;;;;;;;-1:-1:-1;;;;;3806:24:54;;;;;-1:-1:-1;;;;;3806:24:54;;;;;;3861:12;:20;;;:26;;;3840:6;:17;;;:47;;;;;;;:::i;:::-;;;;-1:-1:-1;;3897:18:54;;;:37;;;;;;;;-1:-1:-1;3897:37:54;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3897:37:54;-1:-1:-1;;;;;3897:37:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;3897:37:54;;;;;;;;;;;;-1:-1:-1;;3897:37:54;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;3897:37:54;;;;;;;;;;;;;;-1:-1:-1;;3897:37:54;-1:-1:-1;;;;;3897:37:54;;;;;;;;;;;;;;;;;-1:-1:-1;3897:37:54;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;3897:37:54;;;;;;;;;;;;-1:-1:-1;;3897:37:54;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;3897:37:54;;;;;;;;-1:-1:-1;3897:37:54;;;;;;;;;;;;;;;-1:-1:-1;;;3897:37:54;-1:-1:-1;;;;;;3897:37:54;;;-1:-1:-1;;;;;3897:37:54;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;3897:37:54;;;;;;;;;;;;-1:-1:-1;;3897:37:54;;;;;;;;;;-1:-1:-1;;;;;3353:588:54:o;4748:287::-;4826:6;4836:1;4826:11;4822:48;;4748:287;;:::o;4822:48::-;4930:98;4951:14;:2;-1:-1:-1;;;;;4951:12:54;;:14::i;:::-;4967:60;;;;;;;21558:25:83;;;4967:60:54;;;;;;;;;;21531:18:83;;;;4967:60:54;;;;;;;;-1:-1:-1;;;;;4967:60:54;-1:-1:-1;;;4967:60:54;;;4930:20;:98::i;5818:272::-;6027:17;;-1:-1:-1;;;6027:17:54;;5886:10;;;;;;6017:9;;5886:10;;6027:15;;;;:17;;:8;;:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6017:28;;;;;;;;;;;;;;-1:-1:-1;6017:28:54;6064:17;;;;;;;:9;;;:17;;-1:-1:-1;;;;;6064:17:54;;;;;;;;;;;;;;;;;;;;;;;6017:28;;-1:-1:-1;6064:17:54;;:9;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6064:17:54;;;;;;;;;;;;;;;;-1:-1:-1;;;6064:17:54;;;;-1:-1:-1;;6064:19:54;;-1:-1:-1;;;6064:19:54;;:17;;;;-1:-1:-1;6064:19:54;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6063:20;6055:28;;5921:169;5818:272;;;:::o;5250:372::-;5307:10;;;-1:-1:-1;;;;;5433:19:54;;5429:78;;5475:21;;-1:-1:-1;;;5475:21:54;;;;;;;;;;;5429:78;5543:28;;;;;;;;;;-1:-1:-1;;;;;5543:28:54;;;;;;;;;;;;;;;;;;;;;;;;5516:24;;5543:1;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5543:28:54;;;;;;;;;;;;;;;;-1:-1:-1;;;5543:28:54;;;;-1:-1:-1;;5543:35:54;;-1:-1:-1;;;5543:35:54;;:28;;;;-1:-1:-1;5543:35:54;;5572:5;;5543:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5543:35:54;;;;;;;;;;;;:::i;:::-;5516:62;;5596:19;5606:8;5596:9;:19::i;:::-;5589:26;;;;;;5250:372;;;:::o;13246:258:0:-;13354:7;13330:21;:31;13326:63;;;13370:19;;-1:-1:-1;;;13370:19:0;;;;;;;;;;;13326:63;13401:12;13419:10;-1:-1:-1;;;;;13419:15:0;13442:7;13419:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13400:54;;;13469:7;13464:33;;13485:12;;-1:-1:-1;;;13485:12:0;;;;;;;;;;;4143:412:54;4219:29;4301:37;4342:30;:28;:30::i;:::-;4412:15;;;;4383:20;;-1:-1:-1;;;;;4412:15:54;;;4383:26;;;;:44;4456:13;;;;4438:14;;;:31;;4296:76;;-1:-1:-1;4456:13:54;;-1:-1:-1;4438:14:54;-1:-1:-1;4412:15:54;;4438:31;;4456:13;;4438:31;:::i;:::-;;;;-1:-1:-1;;4479:20:54;;;:39;;;;;;;;-1:-1:-1;4479:39:54;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4479:39:54;-1:-1:-1;;;;;4479:39:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;4479:39:54;;;;;;;;;;;;-1:-1:-1;;4479:39:54;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;4479:39:54;;;;;;;;;;;;;;-1:-1:-1;;4479:39:54;-1:-1:-1;;;;;4479:39:54;;;;;;;;;;;;;;;;;-1:-1:-1;4479:39:54;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;4479:39:54;;;;;;;;;;;;-1:-1:-1;;4479:39:54;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;4479:39:54;;;;;;;;-1:-1:-1;4479:39:54;;;;;;;;;;;;;;;-1:-1:-1;;;4479:39:54;-1:-1:-1;;;;;;4479:39:54;;;-1:-1:-1;;;;;4479:39:54;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;4479:39:54;;;;;;;;;;;;-1:-1:-1;;4479:39:54;;;;;;;;;;4528:15;;;:20;;-1:-1:-1;;4528:15:54;-1:-1:-1;;4528:20:54;;-1:-1:-1;;;;;;;4528:20:54;;:::i;2356:528:0:-;2410:7;2506:9;2517;2530:15;2542:2;2530:11;:15::i;:::-;2505:40;;;;2560:4;2555:45;;-1:-1:-1;2587:2:0;;2356:528;-1:-1:-1;;2356:528:0:o;2555:45::-;2733:12;2747:11;2762:17;2776:2;2762:13;:17::i;:::-;2732:47;;;;2794:7;2789:89;;-1:-1:-1;2824:2:0;;2356:528;-1:-1:-1;;;;2356:528:0:o;2789:89::-;2864:3;2356:528;-1:-1:-1;;;;;2356:528:0:o;2565:166:19:-;2640:12;2671:53;2693:6;2701:4;2707:1;2710:13;2671:21;:53::i;:::-;2664:60;;2565:166;;;;;:::o;2733:416:54:-;3022:21;;2820:11;;;;;;;;2985:59;;3008:12;;-1:-1:-1;;;;;3022:21:54;2985:22;:59::i;:::-;-1:-1:-1;;;;;3067:28:54;;;;;;;:21;;;:28;;;;;;;;;3115:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2977:67;;-1:-1:-1;3067:28:54;;-1:-1:-1;3115:25:54;;3067:28;;3115:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3115:25:54;;;;;;;;;;;;;;;;-1:-1:-1;;;3115:25:54;;;;-1:-1:-1;;3115:27:54;;-1:-1:-1;;;3115:27:54;;:25;;;;-1:-1:-1;3115:27:54;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3114:28;3105:37;;2890:259;2733:416;;;:::o;4411:476:0:-;4467:9;4478;4636:8;4632:2;4628:17;-1:-1:-1;;;4763:6:0;4760:27;4757:114;;4814:4;4806:12;;-1:-1:-1;;;;;4845:2:0;4841:16;4835:22;;4757:114;;4411:476;;;:::o;7171:2211::-;7229:12;7243:11;8058:3;8055:1;8048:14;8141:2;8137;8133;8130:1;-1:-1:-1;;;;;8097:5:0;8086:58;8075:69;;8405:1;8399:8;8445:6;-1:-1:-1;;;;;8427:25:0;8420:32;;8828:6;8823:3;8819:16;8811:6;8807:29;8793:43;;8870:6;8862;8859:18;8849:103;;8908:5;8897:16;;8937:1;8930:8;;8849:103;;9290:7;9289:8;:34;;;-1:-1:-1;13641:16:0;9321:2;9301:22;;9289:34;9285:91;;;-1:-1:-1;9347:5:0;;;;-1:-1:-1;7171:2211:0;-1:-1:-1;7171:2211:0:o;9285:91::-;7171:2211;;;:::o;8154:80:19:-;8210:17;;-1:-1:-1;;;8210:17:19;;;;;;;;;;;4063:483;4239:12;4291:5;4267:21;:29;4263:108;;;4319:41;;-1:-1:-1;;;4319:41:19;;4354:4;4319:41;;;18186:51:83;18159:18;;4319:41:19;;;;;;;;4263:108;4381:12;4395:23;4422:6;-1:-1:-1;;;;;4422:11:19;4441:5;4448:4;4422:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4380:73;;;;4470:69;4497:6;4505:7;4514:10;4526:12;4470:26;:69::i;:::-;4463:76;;;;4063:483;;;;;;;:::o;3077:173:58:-;3163:6;3232:11;3190:33;3232:11;3197;3190:33;:::i;:::-;3189:39;;3227:1;3189:39;:::i;:::-;3188:55;;;;:::i;6395:692:19:-;6586:12;6614:7;6610:471;;;6641:10;:17;6662:1;6641:22;6637:339;;6865:6;-1:-1:-1;;;;;6865:18:19;;6887:1;6865:23;6861:101;;6919:24;;-1:-1:-1;;;6919:24:19;;-1:-1:-1;;;;;18204:32:83;;6919:24:19;;;18186:51:83;18159:18;;6919:24:19;18032:211:83;6861:101:19;-1:-1:-1;6996:10:19;6989:17;;6610:471;7037:33;7045:10;7057:12;8410:17;;:21;8406:411;;8638:10;8632:17;8694:15;8681:10;8677:2;8673:19;8666:44;8406:411;8754:14;:12;:14;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;14:129:83;-1:-1:-1;;;;;92:5:83;88:30;81:5;78:41;68:69;;133:1;130;123:12;148:245;206:6;259:2;247:9;238:7;234:23;230:32;227:52;;;275:1;272;265:12;227:52;314:9;301:23;333:30;357:5;333:30;:::i;:::-;382:5;148:245;-1:-1:-1;;;148:245:83:o;398:156::-;459:5;504:2;495:6;490:3;486:16;482:25;479:45;;;520:1;517;510:12;479:45;-1:-1:-1;542:6:83;398:156;-1:-1:-1;398:156:83:o;559:619::-;687:6;695;748:2;736:9;727:7;723:23;719:32;716:52;;;764:1;761;754:12;716:52;804:9;791:23;-1:-1:-1;;;;;874:2:83;866:6;863:14;860:34;;;890:1;887;880:12;860:34;913:68;973:7;964:6;953:9;949:22;913:68;:::i;:::-;903:78;;1034:2;1023:9;1019:18;1006:32;990:48;;1063:2;1053:8;1050:16;1047:36;;;1079:1;1076;1069:12;1047:36;;1102:70;1164:7;1153:8;1142:9;1138:24;1102:70;:::i;:::-;1092:80;;;559:619;;;;;:::o;1183:180::-;1242:6;1295:2;1283:9;1274:7;1270:23;1266:32;1263:52;;;1311:1;1308;1301:12;1263:52;-1:-1:-1;1334:23:83;;1183:180;-1:-1:-1;1183:180:83:o;1368:361::-;1458:6;1511:2;1499:9;1490:7;1486:23;1482:32;1479:52;;;1527:1;1524;1517:12;1479:52;1567:9;1554:23;-1:-1:-1;;;;;1592:6:83;1589:30;1586:50;;;1632:1;1629;1622:12;1586:50;1655:68;1715:7;1706:6;1695:9;1691:22;1655:68;:::i;1734:127::-;1795:10;1790:3;1786:20;1783:1;1776:31;1826:4;1823:1;1816:15;1850:4;1847:1;1840:15;1866:257;1938:4;1932:11;;;1970:17;;-1:-1:-1;;;;;2002:34:83;;2038:22;;;1999:62;1996:88;;;2064:18;;:::i;:::-;2100:4;2093:24;1866:257;:::o;2128:253::-;2200:2;2194:9;2242:4;2230:17;;-1:-1:-1;;;;;2262:34:83;;2298:22;;;2259:62;2256:88;;;2324:18;;:::i;2386:275::-;2457:2;2451:9;2522:2;2503:13;;-1:-1:-1;;2499:27:83;2487:40;;-1:-1:-1;;;;;2542:34:83;;2578:22;;;2539:62;2536:88;;;2604:18;;:::i;:::-;2640:2;2633:22;2386:275;;-1:-1:-1;2386:275:83:o;2666:183::-;2726:4;-1:-1:-1;;;;;2751:6:83;2748:30;2745:56;;;2781:18;;:::i;:::-;-1:-1:-1;2826:1:83;2822:14;2838:4;2818:25;;2666:183::o;2854:131::-;-1:-1:-1;;;;;2929:31:83;;2919:42;;2909:70;;2975:1;2972;2965:12;2990:737;3044:5;3097:3;3090:4;3082:6;3078:17;3074:27;3064:55;;3115:1;3112;3105:12;3064:55;3151:6;3138:20;3177:4;3201:60;3217:43;3257:2;3217:43;:::i;:::-;3201:60;:::i;:::-;3295:15;;;3381:1;3377:10;;;;3365:23;;3361:32;;;3326:12;;;;3405:15;;;3402:35;;;3433:1;3430;3423:12;3402:35;3469:2;3461:6;3457:15;3481:217;3497:6;3492:3;3489:15;3481:217;;;3577:3;3564:17;3594:31;3619:5;3594:31;:::i;:::-;3638:18;;3676:12;;;;3514;;3481:217;;;-1:-1:-1;3716:5:83;2990:737;-1:-1:-1;;;;;;2990:737:83:o;3732:1138::-;3850:6;3858;3911:2;3899:9;3890:7;3886:23;3882:32;3879:52;;;3927:1;3924;3917:12;3879:52;3967:9;3954:23;-1:-1:-1;;;;;4037:2:83;4029:6;4026:14;4023:34;;;4053:1;4050;4043:12;4023:34;4076:61;4129:7;4120:6;4109:9;4105:22;4076:61;:::i;:::-;4066:71;;4156:2;4146:12;;4211:2;4200:9;4196:18;4183:32;4240:2;4230:8;4227:16;4224:36;;;4256:1;4253;4246:12;4224:36;4279:24;;;-1:-1:-1;4334:4:83;4326:13;;4322:27;-1:-1:-1;4312:55:83;;4363:1;4360;4353:12;4312:55;4399:2;4386:16;4422:60;4438:43;4478:2;4438:43;:::i;4422:60::-;4516:15;;;4598:1;4594:10;;;;4586:19;;4582:28;;;4547:12;;;;4622:19;;;4619:39;;;4654:1;4651;4644:12;4619:39;4678:11;;;;4698:142;4714:6;4709:3;4706:15;4698:142;;;4780:17;;4768:30;;4731:12;;;;4818;;;;4698:142;;;4859:5;4849:15;;;;;;;3732:1138;;;;;:::o;4875:127::-;4936:10;4931:3;4927:20;4924:1;4917:31;4967:4;4964:1;4957:15;4991:4;4988:1;4981:15;5007:128;5074:9;;;5095:11;;;5092:37;;;5109:18;;:::i;5249:114::-;5333:4;5326:5;5322:16;5315:5;5312:27;5302:55;;5353:1;5350;5343:12;5368:873;5430:3;5476:5;5463:19;5491:31;5514:7;5491:31;:::i;:::-;5556:4;5543:18;5531:31;;5621:4;5610:16;;5597:30;5678:14;5674:26;;;-1:-1:-1;;5670:40:83;5646:65;;5636:93;;5725:1;5722;5715:12;5636:93;5753:30;;5864:4;5851:18;;;5806:21;-1:-1:-1;;;;;5881:30:83;;5878:50;;;5924:1;5921;5914:12;5878:50;5973:6;5957:14;5953:27;5944:7;5940:41;5937:61;;;5994:1;5991;5984:12;5937:61;6030:4;6023;6018:3;6014:14;6007:28;6067:6;6060:4;6055:3;6051:14;6044:30;6119:6;6110:7;6105:2;6100:3;6096:12;6083:43;6169:1;6164:2;6155:6;6150:3;6146:16;6142:25;6135:36;6232:2;6225;6221:7;6216:2;6208:6;6204:15;6200:29;6195:3;6191:39;6187:48;6180:55;;;;5368:873;;;;:::o;6246:1707::-;6583:3;6572:9;6565:22;6546:4;6625:3;6614:9;6610:19;6664:6;6651:20;6680:30;6704:5;6680:30;:::i;:::-;-1:-1:-1;;;;;6784:14:83;;;6778:3;6763:19;;6756:43;6818:4;;6870:15;;;6857:29;6937:14;6933:27;;;-1:-1:-1;;6929:41:83;6905:66;;6895:94;;6985:1;6982;6975:12;6895:94;7013:31;;7112:16;;;;7067:21;7140:14;;;7137:34;;;7167:1;7164;7157:12;7137:34;7223:6;7220:1;7216:14;7200;7196:35;7187:7;7183:49;7180:69;;;7245:1;7242;7235:12;7180:69;7286:4;7280:3;7265:19;;7258:33;7326:22;;;;7406:7;7379:3;7364:19;;;-1:-1:-1;7431:1:83;;7441:283;7455:6;7452:1;7449:13;7441:283;;;7532:6;7519:20;7552:33;7577:7;7552:33;:::i;:::-;-1:-1:-1;;;;;7610:33:83;7598:46;;7699:15;;;;7664:12;;;;7640:1;7470:9;;;;;7441:283;;;-1:-1:-1;;;;;;;5206:31:83;;7760:18;;;5194:44;7826:9;7821:3;7817:19;7810:4;7799:9;7795:20;7788:49;7854:50;7900:3;7892:6;7854:50;:::i;:::-;7846:58;;;;;7940:6;7935:2;7924:9;7920:18;7913:34;6246:1707;;;;;;;:::o;7958:136::-;8036:13;;8058:30;8036:13;8058:30;:::i;:::-;7958:136;;;:::o;8099:1097::-;8165:5;8213:4;8201:9;8196:3;8192:19;8188:30;8185:50;;;8231:1;8228;8221:12;8185:50;8253:22;;:::i;:::-;8244:31;;8305:9;8299:16;8324:32;8348:7;8324:32;:::i;:::-;8365:22;;8406:2;8437:18;;;8431:25;-1:-1:-1;;;;;8468:30:83;;8465:50;;;8511:1;8508;8501:12;8465:50;8534:22;;8587:4;8579:13;;8575:23;-1:-1:-1;8565:51:83;;8612:1;8609;8602:12;8565:51;8641:2;8635:9;8664:60;8680:43;8720:2;8680:43;:::i;8664:60::-;8758:15;;;8840:1;8836:10;;;;8828:19;;8824:28;;;8789:12;;;;8864:15;;;8861:35;;;8892:1;8889;8882:12;8861:35;8916:11;;;;8936:216;8952:6;8947:3;8944:15;8936:216;;;9027:3;9021:10;9044:33;9069:7;9044:33;:::i;:::-;9090:20;;8969:12;;;;9130;;;;8936:216;;;9184:5;9179:2;9172:5;9168:14;9161:29;;;;;;8099:1097;;;;:::o;9201:250::-;9286:1;9296:113;9310:6;9307:1;9304:13;9296:113;;;9386:11;;;9380:18;9367:11;;;9360:39;9332:2;9325:10;9296:113;;;-1:-1:-1;;9443:1:83;9425:16;;9418:27;9201:250::o;9456:509::-;9509:5;9562:3;9555:4;9547:6;9543:17;9539:27;9529:55;;9580:1;9577;9570:12;9529:55;9609:6;9603:13;-1:-1:-1;;;;;9631:2:83;9628:26;9625:52;;;9657:18;;:::i;:::-;9701:55;9744:2;9725:13;;-1:-1:-1;;9721:27:83;9750:4;9717:38;9701:55;:::i;:::-;9781:2;9772:7;9765:19;9827:3;9820:4;9815:2;9807:6;9803:15;9799:26;9796:35;9793:55;;;9844:1;9841;9834:12;9793:55;9857:77;9931:2;9924:4;9915:7;9911:18;9904:4;9896:6;9892:17;9857:77;:::i;9970:949::-;10038:5;10086:4;10074:9;10069:3;10065:19;10061:30;10058:50;;;10104:1;10101;10094:12;10058:50;10126:22;;:::i;:::-;10117:31;;10177:9;10171:16;-1:-1:-1;;;;;10247:2:83;10239:6;10236:14;10233:34;;;10263:1;10260;10253:12;10233:34;10290:66;10352:3;10343:6;10332:9;10328:22;10290:66;:::i;:::-;10283:5;10276:81;10403:2;10392:9;10388:18;10382:25;10366:41;;10432:2;10422:8;10419:16;10416:36;;;10448:1;10445;10438:12;10416:36;10471:24;;;;10525:4;10511:12;;;10507:23;10504:43;;;10543:1;10540;10533:12;10504:43;10571:22;;:::i;:::-;10623:2;10617:9;10635:31;10658:7;10635:31;:::i;:::-;10675:24;;10738:2;10730:11;;10724:18;10754:16;;;10751:36;;;10783:1;10780;10773:12;10751:36;10821:51;10868:3;10857:8;10853:2;10849:17;10821:51;:::i;:::-;10816:2;10807:7;10803:16;10796:77;;10905:7;10900:2;10893:5;10889:14;10882:31;;;;9970:949;;;;:::o;10924:177::-;11002:13;;-1:-1:-1;;;;;;11044:32:83;;11034:43;;11024:71;;11091:1;11088;11081:12;11106:164;11182:13;;11231;;11224:21;11214:32;;11204:60;;11260:1;11257;11250:12;11275:1533;11372:6;11425:2;11413:9;11404:7;11400:23;11396:32;11393:52;;;11441:1;11438;11431:12;11393:52;11474:9;11468:16;-1:-1:-1;;;;;11544:2:83;11536:6;11533:14;11530:34;;;11560:1;11557;11550:12;11530:34;11583:22;;;;11639:4;11621:16;;;11617:27;11614:47;;;11657:1;11654;11647:12;11614:47;11683:22;;:::i;:::-;11736:2;11730:9;11764:2;11754:8;11751:16;11748:36;;;11780:1;11777;11770:12;11748:36;11803:17;;11854:4;11836:16;;;11832:27;11829:47;;;11872:1;11869;11862:12;11829:47;11900:22;;:::i;:::-;11953:2;11947:9;11981:2;11971:8;11968:16;11965:36;;;11997:1;11994;11987:12;11965:36;12026:67;12085:7;12074:8;12070:2;12066:17;12026:67;:::i;:::-;12017:7;12010:84;;12133:2;12129;12125:11;12119:18;12162:2;12152:8;12149:16;12146:36;;;12178:1;12175;12168:12;12146:36;12216:67;12275:7;12264:8;12260:2;12256:17;12216:67;:::i;:::-;12211:2;12202:7;12198:16;12191:93;;12334:4;12330:2;12326:13;12320:20;12313:4;12304:7;12300:18;12293:48;12375:41;12412:2;12408;12404:11;12375:41;:::i;:::-;12370:2;12361:7;12357:16;12350:67;12452:42;12489:3;12485:2;12481:12;12452:42;:::i;:::-;12446:3;12437:7;12433:17;12426:69;12534:3;12530:2;12526:12;12520:19;12564:2;12554:8;12551:16;12548:36;;;12580:1;12577;12570:12;12548:36;12619:55;12666:7;12655:8;12651:2;12647:17;12619:55;:::i;:::-;12613:3;12600:17;;12593:82;-1:-1:-1;12684:22:83;;-1:-1:-1;12738:39:83;12773:2;12765:11;;12738:39;:::i;:::-;12733:2;12722:14;;12715:63;12726:5;11275:1533;-1:-1:-1;;;;;11275:1533:83:o;12813:594::-;12919:9;12978:4;12970:5;12954:14;12950:26;12946:37;12943:57;;;12996:1;12993;12986:12;12943:57;13024:22;;:::i;:::-;13083:5;13070:19;13098:32;13122:7;13098:32;:::i;:::-;13139:24;;13210:2;13199:14;;13186:28;-1:-1:-1;;;;;13226:30:83;;13223:50;;;13269:1;13266;13259:12;13223:50;13307:64;13356:14;13347:6;13340:5;13336:18;13307:64;:::i;:::-;13302:2;13289:16;;13282:90;-1:-1:-1;13293:7:83;12813:594;-1:-1:-1;;12813:594:83:o;13412:689::-;13463:3;13502:4;13497:3;13493:14;-1:-1:-1;;;;;13538:5:83;13532:12;13528:37;13523:3;13516:50;13585:4;13635:2;13628:5;13624:14;13618:21;13669:4;13664:2;13659:3;13655:12;13648:26;13696:4;13729:12;13723:19;13764:6;13758:4;13751:20;13798:2;13793:3;13789:12;13780:21;;13842:2;13828:12;13824:21;13810:35;;13863:1;13854:10;;13873:201;13887:6;13884:1;13881:13;13873:201;;;13954:13;;-1:-1:-1;;;;;13950:39:83;13936:54;;14049:15;;;;13986:1;13902:9;;;;;14012:14;;;;13873:201;;14106:271;14297:2;14286:9;14279:21;14260:4;14317:54;14367:2;14356:9;14352:18;14344:6;14317:54;:::i;14382:251::-;14452:6;14505:2;14493:9;14484:7;14480:23;14476:32;14473:52;;;14521:1;14518;14511:12;14473:52;14553:9;14547:16;14572:31;14597:5;14572:31;:::i;14638:368::-;14857:2;14846:9;14839:21;14820:4;14877:54;14927:2;14916:9;14912:18;14904:6;14877:54;:::i;:::-;14869:62;;14996:1;14992;14987:3;14983:11;14979:19;14971:6;14967:32;14962:2;14951:9;14947:18;14940:60;14638:368;;;;;:::o;15011:363::-;15108:6;15161:2;15149:9;15140:7;15136:23;15132:32;15129:52;;;15177:1;15174;15167:12;15129:52;15210:9;15204:16;-1:-1:-1;;;;;15235:6:83;15232:30;15229:50;;;15275:1;15272;15265:12;15229:50;15298:70;15360:7;15351:6;15340:9;15336:22;15298:70;:::i;15379:127::-;15440:10;15435:3;15431:20;15428:1;15421:31;15471:4;15468:1;15461:15;15495:4;15492:1;15485:15;15511:180;-1:-1:-1;;;;;15616:10:83;;;15628;;;15612:27;;15651:11;;;15648:37;;;15665:18;;:::i;:::-;15648:37;15511:180;;;;:::o;15696:183::-;-1:-1:-1;;;;;15815:10:83;;;15803;;;15799:27;;15838:12;;;15835:38;;;15853:18;;:::i;15884:184::-;15954:6;16007:2;15995:9;15986:7;15982:23;15978:32;15975:52;;;16023:1;16020;16013:12;15975:52;-1:-1:-1;16046:16:83;;15884:184;-1:-1:-1;15884:184:83:o;16073:125::-;16138:9;;;16159:10;;;16156:36;;;16172:18;;:::i;16340:741::-;16399:3;16438:4;16433:3;16429:14;-1:-1:-1;;;;;16474:5:83;16468:12;16464:37;16459:3;16452:50;16521:4;16565:2;16558:5;16554:14;16587:4;16621;16616:2;16611:3;16607:12;16600:26;16648:4;16681:12;16675:19;16716:6;16710:4;16703:20;16750:2;16745:3;16741:12;16732:21;;16772:12;16769:1;16762:23;16821:2;16818:1;16808:16;16794:30;;16842:1;16833:10;;16852:202;16866:6;16863:1;16860:13;16852:202;;;16934:13;;-1:-1:-1;;;;;16930:39:83;16916:54;;17029:15;;;;16881:10;;;;16992:14;;;;16852:202;;;-1:-1:-1;17070:5:83;16340:741;-1:-1:-1;;;;;;;16340:741:83:o;17086:669::-;17418:3;17407:9;17400:22;17381:4;17445:63;17503:3;17492:9;17488:19;17480:6;17445:63;:::i;:::-;-1:-1:-1;;;;;17544:32:83;;17539:2;17524:18;;17517:60;17613:22;;;17608:2;17593:18;;17586:50;17653:53;17617:6;17691;17653:53;:::i;:::-;17645:61;;;17742:6;17737:2;17726:9;17722:18;17715:34;17086:669;;;;;;;:::o;17760:135::-;17799:3;17820:17;;;17817:43;;17840:18;;:::i;:::-;-1:-1:-1;17887:1:83;17876:13;;17760:135::o;17900:127::-;17961:10;17956:3;17952:20;17949:1;17942:31;17992:4;17989:1;17982:15;18016:4;18013:1;18006:15;18248:202;18315:6;18368:2;18356:9;18347:7;18343:23;18339:32;18336:52;;;18384:1;18381;18374:12;18336:52;18407:37;18434:9;18407:37;:::i;18455:482::-;18725:2;18714:9;18707:21;18688:4;18751:54;18801:2;18790:9;18786:18;18778:6;18751:54;:::i;:::-;18853:9;18845:6;18841:22;18836:2;18825:9;18821:18;18814:50;18881;18924:6;18916;18881:50;:::i;18942:380::-;19021:1;19017:12;;;;19064;;;19085:61;;19139:4;19131:6;19127:17;19117:27;;19085:61;19192:2;19184:6;19181:14;19161:18;19158:38;19155:161;;19238:10;19233:3;19229:20;19226:1;19219:31;19273:4;19270:1;19263:15;19301:4;19298:1;19291:15;19327:544;19428:2;19423:3;19420:11;19417:448;;;19464:1;19489:5;19485:2;19478:17;19534:4;19530:2;19520:19;19604:2;19592:10;19588:19;19585:1;19581:27;19575:4;19571:38;19640:4;19628:10;19625:20;19622:47;;;-1:-1:-1;19663:4:83;19622:47;19718:2;19713:3;19709:12;19706:1;19702:20;19696:4;19692:31;19682:41;;19773:82;19791:2;19784:5;19781:13;19773:82;;;19836:17;;;19817:1;19806:13;19773:82;;;19777:3;;;19327:544;;;:::o;20047:1360::-;20171:3;20165:10;-1:-1:-1;;;;;20190:6:83;20187:30;20184:56;;;20220:18;;:::i;:::-;20249:96;20338:6;20298:38;20330:4;20324:11;20298:38;:::i;:::-;20292:4;20249:96;:::i;:::-;20400:4;;20464:2;20453:14;;20481:1;20476:674;;;;21194:1;21211:6;21208:89;;;-1:-1:-1;21263:19:83;;;21257:26;21208:89;-1:-1:-1;;20004:1:83;20000:11;;;19996:24;19992:29;19982:40;20028:1;20024:11;;;19979:57;21310:81;;20446:955;;20476:674;16287:1;16280:14;;;16324:4;16311:18;;-1:-1:-1;;20512:20:83;;;20641:236;20655:7;20652:1;20649:14;20641:236;;;20744:19;;;20738:26;20723:42;;20836:27;;;;20804:1;20792:14;;;;20671:19;;20641:236;;;20645:3;20905:6;20896:7;20893:19;20890:201;;;20966:19;;;20960:26;-1:-1:-1;;21049:1:83;21045:14;;;21061:3;21041:24;21037:37;21033:42;21018:58;21003:74;;20890:201;-1:-1:-1;;;;;21137:1:83;21121:14;;;21117:22;21104:36;;-1:-1:-1;20047:1360:83:o;22012:287::-;22141:3;22179:6;22173:13;22195:66;22254:6;22249:3;22242:4;22234:6;22230:17;22195:66;:::i;:::-;22277:16;;;;;22012:287;-1:-1:-1;;22012:287:83:o;22304:296::-;22343:1;-1:-1:-1;;;;;22414:2:83;22411:1;22407:10;22436:3;22426:134;;22482:10;22477:3;22473:20;22470:1;22463:31;22517:4;22514:1;22507:15;22545:4;22542:1;22535:15;22426:134;22578:10;;22574:20;;;;;22304:296;-1:-1:-1;;22304:296:83:o;22605:257::-;-1:-1:-1;;;;;22726:10:83;;;22738;;;22722:27;22769:20;;;;22676:18;22808:24;;;22798:58;;22836:18;;:::i;:::-;22798:58;;22605:257;;;;:::o", + "object": "0x6080604052600436106100865760003560e01c806345f544851161005957806345f54485146100dd5780635a627dbc146100fd5780636b2c1eef14610105578063f75bc55714610118578063f8703bb81461013857600080fd5b806313f353881461008b57806318f44b70146100ad5780631aa3a008146100c057806341c0e1b5146100c8575b600080fd5b34801561009757600080fd5b506100ab6100a6366004611d2e565b610158565b005b6100ab6100bb366004611d6a565b610227565b6100ab610366565b3480156100d457600080fd5b506100ab6105ec565b3480156100e957600080fd5b506100ab6100f8366004611dcd565b610871565b6100ab610a75565b6100ab610113366004611de6565b610b29565b34801561012457600080fd5b506100ab610133366004611f56565b610bdc565b34801561014457600080fd5b506100ab610153366004611dcd565b610ce8565b610160610d80565b600f54600160401b900460ff161561018a5760405162dc149f60e41b815260040160405180910390fd5b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27080546fffffffffffffffff00000000000000001916600160401b6001600160401b038416908102919091179091557f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e271805467ffffffffffffffff1916909117905550600f805468ff00000000000000001916600160401b179055565b61022f610e12565b610237610ea2565b600073__$33b79814e84bf6cf5e47244090b19ce5f8$__6399aa0eb48433856000600c0154346102679190612026565b6040518563ffffffff1660e01b815260040161028694939291906120d1565b600060405180830381865af41580156102a3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102cb91908101906123dc565b90506102d681610ec5565b6103616102e2846124f9565b604051632cff562160e11b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__916359feac429161031891906004016125af565b602060405180830381865af4158015610335573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035991906125c2565b600c54611199565b505050565b600a5434101561038957604051631036b5ad60e31b815260040160405180910390fd5b604080518082018252600880546001600160401b03168252600980548451602082810282018101909652818152600095808601939192908301828280156103f957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116103db575b50505091909252505060405163aa5106cb60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263aa5106cb925061043a9133906004016125df565b600060405180830381865af4158015610457573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261047f9190810190612609565b905060008061048d836111f7565b9150915081156104b057604051631b538cdf60e11b815260040160405180910390fd5b825160048201805467ffffffffffffffff19166001600160401b0390921691909117815560208085015180518693926104f0926005870192910190611af2565b50503482555060038101805460ff60801b1916600160801b1790554360018201556040516390ba52cf60e01b815260079073__$a0fe38a9a81205afccc10810b09a4d3f45$__906390ba52cf9061054b9087906004016125af565b602060405180830381865af4158015610568573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058c9190612653565b815460018082018455600093845260209093200155600e80546018906105c3908490600160c01b90046001600160401b031661266c565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550505050565b6000806105f83361138a565b915091508161061a57604051630e991abd60e41b815260040160405180910390fd5b60028101541561063d57604051637c67c70160e11b815260040160405180910390fd5b8054600e805460019190601890610665908490600160c01b90046001600160401b0316612693565b82546101009290920a6001600160401b03818102199093169183160217909155604080518082018252600486018054909316815260058601805483516020808302820181019095528181526000965086959394808601939192908301828280156106f857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116106da575b5050509190925250506040516390ba52cf60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__926390ba52cf9250610737916004016125af565b602060405180830381865af4158015610754573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107789190612653565b815260208101919091526040016000908120818155600181018290556002810182905560038101805470ffffffffffffffffffffffffffffffffff1916905560048101805467ffffffffffffffff19168155909190816107db6005850182611b57565b505060068201805467ffffffffffffffff19168155600081816108016007870182611b57565b505060028201805467ffffffffffffffff1916905560006003830181905561082d906004840190611b78565b61083b600583016000611b99565b60068201600090556007820160006108539190611bba565b506108649050600e83016000611b78565b50610361905033826114c5565b7f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600958054600019016108b5576040516329f745a760e01b815260040160405180910390fd5b6001815560008290036108db5760405163c79cad7b60e01b815260040160405180910390fd5b6000806108e73361138a565b915091508161090957604051630e991abd60e41b815260040160405180910390fd5b805484111561092b576040516379b33e7960e01b815260040160405180910390fd5b8381600001600082825461093f9190612026565b9091555050600a54815410156109655760038101805460ff60801b1916600160811b1790555b6040805180820182526004830180546001600160401b031682526005840180548451602082810282018101909652818152610a6c958a9594938186019390918301828280156109dd57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109bf575b505050919092525050604051632cff562160e11b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__926359feac429250610a1c916004016125af565b602060405180830381865af4158015610a39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5d91906125c2565b6001600160a01b0316906114c5565b50506000905550565b60003411610a9657604051631036b5ad60e31b815260040160405180910390fd5b600080610aa23361138a565b9150915081610ac457604051630e991abd60e41b815260040160405180910390fd5b34816000016000828254610ad891906126b3565b90915550600290506003820154600160801b900460ff166005811115610b0057610b0061263d565b03610b2557600a54815410610b255760038101805460ff60801b1916600160801b1790555b5050565b610b31610e12565b610b39610ea2565b600073__$33b79814e84bf6cf5e47244090b19ce5f8$__631860845e600060080133856000600c015434610b6d9190612026565b6040518563ffffffff1660e01b8152600401610b8c9493929190612733565b600060405180830381865af4158015610ba9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610bd191908101906123dc565b9050610b258161155a565b610be4610d80565b8051825114610c065760405163465f0a7d60e01b815260040160405180910390fd5b600b8054600090610c1690612779565b909155508151600090815b81811015610cdf576000858281518110610c3d57610c3d612792565b6020026020010151905060006001600160a01b0316816001600160a01b031614610cd6576000858381518110610c7557610c75612792565b6020026020010151905080600003610ca05760405163389b457d60e01b815260040160405180910390fd5b600b5460009081526003602090815260408083206001600160a01b03861684529091529020819055610cd281866126b3565b9450505b50600101610c21565b5050600d555050565b7f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095805460001901610d2c576040516329f745a760e01b815260040160405180910390fd5b600181556000829003610d525760405163c79cad7b60e01b815260040160405180910390fd5b600080610d5e3361138a565b915091508161096557604051630e991abd60e41b815260040160405180910390fd5b604051635d3f8a6960e01b815233600482015273__$e800e3908cdbb6b1b5bd452383a17b18f7$__90635d3f8a6990602401602060405180830381865af4158015610dcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df391906127a8565b610e105760405163f0d97f3b60e01b815260040160405180910390fd5b565b604051630972932760e21b815233600482015273__$e800e3908cdbb6b1b5bd452383a17b18f7$__906325ca4c9c90602401602060405180830381865af4158015610e61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8591906127a8565b610e1057604051630a23da2b60e31b815260040160405180910390fd5b600c54341015610e10576040516334472ad760e11b815260040160405180910390fd5b8051602001515160405163089032d560e01b8152600091829173__$a0fe38a9a81205afccc10810b09a4d3f45$__9163089032d591610f0a91906008906004016127c3565b600060405180830381865af4158015610f27573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f4f9190810190612609565b9050600080610f5d836111f7565b9150915081610f7f57604051630e991abd60e41b815260040160405180910390fd5b60038101805486516001600160401b03909116606090910181905260019190600090610fac90849061266c565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550846000015160400151816002016000828254610fec91906126b3565b9091555050600e810180546001808201835560009283526020928390208851805180518051600c909602909301805467ffffffffffffffff19166001600160401b039096169590951785558286015180518c97939587959394869493859361105b938501929190910190611af2565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190611091908261286a565b505050506020838101518051805160048601805467ffffffffffffffff19166001600160401b039092169190911781558184015180519395509093919284926110e1926005890192910190611af2565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190611117908261286a565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a820190611174908261286a565b50505060209190910151600b909101805460ff19169115159190911790555050505050565b806000036111a5575050565b6103616111ba836001600160a01b0316611765565b6040805160248082018690528251808303909101815260449091019091526020810180516001600160e01b0316632a7edd8f60e21b1790526117ac565b6040516390ba52cf60e01b8152600090819081908190819073__$a0fe38a9a81205afccc10810b09a4d3f45$__906390ba52cf906112399089906004016125af565b602060405180830381865af4158015611256573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127a9190612653565b81526020808201929092526040908101600020815180830183526004820180546001600160401b03168252600583018054855181880281018801909652808652939750919490938582019390929183018282801561130157602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116112e3575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e8989250611340916004016125af565b602060405180830381865af415801561135d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138191906127a8565b15925050915091565b600080806001600160a01b0384166113b5576040516370e4510960e01b815260040160405180910390fd5b6040805180820182526008830180546001600160401b0316825260098401805484516020828102820181019096528181526000958086019391929083018282801561142957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161140b575b50505091909252505060405163aa5106cb60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263aa5106cb925061146a9189906004016125df565b600060405180830381865af4158015611487573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114af9190810190612609565b90506114ba816111f7565b935093505050915091565b804710156114e65760405163356680b760e01b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611533576040519150601f19603f3d011682016040523d82523d6000602084013e611538565b606091505b505090508061036157604051633204506f60e01b815260040160405180910390fd5b6000806115656117c6565b600e85015486516001600160401b03909116606090910152600c850154600382018054929550909350915060009061159e9084906126b3565b90915550506004810180546001808201835560009283526020928390208651805180518051600c909602909301805467ffffffffffffffff19166001600160401b039096169590951785558286015180518a97939587959394869493859361160d938501929190910190611af2565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190611643908261286a565b505050506020838101518051805160048601805467ffffffffffffffff19166001600160401b03909216919091178155818401518051939550909391928492611693926005890192910190611af2565b505050602082810151805160028401805460ff191660ff9092169190911781559181015190919060038401906116c9908261286a565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a820190611726908261286a565b50505060209190910151600b909101805460ff1916911515919091179055600e82018054600191906000906105c39084906001600160401b031661266c565b6000806000611773846118fc565b915091508161178457509192915050565b60008061179083611938565b91509150816117a3575093949350505050565b95945050505050565b60606117bd838360006119a26119bb565b90505b92915050565b600f546000908190819081906117e69043906001600160401b0316611a61565b6001600160401b038082166000908152600284016020908152604091829020825180840184528154909416845260018101805484518185028101850190955280855295985090965092938693858301939290919083018282801561187357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611855575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e89892506118b2916004016125af565b602060405180830381865af41580156118cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f391906127a8565b15935050909192565b60008073ffffffffffffffffffffffff0000000000000000831660ff60981b810361193257600192506001600160401b03841691505b50915091565b600080826000526016600a602060006002607f60991b015afa9150600051806001600160a01b031691508060a01c61ffff16905061040a811461197e5760009250600091505b5081158061198d57503d601614155b1561199d57506000928392509050565b915091565b604051630a12f52160e11b815260040160405180910390fd5b6060824710156119e55760405163cd78605960e01b81523060048201526024015b60405180910390fd5b600080866001600160a01b03168587604051611a019190612929565b60006040518083038185875af1925050503d8060008114611a3e576040519150601f19603f3d011682016040523d82523d6000602084013e611a43565b606091505b5091509150611a5487838387611a83565b925050505b949350505050565b600081611a6e8185612945565b611a7990600161266c565b6117bd9190612979565b60608315611ad1578251600003611aca57846001600160a01b03163b600003611aca57604051639996b31560e01b81526001600160a01b03861660048201526024016119dc565b5081611a59565b611a598383815115611ae65781518083602001fd5b6119a28163ffffffff16565b828054828255906000526020600020908101928215611b47579160200282015b82811115611b4757825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611b12565b50611b53929150611bf0565b5090565b5080546000825590600052602060002090810190611b759190611bf0565b50565b50805460008255600c0290600052602060002090810190611b759190611c05565b5080546000825560030290600052602060002090810190611b759190611cd7565b508054611bc6906127e8565b6000825580601f10611bd6575050565b601f016020900490600052602060002090810190611b7591905b5b80821115611b535760008155600101611bf1565b80821115611b5357805467ffffffffffffffff191681556000818181818181611c316001830182611b57565b505060028201805460ff191681556000611c4e6003850182611bba565b5050505060048201805467ffffffffffffffff1916815560008181611c766005870182611b57565b505060028201805460ff191681556000611c936003850182611bba565b50506000600885018190556009850180546001600160601b0319169055611cc09250600a85019150611bba565b505050600b8101805460ff19169055600c01611c05565b80821115611b5357805467ffffffffffffffff1916815560008181611cff6001830182611b57565b50611d109050600283016000611b57565b50600301611cd7565b6001600160401b0381168114611b7557600080fd5b600060208284031215611d4057600080fd5b8135611d4b81611d19565b9392505050565b600060408284031215611d6457600080fd5b50919050565b60008060408385031215611d7d57600080fd5b82356001600160401b0380821115611d9457600080fd5b611da086838701611d52565b93506020850135915080821115611db657600080fd5b50611dc385828601611d52565b9150509250929050565b600060208284031215611ddf57600080fd5b5035919050565b600060208284031215611df857600080fd5b81356001600160401b03811115611e0e57600080fd5b611a5984828501611d52565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715611e5257611e52611e1a565b60405290565b60405160c081016001600160401b0381118282101715611e5257611e52611e1a565b604051601f8201601f191681016001600160401b0381118282101715611ea257611ea2611e1a565b604052919050565b60006001600160401b03821115611ec357611ec3611e1a565b5060051b60200190565b6001600160a01b0381168114611b7557600080fd5b600082601f830112611ef357600080fd5b81356020611f08611f0383611eaa565b611e7a565b82815260059290921b84018101918181019086841115611f2757600080fd5b8286015b84811015611f4b578035611f3e81611ecd565b8352918301918301611f2b565b509695505050505050565b60008060408385031215611f6957600080fd5b82356001600160401b0380821115611f8057600080fd5b611f8c86838701611ee2565b9350602091508185013581811115611fa357600080fd5b85019050601f81018613611fb657600080fd5b8035611fc4611f0382611eaa565b81815260059190911b82018301908381019088831115611fe357600080fd5b928401925b8284101561200157833582529284019290840190611fe8565b80955050505050509250929050565b634e487b7160e01b600052601160045260246000fd5b818103818111156117c0576117c0612010565b60ff81168114611b7557600080fd5b6000813561205581612039565b60ff168352602082013536839003601e1901811261207257600080fd5b82016020810190356001600160401b0381111561208e57600080fd5b80360382131561209d57600080fd5b60406020860152806040860152808260608701376000606082870101526060601f19601f8301168601019250505092915050565b60808152600060c0820186356120e681611d19565b6001600160401b03908116608085015260209088820135368a9003601e1901811261211057600080fd5b890182810190358281111561212457600080fd5b8060051b360382131561213657600080fd5b604060a0880152938490529260e0860191506000905b8082101561217e57843561215f81611ecd565b6001600160a01b0316835293830193918301916001919091019061214c565b50506001600160a01b0388168583015284810360408601526121a08188612048565b935050505082606083015295945050505050565b80516121bf81611d19565b919050565b6000604082840312156121d657600080fd5b6121de611e30565b905081516121eb81611d19565b81526020828101516001600160401b0381111561220757600080fd5b8301601f8101851361221857600080fd5b8051612226611f0382611eaa565b81815260059190911b8201830190838101908783111561224557600080fd5b928401925b8284101561226c57835161225d81611ecd565b8252928401929084019061224a565b8085870152505050505092915050565b60005b8381101561229757818101518382015260200161227f565b50506000910152565b600082601f8301126122b157600080fd5b81516001600160401b038111156122ca576122ca611e1a565b6122dd601f8201601f1916602001611e7a565b8181528460208386010111156122f257600080fd5b611a5982602083016020870161227c565b60006040828403121561231557600080fd5b61231d611e30565b905081516001600160401b038082111561233657600080fd5b612342858386016121c4565b8352602084015191508082111561235857600080fd5b908301906040828603121561236c57600080fd5b612374611e30565b825161237f81612039565b815260208301518281111561239357600080fd5b61239f878286016122a0565b60208301525080602085015250505092915050565b80516001600160e01b0319811681146121bf57600080fd5b805180151581146121bf57600080fd5b6000602082840312156123ee57600080fd5b81516001600160401b038082111561240557600080fd5b908301906040828603121561241957600080fd5b612421611e30565b82518281111561243057600080fd5b830160c0818803121561244257600080fd5b61244a611e58565b81518481111561245957600080fd5b61246589828501612303565b82525060208201518481111561247a57600080fd5b61248689828501612303565b602083015250604082015160408201526124a2606083016121b4565b60608201526124b3608083016123b4565b608082015260a0820151848111156124ca57600080fd5b6124d6898285016122a0565b60a0830152508252506124eb602084016123cc565b602082015295945050505050565b60006040823603121561250b57600080fd5b612513611e30565b823561251e81611d19565b815260208301356001600160401b0381111561253957600080fd5b61254536828601611ee2565b60208301525092915050565b6000604083016001600160401b0383511684526020808401516040828701528281518085526060880191508383019450600092505b80831015611f4b5784516001600160a01b03168252938301936001929092019190830190612586565b6020815260006117bd6020830184612551565b6000602082840312156125d457600080fd5b8151611d4b81611ecd565b6040815260006125f26040830185612551565b905060018060a01b03831660208301529392505050565b60006020828403121561261b57600080fd5b81516001600160401b0381111561263157600080fd5b611a59848285016121c4565b634e487b7160e01b600052602160045260246000fd5b60006020828403121561266557600080fd5b5051919050565b6001600160401b0381811683821601908082111561268c5761268c612010565b5092915050565b6001600160401b0382811682821603908082111561268c5761268c612010565b808201808211156117c0576117c0612010565b6000604083016001600160401b0383541684526001808401602060408188015283825480865260608901915083600052826000209550600093505b808410156127275785546001600160a01b03168252948401949284019290820190612701565b50979650505050505050565b60808152600061274660808301876126c6565b6001600160a01b038616602084015282810360408401526127678186612048565b91505082606083015295945050505050565b60006001820161278b5761278b612010565b5060010190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156127ba57600080fd5b6117bd826123cc565b6040815260006127d66040830185612551565b82810360208401526117a381856126c6565b600181811c908216806127fc57607f821691505b602082108103611d6457634e487b7160e01b600052602260045260246000fd5b601f82111561036157600081815260208120601f850160051c810160208610156128435750805b601f850160051c820191505b818110156128625782815560010161284f565b505050505050565b81516001600160401b0381111561288357612883611e1a565b6128978161289184546127e8565b8461281c565b602080601f8311600181146128cc57600084156128b45750858301515b600019600386901b1c1916600185901b178555612862565b600085815260208120601f198616915b828110156128fb578886015182559484019460019091019084016128dc565b50858210156129195787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000825161293b81846020870161227c565b9190910192915050565b60006001600160401b038084168061296d57634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b6001600160401b0381811683821602808216919082811461299c5761299c612010565b50509291505056fea2646970667358221220948e77a7c9702780e4f789de0d48504db131d78af53dbab7de4cbbba7ec0542e64736f6c63430008130033", + "sourceMap": "991:6681:35:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1307:240;;;;;;;;;;-1:-1:-1;1307:240:35;;;;;:::i;:::-;;:::i;:::-;;4646:387;;;;;;:::i;:::-;;:::i;1664:599::-;;;:::i;3927:454::-;;;;;;;;;;;;;:::i;2887:591::-;;;;;;;;;;-1:-1:-1;2887:591:35;;;;;:::i;:::-;;:::i;2334:489::-;;;:::i;5190:318::-;;;;;;:::i;:::-;;:::i;5698:1972::-;;;;;;;;;;-1:-1:-1;5698:1972:35;;;;;:::i;:::-;;:::i;3484:369::-;;;;;;;;;;-1:-1:-1;3484:369:35;;;;;:::i;:::-;;:::i;1307:240::-;4800:18:51;:16;:18::i;:::-;1393:13:35::1;::::0;-1:-1:-1;;;1393:13:35;::::1;;;1389:71;;;1429:20;;-1:-1:-1::0;;;1429:20:35::1;;;;;;;;;;;1389:71;1522:42:54::0;2971:29;;-1:-1:-1;;2971:29:54;-1:-1:-1;;;;;;;;2971:29:54;;;;;;;;;;;;3010:17;:45;;-1:-1:-1;;3010:45:54;;;;;;-1:-1:-1;1520:13:35::1;:20:::0;;-1:-1:-1;;1520:20:35::1;-1:-1:-1::0;;;1520:20:35::1;::::0;;1307:240::o;4646:387::-;4724:15:51;:13;:15::i;:::-;4870:9:::1;:7;:9::i;:::-;4759:24:35::2;4786:14;:28;4815:8;4825:10;4837:2;4853:1;:13;;;4841:9;:25;;;;:::i;:::-;4786:81;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;::::0;;::::2;-1:-1:-1::0;;4786:81:35::2;::::0;::::2;;::::0;::::2;::::0;;;::::2;::::0;::::2;:::i;:::-;4759:108;;4914:37;4942:8;4914:27;:37::i;:::-;4962:64;4991:17;:8:::0;:17:::2;:::i;:::-;:19;::::0;-1:-1:-1;;;4991:19:35;;:17:::2;::::0;::::2;::::0;:19:::2;::::0;:17;:19:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5012:13;::::0;4962:28:::2;:64::i;:::-;4749:284;4646:387:::0;;:::o;1664:599::-;1727:10;;1715:9;:22;1711:76;;;1760:16;;-1:-1:-1;;;1760:16:35;;;;;;;;;;;1711:76;1824:28;;;;;;;;:13;:28;;-1:-1:-1;;;;;1824:28:35;;;;;;;;;;;;;;;;;;;;;;1797:24;;1824:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1824:28:35;;;;;;;;;;;;;;;;-1:-1:-1;;;1824:28:35;;;;-1:-1:-1;;1824:40:35;;-1:-1:-1;;;1824:40:35;;:28;;;;-1:-1:-1;1824:40:35;;1853:10;;1824:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1824:40:35;;;;;;;;;;;;:::i;:::-;1797:67;;1876:15;1893:21;1918:30;1939:8;1918:20;:30::i;:::-;1875:73;;;;1963:10;1959:73;;;1996:25;;-1:-1:-1;;;1996:25:35;;;;;;;;;;;1959:73;2042:20;;:9;;;:20;;-1:-1:-1;;2042:20:35;-1:-1:-1;;;;;2042:20:35;;;;;;;;;;;;;;;;;;:9;:20;;;;;;;;;;:::i;:::-;-1:-1:-1;;2087:9:35;2072:24;;-1:-1:-1;2106:13:35;;;:29;;-1:-1:-1;;;;2106:29:35;-1:-1:-1;;;2106:29:35;;;2167:12;-1:-1:-1;2145:19:35;;:34;2208:17;;-1:-1:-1;;;2208:17:35;;2190:12;;2208:15;;;;:17;;:8;;:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2190:36;;;;;;;;-1:-1:-1;2190:36:35;;;;;;;;;2237:14;:19;;:14;;:19;;2190:36;;-1:-1:-1;;;2237:19:35;;-1:-1:-1;;;;;2237:19:35;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;2237:19:35;;;;;-1:-1:-1;;;;;2237:19:35;;;;;;1701:562;;;1664:599::o;3927:454::-;3963:15;3980:21;4005:32;4026:10;4005:20;:32::i;:::-;3962:75;;;;4053:10;4048:70;;4086:21;;-1:-1:-1;;;4086:21:35;;;;;;;;;;;4048:70;4131:17;;;;:21;4127:85;;4175:26;;-1:-1:-1;;;4175:26:35;;;;;;;;;;;4127:85;4238:12;;4261:14;:19;;4279:1;;4261:14;;;:19;;4279:1;;-1:-1:-1;;;4261:19:35;;-1:-1:-1;;;;;4261:19:35;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;4261:19:35;;;;;;;;;;;;;;;4308:16;;;;;;;;:9;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4308:16:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4308:16:35;;;;;;;;;;;;;;;;-1:-1:-1;;;4308:16:35;;;;-1:-1:-1;;4308:18:35;;-1:-1:-1;;;4308:18:35;;:16;;;;-1:-1:-1;4308:18:35;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4298:29;;;;;;;;;;;-1:-1:-1;4298:29:35;;;4291:36;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4291:36:35;;;;;;;;-1:-1:-1;;4291:36:35;;;4298:29;;-1:-1:-1;;4291:36:35;;;;-1:-1:-1;4291:36:35;:::i;:::-;-1:-1:-1;;4291:36:35;;;;;-1:-1:-1;;4291:36:35;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;4291:36:35;;;;;-1:-1:-1;;4291:36:35;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;4291:36:35;;-1:-1:-1;4291:36:35;;;;;:::i;:::-;-1:-1:-1;4338:36:35;;-1:-1:-1;4346:10:35;4368:5;4338:29;:36::i;2887:591::-;240:48:52;575:8;;-1:-1:-1;;575:20:52;571:50;;604:17;;-1:-1:-1;;;604:17:52;;;;;;;;;;;571:50;470:1;631:19;;:8;2961:11:35;;;2957:68:::1;;2995:19;;-1:-1:-1::0;;;2995:19:35::1;;;;;;;;;;;2957:68;3036:15;3053:21:::0;3078:32:::1;3099:10;3078:20;:32::i;:::-;3035:75;;;;3126:10;3121:70;;3159:21;;-1:-1:-1::0;;;3159:21:35::1;;;;;;;;;;;3121:70;3204:12:::0;;:21;-1:-1:-1;3200:84:35::1;;;3248:25;;-1:-1:-1::0;;;3248:25:35::1;;;;;;;;;;;3200:84;3310:6;3294;:12;;;:22;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;3346:10:35::1;::::0;3331:12;;:25:::1;3327:87;;;3372:13;::::0;::::1;:31:::0;;-1:-1:-1;;;;3372:31:35::1;-1:-1:-1::0;;;3372:31:35::1;::::0;;3327:87:::1;3432:18;::::0;;;;::::1;::::0;;:9:::1;::::0;::::1;:18:::0;;-1:-1:-1;;;;;3432:18:35::1;::::0;;;;;;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;3424:47:::1;::::0;3464:6;;3432:18;:9;:18;;::::1;::::0;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;3432:18:35::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;;;3432:18:35;;;;-1:-1:-1;;3432:20:35::1;::::0;-1:-1:-1;;;3432:20:35;;:18:::1;::::0;::::1;::::0;-1:-1:-1;3432:20:35::1;::::0;::::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;3424:39:35::1;::::0;::::1;:47::i;:::-;-1:-1:-1::0;;427:1:52;671:23;;-1:-1:-1;2887:591:35:o;2334:489::-;2398:1;2385:9;:14;2381:68;;2422:16;;-1:-1:-1;;;2422:16:35;;;;;;;;;;;2381:68;2460:15;2477:21;2502:32;2523:10;2502:20;:32::i;:::-;2459:75;;;;2550:10;2545:70;;2583:21;;-1:-1:-1;;;2583:21:35;;;;;;;;;;;2545:70;2641:9;2625:6;:12;;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;2682:15:35;;-1:-1:-1;2665:13:35;;;;-1:-1:-1;;;2665:13:35;;;;:32;;;;;;;;:::i;:::-;;2661:156;;2733:10;;2717:12;;:26;2713:94;;2763:13;;;:29;;-1:-1:-1;;;;2763:29:35;-1:-1:-1;;;2763:29:35;;;2713:94;2371:452;;2334:489::o;5190:318::-;4724:15:51;:13;:15::i;:::-;4870:9:::1;:7;:9::i;:::-;5278:24:35::2;5305:14;:31;5350:1;:13;;5377:10;5401:2;5429:1;:13;;;5417:9;:25;;;;:::i;:::-;5305:147;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;::::0;;::::2;-1:-1:-1::0;;5305:147:35::2;::::0;::::2;;::::0;::::2;::::0;;;::::2;::::0;::::2;:::i;:::-;5278:174;;5463:38;5492:8;5463:28;:38::i;5698:1972::-:0;4800:18:51;:16;:18::i;:::-;5836:7:35::1;:14;5815:10;:17;:35;5811:109;;5873:36;;-1:-1:-1::0;;;5873:36:35::1;;;;;;;;;;;5811:109;5980:16;5978:18:::0;;5980:1:::1;::::0;5978:18:::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;6117:17:35;;6007:29:::1;::::0;;6144:1473:::1;6194:16;6177:14;:33;6144:1473;;;6228:24;6255:10;6266:14;6255:26;;;;;;;;:::i;:::-;;;;;;;6228:53;;6327:1;-1:-1:-1::0;;;;;6299:30:35::1;:16;-1:-1:-1::0;;;;;6299:30:35::1;;6295:379;;6349:23;6375:7;6383:14;6375:23;;;;;;;;:::i;:::-;;;;;;;6349:49;;6421:15;6440:1;6421:20:::0;6417:97:::1;;6472:23;;-1:-1:-1::0;;;6472:23:35::1;;;;;;;;;;;6417:97;6547:16;::::0;6532:1:::1;:32:::0;;;:14:::1;:32;::::0;;;;;;;-1:-1:-1;;;;;6532:50:35;::::1;::::0;;;;;;;:68;;;6619:40:::1;6585:15:::0;6619:40;::::1;:::i;:::-;;;6331:343;6295:379;-1:-1:-1::0;7576:16:35::1;;6144:1473;;;-1:-1:-1::0;;7626:13:35::1;:37:::0;-1:-1:-1;;5698:1972:35:o;3484:369::-;240:48:52;575:8;;-1:-1:-1;;575:20:52;571:50;;604:17;;-1:-1:-1;;;604:17:52;;;;;;;;;;;571:50;470:1;631:19;;:8;3560:11:35;;;3556:68:::1;;3594:19;;-1:-1:-1::0;;;3594:19:35::1;;;;;;;;;;;3556:68;3635:15;3652:21:::0;3677:32:::1;3698:10;3677:20;:32::i;:::-;3634:75;;;;3724:10;3719:70;;3757:21;;-1:-1:-1::0;;;3757:21:35::1;;;;;;;;;;;4546:138:51::0;4602:26;;-1:-1:-1;;;4602:26:51;;:10;:26;;;18186:51:78;4602:24:51;;;;18159:18:78;;4602:26:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4597:81;;4651:16;;-1:-1:-1;;;4651:16:51;;;;;;;;;;;4597:81;4546:138::o;4274:135::-;4327:22;;-1:-1:-1;;;4327:22:51;;:10;:22;;;18186:51:78;4327:20:51;;;;18159:18:78;;4327:22:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4322:81;;4372:20;;-1:-1:-1;;;4372:20:51;;;;;;;;;;;4415:125;4473:13;;4461:9;:25;4457:77;;;4509:14;;-1:-1:-1;;;4509:14:51;;;;;;;;;;;3353:588:50;3532:20;;:23;;;:32;:52;;-1:-1:-1;;;3532:52:50;;3428:29;;;;3532:37;;;;:52;;:32;3570:13;;3532:52;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3532:52:50;;;;;;;;;;;;:::i;:::-;3505:79;;3596:15;3613:21;3638:19;3648:8;3638:9;:19::i;:::-;3595:62;;;;3673:10;3668:70;;3706:21;;-1:-1:-1;;;3706:21:50;;;;;;;;;;;3668:70;3777:19;;;;;3748:20;;-1:-1:-1;;;;;3777:19:50;;;3748:26;;;;:48;;;3777:19;;;;;3806:24;;3777:19;;3806:24;:::i;:::-;;;;;;;;-1:-1:-1;;;;;3806:24:50;;;;;-1:-1:-1;;;;;3806:24:50;;;;;;3861:12;:20;;;:26;;;3840:6;:17;;;:47;;;;;;;:::i;:::-;;;;-1:-1:-1;;3897:18:50;;;:37;;;;;;;;-1:-1:-1;3897:37:50;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3897:37:50;-1:-1:-1;;;;;3897:37:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;3897:37:50;;;;;;;;;;;;-1:-1:-1;;3897:37:50;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;3897:37:50;;;;;;;;;;;;;;-1:-1:-1;;3897:37:50;-1:-1:-1;;;;;3897:37:50;;;;;;;;;;;;;;;;;-1:-1:-1;3897:37:50;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;3897:37:50;;;;;;;;;;;;-1:-1:-1;;3897:37:50;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;3897:37:50;;;;;;;;-1:-1:-1;3897:37:50;;;;;;;;;;;;;;;-1:-1:-1;;;3897:37:50;-1:-1:-1;;;;;;3897:37:50;;;-1:-1:-1;;;;;3897:37:50;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;3897:37:50;;;;;;;;;;;;-1:-1:-1;;3897:37:50;;;;;;;;;;-1:-1:-1;;;;;3353:588:50:o;4748:287::-;4826:6;4836:1;4826:11;4822:48;;4748:287;;:::o;4822:48::-;4930:98;4951:14;:2;-1:-1:-1;;;;;4951:12:50;;:14::i;:::-;4967:60;;;;;;;21558:25:78;;;4967:60:50;;;;;;;;;;21531:18:78;;;;4967:60:50;;;;;;;;-1:-1:-1;;;;;4967:60:50;-1:-1:-1;;;4967:60:50;;;4930:20;:98::i;5818:272::-;6027:17;;-1:-1:-1;;;6027:17:50;;5886:10;;;;;;;;;;6027:15;;;;:17;;:8;;:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6017:28;;;;;;;;;;;;;;-1:-1:-1;6017:28:50;6064:17;;;;;;;:9;;;:17;;-1:-1:-1;;;;;6064:17:50;;;;;;;;;;;;;;;;;;;;;;;6017:28;;-1:-1:-1;6064:17:50;;:9;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6064:17:50;;;;;;;;;;;;;;;;-1:-1:-1;;;6064:17:50;;;;-1:-1:-1;;6064:19:50;;-1:-1:-1;;;6064:19:50;;:17;;;;-1:-1:-1;6064:19:50;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6063:20;6055:28;;5921:169;5818:272;;;:::o;5250:372::-;5307:10;;;-1:-1:-1;;;;;5433:19:50;;5429:78;;5475:21;;-1:-1:-1;;;5475:21:50;;;;;;;;;;;5429:78;5543:28;;;;;;;;:13;;;:28;;-1:-1:-1;;;;;5543:28:50;;;;;;;;;;;;;;;;;;;;;;;;5516:24;;5543:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5543:28:50;;;;;;;;;;;;;;;;-1:-1:-1;;;5543:28:50;;;;-1:-1:-1;;5543:35:50;;-1:-1:-1;;;5543:35:50;;:28;;;;-1:-1:-1;5543:35:50;;5572:5;;5543:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5543:35:50;;;;;;;;;;;;:::i;:::-;5516:62;;5596:19;5606:8;5596:9;:19::i;:::-;5589:26;;;;;;5250:372;;;:::o;13246:258:0:-;13354:7;13330:21;:31;13326:63;;;13370:19;;-1:-1:-1;;;13370:19:0;;;;;;;;;;;13326:63;13401:12;13419:10;-1:-1:-1;;;;;13419:15:0;13442:7;13419:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13400:54;;;13469:7;13464:33;;13485:12;;-1:-1:-1;;;13485:12:0;;;;;;;;;;;4143:412:50;4219:29;4301:37;4342:30;:28;:30::i;:::-;4412:15;;;;4383:20;;-1:-1:-1;;;;;4412:15:50;;;4383:26;;;;:44;4456:13;;;;4438:14;;;:31;;4296:76;;-1:-1:-1;4456:13:50;;-1:-1:-1;4438:14:50;-1:-1:-1;4412:15:50;;4438:31;;4456:13;;4438:31;:::i;:::-;;;;-1:-1:-1;;4479:20:50;;;:39;;;;;;;;-1:-1:-1;4479:39:50;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4479:39:50;-1:-1:-1;;;;;4479:39:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;4479:39:50;;;;;;;;;;;;-1:-1:-1;;4479:39:50;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;4479:39:50;;;;;;;;;;;;;;-1:-1:-1;;4479:39:50;-1:-1:-1;;;;;4479:39:50;;;;;;;;;;;;;;;;;-1:-1:-1;4479:39:50;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;4479:39:50;;;;;;;;;;;;-1:-1:-1;;4479:39:50;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;4479:39:50;;;;;;;;-1:-1:-1;4479:39:50;;;;;;;;;;;;;;;-1:-1:-1;;;4479:39:50;-1:-1:-1;;;;;;4479:39:50;;;-1:-1:-1;;;;;4479:39:50;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;4479:39:50;;;;;;;;;;;;-1:-1:-1;;4479:39:50;;;;;;;;;;4528:15;;;:20;;-1:-1:-1;;4528:15:50;-1:-1:-1;;4528:20:50;;-1:-1:-1;;;;;;;4528:20:50;;:::i;2356:528:0:-;2410:7;2506:9;2517;2530:15;2542:2;2530:11;:15::i;:::-;2505:40;;;;2560:4;2555:45;;-1:-1:-1;2587:2:0;;2356:528;-1:-1:-1;;2356:528:0:o;2555:45::-;2733:12;2747:11;2762:17;2776:2;2762:13;:17::i;:::-;2732:47;;;;2794:7;2789:89;;-1:-1:-1;2824:2:0;;2356:528;-1:-1:-1;;;;2356:528:0:o;2789:89::-;2864:3;2356:528;-1:-1:-1;;;;;2356:528:0:o;2603:166:19:-;2678:12;2709:53;2731:6;2739:4;2745:1;2748:13;2709:21;:53::i;:::-;2702:60;;2603:166;;;;;:::o;2733:416:50:-;3022:21;;2820:11;;;;;;;;2985:59;;3008:12;;-1:-1:-1;;;;;3022:21:50;2985:22;:59::i;:::-;-1:-1:-1;;;;;3067:28:50;;;;;;;:21;;;:28;;;;;;;;;3115:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2977:67;;-1:-1:-1;3067:28:50;;-1:-1:-1;3115:25:50;;3067:28;;3115:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3115:25:50;;;;;;;;;;;;;;;;-1:-1:-1;;;3115:25:50;;;;-1:-1:-1;;3115:27:50;;-1:-1:-1;;;3115:27:50;;:25;;;;-1:-1:-1;3115:27:50;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3114:28;3105:37;;2890:259;2733:416;;;:::o;4411:476:0:-;4467:9;4478;4636:8;4632:2;4628:17;-1:-1:-1;;;4763:6:0;4760:27;4757:114;;4814:4;4806:12;;-1:-1:-1;;;;;4845:2:0;4841:16;4835:22;;4757:114;;4411:476;;;:::o;7171:2211::-;7229:12;7243:11;8058:3;8055:1;8048:14;8141:2;8137;8133;8130:1;-1:-1:-1;;;;;8097:5:0;8086:58;8075:69;;8405:1;8399:8;8445:6;-1:-1:-1;;;;;8427:25:0;8420:32;;8828:6;8823:3;8819:16;8811:6;8807:29;8793:43;;8870:6;8862;8859:18;8849:103;;8908:5;8897:16;;8937:1;8930:8;;8849:103;;9290:7;9289:8;:34;;;-1:-1:-1;13641:16:0;9321:2;9301:22;;9289:34;9285:91;;;-1:-1:-1;9347:5:0;;;;-1:-1:-1;7171:2211:0;-1:-1:-1;7171:2211:0:o;9285:91::-;7171:2211;;;:::o;8572:80:19:-;8628:17;;-1:-1:-1;;;8628:17:19;;;;;;;;;;;4215:483;4391:12;4443:5;4419:21;:29;4415:108;;;4471:41;;-1:-1:-1;;;4471:41:19;;4506:4;4471:41;;;18186:51:78;18159:18;;4471:41:19;;;;;;;;4415:108;4533:12;4547:23;4574:6;-1:-1:-1;;;;;4574:11:19;4593:5;4600:4;4574:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4532:73;;;;4622:69;4649:6;4657:7;4666:10;4678:12;4622:26;:69::i;:::-;4615:76;;;;4215:483;;;;;;;:::o;3242:173:54:-;3328:6;3397:11;3355:33;3397:11;3362;3355:33;:::i;:::-;3354:39;;3392:1;3354:39;:::i;:::-;3353:55;;;;:::i;6737:692:19:-;6928:12;6956:7;6952:471;;;6983:10;:17;7004:1;6983:22;6979:339;;7207:6;-1:-1:-1;;;;;7207:18:19;;7229:1;7207:23;7203:101;;7261:24;;-1:-1:-1;;;7261:24:19;;-1:-1:-1;;;;;18204:32:78;;7261:24:19;;;18186:51:78;18159:18;;7261:24:19;18032:211:78;7203:101:19;-1:-1:-1;7338:10:19;7331:17;;6952:471;7379:33;7387:10;7399:12;8828:17;;:21;8824:411;;9056:10;9050:17;9112:15;9099:10;9095:2;9091:19;9084:44;8824:411;9172:14;:12;:14;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;14:129:78;-1:-1:-1;;;;;92:5:78;88:30;81:5;78:41;68:69;;133:1;130;123:12;148:245;206:6;259:2;247:9;238:7;234:23;230:32;227:52;;;275:1;272;265:12;227:52;314:9;301:23;333:30;357:5;333:30;:::i;:::-;382:5;148:245;-1:-1:-1;;;148:245:78:o;398:156::-;459:5;504:2;495:6;490:3;486:16;482:25;479:45;;;520:1;517;510:12;479:45;-1:-1:-1;542:6:78;398:156;-1:-1:-1;398:156:78:o;559:619::-;687:6;695;748:2;736:9;727:7;723:23;719:32;716:52;;;764:1;761;754:12;716:52;804:9;791:23;-1:-1:-1;;;;;874:2:78;866:6;863:14;860:34;;;890:1;887;880:12;860:34;913:68;973:7;964:6;953:9;949:22;913:68;:::i;:::-;903:78;;1034:2;1023:9;1019:18;1006:32;990:48;;1063:2;1053:8;1050:16;1047:36;;;1079:1;1076;1069:12;1047:36;;1102:70;1164:7;1153:8;1142:9;1138:24;1102:70;:::i;:::-;1092:80;;;559:619;;;;;:::o;1183:180::-;1242:6;1295:2;1283:9;1274:7;1270:23;1266:32;1263:52;;;1311:1;1308;1301:12;1263:52;-1:-1:-1;1334:23:78;;1183:180;-1:-1:-1;1183:180:78:o;1368:361::-;1458:6;1511:2;1499:9;1490:7;1486:23;1482:32;1479:52;;;1527:1;1524;1517:12;1479:52;1567:9;1554:23;-1:-1:-1;;;;;1592:6:78;1589:30;1586:50;;;1632:1;1629;1622:12;1586:50;1655:68;1715:7;1706:6;1695:9;1691:22;1655:68;:::i;1734:127::-;1795:10;1790:3;1786:20;1783:1;1776:31;1826:4;1823:1;1816:15;1850:4;1847:1;1840:15;1866:257;1938:4;1932:11;;;1970:17;;-1:-1:-1;;;;;2002:34:78;;2038:22;;;1999:62;1996:88;;;2064:18;;:::i;:::-;2100:4;2093:24;1866:257;:::o;2128:253::-;2200:2;2194:9;2242:4;2230:17;;-1:-1:-1;;;;;2262:34:78;;2298:22;;;2259:62;2256:88;;;2324:18;;:::i;2386:275::-;2457:2;2451:9;2522:2;2503:13;;-1:-1:-1;;2499:27:78;2487:40;;-1:-1:-1;;;;;2542:34:78;;2578:22;;;2539:62;2536:88;;;2604:18;;:::i;:::-;2640:2;2633:22;2386:275;;-1:-1:-1;2386:275:78:o;2666:183::-;2726:4;-1:-1:-1;;;;;2751:6:78;2748:30;2745:56;;;2781:18;;:::i;:::-;-1:-1:-1;2826:1:78;2822:14;2838:4;2818:25;;2666:183::o;2854:131::-;-1:-1:-1;;;;;2929:31:78;;2919:42;;2909:70;;2975:1;2972;2965:12;2990:737;3044:5;3097:3;3090:4;3082:6;3078:17;3074:27;3064:55;;3115:1;3112;3105:12;3064:55;3151:6;3138:20;3177:4;3201:60;3217:43;3257:2;3217:43;:::i;:::-;3201:60;:::i;:::-;3295:15;;;3381:1;3377:10;;;;3365:23;;3361:32;;;3326:12;;;;3405:15;;;3402:35;;;3433:1;3430;3423:12;3402:35;3469:2;3461:6;3457:15;3481:217;3497:6;3492:3;3489:15;3481:217;;;3577:3;3564:17;3594:31;3619:5;3594:31;:::i;:::-;3638:18;;3676:12;;;;3514;;3481:217;;;-1:-1:-1;3716:5:78;2990:737;-1:-1:-1;;;;;;2990:737:78:o;3732:1138::-;3850:6;3858;3911:2;3899:9;3890:7;3886:23;3882:32;3879:52;;;3927:1;3924;3917:12;3879:52;3967:9;3954:23;-1:-1:-1;;;;;4037:2:78;4029:6;4026:14;4023:34;;;4053:1;4050;4043:12;4023:34;4076:61;4129:7;4120:6;4109:9;4105:22;4076:61;:::i;:::-;4066:71;;4156:2;4146:12;;4211:2;4200:9;4196:18;4183:32;4240:2;4230:8;4227:16;4224:36;;;4256:1;4253;4246:12;4224:36;4279:24;;;-1:-1:-1;4334:4:78;4326:13;;4322:27;-1:-1:-1;4312:55:78;;4363:1;4360;4353:12;4312:55;4399:2;4386:16;4422:60;4438:43;4478:2;4438:43;:::i;4422:60::-;4516:15;;;4598:1;4594:10;;;;4586:19;;4582:28;;;4547:12;;;;4622:19;;;4619:39;;;4654:1;4651;4644:12;4619:39;4678:11;;;;4698:142;4714:6;4709:3;4706:15;4698:142;;;4780:17;;4768:30;;4731:12;;;;4818;;;;4698:142;;;4859:5;4849:15;;;;;;;3732:1138;;;;;:::o;4875:127::-;4936:10;4931:3;4927:20;4924:1;4917:31;4967:4;4964:1;4957:15;4991:4;4988:1;4981:15;5007:128;5074:9;;;5095:11;;;5092:37;;;5109:18;;:::i;5249:114::-;5333:4;5326:5;5322:16;5315:5;5312:27;5302:55;;5353:1;5350;5343:12;5368:873;5430:3;5476:5;5463:19;5491:31;5514:7;5491:31;:::i;:::-;5556:4;5543:18;5531:31;;5621:4;5610:16;;5597:30;5678:14;5674:26;;;-1:-1:-1;;5670:40:78;5646:65;;5636:93;;5725:1;5722;5715:12;5636:93;5753:30;;5864:4;5851:18;;;5806:21;-1:-1:-1;;;;;5881:30:78;;5878:50;;;5924:1;5921;5914:12;5878:50;5973:6;5957:14;5953:27;5944:7;5940:41;5937:61;;;5994:1;5991;5984:12;5937:61;6030:4;6023;6018:3;6014:14;6007:28;6067:6;6060:4;6055:3;6051:14;6044:30;6119:6;6110:7;6105:2;6100:3;6096:12;6083:43;6169:1;6164:2;6155:6;6150:3;6146:16;6142:25;6135:36;6232:2;6225;6221:7;6216:2;6208:6;6204:15;6200:29;6195:3;6191:39;6187:48;6180:55;;;;5368:873;;;;:::o;6246:1707::-;6583:3;6572:9;6565:22;6546:4;6625:3;6614:9;6610:19;6664:6;6651:20;6680:30;6704:5;6680:30;:::i;:::-;-1:-1:-1;;;;;6784:14:78;;;6778:3;6763:19;;6756:43;6818:4;;6870:15;;;6857:29;6937:14;6933:27;;;-1:-1:-1;;6929:41:78;6905:66;;6895:94;;6985:1;6982;6975:12;6895:94;7013:31;;7112:16;;;;7067:21;7140:14;;;7137:34;;;7167:1;7164;7157:12;7137:34;7223:6;7220:1;7216:14;7200;7196:35;7187:7;7183:49;7180:69;;;7245:1;7242;7235:12;7180:69;7286:4;7280:3;7265:19;;7258:33;7326:22;;;;7406:7;7379:3;7364:19;;;-1:-1:-1;7431:1:78;;7441:283;7455:6;7452:1;7449:13;7441:283;;;7532:6;7519:20;7552:33;7577:7;7552:33;:::i;:::-;-1:-1:-1;;;;;7610:33:78;7598:46;;7699:15;;;;7664:12;;;;7640:1;7470:9;;;;;7441:283;;;-1:-1:-1;;;;;;;5206:31:78;;7760:18;;;5194:44;7826:9;7821:3;7817:19;7810:4;7799:9;7795:20;7788:49;7854:50;7900:3;7892:6;7854:50;:::i;:::-;7846:58;;;;;7940:6;7935:2;7924:9;7920:18;7913:34;6246:1707;;;;;;;:::o;7958:136::-;8036:13;;8058:30;8036:13;8058:30;:::i;:::-;7958:136;;;:::o;8099:1097::-;8165:5;8213:4;8201:9;8196:3;8192:19;8188:30;8185:50;;;8231:1;8228;8221:12;8185:50;8253:22;;:::i;:::-;8244:31;;8305:9;8299:16;8324:32;8348:7;8324:32;:::i;:::-;8365:22;;8406:2;8437:18;;;8431:25;-1:-1:-1;;;;;8468:30:78;;8465:50;;;8511:1;8508;8501:12;8465:50;8534:22;;8587:4;8579:13;;8575:23;-1:-1:-1;8565:51:78;;8612:1;8609;8602:12;8565:51;8641:2;8635:9;8664:60;8680:43;8720:2;8680:43;:::i;8664:60::-;8758:15;;;8840:1;8836:10;;;;8828:19;;8824:28;;;8789:12;;;;8864:15;;;8861:35;;;8892:1;8889;8882:12;8861:35;8916:11;;;;8936:216;8952:6;8947:3;8944:15;8936:216;;;9027:3;9021:10;9044:33;9069:7;9044:33;:::i;:::-;9090:20;;8969:12;;;;9130;;;;8936:216;;;9184:5;9179:2;9172:5;9168:14;9161:29;;;;;;8099:1097;;;;:::o;9201:250::-;9286:1;9296:113;9310:6;9307:1;9304:13;9296:113;;;9386:11;;;9380:18;9367:11;;;9360:39;9332:2;9325:10;9296:113;;;-1:-1:-1;;9443:1:78;9425:16;;9418:27;9201:250::o;9456:509::-;9509:5;9562:3;9555:4;9547:6;9543:17;9539:27;9529:55;;9580:1;9577;9570:12;9529:55;9609:6;9603:13;-1:-1:-1;;;;;9631:2:78;9628:26;9625:52;;;9657:18;;:::i;:::-;9701:55;9744:2;9725:13;;-1:-1:-1;;9721:27:78;9750:4;9717:38;9701:55;:::i;:::-;9781:2;9772:7;9765:19;9827:3;9820:4;9815:2;9807:6;9803:15;9799:26;9796:35;9793:55;;;9844:1;9841;9834:12;9793:55;9857:77;9931:2;9924:4;9915:7;9911:18;9904:4;9896:6;9892:17;9857:77;:::i;9970:949::-;10038:5;10086:4;10074:9;10069:3;10065:19;10061:30;10058:50;;;10104:1;10101;10094:12;10058:50;10126:22;;:::i;:::-;10117:31;;10177:9;10171:16;-1:-1:-1;;;;;10247:2:78;10239:6;10236:14;10233:34;;;10263:1;10260;10253:12;10233:34;10290:66;10352:3;10343:6;10332:9;10328:22;10290:66;:::i;:::-;10283:5;10276:81;10403:2;10392:9;10388:18;10382:25;10366:41;;10432:2;10422:8;10419:16;10416:36;;;10448:1;10445;10438:12;10416:36;10471:24;;;;10525:4;10511:12;;;10507:23;10504:43;;;10543:1;10540;10533:12;10504:43;10571:22;;:::i;:::-;10623:2;10617:9;10635:31;10658:7;10635:31;:::i;:::-;10675:24;;10738:2;10730:11;;10724:18;10754:16;;;10751:36;;;10783:1;10780;10773:12;10751:36;10821:51;10868:3;10857:8;10853:2;10849:17;10821:51;:::i;:::-;10816:2;10807:7;10803:16;10796:77;;10905:7;10900:2;10893:5;10889:14;10882:31;;;;9970:949;;;;:::o;10924:177::-;11002:13;;-1:-1:-1;;;;;;11044:32:78;;11034:43;;11024:71;;11091:1;11088;11081:12;11106:164;11182:13;;11231;;11224:21;11214:32;;11204:60;;11260:1;11257;11250:12;11275:1533;11372:6;11425:2;11413:9;11404:7;11400:23;11396:32;11393:52;;;11441:1;11438;11431:12;11393:52;11474:9;11468:16;-1:-1:-1;;;;;11544:2:78;11536:6;11533:14;11530:34;;;11560:1;11557;11550:12;11530:34;11583:22;;;;11639:4;11621:16;;;11617:27;11614:47;;;11657:1;11654;11647:12;11614:47;11683:22;;:::i;:::-;11736:2;11730:9;11764:2;11754:8;11751:16;11748:36;;;11780:1;11777;11770:12;11748:36;11803:17;;11854:4;11836:16;;;11832:27;11829:47;;;11872:1;11869;11862:12;11829:47;11900:22;;:::i;:::-;11953:2;11947:9;11981:2;11971:8;11968:16;11965:36;;;11997:1;11994;11987:12;11965:36;12026:67;12085:7;12074:8;12070:2;12066:17;12026:67;:::i;:::-;12017:7;12010:84;;12133:2;12129;12125:11;12119:18;12162:2;12152:8;12149:16;12146:36;;;12178:1;12175;12168:12;12146:36;12216:67;12275:7;12264:8;12260:2;12256:17;12216:67;:::i;:::-;12211:2;12202:7;12198:16;12191:93;;12334:4;12330:2;12326:13;12320:20;12313:4;12304:7;12300:18;12293:48;12375:41;12412:2;12408;12404:11;12375:41;:::i;:::-;12370:2;12361:7;12357:16;12350:67;12452:42;12489:3;12485:2;12481:12;12452:42;:::i;:::-;12446:3;12437:7;12433:17;12426:69;12534:3;12530:2;12526:12;12520:19;12564:2;12554:8;12551:16;12548:36;;;12580:1;12577;12570:12;12548:36;12619:55;12666:7;12655:8;12651:2;12647:17;12619:55;:::i;:::-;12613:3;12600:17;;12593:82;-1:-1:-1;12684:22:78;;-1:-1:-1;12738:39:78;12773:2;12765:11;;12738:39;:::i;:::-;12733:2;12722:14;;12715:63;12726:5;11275:1533;-1:-1:-1;;;;;11275:1533:78:o;12813:594::-;12919:9;12978:4;12970:5;12954:14;12950:26;12946:37;12943:57;;;12996:1;12993;12986:12;12943:57;13024:22;;:::i;:::-;13083:5;13070:19;13098:32;13122:7;13098:32;:::i;:::-;13139:24;;13210:2;13199:14;;13186:28;-1:-1:-1;;;;;13226:30:78;;13223:50;;;13269:1;13266;13259:12;13223:50;13307:64;13356:14;13347:6;13340:5;13336:18;13307:64;:::i;:::-;13302:2;13289:16;;13282:90;-1:-1:-1;13293:7:78;12813:594;-1:-1:-1;;12813:594:78:o;13412:689::-;13463:3;13502:4;13497:3;13493:14;-1:-1:-1;;;;;13538:5:78;13532:12;13528:37;13523:3;13516:50;13585:4;13635:2;13628:5;13624:14;13618:21;13669:4;13664:2;13659:3;13655:12;13648:26;13696:4;13729:12;13723:19;13764:6;13758:4;13751:20;13798:2;13793:3;13789:12;13780:21;;13842:2;13828:12;13824:21;13810:35;;13863:1;13854:10;;13873:201;13887:6;13884:1;13881:13;13873:201;;;13954:13;;-1:-1:-1;;;;;13950:39:78;13936:54;;14049:15;;;;13986:1;13902:9;;;;;14012:14;;;;13873:201;;14106:271;14297:2;14286:9;14279:21;14260:4;14317:54;14367:2;14356:9;14352:18;14344:6;14317:54;:::i;14382:251::-;14452:6;14505:2;14493:9;14484:7;14480:23;14476:32;14473:52;;;14521:1;14518;14511:12;14473:52;14553:9;14547:16;14572:31;14597:5;14572:31;:::i;14638:368::-;14857:2;14846:9;14839:21;14820:4;14877:54;14927:2;14916:9;14912:18;14904:6;14877:54;:::i;:::-;14869:62;;14996:1;14992;14987:3;14983:11;14979:19;14971:6;14967:32;14962:2;14951:9;14947:18;14940:60;14638:368;;;;;:::o;15011:363::-;15108:6;15161:2;15149:9;15140:7;15136:23;15132:32;15129:52;;;15177:1;15174;15167:12;15129:52;15210:9;15204:16;-1:-1:-1;;;;;15235:6:78;15232:30;15229:50;;;15275:1;15272;15265:12;15229:50;15298:70;15360:7;15351:6;15340:9;15336:22;15298:70;:::i;15379:127::-;15440:10;15435:3;15431:20;15428:1;15421:31;15471:4;15468:1;15461:15;15495:4;15492:1;15485:15;15511:184;15581:6;15634:2;15622:9;15613:7;15609:23;15605:32;15602:52;;;15650:1;15647;15640:12;15602:52;-1:-1:-1;15673:16:78;;15511:184;-1:-1:-1;15511:184:78:o;15700:180::-;-1:-1:-1;;;;;15805:10:78;;;15817;;;15801:27;;15840:11;;;15837:37;;;15854:18;;:::i;:::-;15837:37;15700:180;;;;:::o;15885:183::-;-1:-1:-1;;;;;16004:10:78;;;15992;;;15988:27;;16027:12;;;16024:38;;;16042:18;;:::i;16073:125::-;16138:9;;;16159:10;;;16156:36;;;16172:18;;:::i;16340:741::-;16399:3;16438:4;16433:3;16429:14;-1:-1:-1;;;;;16474:5:78;16468:12;16464:37;16459:3;16452:50;16521:4;16565:2;16558:5;16554:14;16587:4;16621;16616:2;16611:3;16607:12;16600:26;16648:4;16681:12;16675:19;16716:6;16710:4;16703:20;16750:2;16745:3;16741:12;16732:21;;16772:12;16769:1;16762:23;16821:2;16818:1;16808:16;16794:30;;16842:1;16833:10;;16852:202;16866:6;16863:1;16860:13;16852:202;;;16934:13;;-1:-1:-1;;;;;16930:39:78;16916:54;;17029:15;;;;16881:10;;;;16992:14;;;;16852:202;;;-1:-1:-1;17070:5:78;16340:741;-1:-1:-1;;;;;;;16340:741:78:o;17086:669::-;17418:3;17407:9;17400:22;17381:4;17445:63;17503:3;17492:9;17488:19;17480:6;17445:63;:::i;:::-;-1:-1:-1;;;;;17544:32:78;;17539:2;17524:18;;17517:60;17613:22;;;17608:2;17593:18;;17586:50;17653:53;17617:6;17691;17653:53;:::i;:::-;17645:61;;;17742:6;17737:2;17726:9;17722:18;17715:34;17086:669;;;;;;;:::o;17760:135::-;17799:3;17820:17;;;17817:43;;17840:18;;:::i;:::-;-1:-1:-1;17887:1:78;17876:13;;17760:135::o;17900:127::-;17961:10;17956:3;17952:20;17949:1;17942:31;17992:4;17989:1;17982:15;18016:4;18013:1;18006:15;18248:202;18315:6;18368:2;18356:9;18347:7;18343:23;18339:32;18336:52;;;18384:1;18381;18374:12;18336:52;18407:37;18434:9;18407:37;:::i;18455:482::-;18725:2;18714:9;18707:21;18688:4;18751:54;18801:2;18790:9;18786:18;18778:6;18751:54;:::i;:::-;18853:9;18845:6;18841:22;18836:2;18825:9;18821:18;18814:50;18881;18924:6;18916;18881:50;:::i;18942:380::-;19021:1;19017:12;;;;19064;;;19085:61;;19139:4;19131:6;19127:17;19117:27;;19085:61;19192:2;19184:6;19181:14;19161:18;19158:38;19155:161;;19238:10;19233:3;19229:20;19226:1;19219:31;19273:4;19270:1;19263:15;19301:4;19298:1;19291:15;19327:544;19428:2;19423:3;19420:11;19417:448;;;19464:1;19489:5;19485:2;19478:17;19534:4;19530:2;19520:19;19604:2;19592:10;19588:19;19585:1;19581:27;19575:4;19571:38;19640:4;19628:10;19625:20;19622:47;;;-1:-1:-1;19663:4:78;19622:47;19718:2;19713:3;19709:12;19706:1;19702:20;19696:4;19692:31;19682:41;;19773:82;19791:2;19784:5;19781:13;19773:82;;;19836:17;;;19817:1;19806:13;19773:82;;;19777:3;;;19327:544;;;:::o;20047:1360::-;20171:3;20165:10;-1:-1:-1;;;;;20190:6:78;20187:30;20184:56;;;20220:18;;:::i;:::-;20249:96;20338:6;20298:38;20330:4;20324:11;20298:38;:::i;:::-;20292:4;20249:96;:::i;:::-;20400:4;;20464:2;20453:14;;20481:1;20476:674;;;;21194:1;21211:6;21208:89;;;-1:-1:-1;21263:19:78;;;21257:26;21208:89;-1:-1:-1;;20004:1:78;20000:11;;;19996:24;19992:29;19982:40;20028:1;20024:11;;;19979:57;21310:81;;20446:955;;20476:674;16287:1;16280:14;;;16324:4;16311:18;;-1:-1:-1;;20512:20:78;;;20641:236;20655:7;20652:1;20649:14;20641:236;;;20744:19;;;20738:26;20723:42;;20836:27;;;;20804:1;20792:14;;;;20671:19;;20641:236;;;20645:3;20905:6;20896:7;20893:19;20890:201;;;20966:19;;;20960:26;-1:-1:-1;;21049:1:78;21045:14;;;21061:3;21041:24;21037:37;21033:42;21018:58;21003:74;;20890:201;-1:-1:-1;;;;;21137:1:78;21121:14;;;21117:22;21104:36;;-1:-1:-1;20047:1360:78:o;22012:287::-;22141:3;22179:6;22173:13;22195:66;22254:6;22249:3;22242:4;22234:6;22230:17;22195:66;:::i;:::-;22277:16;;;;;22012:287;-1:-1:-1;;22012:287:78:o;22304:296::-;22343:1;-1:-1:-1;;;;;22414:2:78;22411:1;22407:10;22436:3;22426:134;;22482:10;22477:3;22473:20;22470:1;22463:31;22517:4;22514:1;22507:15;22545:4;22542:1;22535:15;22426:134;22578:10;;22574:20;;;;;22304:296;-1:-1:-1;;22304:296:78:o;22605:257::-;-1:-1:-1;;;;;22726:10:78;;;22738;;;22722:27;22769:20;;;;22676:18;22808:24;;;22798:58;;22836:18;;:::i;:::-;22798:58;;22605:257;;;;:::o", "linkReferences": { "src/lib/AccountHelper.sol": { "AccountHelper": [ { - "start": 3229, + "start": 3477, "length": 20 }, { - "start": 3375, + "start": 3623, "length": 20 } ] @@ -342,11 +346,11 @@ "src/lib/CrossMsgHelper.sol": { "CrossMsgHelper": [ { - "start": 496, + "start": 571, "length": 20 }, { - "start": 2630, + "start": 2877, "length": 20 } ] @@ -354,39 +358,43 @@ "src/lib/SubnetIDHelper.sol": { "SubnetIDHelper": [ { - "start": 678, + "start": 753, + "length": 20 + }, + { + "start": 1041, "length": 20 }, { - "start": 968, + "start": 1315, "length": 20 }, { - "start": 1582, + "start": 1808, "length": 20 }, { - "start": 2319, + "start": 2549, "length": 20 }, { - "start": 3560, + "start": 3808, "length": 20 }, { - "start": 4377, + "start": 4625, "length": 20 }, { - "start": 4640, + "start": 4889, "length": 20 }, { - "start": 4933, + "start": 5185, "length": 20 }, { - "start": 6031, + "start": 6283, "length": 20 } ] @@ -404,7 +412,7 @@ "releaseStake(uint256)": "45f54485", "setMembership(address[],uint256[])": "f75bc557" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotReleaseZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidActorAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEmptySubnetCircSupply\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFee\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFundsToRelease\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSignableAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSystemActor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorWeightIsZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorsAndWeightsLengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"}],\"name\":\"fund\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"genesisEpoch\",\"type\":\"uint64\"}],\"name\":\"initGenesisEpoch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"releaseRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"releaseStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"weights\",\"type\":\"uint256[]\"}],\"name\":\"setMembership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"kind\":\"dev\",\"methods\":{\"fund((uint64,address[]),(uint8,bytes))\":{\"params\":{\"subnetId\":\"- subnet to fund\",\"to\":\"- the address to send funds to\"}},\"initGenesisEpoch(uint64)\":{\"params\":{\"genesisEpoch\":\"- genesis epoch to set\"}},\"setMembership(address[],uint256[])\":{\"params\":{\"validators\":\"- list of validator addresses\",\"weights\":\"- list of validators voting powers\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addStake()\":{\"notice\":\"addStake - add collateral for an existing subnet\"},\"fund((uint64,address[]),(uint8,bytes))\":{\"notice\":\"fund - commit a top-down message releasing funds in a child subnet. There is an associated fee that gets distributed to validators in the subnet as well\"},\"initGenesisEpoch(uint64)\":{\"notice\":\"initialize the contract with the genesis epoch\"},\"kill()\":{\"notice\":\"kill an existing subnet. It's balance must be empty\"},\"register()\":{\"notice\":\"register a subnet in the gateway. called by a subnet when it reaches the threshold stake\"},\"release((uint8,bytes))\":{\"notice\":\"release method locks funds in the current subnet and sends a cross message up the hierarchy to the parent gateway to release the funds\"},\"releaseStake(uint256)\":{\"notice\":\"release collateral for an existing subnet\"},\"setMembership(address[],uint256[])\":{\"notice\":\"set up the top-down validators and their voting power\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/GatewayManagerFacet.sol\":\"GatewayManagerFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xb8d40721965efd93b5369d55083181226d3c7e1be4a968c04de35d44ba44f29a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5c4b0089788aa7112cce88602212c3895999f464e00d1c40d7f27ac9288798b\",\"dweb:/ipfs/Qmd69EuGeoCYPfPkGA4hayH4s2upmAe3XaoDf4ggYNEoZ4\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x31f34a3baec77c087d2bdbc5c277f169e505b905aeb43cfcea1734175140f621\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5a3bc8093b31b685ef879e8ffaaab614594cb6f98ddac4f18c411f7bbf99d0d\",\"dweb:/ipfs/QmSFfA9pH3xo8hnWKCFKTwGi8kz68YXuAwyLXsYe6KjC3Z\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xdb6d7e26320438bdd421598eb64e6fe2b03867a4dd07c9c820994b7bec26f7b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2adf1566393ddf260fb2064dd0c67be00123b8978be8b62cc45ac97aff859949\",\"dweb:/ipfs/QmaDLzQpnitEJDAJo4squpKumr5x4D2QYetPdT3jZd8hYm\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x8a925dea568a61a38de9615aae7bb462d9eb6f8eb2c6ca409f1e740519077ab8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b7e2f836581694867c09bb9c80ff2ab6ae039ece2ff3bbf4d1bc2026449fa551\",\"dweb:/ipfs/QmVMvaQSCRBHZudSV8AzimYre76tJVm4UrHYnrT89zcjho\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0xf29c18f694b5acc919b7cada2875ca3bd2c52ddd7ef86ee747aab0faeb50ac8b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d8fb92f533cc119c578da73b06efe76b0efaa612af7c77178eb903952fcf53df\",\"dweb:/ipfs/QmdosRgUmvwXRnxq5TmoJoFMs7TULduTFpMUNyYXQNGfQD\"]},\"src/enums/VoteExecutionStatus.sol\":{\"keccak256\":\"0x56d1db8abf83feb0f1d69f1919fbd5bd79c6f3c5bf3c149950d307b9d62b6455\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb2ec0f87a9091eab463ac6a776d5737189e0239f412b36b975bb0be1fcb4ad8\",\"dweb:/ipfs/QmWiXwab54Ag2f1kyGjqT3brh5JrV5Lc7cqod9VPaS5ey6\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xab09aee88feca01f5c23baa475aa02bb8c1b189e60a7b81848a07e00b9ab708c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1f5d874688d7316a0eb382b6fb1e7ea6648b15aaaab95acc51f18bfcab851d61\",\"dweb:/ipfs/QmdZRRmWrkrn5MmEX3n5yWEREtoCvXNxzoVkPWSH64ENpd\"]},\"src/gateway/GatewayManagerFacet.sol\":{\"keccak256\":\"0xdc5631a874d43a651bb393dc5561b6c7c238755b3d098b1b4906e1ad93dc35fa\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d461cf11b54f0edb1d0c89a2062f6044a4036db121052666a016b78095094a90\",\"dweb:/ipfs/QmUEheM9diusRxsNRNZ67ek963dENpdiSmjSFJFXCX6R25\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x57865785239b076bc429cd989bc5cb2a2e68050c7293a5a537d8cdeded170294\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://28285703560a0bbfa247c894c9f14f2a14e02e430e7dedb0a05b58c53aed3763\",\"dweb:/ipfs/QmcrNx18jZYJ7dRduWu1do3th74cHy7zn9Zx8x13WsCLj5\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0xe3f7371c7c7af8dfa71daa6c4171f6853c9ab1fdd619c09eb12c11ff18d17d91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6a09ea45ed335eada22e7cf3643c17d1c59750ed2156cc29c0960a8e8b53e394\",\"dweb:/ipfs/QmSYTNGqP9wEJnPDXmvghfL8zL8BrHGnixhbsimA9oydLG\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x86bf44c7e35907c1b0ed2fd55a6a8a277b46e6ee52b6933610504bc1d2de3b12\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb47357cd7342f951e5d08b1960e9ab7d458463e71ce08ff61b900bbb04118f0\",\"dweb:/ipfs/QmTKHhnYs1xKZUwCmSRPmSi5utfGrosYV57fSoGF7bGnJs\"]},\"src/lib/CheckpointHelper.sol\":{\"keccak256\":\"0x25d67ccc67b6b537df920c92dc3c704dc097e000c444149d3732e1d20848a269\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5823e88c38b5c4e90ee5700cee5a5fd8d982015dab7ea1cbe2f26d62a359ae76\",\"dweb:/ipfs/QmT9Ves86HoEqQciunzEwvDsyv2dgQwF8uPUjNuGsycHuF\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0xe7aacc0bc5eb10763685d6766524f6db05b151b37de4ccbd2b04649e54b9af36\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d6fae33fe9dc258efc3e0c484c6e69ff8314af266c78fd9b3d20c5bf8f251865\",\"dweb:/ipfs/QmYYpC6GnJNRvAg3MCSHKHk47cas888N3HzmMrmiRT4bnJ\"]},\"src/lib/EpochVoteSubmissionHelper.sol\":{\"keccak256\":\"0x1eaf867ddfc3e83d5a2ca50a81809e1529ea2436a8d2697d868bc8653b8c6c9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://65eb6a69fdb0fd8bfc1cd3d5044791225ff9fa8887dda49fd530e7c46e6e5366\",\"dweb:/ipfs/QmepF17eiqGqiNJRfeCohdeVw2aJxgkFS1AyFSM78v16nC\"]},\"src/lib/ExecutableQueueHelper.sol\":{\"keccak256\":\"0x66b7ba58bb9ba987789f22dcc5e44f1720876a79a52a9630d886490d48f80ece\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8b388b9f63b4f86ac03f24089a1f110e482ae89b1eb628fc78aeead1d6f50869\",\"dweb:/ipfs/QmVGVh9r2GBgXRn7Z13sMKmnn3xjfHm9tM3mnLUH1UwjQX\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x80d7d30532305664e31ad114d702904287e6f93954b420315f660ddf30791ac6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0b108070a13f76614f36e46f0af85d12aa53209ff9bb9c32ee1945be3e0a1fe1\",\"dweb:/ipfs/QmcyMuCZB4Z3qFUUjvcoVeSePJXU5F9hN4Zhy94U2qqcPq\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0x3cf0150c6f1e19b48ca307604973f583aba8d2192a6d39572e2e780991a9c916\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://64d570ab21b83384e044296b02c63e195a5eb53a68ea527aaa62862e47edd627\",\"dweb:/ipfs/QmUwdSq1J5LzUxAHjKk395BWsobnYSh9fsJBQeiUbz2NJe\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3404decb343fa34603a0dce10d00ce0c97da50951792ef500d080e5167136fcb\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2bc38db8ab67aa48356a397f866cc54deac21f861d1349f80cd21103d893718f\",\"dweb:/ipfs/QmajCZg8ZpT9Kh35gXnxPkjCLCzRYFtYsNXTVGTvSugUZf\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0xb96c3d7a112d3319919f047c4ab0d475ab8b602e141f9f7fd00ffcbf8175a630\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://aad83180ce083e22e0c05504dd4bcb8d8b865f38a930684fbe1b5c9ee1aa356f\",\"dweb:/ipfs/QmbqLgq1hCyMhBpa97K2rTQLJHfvHBCzJGE9kiA6LpPDji\"]},\"src/lib/LibVoting.sol\":{\"keccak256\":\"0x3e5c9359758e7a7200c3a1e7c3a8edfbe6912e8c0a2edde1d2a9e4907b89cb91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://589fa228fdc537a56839520408ec06fc34658ef7a3ca7481b089f9d966f8ed39\",\"dweb:/ipfs/QmNQ4kPeGN5JAhFQyfEnYmmvp83dPQ6QhQKQfZhqgWKjDK\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0xf82021571aa9a7b021b2d24b2c0eb80c5796b9f28ebb6a1c239146c0c0168817\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b546fc429093a558b9382e28886d1f09e7f308e55f6398989583bc420a630326\",\"dweb:/ipfs/QmSmQPQbMBX8N8r8nGboBWdzJjUaK7ACaFUf8XosZVZPT8\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0xcddaa4630a6f68c59a819bafee579a8979cc9fd7b00d5b49f99eeefb9ce0c02c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9713f988a5709dea3ee0fb204a2d0b64b0dc115912ed9eb128f479156d97a949\",\"dweb:/ipfs/QmUjTAvd2eAYQFqgfZUf5R67daeC7eUKrL6WrFb8oEWB9j\"]},\"src/structs/EpochVoteSubmission.sol\":{\"keccak256\":\"0x4cc52a36cac1a063bf1f996b91ea81ce118b7ce8923e62cec6e5bf08b689e96a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb33236d8c7a40e17c416a21e9f0df268d6a7f4d6ba1df86ab0c2dbf444702e9\",\"dweb:/ipfs/QmXEbdkweqL1f4Q71YPiuxwhQooh1oim9oBybAbr9Jd3A2\"]},\"src/structs/ExecutableQueue.sol\":{\"keccak256\":\"0xfacfd91786edac0462f4bba34d3a3766c8785925ae96301b68b76fba78c5cab4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb421106bc9158e8a12dd7054d265113dd890337937e73acb03f03e33a13eb18\",\"dweb:/ipfs/Qmdxs4akDWuzwf5nYsCaNuYNZ5sTrMCzdgVMuSpKCjFyaP\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xbaae3da91048d76b5bab0404eebf7dc41ed273a8cd1f4143ea1b3403d89f77c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5a69d76f5022d2e19f69ef0d70d4c5e3a3e7ae8e02fcfdb2682c901ac2f3a707\",\"dweb:/ipfs/QmYEWyPz9UqVssUpU42VTv6DhzRNAfaHKt9ZsNCAvtLjTr\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0xb37b12df0c9ff47c2e88f9612b624bb44e6de5dfb8030dfd83582997dcd6aa83\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a321a05abf7b3b461e3d6c4ac27b18d3e14dffad9e2bf9a0ceb68538a02ab1e4\",\"dweb:/ipfs/QmPo878trP8pv9yXXpwUHSnP7Xt6uz9eWuB25pz2JGiCot\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotReleaseZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidActorAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEmptySubnetCircSupply\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFee\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFundsToRelease\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSignableAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSystemActor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorWeightIsZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorsAndWeightsLengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"}],\"name\":\"fund\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"genesisEpoch\",\"type\":\"uint64\"}],\"name\":\"initGenesisEpoch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"releaseRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"releaseStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"weights\",\"type\":\"uint256[]\"}],\"name\":\"setMembership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"kind\":\"dev\",\"methods\":{\"fund((uint64,address[]),(uint8,bytes))\":{\"params\":{\"subnetId\":\"- subnet to fund\",\"to\":\"- the address to send funds to\"}},\"initGenesisEpoch(uint64)\":{\"params\":{\"genesisEpoch\":\"- genesis epoch to set\"}},\"setMembership(address[],uint256[])\":{\"params\":{\"validators\":\"- list of validator addresses\",\"weights\":\"- list of validators voting powers\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addStake()\":{\"notice\":\"addStake - add collateral for an existing subnet\"},\"fund((uint64,address[]),(uint8,bytes))\":{\"notice\":\"fund - commit a top-down message releasing funds in a child subnet. There is an associated fee that gets distributed to validators in the subnet as well\"},\"initGenesisEpoch(uint64)\":{\"notice\":\"initialize the contract with the genesis epoch\"},\"kill()\":{\"notice\":\"kill an existing subnet. It's balance must be empty\"},\"register()\":{\"notice\":\"register a subnet in the gateway. It is called by a subnet when it reaches the threshold stake\"},\"release((uint8,bytes))\":{\"notice\":\"release method locks funds in the current subnet and sends a cross message up the hierarchy to the parent gateway to release the funds\"},\"releaseStake(uint256)\":{\"notice\":\"release collateral for an existing subnet\"},\"setMembership(address[],uint256[])\":{\"notice\":\"set up the top-down validators and their voting power\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/GatewayManagerFacet.sol\":\"GatewayManagerFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x8a925dea568a61a38de9615aae7bb462d9eb6f8eb2c6ca409f1e740519077ab8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b7e2f836581694867c09bb9c80ff2ab6ae039ece2ff3bbf4d1bc2026449fa551\",\"dweb:/ipfs/QmVMvaQSCRBHZudSV8AzimYre76tJVm4UrHYnrT89zcjho\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0xf29c18f694b5acc919b7cada2875ca3bd2c52ddd7ef86ee747aab0faeb50ac8b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d8fb92f533cc119c578da73b06efe76b0efaa612af7c77178eb903952fcf53df\",\"dweb:/ipfs/QmdosRgUmvwXRnxq5TmoJoFMs7TULduTFpMUNyYXQNGfQD\"]},\"src/enums/VoteExecutionStatus.sol\":{\"keccak256\":\"0x56d1db8abf83feb0f1d69f1919fbd5bd79c6f3c5bf3c149950d307b9d62b6455\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb2ec0f87a9091eab463ac6a776d5737189e0239f412b36b975bb0be1fcb4ad8\",\"dweb:/ipfs/QmWiXwab54Ag2f1kyGjqT3brh5JrV5Lc7cqod9VPaS5ey6\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xab09aee88feca01f5c23baa475aa02bb8c1b189e60a7b81848a07e00b9ab708c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1f5d874688d7316a0eb382b6fb1e7ea6648b15aaaab95acc51f18bfcab851d61\",\"dweb:/ipfs/QmdZRRmWrkrn5MmEX3n5yWEREtoCvXNxzoVkPWSH64ENpd\"]},\"src/gateway/GatewayManagerFacet.sol\":{\"keccak256\":\"0x98b7e0c33a4a07a795a2efcb6d6eb55fee87671aea2c244c9d2d0d28245a519d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4f75c6ed3209dfe2dadbf3d77dd83c69b056c673c73791b02523ff26a50a36c3\",\"dweb:/ipfs/Qmd5yaDhnfBHecszKoLHZdXMZ6spxxFb4LPUiAApuqLtzK\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x57865785239b076bc429cd989bc5cb2a2e68050c7293a5a537d8cdeded170294\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://28285703560a0bbfa247c894c9f14f2a14e02e430e7dedb0a05b58c53aed3763\",\"dweb:/ipfs/QmcrNx18jZYJ7dRduWu1do3th74cHy7zn9Zx8x13WsCLj5\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0xe3f7371c7c7af8dfa71daa6c4171f6853c9ab1fdd619c09eb12c11ff18d17d91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6a09ea45ed335eada22e7cf3643c17d1c59750ed2156cc29c0960a8e8b53e394\",\"dweb:/ipfs/QmSYTNGqP9wEJnPDXmvghfL8zL8BrHGnixhbsimA9oydLG\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x86bf44c7e35907c1b0ed2fd55a6a8a277b46e6ee52b6933610504bc1d2de3b12\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb47357cd7342f951e5d08b1960e9ab7d458463e71ce08ff61b900bbb04118f0\",\"dweb:/ipfs/QmTKHhnYs1xKZUwCmSRPmSi5utfGrosYV57fSoGF7bGnJs\"]},\"src/lib/CheckpointHelper.sol\":{\"keccak256\":\"0x25d67ccc67b6b537df920c92dc3c704dc097e000c444149d3732e1d20848a269\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5823e88c38b5c4e90ee5700cee5a5fd8d982015dab7ea1cbe2f26d62a359ae76\",\"dweb:/ipfs/QmT9Ves86HoEqQciunzEwvDsyv2dgQwF8uPUjNuGsycHuF\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0xe7aacc0bc5eb10763685d6766524f6db05b151b37de4ccbd2b04649e54b9af36\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d6fae33fe9dc258efc3e0c484c6e69ff8314af266c78fd9b3d20c5bf8f251865\",\"dweb:/ipfs/QmYYpC6GnJNRvAg3MCSHKHk47cas888N3HzmMrmiRT4bnJ\"]},\"src/lib/EpochVoteSubmissionHelper.sol\":{\"keccak256\":\"0x1eaf867ddfc3e83d5a2ca50a81809e1529ea2436a8d2697d868bc8653b8c6c9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://65eb6a69fdb0fd8bfc1cd3d5044791225ff9fa8887dda49fd530e7c46e6e5366\",\"dweb:/ipfs/QmepF17eiqGqiNJRfeCohdeVw2aJxgkFS1AyFSM78v16nC\"]},\"src/lib/ExecutableQueueHelper.sol\":{\"keccak256\":\"0x64569fd85dac9617c7cf0e2991bf3bc2f1678b9b4f87945290606d1f821ce826\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8fb7927c7ca76f45f68b2552c4a59047597ccae0c9010c847e75f203f49820bc\",\"dweb:/ipfs/Qmcsg1b1GNBRAzz2CBDufdL3TspdZqx9wUoZ1uVcy3H8EN\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x80d7d30532305664e31ad114d702904287e6f93954b420315f660ddf30791ac6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0b108070a13f76614f36e46f0af85d12aa53209ff9bb9c32ee1945be3e0a1fe1\",\"dweb:/ipfs/QmcyMuCZB4Z3qFUUjvcoVeSePJXU5F9hN4Zhy94U2qqcPq\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0x3cf0150c6f1e19b48ca307604973f583aba8d2192a6d39572e2e780991a9c916\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://64d570ab21b83384e044296b02c63e195a5eb53a68ea527aaa62862e47edd627\",\"dweb:/ipfs/QmUwdSq1J5LzUxAHjKk395BWsobnYSh9fsJBQeiUbz2NJe\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x7adf56c4f8e2504dbbdac2f81d892cb912a1be2f9f629e16d7c796c958032f5b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://438d31911f5ac80ab0d2137506fd411b82a8117ca8d78707598ca2cf61068357\",\"dweb:/ipfs/QmeujmuXKY2uDdDkcipWwfiHDixEaEgaCkQ9YN5nbDhsuF\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0xb96c3d7a112d3319919f047c4ab0d475ab8b602e141f9f7fd00ffcbf8175a630\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://aad83180ce083e22e0c05504dd4bcb8d8b865f38a930684fbe1b5c9ee1aa356f\",\"dweb:/ipfs/QmbqLgq1hCyMhBpa97K2rTQLJHfvHBCzJGE9kiA6LpPDji\"]},\"src/lib/LibVoting.sol\":{\"keccak256\":\"0x6f020ef598ce576688275e5b4b8910beb31afb3427ac3d0896d6b62d71ab3050\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f1dd4f3411e3d01b60fb263120355e34f467fade66bd4076688bd046434df400\",\"dweb:/ipfs/QmWH7F7B44PjwB9eV65JiqQbQdkfSc2yrEsQH9KesU9Lhd\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0xf82021571aa9a7b021b2d24b2c0eb80c5796b9f28ebb6a1c239146c0c0168817\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b546fc429093a558b9382e28886d1f09e7f308e55f6398989583bc420a630326\",\"dweb:/ipfs/QmSmQPQbMBX8N8r8nGboBWdzJjUaK7ACaFUf8XosZVZPT8\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0xcddaa4630a6f68c59a819bafee579a8979cc9fd7b00d5b49f99eeefb9ce0c02c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9713f988a5709dea3ee0fb204a2d0b64b0dc115912ed9eb128f479156d97a949\",\"dweb:/ipfs/QmUjTAvd2eAYQFqgfZUf5R67daeC7eUKrL6WrFb8oEWB9j\"]},\"src/structs/EpochVoteSubmission.sol\":{\"keccak256\":\"0x4cc52a36cac1a063bf1f996b91ea81ce118b7ce8923e62cec6e5bf08b689e96a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb33236d8c7a40e17c416a21e9f0df268d6a7f4d6ba1df86ab0c2dbf444702e9\",\"dweb:/ipfs/QmXEbdkweqL1f4Q71YPiuxwhQooh1oim9oBybAbr9Jd3A2\"]},\"src/structs/ExecutableQueue.sol\":{\"keccak256\":\"0x89580931bf354ed3586ca69483307e4f0a6a626bd7798657faf303281f514e8a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://16f79b68d393fe338e0f5e47e1de4615f45ea754cd98b6f8fe87ba6efc513fcd\",\"dweb:/ipfs/QmVymcARk7QY8d9ZB6omv5kNn6kFB6v249WXP5ULAVvEDi\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xbaae3da91048d76b5bab0404eebf7dc41ed273a8cd1f4143ea1b3403d89f77c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5a69d76f5022d2e19f69ef0d70d4c5e3a3e7ae8e02fcfdb2682c901ac2f3a707\",\"dweb:/ipfs/QmYEWyPz9UqVssUpU42VTv6DhzRNAfaHKt9ZsNCAvtLjTr\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0xf707af307e7f2654d44d3fbd6eb0c44c837da7c0941ad0b826e990198d96f67d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://79cd51a4ea33be35dd774b314ec44df5b8b0c112b06dd8f155c80dc4c2e6e0d0\",\"dweb:/ipfs/QmRyAF4prSLXGuz2Q9PzdcTb8EkC67qdfhgKPtb36997Pm\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.19+commit.7dd6d404" @@ -695,7 +703,7 @@ "notice": "kill an existing subnet. It's balance must be empty" }, "register()": { - "notice": "register a subnet in the gateway. called by a subnet when it reaches the threshold stake" + "notice": "register a subnet in the gateway. It is called by a subnet when it reaches the threshold stake" }, "release((uint8,bytes))": { "notice": "release method locks funds in the current subnet and sends a cross message up the hierarchy to the parent gateway to release the funds" @@ -744,26 +752,26 @@ "license": "MIT" }, "lib/openzeppelin-contracts/contracts/utils/Address.sol": { - "keccak256": "0xb8d40721965efd93b5369d55083181226d3c7e1be4a968c04de35d44ba44f29a", + "keccak256": "0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1", "urls": [ - "bzz-raw://e5c4b0089788aa7112cce88602212c3895999f464e00d1c40d7f27ac9288798b", - "dweb:/ipfs/Qmd69EuGeoCYPfPkGA4hayH4s2upmAe3XaoDf4ggYNEoZ4" + "bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5", + "dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo" ], "license": "MIT" }, "lib/openzeppelin-contracts/contracts/utils/Strings.sol": { - "keccak256": "0x31f34a3baec77c087d2bdbc5c277f169e505b905aeb43cfcea1734175140f621", + "keccak256": "0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da", "urls": [ - "bzz-raw://b5a3bc8093b31b685ef879e8ffaaab614594cb6f98ddac4f18c411f7bbf99d0d", - "dweb:/ipfs/QmSFfA9pH3xo8hnWKCFKTwGi8kz68YXuAwyLXsYe6KjC3Z" + "bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a", + "dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB" ], "license": "MIT" }, "lib/openzeppelin-contracts/contracts/utils/math/Math.sol": { - "keccak256": "0xdb6d7e26320438bdd421598eb64e6fe2b03867a4dd07c9c820994b7bec26f7b0", + "keccak256": "0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c", "urls": [ - "bzz-raw://2adf1566393ddf260fb2064dd0c67be00123b8978be8b62cc45ac97aff859949", - "dweb:/ipfs/QmaDLzQpnitEJDAJo4squpKumr5x4D2QYetPdT3jZd8hYm" + "bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81", + "dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k" ], "license": "MIT" }, @@ -808,10 +816,10 @@ "license": "UNLICENSED" }, "src/gateway/GatewayManagerFacet.sol": { - "keccak256": "0xdc5631a874d43a651bb393dc5561b6c7c238755b3d098b1b4906e1ad93dc35fa", + "keccak256": "0x98b7e0c33a4a07a795a2efcb6d6eb55fee87671aea2c244c9d2d0d28245a519d", "urls": [ - "bzz-raw://d461cf11b54f0edb1d0c89a2062f6044a4036db121052666a016b78095094a90", - "dweb:/ipfs/QmUEheM9diusRxsNRNZ67ek963dENpdiSmjSFJFXCX6R25" + "bzz-raw://4f75c6ed3209dfe2dadbf3d77dd83c69b056c673c73791b02523ff26a50a36c3", + "dweb:/ipfs/Qmd5yaDhnfBHecszKoLHZdXMZ6spxxFb4LPUiAApuqLtzK" ], "license": "UNLICENSED" }, @@ -864,10 +872,10 @@ "license": "UNLICENSED" }, "src/lib/ExecutableQueueHelper.sol": { - "keccak256": "0x66b7ba58bb9ba987789f22dcc5e44f1720876a79a52a9630d886490d48f80ece", + "keccak256": "0x64569fd85dac9617c7cf0e2991bf3bc2f1678b9b4f87945290606d1f821ce826", "urls": [ - "bzz-raw://8b388b9f63b4f86ac03f24089a1f110e482ae89b1eb628fc78aeead1d6f50869", - "dweb:/ipfs/QmVGVh9r2GBgXRn7Z13sMKmnn3xjfHm9tM3mnLUH1UwjQX" + "bzz-raw://8fb7927c7ca76f45f68b2552c4a59047597ccae0c9010c847e75f203f49820bc", + "dweb:/ipfs/Qmcsg1b1GNBRAzz2CBDufdL3TspdZqx9wUoZ1uVcy3H8EN" ], "license": "UNLICENSED" }, @@ -888,10 +896,10 @@ "license": "UNLICENSED" }, "src/lib/LibGatewayActorStorage.sol": { - "keccak256": "0x3404decb343fa34603a0dce10d00ce0c97da50951792ef500d080e5167136fcb", + "keccak256": "0x7adf56c4f8e2504dbbdac2f81d892cb912a1be2f9f629e16d7c796c958032f5b", "urls": [ - "bzz-raw://2bc38db8ab67aa48356a397f866cc54deac21f861d1349f80cd21103d893718f", - "dweb:/ipfs/QmajCZg8ZpT9Kh35gXnxPkjCLCzRYFtYsNXTVGTvSugUZf" + "bzz-raw://438d31911f5ac80ab0d2137506fd411b82a8117ca8d78707598ca2cf61068357", + "dweb:/ipfs/QmeujmuXKY2uDdDkcipWwfiHDixEaEgaCkQ9YN5nbDhsuF" ], "license": "UNLICENSED" }, @@ -904,10 +912,10 @@ "license": "UNLICENSED" }, "src/lib/LibVoting.sol": { - "keccak256": "0x3e5c9359758e7a7200c3a1e7c3a8edfbe6912e8c0a2edde1d2a9e4907b89cb91", + "keccak256": "0x6f020ef598ce576688275e5b4b8910beb31afb3427ac3d0896d6b62d71ab3050", "urls": [ - "bzz-raw://589fa228fdc537a56839520408ec06fc34658ef7a3ca7481b089f9d966f8ed39", - "dweb:/ipfs/QmNQ4kPeGN5JAhFQyfEnYmmvp83dPQ6QhQKQfZhqgWKjDK" + "bzz-raw://f1dd4f3411e3d01b60fb263120355e34f467fade66bd4076688bd046434df400", + "dweb:/ipfs/QmWH7F7B44PjwB9eV65JiqQbQdkfSc2yrEsQH9KesU9Lhd" ], "license": "UNLICENSED" }, @@ -936,10 +944,10 @@ "license": "UNLICENSED" }, "src/structs/ExecutableQueue.sol": { - "keccak256": "0xfacfd91786edac0462f4bba34d3a3766c8785925ae96301b68b76fba78c5cab4", + "keccak256": "0x89580931bf354ed3586ca69483307e4f0a6a626bd7798657faf303281f514e8a", "urls": [ - "bzz-raw://bb421106bc9158e8a12dd7054d265113dd890337937e73acb03f03e33a13eb18", - "dweb:/ipfs/Qmdxs4akDWuzwf5nYsCaNuYNZ5sTrMCzdgVMuSpKCjFyaP" + "bzz-raw://16f79b68d393fe338e0f5e47e1de4615f45ea754cd98b6f8fe87ba6efc513fcd", + "dweb:/ipfs/QmVymcARk7QY8d9ZB6omv5kNn6kFB6v249WXP5ULAVvEDi" ], "license": "UNLICENSED" }, @@ -952,10 +960,10 @@ "license": "UNLICENSED" }, "src/structs/Subnet.sol": { - "keccak256": "0xb37b12df0c9ff47c2e88f9612b624bb44e6de5dfb8030dfd83582997dcd6aa83", + "keccak256": "0xf707af307e7f2654d44d3fbd6eb0c44c837da7c0941ad0b826e990198d96f67d", "urls": [ - "bzz-raw://a321a05abf7b3b461e3d6c4ac27b18d3e14dffad9e2bf9a0ceb68538a02ab1e4", - "dweb:/ipfs/QmPo878trP8pv9yXXpwUHSnP7Xt6uz9eWuB25pz2JGiCot" + "bzz-raw://79cd51a4ea33be35dd774b314ec44df5b8b0c112b06dd8f155c80dc4c2e6e0d0", + "dweb:/ipfs/QmRyAF4prSLXGuz2Q9PzdcTb8EkC67qdfhgKPtb36997Pm" ], "license": "UNLICENSED" } @@ -964,85 +972,85 @@ }, "ast": { "absolutePath": "src/gateway/GatewayManagerFacet.sol", - "id": 39253, + "id": 34409, "exportedSymbols": { "AlreadyInitialized": [ - 38148 + 33164 ], "AlreadyRegisteredSubnet": [ - 38150 + 33166 ], "CannotReleaseZero": [ - 38154 + 33170 ], "CrossMsg": [ - 44176 + 39352 ], "CrossMsgHelper": [ - 41103 + 36259 ], "FilAddress": [ 298 ], "FvmAddress": [ - 44253 + 39431 ], "FvmAddressHelper": [ - 41482 + 36641 ], "GatewayActorModifiers": [ - 42504 + 37666 ], "GatewayManagerFacet": [ - 39252 + 34408 ], "LibGateway": [ - 42262 + 37421 ], "LibVoting": [ - 43438 + 38614 ], "NotEmptySubnetCircSupply": [ - 38198 + 33214 ], "NotEnoughFunds": [ - 38206 + 33222 ], "NotEnoughFundsToRelease": [ - 38208 + 33224 ], "NotRegisteredSubnet": [ - 38220 + 33236 ], "ReentrancyGuard": [ - 42567 + 37729 ], "Status": [ - 38137 + 33153 ], "Subnet": [ - 44303 + 39481 ], "SubnetID": [ - 44279 + 39457 ], "SubnetIDHelper": [ - 44131 + 39307 ], "ValidatorWeightIsZero": [ - 38232 + 33248 ], "ValidatorsAndWeightsLengthMismatch": [ - 38234 + 33250 ] }, "nodeType": "SourceUnit", - "src": "39:7580:39", + "src": "39:7634:35", "nodes": [ { - "id": 38678, + "id": 33824, "nodeType": "PragmaDirective", - "src": "39:23:39", + "src": "39:23:35", "nodes": [], "literals": [ "solidity", @@ -1051,24 +1059,24 @@ ] }, { - "id": 38680, + "id": 33826, "nodeType": "ImportDirective", - "src": "64:72:39", + "src": "64:72:35", "nodes": [], "absolutePath": "src/lib/LibGatewayActorStorage.sol", "file": "../lib/LibGatewayActorStorage.sol", "nameLocation": "-1:-1:-1", - "scope": 39253, - "sourceUnit": 42505, + "scope": 34409, + "sourceUnit": 37667, "symbolAliases": [ { "foreign": { - "id": 38679, + "id": 33825, "name": "GatewayActorModifiers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42504, - "src": "72:21:39", + "referencedDeclaration": 37666, + "src": "72:21:35", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1077,24 +1085,24 @@ "unitAlias": "" }, { - "id": 38682, + "id": 33828, "nodeType": "ImportDirective", - "src": "137:51:39", + "src": "137:51:35", "nodes": [], "absolutePath": "src/structs/Checkpoint.sol", "file": "../structs/Checkpoint.sol", "nameLocation": "-1:-1:-1", - "scope": 39253, - "sourceUnit": 44192, + "scope": 34409, + "sourceUnit": 39368, "symbolAliases": [ { "foreign": { - "id": 38681, + "id": 33827, "name": "CrossMsg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44176, - "src": "145:8:39", + "referencedDeclaration": 39352, + "src": "145:8:35", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1103,24 +1111,24 @@ "unitAlias": "" }, { - "id": 38684, + "id": 33830, "nodeType": "ImportDirective", - "src": "189:43:39", + "src": "189:43:35", "nodes": [], "absolutePath": "src/enums/Status.sol", "file": "../enums/Status.sol", "nameLocation": "-1:-1:-1", - "scope": 39253, - "sourceUnit": 38138, + "scope": 34409, + "sourceUnit": 33154, "symbolAliases": [ { "foreign": { - "id": 38683, + "id": 33829, "name": "Status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38137, - "src": "197:6:39", + "referencedDeclaration": 33153, + "src": "197:6:35", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1129,24 +1137,24 @@ "unitAlias": "" }, { - "id": 38686, + "id": 33832, "nodeType": "ImportDirective", - "src": "233:53:39", + "src": "233:53:35", "nodes": [], "absolutePath": "src/structs/FvmAddress.sol", "file": "../structs/FvmAddress.sol", "nameLocation": "-1:-1:-1", - "scope": 39253, - "sourceUnit": 44261, + "scope": 34409, + "sourceUnit": 39439, "symbolAliases": [ { "foreign": { - "id": 38685, + "id": 33831, "name": "FvmAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44253, - "src": "241:10:39", + "referencedDeclaration": 39431, + "src": "241:10:35", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1155,36 +1163,36 @@ "unitAlias": "" }, { - "id": 38689, + "id": 33835, "nodeType": "ImportDirective", - "src": "287:55:39", + "src": "287:55:35", "nodes": [], "absolutePath": "src/structs/Subnet.sol", "file": "../structs/Subnet.sol", "nameLocation": "-1:-1:-1", - "scope": 39253, - "sourceUnit": 44311, + "scope": 34409, + "sourceUnit": 39489, "symbolAliases": [ { "foreign": { - "id": 38687, + "id": 33833, "name": "SubnetID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44279, - "src": "295:8:39", + "referencedDeclaration": 39457, + "src": "295:8:35", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 38688, + "id": 33834, "name": "Subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44303, - "src": "305:6:39", + "referencedDeclaration": 39481, + "src": "305:6:35", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1193,120 +1201,120 @@ "unitAlias": "" }, { - "id": 38699, + "id": 33845, "nodeType": "ImportDirective", - "src": "343:250:39", + "src": "343:250:35", "nodes": [], "absolutePath": "src/errors/IPCErrors.sol", "file": "../errors/IPCErrors.sol", "nameLocation": "-1:-1:-1", - "scope": 39253, - "sourceUnit": 38239, + "scope": 34409, + "sourceUnit": 33255, "symbolAliases": [ { "foreign": { - "id": 38690, + "id": 33836, "name": "AlreadyInitialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38148, - "src": "351:18:39", + "referencedDeclaration": 33164, + "src": "351:18:35", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 38691, + "id": 33837, "name": "AlreadyRegisteredSubnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38150, - "src": "371:23:39", + "referencedDeclaration": 33166, + "src": "371:23:35", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 38692, + "id": 33838, "name": "CannotReleaseZero", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38154, - "src": "396:17:39", + "referencedDeclaration": 33170, + "src": "396:17:35", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 38693, + "id": 33839, "name": "NotEnoughFunds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38206, - "src": "415:14:39", + "referencedDeclaration": 33222, + "src": "415:14:35", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 38694, + "id": 33840, "name": "NotEnoughFundsToRelease", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38208, - "src": "431:23:39", + "referencedDeclaration": 33224, + "src": "431:23:35", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 38695, + "id": 33841, "name": "NotEmptySubnetCircSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38198, - "src": "456:24:39", + "referencedDeclaration": 33214, + "src": "456:24:35", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 38696, + "id": 33842, "name": "NotRegisteredSubnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38220, - "src": "482:19:39", + "referencedDeclaration": 33236, + "src": "482:19:35", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 38697, + "id": 33843, "name": "ValidatorsAndWeightsLengthMismatch", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38234, - "src": "503:34:39", + "referencedDeclaration": 33250, + "src": "503:34:35", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 38698, + "id": 33844, "name": "ValidatorWeightIsZero", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38232, - "src": "539:21:39", + "referencedDeclaration": 33248, + "src": "539:21:35", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1315,24 +1323,24 @@ "unitAlias": "" }, { - "id": 38701, + "id": 33847, "nodeType": "ImportDirective", - "src": "594:49:39", + "src": "594:49:35", "nodes": [], "absolutePath": "src/lib/LibGateway.sol", "file": "../lib/LibGateway.sol", "nameLocation": "-1:-1:-1", - "scope": 39253, - "sourceUnit": 42263, + "scope": 34409, + "sourceUnit": 37422, "symbolAliases": [ { "foreign": { - "id": 38700, + "id": 33846, "name": "LibGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42262, - "src": "602:10:39", + "referencedDeclaration": 37421, + "src": "602:10:35", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1341,24 +1349,24 @@ "unitAlias": "" }, { - "id": 38703, + "id": 33849, "nodeType": "ImportDirective", - "src": "644:61:39", + "src": "644:61:35", "nodes": [], "absolutePath": "src/lib/FvmAddressHelper.sol", "file": "../lib/FvmAddressHelper.sol", "nameLocation": "-1:-1:-1", - "scope": 39253, - "sourceUnit": 41483, + "scope": 34409, + "sourceUnit": 36642, "symbolAliases": [ { "foreign": { - "id": 38702, + "id": 33848, "name": "FvmAddressHelper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 41482, - "src": "652:16:39", + "referencedDeclaration": 36641, + "src": "652:16:35", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1367,24 +1375,24 @@ "unitAlias": "" }, { - "id": 38705, + "id": 33851, "nodeType": "ImportDirective", - "src": "706:57:39", + "src": "706:57:35", "nodes": [], "absolutePath": "src/lib/SubnetIDHelper.sol", "file": "../lib/SubnetIDHelper.sol", "nameLocation": "-1:-1:-1", - "scope": 39253, - "sourceUnit": 44132, + "scope": 34409, + "sourceUnit": 39308, "symbolAliases": [ { "foreign": { - "id": 38704, + "id": 33850, "name": "SubnetIDHelper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44131, - "src": "714:14:39", + "referencedDeclaration": 39307, + "src": "714:14:35", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1393,24 +1401,24 @@ "unitAlias": "" }, { - "id": 38707, + "id": 33853, "nodeType": "ImportDirective", - "src": "764:57:39", + "src": "764:57:35", "nodes": [], "absolutePath": "src/lib/CrossMsgHelper.sol", "file": "../lib/CrossMsgHelper.sol", "nameLocation": "-1:-1:-1", - "scope": 39253, - "sourceUnit": 41104, + "scope": 34409, + "sourceUnit": 36260, "symbolAliases": [ { "foreign": { - "id": 38706, + "id": 33852, "name": "CrossMsgHelper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 41103, - "src": "772:14:39", + "referencedDeclaration": 36259, + "src": "772:14:35", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1419,24 +1427,24 @@ "unitAlias": "" }, { - "id": 38709, + "id": 33855, "nodeType": "ImportDirective", - "src": "822:56:39", + "src": "822:56:35", "nodes": [], "absolutePath": "lib/fevmate/contracts/utils/FilAddress.sol", "file": "fevmate/utils/FilAddress.sol", "nameLocation": "-1:-1:-1", - "scope": 39253, + "scope": 34409, "sourceUnit": 299, "symbolAliases": [ { "foreign": { - "id": 38708, + "id": 33854, "name": "FilAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 298, - "src": "830:10:39", + "src": "830:10:35", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1445,24 +1453,24 @@ "unitAlias": "" }, { - "id": 38711, + "id": 33857, "nodeType": "ImportDirective", - "src": "879:62:39", + "src": "879:62:35", "nodes": [], "absolutePath": "src/lib/LibReentrancyGuard.sol", "file": "../lib/LibReentrancyGuard.sol", "nameLocation": "-1:-1:-1", - "scope": 39253, - "sourceUnit": 42568, + "scope": 34409, + "sourceUnit": 37730, "symbolAliases": [ { "foreign": { - "id": 38710, + "id": 33856, "name": "ReentrancyGuard", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42567, - "src": "887:15:39", + "referencedDeclaration": 37729, + "src": "887:15:35", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1471,24 +1479,24 @@ "unitAlias": "" }, { - "id": 38713, + "id": 33859, "nodeType": "ImportDirective", - "src": "942:47:39", + "src": "942:47:35", "nodes": [], "absolutePath": "src/lib/LibVoting.sol", "file": "../lib/LibVoting.sol", "nameLocation": "-1:-1:-1", - "scope": 39253, - "sourceUnit": 43439, + "scope": 34409, + "sourceUnit": 38615, "symbolAliases": [ { "foreign": { - "id": 38712, + "id": 33858, "name": "LibVoting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 43438, - "src": "950:9:39", + "referencedDeclaration": 38614, + "src": "950:9:35", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1497,31 +1505,31 @@ "unitAlias": "" }, { - "id": 39252, + "id": 34408, "nodeType": "ContractDefinition", - "src": "991:6627:39", + "src": "991:6681:35", "nodes": [ { - "id": 38720, + "id": 33866, "nodeType": "UsingForDirective", - "src": "1068:37:39", + "src": "1068:37:35", "nodes": [], "global": false, "libraryName": { - "id": 38718, + "id": 33864, "name": "FilAddress", "nameLocations": [ - "1074:10:39" + "1074:10:35" ], "nodeType": "IdentifierPath", "referencedDeclaration": 298, - "src": "1074:10:39" + "src": "1074:10:35" }, "typeName": { - "id": 38719, + "id": 33865, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1089:15:39", + "src": "1089:15:35", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -1530,144 +1538,144 @@ } }, { - "id": 38724, + "id": 33870, "nodeType": "UsingForDirective", - "src": "1110:34:39", + "src": "1110:34:35", "nodes": [], "global": false, "libraryName": { - "id": 38721, + "id": 33867, "name": "SubnetIDHelper", "nameLocations": [ - "1116:14:39" + "1116:14:35" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44131, - "src": "1116:14:39" + "referencedDeclaration": 39307, + "src": "1116:14:35" }, "typeName": { - "id": 38723, + "id": 33869, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 38722, + "id": 33868, "name": "SubnetID", "nameLocations": [ - "1135:8:39" + "1135:8:35" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44279, - "src": "1135:8:39" + "referencedDeclaration": 39457, + "src": "1135:8:35" }, - "referencedDeclaration": 44279, - "src": "1135:8:39", + "referencedDeclaration": 39457, + "src": "1135:8:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage_ptr", "typeString": "struct SubnetID" } } }, { - "id": 38728, + "id": 33874, "nodeType": "UsingForDirective", - "src": "1149:38:39", + "src": "1149:38:35", "nodes": [], "global": false, "libraryName": { - "id": 38725, + "id": 33871, "name": "FvmAddressHelper", "nameLocations": [ - "1155:16:39" + "1155:16:35" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 41482, - "src": "1155:16:39" + "referencedDeclaration": 36641, + "src": "1155:16:35" }, "typeName": { - "id": 38727, + "id": 33873, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 38726, + "id": 33872, "name": "FvmAddress", "nameLocations": [ - "1176:10:39" + "1176:10:35" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44253, - "src": "1176:10:39" + "referencedDeclaration": 39431, + "src": "1176:10:35" }, - "referencedDeclaration": 44253, - "src": "1176:10:39", + "referencedDeclaration": 39431, + "src": "1176:10:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_FvmAddress_$44253_storage_ptr", + "typeIdentifier": "t_struct$_FvmAddress_$39431_storage_ptr", "typeString": "struct FvmAddress" } } }, { - "id": 38756, + "id": 33902, "nodeType": "FunctionDefinition", - "src": "1307:240:39", + "src": "1307:240:35", "nodes": [], "body": { - "id": 38755, + "id": 33901, "nodeType": "Block", - "src": "1379:168:39", + "src": "1379:168:35", "nodes": [], "statements": [ { "condition": { "expression": { - "id": 38736, + "id": 33882, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "1393:1:39", + "referencedDeclaration": 37561, + "src": "1393:1:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 38737, + "id": 33883, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "1395:11:39", + "memberLocation": "1395:11:35", "memberName": "initialized", "nodeType": "MemberAccess", - "referencedDeclaration": 42380, - "src": "1393:13:39", + "referencedDeclaration": 37548, + "src": "1393:13:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 38742, + "id": 33888, "nodeType": "IfStatement", - "src": "1389:71:39", + "src": "1389:71:35", "trueBody": { - "id": 38741, + "id": 33887, "nodeType": "Block", - "src": "1408:52:39", + "src": "1408:52:35", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 38738, + "id": 33884, "name": "AlreadyInitialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38148, - "src": "1429:18:39", + "referencedDeclaration": 33164, + "src": "1429:18:35", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 38739, + "id": 33885, "isConstant": false, "isLValue": false, "isPure": false, @@ -1676,16 +1684,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1429:20:39", + "src": "1429:20:35", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 38740, + "id": 33886, "nodeType": "RevertStatement", - "src": "1422:27:39" + "src": "1422:27:35" } ] } @@ -1694,12 +1702,12 @@ "expression": { "arguments": [ { - "id": 38746, + "id": 33892, "name": "genesisEpoch", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38731, - "src": "1497:12:39", + "referencedDeclaration": 33877, + "src": "1497:12:35", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -1714,33 +1722,33 @@ } ], "expression": { - "id": 38743, + "id": 33889, "name": "LibVoting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 43438, - "src": "1470:9:39", + "referencedDeclaration": 38614, + "src": "1470:9:35", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibVoting_$43438_$", + "typeIdentifier": "t_type$_t_contract$_LibVoting_$38614_$", "typeString": "type(library LibVoting)" } }, - "id": 38745, + "id": 33891, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1480:16:39", + "memberLocation": "1480:16:35", "memberName": "initGenesisEpoch", "nodeType": "MemberAccess", - "referencedDeclaration": 42997, - "src": "1470:26:39", + "referencedDeclaration": 38173, + "src": "1470:26:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint64_$returns$__$", "typeString": "function (uint64)" } }, - "id": 38747, + "id": 33893, "isConstant": false, "isLValue": false, "isPure": false, @@ -1749,47 +1757,47 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1470:40:39", + "src": "1470:40:35", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 38748, + "id": 33894, "nodeType": "ExpressionStatement", - "src": "1470:40:39" + "src": "1470:40:35" }, { "expression": { - "id": 38753, + "id": 33899, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 38749, + "id": 33895, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "1520:1:39", + "referencedDeclaration": 37561, + "src": "1520:1:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 38751, + "id": 33897, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "1522:11:39", + "memberLocation": "1522:11:35", "memberName": "initialized", "nodeType": "MemberAccess", - "referencedDeclaration": 42380, - "src": "1520:13:39", + "referencedDeclaration": 37548, + "src": "1520:13:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1799,36 +1807,36 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 38752, + "id": 33898, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1536:4:39", + "src": "1536:4:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "1520:20:39", + "src": "1520:20:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 38754, + "id": 33900, "nodeType": "ExpressionStatement", - "src": "1520:20:39" + "src": "1520:20:35" } ] }, "documentation": { - "id": 38729, + "id": 33875, "nodeType": "StructuredDocumentation", - "src": "1193:109:39", + "src": "1193:109:35", "text": "@notice initialize the contract with the genesis epoch\n @param genesisEpoch - genesis epoch to set" }, "functionSelector": "13f35388", @@ -1836,37 +1844,37 @@ "kind": "function", "modifiers": [ { - "id": 38734, + "id": 33880, "kind": "modifierInvocation", "modifierName": { - "id": 38733, + "id": 33879, "name": "systemActorOnly", "nameLocations": [ - "1363:15:39" + "1363:15:35" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 42496, - "src": "1363:15:39" + "referencedDeclaration": 37658, + "src": "1363:15:35" }, "nodeType": "ModifierInvocation", - "src": "1363:15:39" + "src": "1363:15:35" } ], "name": "initGenesisEpoch", - "nameLocation": "1316:16:39", + "nameLocation": "1316:16:35", "parameters": { - "id": 38732, + "id": 33878, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 38731, + "id": 33877, "mutability": "mutable", "name": "genesisEpoch", - "nameLocation": "1340:12:39", + "nameLocation": "1340:12:35", "nodeType": "VariableDeclaration", - "scope": 38756, - "src": "1333:19:39", + "scope": 33902, + "src": "1333:19:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1874,10 +1882,10 @@ "typeString": "uint64" }, "typeName": { - "id": 38730, + "id": 33876, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "1333:6:39", + "src": "1333:6:35", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -1886,28 +1894,28 @@ "visibility": "internal" } ], - "src": "1332:21:39" + "src": "1332:21:35" }, "returnParameters": { - "id": 38735, + "id": 33881, "nodeType": "ParameterList", "parameters": [], - "src": "1379:0:39" + "src": "1379:0:35" }, - "scope": 39252, + "scope": 34408, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 38830, + "id": 33986, "nodeType": "FunctionDefinition", - "src": "1658:551:39", + "src": "1664:599:35", "nodes": [], "body": { - "id": 38829, + "id": 33985, "nodeType": "Block", - "src": "1695:514:39", + "src": "1701:562:35", "nodes": [], "statements": [ { @@ -1916,33 +1924,33 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 38764, + "id": 33910, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 38760, + "id": 33906, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "1709:3:39", + "src": "1715:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 38761, + "id": 33907, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1713:5:39", + "memberLocation": "1719:5:35", "memberName": "value", "nodeType": "MemberAccess", - "src": "1709:9:39", + "src": "1715:9:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1952,63 +1960,63 @@ "operator": "<", "rightExpression": { "expression": { - "id": 38762, + "id": 33908, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "1721:1:39", + "referencedDeclaration": 37561, + "src": "1727:1:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 38763, + "id": 33909, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "1723:8:39", + "memberLocation": "1729:8:35", "memberName": "minStake", "nodeType": "MemberAccess", - "referencedDeclaration": 42313, - "src": "1721:10:39", + "referencedDeclaration": 37522, + "src": "1727:10:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1709:22:39", + "src": "1715:22:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 38769, + "id": 33915, "nodeType": "IfStatement", - "src": "1705:76:39", + "src": "1711:76:35", "trueBody": { - "id": 38768, + "id": 33914, "nodeType": "Block", - "src": "1733:48:39", + "src": "1739:48:35", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 38765, + "id": 33911, "name": "NotEnoughFunds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38206, - "src": "1754:14:39", + "referencedDeclaration": 33222, + "src": "1760:14:35", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 38766, + "id": 33912, "isConstant": false, "isLValue": false, "isPure": false, @@ -2017,88 +2025,88 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1754:16:39", + "src": "1760:16:35", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 38767, + "id": 33913, "nodeType": "RevertStatement", - "src": "1747:23:39" + "src": "1753:23:35" } ] } }, { "assignments": [ - 38772 + 33918 ], "declarations": [ { "constant": false, - "id": 38772, + "id": 33918, "mutability": "mutable", "name": "subnetId", - "nameLocation": "1807:8:39", + "nameLocation": "1813:8:35", "nodeType": "VariableDeclaration", - "scope": 38829, - "src": "1791:24:39", + "scope": 33985, + "src": "1797:24:35", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID" }, "typeName": { - "id": 38771, + "id": 33917, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 38770, + "id": 33916, "name": "SubnetID", "nameLocations": [ - "1791:8:39" + "1797:8:35" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44279, - "src": "1791:8:39" + "referencedDeclaration": 39457, + "src": "1797:8:35" }, - "referencedDeclaration": 44279, - "src": "1791:8:39", + "referencedDeclaration": 39457, + "src": "1797:8:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage_ptr", "typeString": "struct SubnetID" } }, "visibility": "internal" } ], - "id": 38779, + "id": 33925, "initialValue": { "arguments": [ { "expression": { - "id": 38776, + "id": 33922, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "1847:3:39", + "src": "1853:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 38777, + "id": 33923, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1851:6:39", + "memberLocation": "1857:6:35", "memberName": "sender", "nodeType": "MemberAccess", - "src": "1847:10:39", + "src": "1853:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2114,48 +2122,48 @@ ], "expression": { "expression": { - "id": 38773, + "id": 33919, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "1818:1:39", + "referencedDeclaration": 37561, + "src": "1824:1:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 38774, + "id": 33920, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "1820:11:39", + "memberLocation": "1826:11:35", "memberName": "networkName", "nodeType": "MemberAccess", - "referencedDeclaration": 42307, - "src": "1818:13:39", + "referencedDeclaration": 37519, + "src": "1824:13:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage", "typeString": "struct SubnetID storage ref" } }, - "id": 38775, + "id": 33921, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "1832:14:39", + "memberLocation": "1838:14:35", "memberName": "createSubnetId", "nodeType": "MemberAccess", - "referencedDeclaration": 43778, - "src": "1818:28:39", + "referencedDeclaration": 38954, + "src": "1824:28:35", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$44279_memory_ptr_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39457_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$39457_memory_ptr_$attached_to$_t_struct$_SubnetID_$39457_memory_ptr_$", "typeString": "function (struct SubnetID memory,address) pure returns (struct SubnetID memory)" } }, - "id": 38778, + "id": 33924, "isConstant": false, "isLValue": false, "isPure": false, @@ -2164,31 +2172,31 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1818:40:39", + "src": "1824:40:35", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "1791:67:39" + "src": "1797:67:35" }, { "assignments": [ - 38781, - 38784 + 33927, + 33930 ], "declarations": [ { "constant": false, - "id": 38781, + "id": 33927, "mutability": "mutable", "name": "registered", - "nameLocation": "1875:10:39", + "nameLocation": "1881:10:35", "nodeType": "VariableDeclaration", - "scope": 38829, - "src": "1870:15:39", + "scope": 33985, + "src": "1876:15:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2196,10 +2204,10 @@ "typeString": "bool" }, "typeName": { - "id": 38780, + "id": 33926, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1870:4:39", + "src": "1876:4:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2209,54 +2217,54 @@ }, { "constant": false, - "id": 38784, + "id": 33930, "mutability": "mutable", "name": "subnet", - "nameLocation": "1902:6:39", + "nameLocation": "1908:6:35", "nodeType": "VariableDeclaration", - "scope": 38829, - "src": "1887:21:39", + "scope": 33985, + "src": "1893:21:35", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet" }, "typeName": { - "id": 38783, + "id": 33929, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 38782, + "id": 33928, "name": "Subnet", "nameLocations": [ - "1887:6:39" + "1893:6:35" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44303, - "src": "1887:6:39" + "referencedDeclaration": 39481, + "src": "1893:6:35" }, - "referencedDeclaration": 44303, - "src": "1887:6:39", + "referencedDeclaration": 39481, + "src": "1893:6:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet" } }, "visibility": "internal" } ], - "id": 38789, + "id": 33935, "initialValue": { "arguments": [ { - "id": 38787, + "id": 33933, "name": "subnetId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38772, - "src": "1933:8:39", + "referencedDeclaration": 33918, + "src": "1939:8:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" } } @@ -2264,38 +2272,38 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" } ], "expression": { - "id": 38785, + "id": 33931, "name": "LibGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42262, - "src": "1912:10:39", + "referencedDeclaration": 37421, + "src": "1918:10:35", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeIdentifier": "t_type$_t_contract$_LibGateway_$37421_$", "typeString": "type(library LibGateway)" } }, - "id": 38786, + "id": 33932, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1923:9:39", + "memberLocation": "1929:9:35", "memberName": "getSubnet", "nodeType": "MemberAccess", - "referencedDeclaration": 42261, - "src": "1912:20:39", + "referencedDeclaration": 37420, + "src": "1918:20:35", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_SubnetID_$39457_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$39481_storage_ptr_$", "typeString": "function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)" } }, - "id": 38788, + "id": 33934, "isConstant": false, "isLValue": false, "isPure": false, @@ -2304,54 +2312,54 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1912:30:39", + "src": "1918:30:35", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$39481_storage_ptr_$", "typeString": "tuple(bool,struct Subnet storage pointer)" } }, "nodeType": "VariableDeclarationStatement", - "src": "1869:73:39" + "src": "1875:73:35" }, { "condition": { - "id": 38790, + "id": 33936, "name": "registered", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38781, - "src": "1957:10:39", + "referencedDeclaration": 33927, + "src": "1963:10:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 38795, + "id": 33941, "nodeType": "IfStatement", - "src": "1953:73:39", + "src": "1959:73:35", "trueBody": { - "id": 38794, + "id": 33940, "nodeType": "Block", - "src": "1969:57:39", + "src": "1975:57:35", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 38791, + "id": 33937, "name": "AlreadyRegisteredSubnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38150, - "src": "1990:23:39", + "referencedDeclaration": 33166, + "src": "1996:23:35", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 38792, + "id": 33938, "isConstant": false, "isLValue": false, "isPure": false, @@ -2360,109 +2368,109 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1990:25:39", + "src": "1996:25:35", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 38793, + "id": 33939, "nodeType": "RevertStatement", - "src": "1983:32:39" + "src": "1989:32:35" } ] } }, { "expression": { - "id": 38800, + "id": 33946, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 38796, + "id": 33942, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38784, - "src": "2036:6:39", + "referencedDeclaration": 33930, + "src": "2042:6:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet storage pointer" } }, - "id": 38798, + "id": 33944, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "2043:2:39", + "memberLocation": "2049:2:35", "memberName": "id", "nodeType": "MemberAccess", - "referencedDeclaration": 44295, - "src": "2036:9:39", + "referencedDeclaration": 39473, + "src": "2042:9:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage", "typeString": "struct SubnetID storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 38799, + "id": 33945, "name": "subnetId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38772, - "src": "2048:8:39", + "referencedDeclaration": 33918, + "src": "2054:8:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" } }, - "src": "2036:20:39", + "src": "2042:20:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage", "typeString": "struct SubnetID storage ref" } }, - "id": 38801, + "id": 33947, "nodeType": "ExpressionStatement", - "src": "2036:20:39" + "src": "2042:20:35" }, { "expression": { - "id": 38807, + "id": 33953, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 38802, + "id": 33948, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38784, - "src": "2066:6:39", + "referencedDeclaration": 33930, + "src": "2072:6:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet storage pointer" } }, - "id": 38804, + "id": 33950, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "2073:5:39", + "memberLocation": "2079:5:35", "memberName": "stake", "nodeType": "MemberAccess", - "referencedDeclaration": 44288, - "src": "2066:12:39", + "referencedDeclaration": 39459, + "src": "2072:12:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2472,73 +2480,73 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 38805, + "id": 33951, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "2081:3:39", + "src": "2087:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 38806, + "id": 33952, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2085:5:39", + "memberLocation": "2091:5:35", "memberName": "value", "nodeType": "MemberAccess", - "src": "2081:9:39", + "src": "2087:9:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2066:24:39", + "src": "2072:24:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 38808, + "id": 33954, "nodeType": "ExpressionStatement", - "src": "2066:24:39" + "src": "2072:24:35" }, { "expression": { - "id": 38814, + "id": 33960, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 38809, + "id": 33955, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38784, - "src": "2100:6:39", + "referencedDeclaration": 33930, + "src": "2106:6:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet storage pointer" } }, - "id": 38811, + "id": 33957, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "2107:6:39", + "memberLocation": "2113:6:35", "memberName": "status", "nodeType": "MemberAccess", - "referencedDeclaration": 44282, - "src": "2100:13:39", + "referencedDeclaration": 39470, + "src": "2106:13:35", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, @@ -2546,72 +2554,72 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 38812, + "id": 33958, "name": "Status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38137, - "src": "2116:6:39", + "referencedDeclaration": 33153, + "src": "2122:6:35", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Status_$38137_$", + "typeIdentifier": "t_type$_t_enum$_Status_$33153_$", "typeString": "type(enum Status)" } }, - "id": 38813, + "id": 33959, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "2123:6:39", + "memberLocation": "2129:6:35", "memberName": "Active", "nodeType": "MemberAccess", - "referencedDeclaration": 38132, - "src": "2116:13:39", + "referencedDeclaration": 33148, + "src": "2122:13:35", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, - "src": "2100:29:39", + "src": "2106:29:35", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, - "id": 38815, + "id": 33961, "nodeType": "ExpressionStatement", - "src": "2100:29:39" + "src": "2106:29:35" }, { "expression": { - "id": 38821, + "id": 33967, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 38816, + "id": 33962, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38784, - "src": "2139:6:39", + "referencedDeclaration": 33930, + "src": "2145:6:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet storage pointer" } }, - "id": 38818, + "id": 33964, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "2146:12:39", + "memberLocation": "2152:12:35", "memberName": "genesisEpoch", "nodeType": "MemberAccess", - "referencedDeclaration": 44290, - "src": "2139:19:39", + "referencedDeclaration": 39461, + "src": "2145:19:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2621,71 +2629,191 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 38819, + "id": 33965, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "2161:5:39", + "src": "2167:5:35", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 38820, + "id": 33966, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2167:6:39", + "memberLocation": "2173:6:35", "memberName": "number", "nodeType": "MemberAccess", - "src": "2161:12:39", + "src": "2167:12:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2139:34:39", + "src": "2145:34:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 38822, + "id": 33968, + "nodeType": "ExpressionStatement", + "src": "2145:34:35" + }, + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 33974, + "name": "subnetId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33918, + "src": "2208:8:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", + "typeString": "struct SubnetID memory" + } + }, + "id": 33975, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2217:6:35", + "memberName": "toHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 38879, + "src": "2208:15:35", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39457_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$39457_memory_ptr_$", + "typeString": "function (struct SubnetID memory) pure returns (bytes32)" + } + }, + "id": 33976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2208:17:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "expression": { + "id": 33969, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37561, + "src": "2190:1:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", + "typeString": "struct GatewayActorStorage storage ref" + } + }, + "id": 33972, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2192:10:35", + "memberName": "subnetKeys", + "nodeType": "MemberAccess", + "referencedDeclaration": 37515, + "src": "2190:12:35", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 33973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2203:4:35", + "memberName": "push", + "nodeType": "MemberAccess", + "src": "2190:17:35", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$", + "typeString": "function (bytes32[] storage pointer,bytes32)" + } + }, + "id": 33977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2190:36:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 33978, "nodeType": "ExpressionStatement", - "src": "2139:34:39" + "src": "2190:36:35" }, { "expression": { - "id": 38827, + "id": 33983, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 38823, + "id": 33979, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "2183:1:39", + "referencedDeclaration": 37561, + "src": "2237:1:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 38825, + "id": 33981, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "2185:12:39", + "memberLocation": "2239:12:35", "memberName": "totalSubnets", "nodeType": "MemberAccess", - "referencedDeclaration": 42310, - "src": "2183:14:39", + "referencedDeclaration": 37543, + "src": "2237:14:35", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -2695,70 +2823,70 @@ "operator": "+=", "rightHandSide": { "hexValue": "31", - "id": 38826, + "id": 33982, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2201:1:39", + "src": "2255:1:35", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "2183:19:39", + "src": "2237:19:35", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "id": 38828, + "id": 33984, "nodeType": "ExpressionStatement", - "src": "2183:19:39" + "src": "2237:19:35" } ] }, "documentation": { - "id": 38757, + "id": 33903, "nodeType": "StructuredDocumentation", - "src": "1553:100:39", - "text": "@notice register a subnet in the gateway. called by a subnet when it reaches the threshold stake" + "src": "1553:106:35", + "text": "@notice register a subnet in the gateway. It is called by a subnet when it reaches the threshold stake" }, "functionSelector": "1aa3a008", "implemented": true, "kind": "function", "modifiers": [], "name": "register", - "nameLocation": "1667:8:39", + "nameLocation": "1673:8:35", "parameters": { - "id": 38758, + "id": 33904, "nodeType": "ParameterList", "parameters": [], - "src": "1675:2:39" + "src": "1681:2:35" }, "returnParameters": { - "id": 38759, + "id": 33905, "nodeType": "ParameterList", "parameters": [], - "src": "1695:0:39" + "src": "1701:0:35" }, - "scope": 39252, + "scope": 34408, "stateMutability": "payable", "virtual": false, "visibility": "external" }, { - "id": 38890, + "id": 34046, "nodeType": "FunctionDefinition", - "src": "2280:489:39", + "src": "2334:489:35", "nodes": [], "body": { - "id": 38889, + "id": 34045, "nodeType": "Block", - "src": "2317:452:39", + "src": "2371:452:35", "nodes": [], "statements": [ { @@ -2767,33 +2895,33 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 38837, + "id": 33993, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 38834, + "id": 33990, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "2331:3:39", + "src": "2385:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 38835, + "id": 33991, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2335:5:39", + "memberLocation": "2389:5:35", "memberName": "value", "nodeType": "MemberAccess", - "src": "2331:9:39", + "src": "2385:9:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2803,51 +2931,51 @@ "operator": "<=", "rightExpression": { "hexValue": "30", - "id": 38836, + "id": 33992, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2344:1:39", + "src": "2398:1:35", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "2331:14:39", + "src": "2385:14:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 38842, + "id": 33998, "nodeType": "IfStatement", - "src": "2327:68:39", + "src": "2381:68:35", "trueBody": { - "id": 38841, + "id": 33997, "nodeType": "Block", - "src": "2347:48:39", + "src": "2401:48:35", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 38838, + "id": 33994, "name": "NotEnoughFunds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38206, - "src": "2368:14:39", + "referencedDeclaration": 33222, + "src": "2422:14:35", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 38839, + "id": 33995, "isConstant": false, "isLValue": false, "isPure": false, @@ -2856,35 +2984,35 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2368:16:39", + "src": "2422:16:35", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 38840, + "id": 33996, "nodeType": "RevertStatement", - "src": "2361:23:39" + "src": "2415:23:35" } ] } }, { "assignments": [ - 38844, - 38847 + 34000, + 34003 ], "declarations": [ { "constant": false, - "id": 38844, + "id": 34000, "mutability": "mutable", "name": "registered", - "nameLocation": "2411:10:39", + "nameLocation": "2465:10:35", "nodeType": "VariableDeclaration", - "scope": 38889, - "src": "2406:15:39", + "scope": 34045, + "src": "2460:15:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2892,10 +3020,10 @@ "typeString": "bool" }, "typeName": { - "id": 38843, + "id": 33999, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2406:4:39", + "src": "2460:4:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2905,67 +3033,67 @@ }, { "constant": false, - "id": 38847, + "id": 34003, "mutability": "mutable", "name": "subnet", - "nameLocation": "2438:6:39", + "nameLocation": "2492:6:35", "nodeType": "VariableDeclaration", - "scope": 38889, - "src": "2423:21:39", + "scope": 34045, + "src": "2477:21:35", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet" }, "typeName": { - "id": 38846, + "id": 34002, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 38845, + "id": 34001, "name": "Subnet", "nameLocations": [ - "2423:6:39" + "2477:6:35" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44303, - "src": "2423:6:39" + "referencedDeclaration": 39481, + "src": "2477:6:35" }, - "referencedDeclaration": 44303, - "src": "2423:6:39", + "referencedDeclaration": 39481, + "src": "2477:6:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet" } }, "visibility": "internal" } ], - "id": 38853, + "id": 34009, "initialValue": { "arguments": [ { "expression": { - "id": 38850, + "id": 34006, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "2469:3:39", + "src": "2523:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 38851, + "id": 34007, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2473:6:39", + "memberLocation": "2527:6:35", "memberName": "sender", "nodeType": "MemberAccess", - "src": "2469:10:39", + "src": "2523:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2980,33 +3108,33 @@ } ], "expression": { - "id": 38848, + "id": 34004, "name": "LibGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42262, - "src": "2448:10:39", + "referencedDeclaration": 37421, + "src": "2502:10:35", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeIdentifier": "t_type$_t_contract$_LibGateway_$37421_$", "typeString": "type(library LibGateway)" } }, - "id": 38849, + "id": 34005, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2459:9:39", + "memberLocation": "2513:9:35", "memberName": "getSubnet", "nodeType": "MemberAccess", - "referencedDeclaration": 42224, - "src": "2448:20:39", + "referencedDeclaration": 37383, + "src": "2502:20:35", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$39481_storage_ptr_$", "typeString": "function (address) view returns (bool,struct Subnet storage pointer)" } }, - "id": 38852, + "id": 34008, "isConstant": false, "isLValue": false, "isPure": false, @@ -3015,19 +3143,19 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2448:32:39", + "src": "2502:32:35", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$39481_storage_ptr_$", "typeString": "tuple(bool,struct Subnet storage pointer)" } }, "nodeType": "VariableDeclarationStatement", - "src": "2405:75:39" + "src": "2459:75:35" }, { "condition": { - "id": 38855, + "id": 34011, "isConstant": false, "isLValue": false, "isPure": false, @@ -3035,14 +3163,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2495:11:39", + "src": "2549:11:35", "subExpression": { - "id": 38854, + "id": 34010, "name": "registered", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38844, - "src": "2496:10:39", + "referencedDeclaration": 34000, + "src": "2550:10:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3053,31 +3181,31 @@ "typeString": "bool" } }, - "id": 38860, + "id": 34016, "nodeType": "IfStatement", - "src": "2491:70:39", + "src": "2545:70:35", "trueBody": { - "id": 38859, + "id": 34015, "nodeType": "Block", - "src": "2508:53:39", + "src": "2562:53:35", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 38856, + "id": 34012, "name": "NotRegisteredSubnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38220, - "src": "2529:19:39", + "referencedDeclaration": 33236, + "src": "2583:19:35", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 38857, + "id": 34013, "isConstant": false, "isLValue": false, "isPure": false, @@ -3086,50 +3214,50 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2529:21:39", + "src": "2583:21:35", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 38858, + "id": 34014, "nodeType": "RevertStatement", - "src": "2522:28:39" + "src": "2576:28:35" } ] } }, { "expression": { - "id": 38866, + "id": 34022, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 38861, + "id": 34017, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38847, - "src": "2571:6:39", + "referencedDeclaration": 34003, + "src": "2625:6:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet storage pointer" } }, - "id": 38863, + "id": 34019, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "2578:5:39", + "memberLocation": "2632:5:35", "memberName": "stake", "nodeType": "MemberAccess", - "referencedDeclaration": 44288, - "src": "2571:12:39", + "referencedDeclaration": 39459, + "src": "2625:12:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3139,77 +3267,77 @@ "operator": "+=", "rightHandSide": { "expression": { - "id": 38864, + "id": 34020, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "2587:3:39", + "src": "2641:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 38865, + "id": 34021, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2591:5:39", + "memberLocation": "2645:5:35", "memberName": "value", "nodeType": "MemberAccess", - "src": "2587:9:39", + "src": "2641:9:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2571:25:39", + "src": "2625:25:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 38867, + "id": 34023, "nodeType": "ExpressionStatement", - "src": "2571:25:39" + "src": "2625:25:35" }, { "condition": { "commonType": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" }, - "id": 38872, + "id": 34028, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 38868, + "id": 34024, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38847, - "src": "2611:6:39", + "referencedDeclaration": 34003, + "src": "2665:6:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet storage pointer" } }, - "id": 38869, + "id": 34025, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2618:6:39", + "memberLocation": "2672:6:35", "memberName": "status", "nodeType": "MemberAccess", - "referencedDeclaration": 44282, - "src": "2611:13:39", + "referencedDeclaration": 39470, + "src": "2665:13:35", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, @@ -3217,45 +3345,45 @@ "operator": "==", "rightExpression": { "expression": { - "id": 38870, + "id": 34026, "name": "Status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38137, - "src": "2628:6:39", + "referencedDeclaration": 33153, + "src": "2682:6:35", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Status_$38137_$", + "typeIdentifier": "t_type$_t_enum$_Status_$33153_$", "typeString": "type(enum Status)" } }, - "id": 38871, + "id": 34027, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "2635:8:39", + "memberLocation": "2689:8:35", "memberName": "Inactive", "nodeType": "MemberAccess", - "referencedDeclaration": 38133, - "src": "2628:15:39", + "referencedDeclaration": 33149, + "src": "2682:15:35", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, - "src": "2611:32:39", + "src": "2665:32:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 38888, + "id": 34044, "nodeType": "IfStatement", - "src": "2607:156:39", + "src": "2661:156:35", "trueBody": { - "id": 38887, + "id": 34043, "nodeType": "Block", - "src": "2645:118:39", + "src": "2699:118:35", "statements": [ { "condition": { @@ -3263,34 +3391,34 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 38877, + "id": 34033, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 38873, + "id": 34029, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38847, - "src": "2663:6:39", + "referencedDeclaration": 34003, + "src": "2717:6:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet storage pointer" } }, - "id": 38874, + "id": 34030, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2670:5:39", + "memberLocation": "2724:5:35", "memberName": "stake", "nodeType": "MemberAccess", - "referencedDeclaration": 44288, - "src": "2663:12:39", + "referencedDeclaration": 39459, + "src": "2717:12:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3300,78 +3428,78 @@ "operator": ">=", "rightExpression": { "expression": { - "id": 38875, + "id": 34031, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "2679:1:39", + "referencedDeclaration": 37561, + "src": "2733:1:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 38876, + "id": 34032, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2681:8:39", + "memberLocation": "2735:8:35", "memberName": "minStake", "nodeType": "MemberAccess", - "referencedDeclaration": 42313, - "src": "2679:10:39", + "referencedDeclaration": 37522, + "src": "2733:10:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2663:26:39", + "src": "2717:26:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 38886, + "id": 34042, "nodeType": "IfStatement", - "src": "2659:94:39", + "src": "2713:94:35", "trueBody": { - "id": 38885, + "id": 34041, "nodeType": "Block", - "src": "2691:62:39", + "src": "2745:62:35", "statements": [ { "expression": { - "id": 38883, + "id": 34039, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 38878, + "id": 34034, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38847, - "src": "2709:6:39", + "referencedDeclaration": 34003, + "src": "2763:6:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet storage pointer" } }, - "id": 38880, + "id": 34036, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "2716:6:39", + "memberLocation": "2770:6:35", "memberName": "status", "nodeType": "MemberAccess", - "referencedDeclaration": 44282, - "src": "2709:13:39", + "referencedDeclaration": 39470, + "src": "2763:13:35", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, @@ -3379,41 +3507,41 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 38881, + "id": 34037, "name": "Status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38137, - "src": "2725:6:39", + "referencedDeclaration": 33153, + "src": "2779:6:35", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Status_$38137_$", + "typeIdentifier": "t_type$_t_enum$_Status_$33153_$", "typeString": "type(enum Status)" } }, - "id": 38882, + "id": 34038, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "2732:6:39", + "memberLocation": "2786:6:35", "memberName": "Active", "nodeType": "MemberAccess", - "referencedDeclaration": 38132, - "src": "2725:13:39", + "referencedDeclaration": 33148, + "src": "2779:13:35", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, - "src": "2709:29:39", + "src": "2763:29:35", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, - "id": 38884, + "id": 34040, "nodeType": "ExpressionStatement", - "src": "2709:29:39" + "src": "2763:29:35" } ] } @@ -3424,9 +3552,9 @@ ] }, "documentation": { - "id": 38831, + "id": 33987, "nodeType": "StructuredDocumentation", - "src": "2215:60:39", + "src": "2269:60:35", "text": "@notice addStake - add collateral for an existing subnet" }, "functionSelector": "5a627dbc", @@ -3434,33 +3562,33 @@ "kind": "function", "modifiers": [], "name": "addStake", - "nameLocation": "2289:8:39", + "nameLocation": "2343:8:35", "parameters": { - "id": 38832, + "id": 33988, "nodeType": "ParameterList", "parameters": [], - "src": "2297:2:39" + "src": "2351:2:35" }, "returnParameters": { - "id": 38833, + "id": 33989, "nodeType": "ParameterList", "parameters": [], - "src": "2317:0:39" + "src": "2371:0:35" }, - "scope": 39252, + "scope": 34408, "stateMutability": "payable", "virtual": false, "visibility": "external" }, { - "id": 38965, + "id": 34121, "nodeType": "FunctionDefinition", - "src": "2833:591:39", + "src": "2887:591:35", "nodes": [], "body": { - "id": 38964, + "id": 34120, "nodeType": "Block", - "src": "2893:531:39", + "src": "2947:531:35", "nodes": [], "statements": [ { @@ -3469,18 +3597,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 38900, + "id": 34056, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 38898, + "id": 34054, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38893, - "src": "2907:6:39", + "referencedDeclaration": 34049, + "src": "2961:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3490,51 +3618,51 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 38899, + "id": 34055, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2917:1:39", + "src": "2971:1:35", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "2907:11:39", + "src": "2961:11:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 38905, + "id": 34061, "nodeType": "IfStatement", - "src": "2903:68:39", + "src": "2957:68:35", "trueBody": { - "id": 38904, + "id": 34060, "nodeType": "Block", - "src": "2920:51:39", + "src": "2974:51:35", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 38901, + "id": 34057, "name": "CannotReleaseZero", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38154, - "src": "2941:17:39", + "referencedDeclaration": 33170, + "src": "2995:17:35", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 38902, + "id": 34058, "isConstant": false, "isLValue": false, "isPure": false, @@ -3543,35 +3671,35 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2941:19:39", + "src": "2995:19:35", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 38903, + "id": 34059, "nodeType": "RevertStatement", - "src": "2934:26:39" + "src": "2988:26:35" } ] } }, { "assignments": [ - 38907, - 38910 + 34063, + 34066 ], "declarations": [ { "constant": false, - "id": 38907, + "id": 34063, "mutability": "mutable", "name": "registered", - "nameLocation": "2987:10:39", + "nameLocation": "3041:10:35", "nodeType": "VariableDeclaration", - "scope": 38964, - "src": "2982:15:39", + "scope": 34120, + "src": "3036:15:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3579,10 +3707,10 @@ "typeString": "bool" }, "typeName": { - "id": 38906, + "id": 34062, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2982:4:39", + "src": "3036:4:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3592,67 +3720,67 @@ }, { "constant": false, - "id": 38910, + "id": 34066, "mutability": "mutable", "name": "subnet", - "nameLocation": "3014:6:39", + "nameLocation": "3068:6:35", "nodeType": "VariableDeclaration", - "scope": 38964, - "src": "2999:21:39", + "scope": 34120, + "src": "3053:21:35", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet" }, "typeName": { - "id": 38909, + "id": 34065, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 38908, + "id": 34064, "name": "Subnet", "nameLocations": [ - "2999:6:39" + "3053:6:35" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44303, - "src": "2999:6:39" + "referencedDeclaration": 39481, + "src": "3053:6:35" }, - "referencedDeclaration": 44303, - "src": "2999:6:39", + "referencedDeclaration": 39481, + "src": "3053:6:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet" } }, "visibility": "internal" } ], - "id": 38916, + "id": 34072, "initialValue": { "arguments": [ { "expression": { - "id": 38913, + "id": 34069, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "3045:3:39", + "src": "3099:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 38914, + "id": 34070, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3049:6:39", + "memberLocation": "3103:6:35", "memberName": "sender", "nodeType": "MemberAccess", - "src": "3045:10:39", + "src": "3099:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3667,33 +3795,33 @@ } ], "expression": { - "id": 38911, + "id": 34067, "name": "LibGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42262, - "src": "3024:10:39", + "referencedDeclaration": 37421, + "src": "3078:10:35", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeIdentifier": "t_type$_t_contract$_LibGateway_$37421_$", "typeString": "type(library LibGateway)" } }, - "id": 38912, + "id": 34068, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3035:9:39", + "memberLocation": "3089:9:35", "memberName": "getSubnet", "nodeType": "MemberAccess", - "referencedDeclaration": 42224, - "src": "3024:20:39", + "referencedDeclaration": 37383, + "src": "3078:20:35", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$39481_storage_ptr_$", "typeString": "function (address) view returns (bool,struct Subnet storage pointer)" } }, - "id": 38915, + "id": 34071, "isConstant": false, "isLValue": false, "isPure": false, @@ -3702,19 +3830,19 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3024:32:39", + "src": "3078:32:35", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$39481_storage_ptr_$", "typeString": "tuple(bool,struct Subnet storage pointer)" } }, "nodeType": "VariableDeclarationStatement", - "src": "2981:75:39" + "src": "3035:75:35" }, { "condition": { - "id": 38918, + "id": 34074, "isConstant": false, "isLValue": false, "isPure": false, @@ -3722,14 +3850,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "3071:11:39", + "src": "3125:11:35", "subExpression": { - "id": 38917, + "id": 34073, "name": "registered", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38907, - "src": "3072:10:39", + "referencedDeclaration": 34063, + "src": "3126:10:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3740,31 +3868,31 @@ "typeString": "bool" } }, - "id": 38923, + "id": 34079, "nodeType": "IfStatement", - "src": "3067:70:39", + "src": "3121:70:35", "trueBody": { - "id": 38922, + "id": 34078, "nodeType": "Block", - "src": "3084:53:39", + "src": "3138:53:35", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 38919, + "id": 34075, "name": "NotRegisteredSubnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38220, - "src": "3105:19:39", + "referencedDeclaration": 33236, + "src": "3159:19:35", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 38920, + "id": 34076, "isConstant": false, "isLValue": false, "isPure": false, @@ -3773,16 +3901,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3105:21:39", + "src": "3159:21:35", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 38921, + "id": 34077, "nodeType": "RevertStatement", - "src": "3098:28:39" + "src": "3152:28:35" } ] } @@ -3793,34 +3921,34 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 38927, + "id": 34083, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 38924, + "id": 34080, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38910, - "src": "3150:6:39", + "referencedDeclaration": 34066, + "src": "3204:6:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet storage pointer" } }, - "id": 38925, + "id": 34081, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3157:5:39", + "memberLocation": "3211:5:35", "memberName": "stake", "nodeType": "MemberAccess", - "referencedDeclaration": 44288, - "src": "3150:12:39", + "referencedDeclaration": 39459, + "src": "3204:12:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3829,48 +3957,48 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 38926, + "id": 34082, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38893, - "src": "3165:6:39", + "referencedDeclaration": 34049, + "src": "3219:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3150:21:39", + "src": "3204:21:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 38932, + "id": 34088, "nodeType": "IfStatement", - "src": "3146:84:39", + "src": "3200:84:35", "trueBody": { - "id": 38931, + "id": 34087, "nodeType": "Block", - "src": "3173:57:39", + "src": "3227:57:35", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 38928, + "id": 34084, "name": "NotEnoughFundsToRelease", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38208, - "src": "3194:23:39", + "referencedDeclaration": 33224, + "src": "3248:23:35", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 38929, + "id": 34085, "isConstant": false, "isLValue": false, "isPure": false, @@ -3879,50 +4007,50 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3194:25:39", + "src": "3248:25:35", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 38930, + "id": 34086, "nodeType": "RevertStatement", - "src": "3187:32:39" + "src": "3241:32:35" } ] } }, { "expression": { - "id": 38937, + "id": 34093, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 38933, + "id": 34089, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38910, - "src": "3240:6:39", + "referencedDeclaration": 34066, + "src": "3294:6:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet storage pointer" } }, - "id": 38935, + "id": 34091, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3247:5:39", + "memberLocation": "3301:5:35", "memberName": "stake", "nodeType": "MemberAccess", - "referencedDeclaration": 44288, - "src": "3240:12:39", + "referencedDeclaration": 39459, + "src": "3294:12:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3931,26 +4059,26 @@ "nodeType": "Assignment", "operator": "-=", "rightHandSide": { - "id": 38936, + "id": 34092, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38893, - "src": "3256:6:39", + "referencedDeclaration": 34049, + "src": "3310:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3240:22:39", + "src": "3294:22:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 38938, + "id": 34094, "nodeType": "ExpressionStatement", - "src": "3240:22:39" + "src": "3294:22:35" }, { "condition": { @@ -3958,34 +4086,34 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 38943, + "id": 34099, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 38939, + "id": 34095, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38910, - "src": "3277:6:39", + "referencedDeclaration": 34066, + "src": "3331:6:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet storage pointer" } }, - "id": 38940, + "id": 34096, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3284:5:39", + "memberLocation": "3338:5:35", "memberName": "stake", "nodeType": "MemberAccess", - "referencedDeclaration": 44288, - "src": "3277:12:39", + "referencedDeclaration": 39459, + "src": "3331:12:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3995,78 +4123,78 @@ "operator": "<", "rightExpression": { "expression": { - "id": 38941, + "id": 34097, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "3292:1:39", + "referencedDeclaration": 37561, + "src": "3346:1:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 38942, + "id": 34098, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3294:8:39", + "memberLocation": "3348:8:35", "memberName": "minStake", "nodeType": "MemberAccess", - "referencedDeclaration": 42313, - "src": "3292:10:39", + "referencedDeclaration": 37522, + "src": "3346:10:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3277:25:39", + "src": "3331:25:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 38952, + "id": 34108, "nodeType": "IfStatement", - "src": "3273:87:39", + "src": "3327:87:35", "trueBody": { - "id": 38951, + "id": 34107, "nodeType": "Block", - "src": "3304:56:39", + "src": "3358:56:35", "statements": [ { "expression": { - "id": 38949, + "id": 34105, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 38944, + "id": 34100, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38910, - "src": "3318:6:39", + "referencedDeclaration": 34066, + "src": "3372:6:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet storage pointer" } }, - "id": 38946, + "id": 34102, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3325:6:39", + "memberLocation": "3379:6:35", "memberName": "status", "nodeType": "MemberAccess", - "referencedDeclaration": 44282, - "src": "3318:13:39", + "referencedDeclaration": 39470, + "src": "3372:13:35", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, @@ -4074,41 +4202,41 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 38947, + "id": 34103, "name": "Status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38137, - "src": "3334:6:39", + "referencedDeclaration": 33153, + "src": "3388:6:35", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Status_$38137_$", + "typeIdentifier": "t_type$_t_enum$_Status_$33153_$", "typeString": "type(enum Status)" } }, - "id": 38948, + "id": 34104, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "3341:8:39", + "memberLocation": "3395:8:35", "memberName": "Inactive", "nodeType": "MemberAccess", - "referencedDeclaration": 38133, - "src": "3334:15:39", + "referencedDeclaration": 33149, + "src": "3388:15:35", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, - "src": "3318:31:39", + "src": "3372:31:35", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, - "id": 38950, + "id": 34106, "nodeType": "ExpressionStatement", - "src": "3318:31:39" + "src": "3372:31:35" } ] } @@ -4117,12 +4245,12 @@ "expression": { "arguments": [ { - "id": 38961, + "id": 34117, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38893, - "src": "3410:6:39", + "referencedDeclaration": 34049, + "src": "3464:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4144,48 +4272,48 @@ "argumentTypes": [], "expression": { "expression": { - "id": 38955, + "id": 34111, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38910, - "src": "3378:6:39", + "referencedDeclaration": 34066, + "src": "3432:6:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet storage pointer" } }, - "id": 38956, + "id": 34112, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3385:2:39", + "memberLocation": "3439:2:35", "memberName": "id", "nodeType": "MemberAccess", - "referencedDeclaration": 44295, - "src": "3378:9:39", + "referencedDeclaration": 39473, + "src": "3432:9:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage", "typeString": "struct SubnetID storage ref" } }, - "id": 38957, + "id": 34113, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3388:8:39", + "memberLocation": "3442:8:35", "memberName": "getActor", "nodeType": "MemberAccess", - "referencedDeclaration": 43808, - "src": "3378:18:39", + "referencedDeclaration": 38984, + "src": "3432:18:35", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39457_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$39457_memory_ptr_$", "typeString": "function (struct SubnetID memory) pure returns (address)" } }, - "id": 38958, + "id": 34114, "isConstant": false, "isLValue": false, "isPure": false, @@ -4194,7 +4322,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3378:20:39", + "src": "3432:20:35", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -4209,27 +4337,27 @@ "typeString": "address" } ], - "id": 38954, + "id": 34110, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3370:8:39", + "src": "3424:8:35", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_payable_$", "typeString": "type(address payable)" }, "typeName": { - "id": 38953, + "id": 34109, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3370:8:39", + "src": "3424:8:35", "stateMutability": "payable", "typeDescriptions": {} } }, - "id": 38959, + "id": 34115, "isConstant": false, "isLValue": false, "isPure": false, @@ -4238,29 +4366,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3370:29:39", + "src": "3424:29:35", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 38960, + "id": 34116, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3400:9:39", + "memberLocation": "3454:9:35", "memberName": "sendValue", "nodeType": "MemberAccess", "referencedDeclaration": 290, - "src": "3370:39:39", + "src": "3424:39:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$", "typeString": "function (address payable,uint256)" } }, - "id": 38962, + "id": 34118, "isConstant": false, "isLValue": false, "isPure": false, @@ -4269,23 +4397,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3370:47:39", + "src": "3424:47:35", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 38963, + "id": 34119, "nodeType": "ExpressionStatement", - "src": "3370:47:39" + "src": "3424:47:35" } ] }, "documentation": { - "id": 38891, + "id": 34047, "nodeType": "StructuredDocumentation", - "src": "2775:53:39", + "src": "2829:53:35", "text": "@notice release collateral for an existing subnet" }, "functionSelector": "45f54485", @@ -4293,37 +4421,37 @@ "kind": "function", "modifiers": [ { - "id": 38896, + "id": 34052, "kind": "modifierInvocation", "modifierName": { - "id": 38895, + "id": 34051, "name": "nonReentrant", "nameLocations": [ - "2880:12:39" + "2934:12:35" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 42553, - "src": "2880:12:39" + "referencedDeclaration": 37715, + "src": "2934:12:35" }, "nodeType": "ModifierInvocation", - "src": "2880:12:39" + "src": "2934:12:35" } ], "name": "releaseStake", - "nameLocation": "2842:12:39", + "nameLocation": "2896:12:35", "parameters": { - "id": 38894, + "id": 34050, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 38893, + "id": 34049, "mutability": "mutable", "name": "amount", - "nameLocation": "2863:6:39", + "nameLocation": "2917:6:35", "nodeType": "VariableDeclaration", - "scope": 38965, - "src": "2855:14:39", + "scope": 34121, + "src": "2909:14:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4331,10 +4459,10 @@ "typeString": "uint256" }, "typeName": { - "id": 38892, + "id": 34048, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2855:7:39", + "src": "2909:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4343,28 +4471,28 @@ "visibility": "internal" } ], - "src": "2854:16:39" + "src": "2908:16:35" }, "returnParameters": { - "id": 38897, + "id": 34053, "nodeType": "ParameterList", "parameters": [], - "src": "2893:0:39" + "src": "2947:0:35" }, - "scope": 39252, + "scope": 34408, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 39010, + "id": 34166, "nodeType": "FunctionDefinition", - "src": "3430:369:39", + "src": "3484:369:35", "nodes": [], "body": { - "id": 39009, + "id": 34165, "nodeType": "Block", - "src": "3492:307:39", + "src": "3546:307:35", "nodes": [], "statements": [ { @@ -4373,18 +4501,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 38974, + "id": 34130, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 38972, + "id": 34128, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38967, - "src": "3506:6:39", + "referencedDeclaration": 34123, + "src": "3560:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4394,51 +4522,51 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 38973, + "id": 34129, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3516:1:39", + "src": "3570:1:35", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "3506:11:39", + "src": "3560:11:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 38979, + "id": 34135, "nodeType": "IfStatement", - "src": "3502:68:39", + "src": "3556:68:35", "trueBody": { - "id": 38978, + "id": 34134, "nodeType": "Block", - "src": "3519:51:39", + "src": "3573:51:35", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 38975, + "id": 34131, "name": "CannotReleaseZero", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38154, - "src": "3540:17:39", + "referencedDeclaration": 33170, + "src": "3594:17:35", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 38976, + "id": 34132, "isConstant": false, "isLValue": false, "isPure": false, @@ -4447,35 +4575,35 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3540:19:39", + "src": "3594:19:35", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 38977, + "id": 34133, "nodeType": "RevertStatement", - "src": "3533:26:39" + "src": "3587:26:35" } ] } }, { "assignments": [ - 38981, - 38984 + 34137, + 34140 ], "declarations": [ { "constant": false, - "id": 38981, + "id": 34137, "mutability": "mutable", "name": "registered", - "nameLocation": "3586:10:39", + "nameLocation": "3640:10:35", "nodeType": "VariableDeclaration", - "scope": 39009, - "src": "3581:15:39", + "scope": 34165, + "src": "3635:15:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4483,10 +4611,10 @@ "typeString": "bool" }, "typeName": { - "id": 38980, + "id": 34136, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3581:4:39", + "src": "3635:4:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4496,67 +4624,67 @@ }, { "constant": false, - "id": 38984, + "id": 34140, "mutability": "mutable", "name": "subnet", - "nameLocation": "3613:6:39", + "nameLocation": "3667:6:35", "nodeType": "VariableDeclaration", - "scope": 39009, - "src": "3598:21:39", + "scope": 34165, + "src": "3652:21:35", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet" }, "typeName": { - "id": 38983, + "id": 34139, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 38982, + "id": 34138, "name": "Subnet", "nameLocations": [ - "3598:6:39" + "3652:6:35" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44303, - "src": "3598:6:39" + "referencedDeclaration": 39481, + "src": "3652:6:35" }, - "referencedDeclaration": 44303, - "src": "3598:6:39", + "referencedDeclaration": 39481, + "src": "3652:6:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet" } }, "visibility": "internal" } ], - "id": 38990, + "id": 34146, "initialValue": { "arguments": [ { "expression": { - "id": 38987, + "id": 34143, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "3644:3:39", + "src": "3698:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 38988, + "id": 34144, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3648:6:39", + "memberLocation": "3702:6:35", "memberName": "sender", "nodeType": "MemberAccess", - "src": "3644:10:39", + "src": "3698:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4571,33 +4699,33 @@ } ], "expression": { - "id": 38985, + "id": 34141, "name": "LibGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42262, - "src": "3623:10:39", + "referencedDeclaration": 37421, + "src": "3677:10:35", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeIdentifier": "t_type$_t_contract$_LibGateway_$37421_$", "typeString": "type(library LibGateway)" } }, - "id": 38986, + "id": 34142, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3634:9:39", + "memberLocation": "3688:9:35", "memberName": "getSubnet", "nodeType": "MemberAccess", - "referencedDeclaration": 42224, - "src": "3623:20:39", + "referencedDeclaration": 37383, + "src": "3677:20:35", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$39481_storage_ptr_$", "typeString": "function (address) view returns (bool,struct Subnet storage pointer)" } }, - "id": 38989, + "id": 34145, "isConstant": false, "isLValue": false, "isPure": false, @@ -4606,19 +4734,19 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3623:32:39", + "src": "3677:32:35", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$39481_storage_ptr_$", "typeString": "tuple(bool,struct Subnet storage pointer)" } }, "nodeType": "VariableDeclarationStatement", - "src": "3580:75:39" + "src": "3634:75:35" }, { "condition": { - "id": 38992, + "id": 34148, "isConstant": false, "isLValue": false, "isPure": false, @@ -4626,14 +4754,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "3669:11:39", + "src": "3723:11:35", "subExpression": { - "id": 38991, + "id": 34147, "name": "registered", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38981, - "src": "3670:10:39", + "referencedDeclaration": 34137, + "src": "3724:10:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4644,31 +4772,31 @@ "typeString": "bool" } }, - "id": 38997, + "id": 34153, "nodeType": "IfStatement", - "src": "3665:70:39", + "src": "3719:70:35", "trueBody": { - "id": 38996, + "id": 34152, "nodeType": "Block", - "src": "3682:53:39", + "src": "3736:53:35", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 38993, + "id": 34149, "name": "NotRegisteredSubnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38220, - "src": "3703:19:39", + "referencedDeclaration": 33236, + "src": "3757:19:35", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 38994, + "id": 34150, "isConstant": false, "isLValue": false, "isPure": false, @@ -4677,16 +4805,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3703:21:39", + "src": "3757:21:35", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 38995, + "id": 34151, "nodeType": "RevertStatement", - "src": "3696:28:39" + "src": "3750:28:35" } ] } @@ -4695,12 +4823,12 @@ "expression": { "arguments": [ { - "id": 39006, + "id": 34162, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38967, - "src": "3785:6:39", + "referencedDeclaration": 34123, + "src": "3839:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4722,48 +4850,48 @@ "argumentTypes": [], "expression": { "expression": { - "id": 39000, + "id": 34156, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38984, - "src": "3753:6:39", + "referencedDeclaration": 34140, + "src": "3807:6:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet storage pointer" } }, - "id": 39001, + "id": 34157, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3760:2:39", + "memberLocation": "3814:2:35", "memberName": "id", "nodeType": "MemberAccess", - "referencedDeclaration": 44295, - "src": "3753:9:39", + "referencedDeclaration": 39473, + "src": "3807:9:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage", "typeString": "struct SubnetID storage ref" } }, - "id": 39002, + "id": 34158, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3763:8:39", + "memberLocation": "3817:8:35", "memberName": "getActor", "nodeType": "MemberAccess", - "referencedDeclaration": 43808, - "src": "3753:18:39", + "referencedDeclaration": 38984, + "src": "3807:18:35", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39457_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$39457_memory_ptr_$", "typeString": "function (struct SubnetID memory) pure returns (address)" } }, - "id": 39003, + "id": 34159, "isConstant": false, "isLValue": false, "isPure": false, @@ -4772,7 +4900,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3753:20:39", + "src": "3807:20:35", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -4787,27 +4915,27 @@ "typeString": "address" } ], - "id": 38999, + "id": 34155, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3745:8:39", + "src": "3799:8:35", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_payable_$", "typeString": "type(address payable)" }, "typeName": { - "id": 38998, + "id": 34154, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3745:8:39", + "src": "3799:8:35", "stateMutability": "payable", "typeDescriptions": {} } }, - "id": 39004, + "id": 34160, "isConstant": false, "isLValue": false, "isPure": false, @@ -4816,29 +4944,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3745:29:39", + "src": "3799:29:35", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 39005, + "id": 34161, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3775:9:39", + "memberLocation": "3829:9:35", "memberName": "sendValue", "nodeType": "MemberAccess", "referencedDeclaration": 290, - "src": "3745:39:39", + "src": "3799:39:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$", "typeString": "function (address payable,uint256)" } }, - "id": 39007, + "id": 34163, "isConstant": false, "isLValue": false, "isPure": false, @@ -4847,16 +4975,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3745:47:39", + "src": "3799:47:35", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39008, + "id": 34164, "nodeType": "ExpressionStatement", - "src": "3745:47:39" + "src": "3799:47:35" } ] }, @@ -4865,37 +4993,37 @@ "kind": "function", "modifiers": [ { - "id": 38970, + "id": 34126, "kind": "modifierInvocation", "modifierName": { - "id": 38969, + "id": 34125, "name": "nonReentrant", "nameLocations": [ - "3479:12:39" + "3533:12:35" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 42553, - "src": "3479:12:39" + "referencedDeclaration": 37715, + "src": "3533:12:35" }, "nodeType": "ModifierInvocation", - "src": "3479:12:39" + "src": "3533:12:35" } ], "name": "releaseRewards", - "nameLocation": "3439:14:39", + "nameLocation": "3493:14:35", "parameters": { - "id": 38968, + "id": 34124, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 38967, + "id": 34123, "mutability": "mutable", "name": "amount", - "nameLocation": "3462:6:39", + "nameLocation": "3516:6:35", "nodeType": "VariableDeclaration", - "scope": 39010, - "src": "3454:14:39", + "scope": 34166, + "src": "3508:14:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4903,10 +5031,10 @@ "typeString": "uint256" }, "typeName": { - "id": 38966, + "id": 34122, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3454:7:39", + "src": "3508:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4915,45 +5043,45 @@ "visibility": "internal" } ], - "src": "3453:16:39" + "src": "3507:16:35" }, "returnParameters": { - "id": 38971, + "id": 34127, "nodeType": "ParameterList", "parameters": [], - "src": "3492:0:39" + "src": "3546:0:35" }, - "scope": 39252, + "scope": 34408, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 39071, + "id": 34227, "nodeType": "FunctionDefinition", - "src": "3873:454:39", + "src": "3927:454:35", "nodes": [], "body": { - "id": 39070, + "id": 34226, "nodeType": "Block", - "src": "3898:429:39", + "src": "3952:429:35", "nodes": [], "statements": [ { "assignments": [ - 39015, - 39018 + 34171, + 34174 ], "declarations": [ { "constant": false, - "id": 39015, + "id": 34171, "mutability": "mutable", "name": "registered", - "nameLocation": "3914:10:39", + "nameLocation": "3968:10:35", "nodeType": "VariableDeclaration", - "scope": 39070, - "src": "3909:15:39", + "scope": 34226, + "src": "3963:15:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4961,10 +5089,10 @@ "typeString": "bool" }, "typeName": { - "id": 39014, + "id": 34170, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3909:4:39", + "src": "3963:4:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4974,67 +5102,67 @@ }, { "constant": false, - "id": 39018, + "id": 34174, "mutability": "mutable", "name": "subnet", - "nameLocation": "3941:6:39", + "nameLocation": "3995:6:35", "nodeType": "VariableDeclaration", - "scope": 39070, - "src": "3926:21:39", + "scope": 34226, + "src": "3980:21:35", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet" }, "typeName": { - "id": 39017, + "id": 34173, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39016, + "id": 34172, "name": "Subnet", "nameLocations": [ - "3926:6:39" + "3980:6:35" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44303, - "src": "3926:6:39" + "referencedDeclaration": 39481, + "src": "3980:6:35" }, - "referencedDeclaration": 44303, - "src": "3926:6:39", + "referencedDeclaration": 39481, + "src": "3980:6:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet" } }, "visibility": "internal" } ], - "id": 39024, + "id": 34180, "initialValue": { "arguments": [ { "expression": { - "id": 39021, + "id": 34177, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "3972:3:39", + "src": "4026:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 39022, + "id": 34178, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3976:6:39", + "memberLocation": "4030:6:35", "memberName": "sender", "nodeType": "MemberAccess", - "src": "3972:10:39", + "src": "4026:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5049,33 +5177,33 @@ } ], "expression": { - "id": 39019, + "id": 34175, "name": "LibGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42262, - "src": "3951:10:39", + "referencedDeclaration": 37421, + "src": "4005:10:35", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeIdentifier": "t_type$_t_contract$_LibGateway_$37421_$", "typeString": "type(library LibGateway)" } }, - "id": 39020, + "id": 34176, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3962:9:39", + "memberLocation": "4016:9:35", "memberName": "getSubnet", "nodeType": "MemberAccess", - "referencedDeclaration": 42224, - "src": "3951:20:39", + "referencedDeclaration": 37383, + "src": "4005:20:35", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$39481_storage_ptr_$", "typeString": "function (address) view returns (bool,struct Subnet storage pointer)" } }, - "id": 39023, + "id": 34179, "isConstant": false, "isLValue": false, "isPure": false, @@ -5084,19 +5212,19 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3951:32:39", + "src": "4005:32:35", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$39481_storage_ptr_$", "typeString": "tuple(bool,struct Subnet storage pointer)" } }, "nodeType": "VariableDeclarationStatement", - "src": "3908:75:39" + "src": "3962:75:35" }, { "condition": { - "id": 39026, + "id": 34182, "isConstant": false, "isLValue": false, "isPure": false, @@ -5104,14 +5232,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "3998:11:39", + "src": "4052:11:35", "subExpression": { - "id": 39025, + "id": 34181, "name": "registered", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39015, - "src": "3999:10:39", + "referencedDeclaration": 34171, + "src": "4053:10:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5122,31 +5250,31 @@ "typeString": "bool" } }, - "id": 39031, + "id": 34187, "nodeType": "IfStatement", - "src": "3994:70:39", + "src": "4048:70:35", "trueBody": { - "id": 39030, + "id": 34186, "nodeType": "Block", - "src": "4011:53:39", + "src": "4065:53:35", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 39027, + "id": 34183, "name": "NotRegisteredSubnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38220, - "src": "4032:19:39", + "referencedDeclaration": 33236, + "src": "4086:19:35", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 39028, + "id": 34184, "isConstant": false, "isLValue": false, "isPure": false, @@ -5155,16 +5283,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4032:21:39", + "src": "4086:21:35", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39029, + "id": 34185, "nodeType": "RevertStatement", - "src": "4025:28:39" + "src": "4079:28:35" } ] } @@ -5175,34 +5303,34 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 39035, + "id": 34191, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 39032, + "id": 34188, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39018, - "src": "4077:6:39", + "referencedDeclaration": 34174, + "src": "4131:6:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet storage pointer" } }, - "id": 39033, + "id": 34189, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4084:10:39", + "memberLocation": "4138:10:35", "memberName": "circSupply", "nodeType": "MemberAccess", - "referencedDeclaration": 44292, - "src": "4077:17:39", + "referencedDeclaration": 39463, + "src": "4131:17:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5212,51 +5340,51 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 39034, + "id": 34190, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4097:1:39", + "src": "4151:1:35", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "4077:21:39", + "src": "4131:21:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 39040, + "id": 34196, "nodeType": "IfStatement", - "src": "4073:85:39", + "src": "4127:85:35", "trueBody": { - "id": 39039, + "id": 34195, "nodeType": "Block", - "src": "4100:58:39", + "src": "4154:58:35", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 39036, + "id": 34192, "name": "NotEmptySubnetCircSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38198, - "src": "4121:24:39", + "referencedDeclaration": 33214, + "src": "4175:24:35", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 39037, + "id": 34193, "isConstant": false, "isLValue": false, "isPure": false, @@ -5265,34 +5393,34 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4121:26:39", + "src": "4175:26:35", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39038, + "id": 34194, "nodeType": "RevertStatement", - "src": "4114:33:39" + "src": "4168:33:35" } ] } }, { "assignments": [ - 39042 + 34198 ], "declarations": [ { "constant": false, - "id": 39042, + "id": 34198, "mutability": "mutable", "name": "stake", - "nameLocation": "4176:5:39", + "nameLocation": "4230:5:35", "nodeType": "VariableDeclaration", - "scope": 39070, - "src": "4168:13:39", + "scope": 34226, + "src": "4222:13:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5300,10 +5428,10 @@ "typeString": "uint256" }, "typeName": { - "id": 39041, + "id": 34197, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4168:7:39", + "src": "4222:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5312,68 +5440,68 @@ "visibility": "internal" } ], - "id": 39045, + "id": 34201, "initialValue": { "expression": { - "id": 39043, + "id": 34199, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39018, - "src": "4184:6:39", + "referencedDeclaration": 34174, + "src": "4238:6:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet storage pointer" } }, - "id": 39044, + "id": 34200, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4191:5:39", + "memberLocation": "4245:5:35", "memberName": "stake", "nodeType": "MemberAccess", - "referencedDeclaration": 44288, - "src": "4184:12:39", + "referencedDeclaration": 39459, + "src": "4238:12:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "4168:28:39" + "src": "4222:28:35" }, { "expression": { - "id": 39050, + "id": 34206, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 39046, + "id": 34202, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "4207:1:39", + "referencedDeclaration": 37561, + "src": "4261:1:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 39048, + "id": 34204, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "4209:12:39", + "memberLocation": "4263:12:35", "memberName": "totalSubnets", "nodeType": "MemberAccess", - "referencedDeclaration": 42310, - "src": "4207:14:39", + "referencedDeclaration": 37543, + "src": "4261:14:35", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -5383,33 +5511,33 @@ "operator": "-=", "rightHandSide": { "hexValue": "31", - "id": 39049, + "id": 34205, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4225:1:39", + "src": "4279:1:35", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "4207:19:39", + "src": "4261:19:35", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "id": 39051, + "id": 34207, "nodeType": "ExpressionStatement", - "src": "4207:19:39" + "src": "4261:19:35" }, { "expression": { - "id": 39059, + "id": 34215, "isConstant": false, "isLValue": false, "isPure": false, @@ -5417,85 +5545,85 @@ "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, - "src": "4237:36:39", + "src": "4291:36:35", "subExpression": { "baseExpression": { "expression": { - "id": 39052, + "id": 34208, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "4244:1:39", + "referencedDeclaration": 37561, + "src": "4298:1:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 39053, + "id": 34209, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4246:7:39", + "memberLocation": "4300:7:35", "memberName": "subnets", "nodeType": "MemberAccess", - "referencedDeclaration": 42319, - "src": "4244:9:39", + "referencedDeclaration": 37468, + "src": "4298:9:35", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Subnet_$44303_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Subnet_$39481_storage_$", "typeString": "mapping(bytes32 => struct Subnet storage ref)" } }, - "id": 39058, + "id": 34214, "indexExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "expression": { - "id": 39054, + "id": 34210, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39018, - "src": "4254:6:39", + "referencedDeclaration": 34174, + "src": "4308:6:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet storage pointer" } }, - "id": 39055, + "id": 34211, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4261:2:39", + "memberLocation": "4315:2:35", "memberName": "id", "nodeType": "MemberAccess", - "referencedDeclaration": 44295, - "src": "4254:9:39", + "referencedDeclaration": 39473, + "src": "4308:9:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage", "typeString": "struct SubnetID storage ref" } }, - "id": 39056, + "id": 34212, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4264:6:39", + "memberLocation": "4318:6:35", "memberName": "toHash", "nodeType": "MemberAccess", - "referencedDeclaration": 43703, - "src": "4254:16:39", + "referencedDeclaration": 38879, + "src": "4308:16:35", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39457_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$39457_memory_ptr_$", "typeString": "function (struct SubnetID memory) pure returns (bytes32)" } }, - "id": 39057, + "id": 34213, "isConstant": false, "isLValue": false, "isPure": false, @@ -5504,7 +5632,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4254:18:39", + "src": "4308:18:35", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -5516,9 +5644,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4244:29:39", + "src": "4298:29:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage", + "typeIdentifier": "t_struct$_Subnet_$39481_storage", "typeString": "struct Subnet storage ref" } }, @@ -5527,20 +5655,20 @@ "typeString": "tuple()" } }, - "id": 39060, + "id": 34216, "nodeType": "ExpressionStatement", - "src": "4237:36:39" + "src": "4291:36:35" }, { "expression": { "arguments": [ { - "id": 39067, + "id": 34223, "name": "stake", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39042, - "src": "4314:5:39", + "referencedDeclaration": 34198, + "src": "4368:5:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5558,26 +5686,26 @@ "arguments": [ { "expression": { - "id": 39063, + "id": 34219, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4292:3:39", + "src": "4346:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 39064, + "id": 34220, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4296:6:39", + "memberLocation": "4350:6:35", "memberName": "sender", "nodeType": "MemberAccess", - "src": "4292:10:39", + "src": "4346:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5591,27 +5719,27 @@ "typeString": "address" } ], - "id": 39062, + "id": 34218, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4284:8:39", + "src": "4338:8:35", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_payable_$", "typeString": "type(address payable)" }, "typeName": { - "id": 39061, + "id": 34217, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4284:8:39", + "src": "4338:8:35", "stateMutability": "payable", "typeDescriptions": {} } }, - "id": 39065, + "id": 34221, "isConstant": false, "isLValue": false, "isPure": false, @@ -5620,29 +5748,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4284:19:39", + "src": "4338:19:35", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 39066, + "id": 34222, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4304:9:39", + "memberLocation": "4358:9:35", "memberName": "sendValue", "nodeType": "MemberAccess", "referencedDeclaration": 290, - "src": "4284:29:39", + "src": "4338:29:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$", "typeString": "function (address payable,uint256)" } }, - "id": 39068, + "id": 34224, "isConstant": false, "isLValue": false, "isPure": false, @@ -5651,23 +5779,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4284:36:39", + "src": "4338:36:35", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39069, + "id": 34225, "nodeType": "ExpressionStatement", - "src": "4284:36:39" + "src": "4338:36:35" } ] }, "documentation": { - "id": 39011, + "id": 34167, "nodeType": "StructuredDocumentation", - "src": "3805:63:39", + "src": "3859:63:35", "text": "@notice kill an existing subnet. It's balance must be empty" }, "functionSelector": "41c0e1b5", @@ -5675,129 +5803,129 @@ "kind": "function", "modifiers": [], "name": "kill", - "nameLocation": "3882:4:39", + "nameLocation": "3936:4:35", "parameters": { - "id": 39012, + "id": 34168, "nodeType": "ParameterList", "parameters": [], - "src": "3886:2:39" + "src": "3940:2:35" }, "returnParameters": { - "id": 39013, + "id": 34169, "nodeType": "ParameterList", "parameters": [], - "src": "3898:0:39" + "src": "3952:0:35" }, - "scope": 39252, + "scope": 34408, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 39118, + "id": 34274, "nodeType": "FunctionDefinition", - "src": "4592:387:39", + "src": "4646:387:35", "nodes": [], "body": { - "id": 39117, + "id": 34273, "nodeType": "Block", - "src": "4695:284:39", + "src": "4749:284:35", "nodes": [], "statements": [ { "assignments": [ - 39087 + 34243 ], "declarations": [ { "constant": false, - "id": 39087, + "id": 34243, "mutability": "mutable", "name": "crossMsg", - "nameLocation": "4721:8:39", + "nameLocation": "4775:8:35", "nodeType": "VariableDeclaration", - "scope": 39117, - "src": "4705:24:39", + "scope": 34273, + "src": "4759:24:35", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg" }, "typeName": { - "id": 39086, + "id": 34242, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39085, + "id": 34241, "name": "CrossMsg", "nameLocations": [ - "4705:8:39" + "4759:8:35" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44176, - "src": "4705:8:39" + "referencedDeclaration": 39352, + "src": "4759:8:35" }, - "referencedDeclaration": 44176, - "src": "4705:8:39", + "referencedDeclaration": 39352, + "src": "4759:8:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_storage_ptr", "typeString": "struct CrossMsg" } }, "visibility": "internal" } ], - "id": 39100, + "id": 34256, "initialValue": { "arguments": [ { - "id": 39090, + "id": 34246, "name": "subnetId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39075, - "src": "4761:8:39", + "referencedDeclaration": 34231, + "src": "4815:8:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_calldata_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_calldata_ptr", "typeString": "struct SubnetID calldata" } }, { "expression": { - "id": 39091, + "id": 34247, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4771:3:39", + "src": "4825:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 39092, + "id": 34248, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4775:6:39", + "memberLocation": "4829:6:35", "memberName": "sender", "nodeType": "MemberAccess", - "src": "4771:10:39", + "src": "4825:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 39093, + "id": 34249, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39078, - "src": "4783:2:39", + "referencedDeclaration": 34234, + "src": "4837:2:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_FvmAddress_$44253_calldata_ptr", + "typeIdentifier": "t_struct$_FvmAddress_$39431_calldata_ptr", "typeString": "struct FvmAddress calldata" } }, @@ -5806,33 +5934,33 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 39098, + "id": 34254, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 39094, + "id": 34250, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4787:3:39", + "src": "4841:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 39095, + "id": 34251, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4791:5:39", + "memberLocation": "4845:5:35", "memberName": "value", "nodeType": "MemberAccess", - "src": "4787:9:39", + "src": "4841:9:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5842,33 +5970,33 @@ "operator": "-", "rightExpression": { "expression": { - "id": 39096, + "id": 34252, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "4799:1:39", + "referencedDeclaration": 37561, + "src": "4853:1:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 39097, + "id": 34253, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4801:11:39", + "memberLocation": "4855:11:35", "memberName": "crossMsgFee", "nodeType": "MemberAccess", - "referencedDeclaration": 42346, - "src": "4799:13:39", + "referencedDeclaration": 37528, + "src": "4853:13:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4787:25:39", + "src": "4841:25:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5878,7 +6006,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_SubnetID_$44279_calldata_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_calldata_ptr", "typeString": "struct SubnetID calldata" }, { @@ -5886,7 +6014,7 @@ "typeString": "address" }, { - "typeIdentifier": "t_struct$_FvmAddress_$44253_calldata_ptr", + "typeIdentifier": "t_struct$_FvmAddress_$39431_calldata_ptr", "typeString": "struct FvmAddress calldata" }, { @@ -5895,33 +6023,33 @@ } ], "expression": { - "id": 39088, + "id": 34244, "name": "CrossMsgHelper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 41103, - "src": "4732:14:39", + "referencedDeclaration": 36259, + "src": "4786:14:35", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_CrossMsgHelper_$41103_$", + "typeIdentifier": "t_type$_t_contract$_CrossMsgHelper_$36259_$", "typeString": "type(library CrossMsgHelper)" } }, - "id": 39089, + "id": 34245, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4747:13:39", + "memberLocation": "4801:13:35", "memberName": "createFundMsg", "nodeType": "MemberAccess", - "referencedDeclaration": 40890, - "src": "4732:28:39", + "referencedDeclaration": 36046, + "src": "4786:28:35", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$_t_address_$_t_struct$_FvmAddress_$44253_memory_ptr_$_t_uint256_$returns$_t_struct$_CrossMsg_$44176_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39457_memory_ptr_$_t_address_$_t_struct$_FvmAddress_$39431_memory_ptr_$_t_uint256_$returns$_t_struct$_CrossMsg_$39352_memory_ptr_$", "typeString": "function (struct SubnetID memory,address,struct FvmAddress memory,uint256) pure returns (struct CrossMsg memory)" } }, - "id": 39099, + "id": 34255, "isConstant": false, "isLValue": false, "isPure": false, @@ -5930,28 +6058,28 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4732:81:39", + "src": "4786:81:35", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "4705:108:39" + "src": "4759:108:35" }, { "expression": { "arguments": [ { - "id": 39104, + "id": 34260, "name": "crossMsg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39087, - "src": "4888:8:39", + "referencedDeclaration": 34243, + "src": "4942:8:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg memory" } } @@ -5959,38 +6087,38 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg memory" } ], "expression": { - "id": 39101, + "id": 34257, "name": "LibGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42262, - "src": "4860:10:39", + "referencedDeclaration": 37421, + "src": "4914:10:35", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeIdentifier": "t_type$_t_contract$_LibGateway_$37421_$", "typeString": "type(library LibGateway)" } }, - "id": 39103, + "id": 34259, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4871:16:39", + "memberLocation": "4925:16:35", "memberName": "commitTopDownMsg", "nodeType": "MemberAccess", - "referencedDeclaration": 42100, - "src": "4860:27:39", + "referencedDeclaration": 37259, + "src": "4914:27:35", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_CrossMsg_$44176_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_CrossMsg_$39352_memory_ptr_$returns$__$", "typeString": "function (struct CrossMsg memory)" } }, - "id": 39105, + "id": 34261, "isConstant": false, "isLValue": false, "isPure": false, @@ -5999,16 +6127,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4860:37:39", + "src": "4914:37:35", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39106, + "id": 34262, "nodeType": "ExpressionStatement", - "src": "4860:37:39" + "src": "4914:37:35" }, { "expression": { @@ -6018,33 +6146,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 39110, + "id": 34266, "name": "subnetId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39075, - "src": "4937:8:39", + "referencedDeclaration": 34231, + "src": "4991:8:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_calldata_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_calldata_ptr", "typeString": "struct SubnetID calldata" } }, - "id": 39111, + "id": 34267, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4946:8:39", + "memberLocation": "5000:8:35", "memberName": "getActor", "nodeType": "MemberAccess", - "referencedDeclaration": 43808, - "src": "4937:17:39", + "referencedDeclaration": 38984, + "src": "4991:17:35", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39457_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$39457_memory_ptr_$", "typeString": "function (struct SubnetID memory) pure returns (address)" } }, - "id": 39112, + "id": 34268, "isConstant": false, "isLValue": false, "isPure": false, @@ -6053,7 +6181,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4937:19:39", + "src": "4991:19:35", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -6062,27 +6190,27 @@ }, { "expression": { - "id": 39113, + "id": 34269, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "4958:1:39", + "referencedDeclaration": 37561, + "src": "5012:1:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 39114, + "id": 34270, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4960:11:39", + "memberLocation": "5014:11:35", "memberName": "crossMsgFee", "nodeType": "MemberAccess", - "referencedDeclaration": 42346, - "src": "4958:13:39", + "referencedDeclaration": 37528, + "src": "5012:13:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6101,33 +6229,33 @@ } ], "expression": { - "id": 39107, + "id": 34263, "name": "LibGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42262, - "src": "4908:10:39", + "referencedDeclaration": 37421, + "src": "4962:10:35", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeIdentifier": "t_type$_t_contract$_LibGateway_$37421_$", "typeString": "type(library LibGateway)" } }, - "id": 39109, + "id": 34265, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4919:17:39", + "memberLocation": "4973:17:35", "memberName": "distributeRewards", "nodeType": "MemberAccess", - "referencedDeclaration": 42181, - "src": "4908:28:39", + "referencedDeclaration": 37340, + "src": "4962:28:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 39115, + "id": 34271, "isConstant": false, "isLValue": false, "isPure": false, @@ -6136,23 +6264,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4908:64:39", + "src": "4962:64:35", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39116, + "id": 34272, "nodeType": "ExpressionStatement", - "src": "4908:64:39" + "src": "4962:64:35" } ] }, "documentation": { - "id": 39072, + "id": 34228, "nodeType": "StructuredDocumentation", - "src": "4333:254:39", + "src": "4387:254:35", "text": "@notice fund - commit a top-down message releasing funds in a child subnet. There is an associated fee that gets distributed to validators in the subnet as well\n @param subnetId - subnet to fund\n @param to - the address to send funds to" }, "functionSelector": "18f44b70", @@ -6160,76 +6288,76 @@ "kind": "function", "modifiers": [ { - "id": 39081, + "id": 34237, "kind": "modifierInvocation", "modifierName": { - "id": 39080, + "id": 34236, "name": "signableOnly", "nameLocations": [ - "4675:12:39" + "4729:12:35" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 42489, - "src": "4675:12:39" + "referencedDeclaration": 37651, + "src": "4729:12:35" }, "nodeType": "ModifierInvocation", - "src": "4675:12:39" + "src": "4729:12:35" }, { - "id": 39083, + "id": 34239, "kind": "modifierInvocation", "modifierName": { - "id": 39082, + "id": 34238, "name": "hasFee", "nameLocations": [ - "4688:6:39" + "4742:6:35" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 42503, - "src": "4688:6:39" + "referencedDeclaration": 37665, + "src": "4742:6:35" }, "nodeType": "ModifierInvocation", - "src": "4688:6:39" + "src": "4742:6:35" } ], "name": "fund", - "nameLocation": "4601:4:39", + "nameLocation": "4655:4:35", "parameters": { - "id": 39079, + "id": 34235, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39075, + "id": 34231, "mutability": "mutable", "name": "subnetId", - "nameLocation": "4624:8:39", + "nameLocation": "4678:8:35", "nodeType": "VariableDeclaration", - "scope": 39118, - "src": "4606:26:39", + "scope": 34274, + "src": "4660:26:35", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_calldata_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_calldata_ptr", "typeString": "struct SubnetID" }, "typeName": { - "id": 39074, + "id": 34230, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39073, + "id": 34229, "name": "SubnetID", "nameLocations": [ - "4606:8:39" + "4660:8:35" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44279, - "src": "4606:8:39" + "referencedDeclaration": 39457, + "src": "4660:8:35" }, - "referencedDeclaration": 44279, - "src": "4606:8:39", + "referencedDeclaration": 39457, + "src": "4660:8:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage_ptr", "typeString": "struct SubnetID" } }, @@ -6237,176 +6365,176 @@ }, { "constant": false, - "id": 39078, + "id": 34234, "mutability": "mutable", "name": "to", - "nameLocation": "4654:2:39", + "nameLocation": "4708:2:35", "nodeType": "VariableDeclaration", - "scope": 39118, - "src": "4634:22:39", + "scope": 34274, + "src": "4688:22:35", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_struct$_FvmAddress_$44253_calldata_ptr", + "typeIdentifier": "t_struct$_FvmAddress_$39431_calldata_ptr", "typeString": "struct FvmAddress" }, "typeName": { - "id": 39077, + "id": 34233, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39076, + "id": 34232, "name": "FvmAddress", "nameLocations": [ - "4634:10:39" + "4688:10:35" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44253, - "src": "4634:10:39" + "referencedDeclaration": 39431, + "src": "4688:10:35" }, - "referencedDeclaration": 44253, - "src": "4634:10:39", + "referencedDeclaration": 39431, + "src": "4688:10:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_FvmAddress_$44253_storage_ptr", + "typeIdentifier": "t_struct$_FvmAddress_$39431_storage_ptr", "typeString": "struct FvmAddress" } }, "visibility": "internal" } ], - "src": "4605:52:39" + "src": "4659:52:35" }, "returnParameters": { - "id": 39084, + "id": 34240, "nodeType": "ParameterList", "parameters": [], - "src": "4695:0:39" + "src": "4749:0:35" }, - "scope": 39252, + "scope": 34408, "stateMutability": "payable", "virtual": false, "visibility": "external" }, { - "id": 39153, + "id": 34309, "nodeType": "FunctionDefinition", - "src": "5136:318:39", + "src": "5190:318:35", "nodes": [], "body": { - "id": 39152, + "id": 34308, "nodeType": "Block", - "src": "5214:240:39", + "src": "5268:240:35", "nodes": [], "statements": [ { "assignments": [ - 39131 + 34287 ], "declarations": [ { "constant": false, - "id": 39131, + "id": 34287, "mutability": "mutable", "name": "crossMsg", - "nameLocation": "5240:8:39", + "nameLocation": "5294:8:35", "nodeType": "VariableDeclaration", - "scope": 39152, - "src": "5224:24:39", + "scope": 34308, + "src": "5278:24:35", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg" }, "typeName": { - "id": 39130, + "id": 34286, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39129, + "id": 34285, "name": "CrossMsg", "nameLocations": [ - "5224:8:39" + "5278:8:35" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44176, - "src": "5224:8:39" + "referencedDeclaration": 39352, + "src": "5278:8:35" }, - "referencedDeclaration": 44176, - "src": "5224:8:39", + "referencedDeclaration": 39352, + "src": "5278:8:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_storage_ptr", "typeString": "struct CrossMsg" } }, "visibility": "internal" } ], - "id": 39145, + "id": 34301, "initialValue": { "arguments": [ { "expression": { - "id": 39134, + "id": 34290, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "5296:1:39", + "referencedDeclaration": 37561, + "src": "5350:1:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 39135, + "id": 34291, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5298:11:39", + "memberLocation": "5352:11:35", "memberName": "networkName", "nodeType": "MemberAccess", - "referencedDeclaration": 42307, - "src": "5296:13:39", + "referencedDeclaration": 37519, + "src": "5350:13:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage", "typeString": "struct SubnetID storage ref" } }, { "expression": { - "id": 39136, + "id": 34292, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5323:3:39", + "src": "5377:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 39137, + "id": 34293, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5327:6:39", + "memberLocation": "5381:6:35", "memberName": "sender", "nodeType": "MemberAccess", - "src": "5323:10:39", + "src": "5377:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 39138, + "id": 34294, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39122, - "src": "5347:2:39", + "referencedDeclaration": 34278, + "src": "5401:2:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_FvmAddress_$44253_calldata_ptr", + "typeIdentifier": "t_struct$_FvmAddress_$39431_calldata_ptr", "typeString": "struct FvmAddress calldata" } }, @@ -6415,33 +6543,33 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 39143, + "id": 34299, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 39139, + "id": 34295, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5363:3:39", + "src": "5417:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 39140, + "id": 34296, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5367:5:39", + "memberLocation": "5421:5:35", "memberName": "value", "nodeType": "MemberAccess", - "src": "5363:9:39", + "src": "5417:9:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6451,33 +6579,33 @@ "operator": "-", "rightExpression": { "expression": { - "id": 39141, + "id": 34297, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "5375:1:39", + "referencedDeclaration": 37561, + "src": "5429:1:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 39142, + "id": 34298, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5377:11:39", + "memberLocation": "5431:11:35", "memberName": "crossMsgFee", "nodeType": "MemberAccess", - "referencedDeclaration": 42346, - "src": "5375:13:39", + "referencedDeclaration": 37528, + "src": "5429:13:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5363:25:39", + "src": "5417:25:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6487,7 +6615,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage", "typeString": "struct SubnetID storage ref" }, { @@ -6495,7 +6623,7 @@ "typeString": "address" }, { - "typeIdentifier": "t_struct$_FvmAddress_$44253_calldata_ptr", + "typeIdentifier": "t_struct$_FvmAddress_$39431_calldata_ptr", "typeString": "struct FvmAddress calldata" }, { @@ -6504,33 +6632,33 @@ } ], "expression": { - "id": 39132, + "id": 34288, "name": "CrossMsgHelper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 41103, - "src": "5251:14:39", + "referencedDeclaration": 36259, + "src": "5305:14:35", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_CrossMsgHelper_$41103_$", + "typeIdentifier": "t_type$_t_contract$_CrossMsgHelper_$36259_$", "typeString": "type(library CrossMsgHelper)" } }, - "id": 39133, + "id": 34289, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5266:16:39", + "memberLocation": "5320:16:35", "memberName": "createReleaseMsg", "nodeType": "MemberAccess", - "referencedDeclaration": 40850, - "src": "5251:31:39", + "referencedDeclaration": 36006, + "src": "5305:31:35", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$_t_address_$_t_struct$_FvmAddress_$44253_memory_ptr_$_t_uint256_$returns$_t_struct$_CrossMsg_$44176_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39457_memory_ptr_$_t_address_$_t_struct$_FvmAddress_$39431_memory_ptr_$_t_uint256_$returns$_t_struct$_CrossMsg_$39352_memory_ptr_$", "typeString": "function (struct SubnetID memory,address,struct FvmAddress memory,uint256) pure returns (struct CrossMsg memory)" } }, - "id": 39144, + "id": 34300, "isConstant": false, "isLValue": false, "isPure": false, @@ -6539,28 +6667,28 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5251:147:39", + "src": "5305:147:35", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "5224:174:39" + "src": "5278:174:35" }, { "expression": { "arguments": [ { - "id": 39149, + "id": 34305, "name": "crossMsg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39131, - "src": "5438:8:39", + "referencedDeclaration": 34287, + "src": "5492:8:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg memory" } } @@ -6568,38 +6696,38 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg memory" } ], "expression": { - "id": 39146, + "id": 34302, "name": "LibGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42262, - "src": "5409:10:39", + "referencedDeclaration": 37421, + "src": "5463:10:35", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeIdentifier": "t_type$_t_contract$_LibGateway_$37421_$", "typeString": "type(library LibGateway)" } }, - "id": 39148, + "id": 34304, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5420:17:39", + "memberLocation": "5474:17:35", "memberName": "commitBottomUpMsg", "nodeType": "MemberAccess", - "referencedDeclaration": 42151, - "src": "5409:28:39", + "referencedDeclaration": 37310, + "src": "5463:28:35", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_CrossMsg_$44176_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_CrossMsg_$39352_memory_ptr_$returns$__$", "typeString": "function (struct CrossMsg memory)" } }, - "id": 39150, + "id": 34306, "isConstant": false, "isLValue": false, "isPure": false, @@ -6608,23 +6736,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5409:38:39", + "src": "5463:38:35", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39151, + "id": 34307, "nodeType": "ExpressionStatement", - "src": "5409:38:39" + "src": "5463:38:35" } ] }, "documentation": { - "id": 39119, + "id": 34275, "nodeType": "StructuredDocumentation", - "src": "4985:146:39", + "src": "5039:146:35", "text": "@notice release method locks funds in the current subnet and sends a cross message up the hierarchy to the parent gateway to release the funds" }, "functionSelector": "6b2c1eef", @@ -6632,104 +6760,104 @@ "kind": "function", "modifiers": [ { - "id": 39125, + "id": 34281, "kind": "modifierInvocation", "modifierName": { - "id": 39124, + "id": 34280, "name": "signableOnly", "nameLocations": [ - "5194:12:39" + "5248:12:35" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 42489, - "src": "5194:12:39" + "referencedDeclaration": 37651, + "src": "5248:12:35" }, "nodeType": "ModifierInvocation", - "src": "5194:12:39" + "src": "5248:12:35" }, { - "id": 39127, + "id": 34283, "kind": "modifierInvocation", "modifierName": { - "id": 39126, + "id": 34282, "name": "hasFee", "nameLocations": [ - "5207:6:39" + "5261:6:35" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 42503, - "src": "5207:6:39" + "referencedDeclaration": 37665, + "src": "5261:6:35" }, "nodeType": "ModifierInvocation", - "src": "5207:6:39" + "src": "5261:6:35" } ], "name": "release", - "nameLocation": "5145:7:39", + "nameLocation": "5199:7:35", "parameters": { - "id": 39123, + "id": 34279, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39122, + "id": 34278, "mutability": "mutable", "name": "to", - "nameLocation": "5173:2:39", + "nameLocation": "5227:2:35", "nodeType": "VariableDeclaration", - "scope": 39153, - "src": "5153:22:39", + "scope": 34309, + "src": "5207:22:35", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_struct$_FvmAddress_$44253_calldata_ptr", + "typeIdentifier": "t_struct$_FvmAddress_$39431_calldata_ptr", "typeString": "struct FvmAddress" }, "typeName": { - "id": 39121, + "id": 34277, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39120, + "id": 34276, "name": "FvmAddress", "nameLocations": [ - "5153:10:39" + "5207:10:35" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44253, - "src": "5153:10:39" + "referencedDeclaration": 39431, + "src": "5207:10:35" }, - "referencedDeclaration": 44253, - "src": "5153:10:39", + "referencedDeclaration": 39431, + "src": "5207:10:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_FvmAddress_$44253_storage_ptr", + "typeIdentifier": "t_struct$_FvmAddress_$39431_storage_ptr", "typeString": "struct FvmAddress" } }, "visibility": "internal" } ], - "src": "5152:24:39" + "src": "5206:24:35" }, "returnParameters": { - "id": 39128, + "id": 34284, "nodeType": "ParameterList", "parameters": [], - "src": "5214:0:39" + "src": "5268:0:35" }, - "scope": 39252, + "scope": 34408, "stateMutability": "payable", "virtual": false, "visibility": "external" }, { - "id": 39251, + "id": 34407, "nodeType": "FunctionDefinition", - "src": "5644:1972:39", + "src": "5698:1972:35", "nodes": [], "body": { - "id": 39250, + "id": 34406, "nodeType": "Block", - "src": "5747:1869:39", + "src": "5801:1869:35", "nodes": [], "statements": [ { @@ -6738,33 +6866,33 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 39169, + "id": 34325, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 39165, + "id": 34321, "name": "validators", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39157, - "src": "5761:10:39", + "referencedDeclaration": 34313, + "src": "5815:10:35", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 39166, + "id": 34322, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5772:6:39", + "memberLocation": "5826:6:35", "memberName": "length", "nodeType": "MemberAccess", - "src": "5761:17:39", + "src": "5815:17:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6774,62 +6902,62 @@ "operator": "!=", "rightExpression": { "expression": { - "id": 39167, + "id": 34323, "name": "weights", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39160, - "src": "5782:7:39", + "referencedDeclaration": 34316, + "src": "5836:7:35", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 39168, + "id": 34324, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5790:6:39", + "memberLocation": "5844:6:35", "memberName": "length", "nodeType": "MemberAccess", - "src": "5782:14:39", + "src": "5836:14:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5761:35:39", + "src": "5815:35:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 39174, + "id": 34330, "nodeType": "IfStatement", - "src": "5757:109:39", + "src": "5811:109:35", "trueBody": { - "id": 39173, + "id": 34329, "nodeType": "Block", - "src": "5798:68:39", + "src": "5852:68:35", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 39170, + "id": 34326, "name": "ValidatorsAndWeightsLengthMismatch", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38234, - "src": "5819:34:39", + "referencedDeclaration": 33250, + "src": "5873:34:35", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 39171, + "id": 34327, "isConstant": false, "isLValue": false, "isPure": false, @@ -6838,23 +6966,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5819:36:39", + "src": "5873:36:35", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39172, + "id": 34328, "nodeType": "RevertStatement", - "src": "5812:43:39" + "src": "5866:43:35" } ] } }, { "expression": { - "id": 39177, + "id": 34333, "isConstant": false, "isLValue": false, "isPure": false, @@ -6862,30 +6990,30 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": true, - "src": "5924:18:39", + "src": "5978:18:35", "subExpression": { "expression": { - "id": 39175, + "id": 34331, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "5926:1:39", + "referencedDeclaration": 37561, + "src": "5980:1:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 39176, + "id": 34332, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "5928:14:39", + "memberLocation": "5982:14:35", "memberName": "validatorNonce", "nodeType": "MemberAccess", - "referencedDeclaration": 42359, - "src": "5926:16:39", + "referencedDeclaration": 37525, + "src": "5980:16:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6896,24 +7024,24 @@ "typeString": "uint256" } }, - "id": 39178, + "id": 34334, "nodeType": "ExpressionStatement", - "src": "5924:18:39" + "src": "5978:18:35" }, { "assignments": [ - 39180 + 34336 ], "declarations": [ { "constant": false, - "id": 39180, + "id": 34336, "mutability": "mutable", "name": "totalValidatorsWeight", - "nameLocation": "5961:21:39", + "nameLocation": "6015:21:35", "nodeType": "VariableDeclaration", - "scope": 39250, - "src": "5953:29:39", + "scope": 34406, + "src": "6007:29:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6921,10 +7049,10 @@ "typeString": "uint256" }, "typeName": { - "id": 39179, + "id": 34335, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5953:7:39", + "src": "6007:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6933,17 +7061,17 @@ "visibility": "internal" } ], - "id": 39182, + "id": 34338, "initialValue": { "hexValue": "30", - "id": 39181, + "id": 34337, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5985:1:39", + "src": "6039:1:35", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -6951,22 +7079,22 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "5953:33:39" + "src": "6007:33:35" }, { "assignments": [ - 39184 + 34340 ], "declarations": [ { "constant": false, - "id": 39184, + "id": 34340, "mutability": "mutable", "name": "validatorsLength", - "nameLocation": "6044:16:39", + "nameLocation": "6098:16:35", "nodeType": "VariableDeclaration", - "scope": 39250, - "src": "6036:24:39", + "scope": 34406, + "src": "6090:24:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6974,10 +7102,10 @@ "typeString": "uint256" }, "typeName": { - "id": 39183, + "id": 34339, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6036:7:39", + "src": "6090:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6986,57 +7114,57 @@ "visibility": "internal" } ], - "id": 39187, + "id": 34343, "initialValue": { "expression": { - "id": 39185, + "id": 34341, "name": "validators", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39157, - "src": "6063:10:39", + "referencedDeclaration": 34313, + "src": "6117:10:35", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 39186, + "id": 34342, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6074:6:39", + "memberLocation": "6128:6:35", "memberName": "length", "nodeType": "MemberAccess", - "src": "6063:17:39", + "src": "6117:17:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "6036:44:39" + "src": "6090:44:35" }, { "body": { - "id": 39242, + "id": 34398, "nodeType": "Block", - "src": "6160:1403:39", + "src": "6214:1403:35", "statements": [ { "assignments": [ - 39196 + 34352 ], "declarations": [ { "constant": false, - "id": 39196, + "id": 34352, "mutability": "mutable", "name": "validatorAddress", - "nameLocation": "6182:16:39", + "nameLocation": "6236:16:35", "nodeType": "VariableDeclaration", - "scope": 39242, - "src": "6174:24:39", + "scope": 34398, + "src": "6228:24:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7044,10 +7172,10 @@ "typeString": "address" }, "typeName": { - "id": 39195, + "id": 34351, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6174:7:39", + "src": "6228:7:35", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7057,28 +7185,28 @@ "visibility": "internal" } ], - "id": 39200, + "id": 34356, "initialValue": { "baseExpression": { - "id": 39197, + "id": 34353, "name": "validators", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39157, - "src": "6201:10:39", + "referencedDeclaration": 34313, + "src": "6255:10:35", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 39199, + "id": 34355, "indexExpression": { - "id": 39198, + "id": 34354, "name": "validatorIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39189, - "src": "6212:14:39", + "referencedDeclaration": 34345, + "src": "6266:14:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7089,14 +7217,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6201:26:39", + "src": "6255:26:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "6174:53:39" + "src": "6228:53:35" }, { "condition": { @@ -7104,18 +7232,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 39206, + "id": 34362, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 39201, + "id": 34357, "name": "validatorAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39196, - "src": "6245:16:39", + "referencedDeclaration": 34352, + "src": "6299:16:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7127,14 +7255,14 @@ "arguments": [ { "hexValue": "30", - "id": 39204, + "id": 34360, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6273:1:39", + "src": "6327:1:35", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -7149,26 +7277,26 @@ "typeString": "int_const 0" } ], - "id": 39203, + "id": 34359, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6265:7:39", + "src": "6319:7:35", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 39202, + "id": 34358, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6265:7:39", + "src": "6319:7:35", "typeDescriptions": {} } }, - "id": 39205, + "id": 34361, "isConstant": false, "isLValue": false, "isPure": true, @@ -7177,41 +7305,41 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6265:10:39", + "src": "6319:10:35", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6245:30:39", + "src": "6299:30:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 39237, + "id": 34393, "nodeType": "IfStatement", - "src": "6241:379:39", + "src": "6295:379:35", "trueBody": { - "id": 39236, + "id": 34392, "nodeType": "Block", - "src": "6277:343:39", + "src": "6331:343:35", "statements": [ { "assignments": [ - 39208 + 34364 ], "declarations": [ { "constant": false, - "id": 39208, + "id": 34364, "mutability": "mutable", "name": "validatorWeight", - "nameLocation": "6303:15:39", + "nameLocation": "6357:15:35", "nodeType": "VariableDeclaration", - "scope": 39236, - "src": "6295:23:39", + "scope": 34392, + "src": "6349:23:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7219,10 +7347,10 @@ "typeString": "uint256" }, "typeName": { - "id": 39207, + "id": 34363, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6295:7:39", + "src": "6349:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7231,28 +7359,28 @@ "visibility": "internal" } ], - "id": 39212, + "id": 34368, "initialValue": { "baseExpression": { - "id": 39209, + "id": 34365, "name": "weights", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39160, - "src": "6321:7:39", + "referencedDeclaration": 34316, + "src": "6375:7:35", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 39211, + "id": 34367, "indexExpression": { - "id": 39210, + "id": 34366, "name": "validatorIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39189, - "src": "6329:14:39", + "referencedDeclaration": 34345, + "src": "6383:14:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7263,14 +7391,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6321:23:39", + "src": "6375:23:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "6295:49:39" + "src": "6349:49:35" }, { "condition": { @@ -7278,18 +7406,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 39215, + "id": 34371, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 39213, + "id": 34369, "name": "validatorWeight", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39208, - "src": "6367:15:39", + "referencedDeclaration": 34364, + "src": "6421:15:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7299,51 +7427,51 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 39214, + "id": 34370, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6386:1:39", + "src": "6440:1:35", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "6367:20:39", + "src": "6421:20:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 39220, + "id": 34376, "nodeType": "IfStatement", - "src": "6363:97:39", + "src": "6417:97:35", "trueBody": { - "id": 39219, + "id": 34375, "nodeType": "Block", - "src": "6389:71:39", + "src": "6443:71:35", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 39216, + "id": 34372, "name": "ValidatorWeightIsZero", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38232, - "src": "6418:21:39", + "referencedDeclaration": 33248, + "src": "6472:21:35", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 39217, + "id": 34373, "isConstant": false, "isLValue": false, "isPure": false, @@ -7352,23 +7480,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6418:23:39", + "src": "6472:23:35", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39218, + "id": 34374, "nodeType": "RevertStatement", - "src": "6411:30:39" + "src": "6465:30:35" } ] } }, { "expression": { - "id": 39230, + "id": 34386, "isConstant": false, "isLValue": false, "isPure": false, @@ -7377,56 +7505,56 @@ "baseExpression": { "baseExpression": { "expression": { - "id": 39221, + "id": 34377, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "6478:1:39", + "referencedDeclaration": 37561, + "src": "6532:1:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 39226, + "id": 34382, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6480:12:39", + "memberLocation": "6534:12:35", "memberName": "validatorSet", "nodeType": "MemberAccess", - "referencedDeclaration": 42356, - "src": "6478:14:39", + "referencedDeclaration": 37487, + "src": "6532:14:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(uint256 => mapping(address => uint256))" } }, - "id": 39227, + "id": 34383, "indexExpression": { "expression": { - "id": 39223, + "id": 34379, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "6493:1:39", + "referencedDeclaration": 37561, + "src": "6547:1:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 39224, + "id": 34380, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6495:14:39", + "memberLocation": "6549:14:35", "memberName": "validatorNonce", "nodeType": "MemberAccess", - "referencedDeclaration": 42359, - "src": "6493:16:39", + "referencedDeclaration": 37525, + "src": "6547:16:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7437,20 +7565,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6478:32:39", + "src": "6532:32:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 39228, + "id": 34384, "indexExpression": { - "id": 39225, + "id": 34381, "name": "validatorAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39196, - "src": "6511:16:39", + "referencedDeclaration": 34352, + "src": "6565:16:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7461,7 +7589,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6478:50:39", + "src": "6532:50:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7470,41 +7598,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 39229, + "id": 34385, "name": "validatorWeight", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39208, - "src": "6531:15:39", + "referencedDeclaration": 34364, + "src": "6585:15:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6478:68:39", + "src": "6532:68:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 39231, + "id": 34387, "nodeType": "ExpressionStatement", - "src": "6478:68:39" + "src": "6532:68:35" }, { "expression": { - "id": 39234, + "id": 34390, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 39232, + "id": 34388, "name": "totalValidatorsWeight", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39180, - "src": "6565:21:39", + "referencedDeclaration": 34336, + "src": "6619:21:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7513,38 +7641,38 @@ "nodeType": "Assignment", "operator": "+=", "rightHandSide": { - "id": 39233, + "id": 34389, "name": "validatorWeight", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39208, - "src": "6590:15:39", + "referencedDeclaration": 34364, + "src": "6644:15:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6565:40:39", + "src": "6619:40:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 39235, + "id": 34391, "nodeType": "ExpressionStatement", - "src": "6565:40:39" + "src": "6619:40:35" } ] } }, { - "id": 39241, + "id": 34397, "nodeType": "UncheckedBlock", - "src": "7494:59:39", + "src": "7548:59:35", "statements": [ { "expression": { - "id": 39239, + "id": 34395, "isConstant": false, "isLValue": false, "isPure": false, @@ -7552,14 +7680,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": true, - "src": "7522:16:39", + "src": "7576:16:35", "subExpression": { - "id": 39238, + "id": 34394, "name": "validatorIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39189, - "src": "7524:14:39", + "referencedDeclaration": 34345, + "src": "7578:14:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7570,9 +7698,9 @@ "typeString": "uint256" } }, - "id": 39240, + "id": 34396, "nodeType": "ExpressionStatement", - "src": "7522:16:39" + "src": "7576:16:35" } ] } @@ -7583,18 +7711,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 39194, + "id": 34350, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 39192, + "id": 34348, "name": "validatorIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39189, - "src": "6123:14:39", + "referencedDeclaration": 34345, + "src": "6177:14:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7603,38 +7731,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 39193, + "id": 34349, "name": "validatorsLength", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39184, - "src": "6140:16:39", + "referencedDeclaration": 34340, + "src": "6194:16:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6123:33:39", + "src": "6177:33:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 39243, + "id": 34399, "initializationExpression": { "assignments": [ - 39189 + 34345 ], "declarations": [ { "constant": false, - "id": 39189, + "id": 34345, "mutability": "mutable", "name": "validatorIndex", - "nameLocation": "6103:14:39", + "nameLocation": "6157:14:35", "nodeType": "VariableDeclaration", - "scope": 39243, - "src": "6095:22:39", + "scope": 34399, + "src": "6149:22:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7642,10 +7770,10 @@ "typeString": "uint256" }, "typeName": { - "id": 39188, + "id": 34344, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6095:7:39", + "src": "6149:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7654,17 +7782,17 @@ "visibility": "internal" } ], - "id": 39191, + "id": 34347, "initialValue": { "hexValue": "30", - "id": 39190, + "id": 34346, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6120:1:39", + "src": "6174:1:35", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -7672,41 +7800,41 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "6095:26:39" + "src": "6149:26:35" }, "nodeType": "ForStatement", - "src": "6090:1473:39" + "src": "6144:1473:35" }, { "expression": { - "id": 39248, + "id": 34404, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 39244, + "id": 34400, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "7572:1:39", + "referencedDeclaration": 37561, + "src": "7626:1:35", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 39246, + "id": 34402, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "7574:11:39", + "memberLocation": "7628:11:35", "memberName": "totalWeight", "nodeType": "MemberAccess", - "referencedDeclaration": 42349, - "src": "7572:13:39", + "referencedDeclaration": 37531, + "src": "7626:13:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7715,33 +7843,33 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 39247, + "id": 34403, "name": "totalValidatorsWeight", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39180, - "src": "7588:21:39", + "referencedDeclaration": 34336, + "src": "7642:21:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7572:37:39", + "src": "7626:37:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 39249, + "id": 34405, "nodeType": "ExpressionStatement", - "src": "7572:37:39" + "src": "7626:37:35" } ] }, "documentation": { - "id": 39154, + "id": 34310, "nodeType": "StructuredDocumentation", - "src": "5460:179:39", + "src": "5514:179:35", "text": "@notice set up the top-down validators and their voting power\n @param validators - list of validator addresses\n @param weights - list of validators voting powers" }, "functionSelector": "f75bc557", @@ -7749,37 +7877,37 @@ "kind": "function", "modifiers": [ { - "id": 39163, + "id": 34319, "kind": "modifierInvocation", "modifierName": { - "id": 39162, + "id": 34318, "name": "systemActorOnly", "nameLocations": [ - "5731:15:39" + "5785:15:35" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 42496, - "src": "5731:15:39" + "referencedDeclaration": 37658, + "src": "5785:15:35" }, "nodeType": "ModifierInvocation", - "src": "5731:15:39" + "src": "5785:15:35" } ], "name": "setMembership", - "nameLocation": "5653:13:39", + "nameLocation": "5707:13:35", "parameters": { - "id": 39161, + "id": 34317, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39157, + "id": 34313, "mutability": "mutable", "name": "validators", - "nameLocation": "5684:10:39", + "nameLocation": "5738:10:35", "nodeType": "VariableDeclaration", - "scope": 39251, - "src": "5667:27:39", + "scope": 34407, + "src": "5721:27:35", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -7788,19 +7916,19 @@ }, "typeName": { "baseType": { - "id": 39155, + "id": 34311, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5667:7:39", + "src": "5721:7:35", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 39156, + "id": 34312, "nodeType": "ArrayTypeName", - "src": "5667:9:39", + "src": "5721:9:35", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -7810,13 +7938,13 @@ }, { "constant": false, - "id": 39160, + "id": 34316, "mutability": "mutable", "name": "weights", - "nameLocation": "5713:7:39", + "nameLocation": "5767:7:35", "nodeType": "VariableDeclaration", - "scope": 39251, - "src": "5696:24:39", + "scope": 34407, + "src": "5750:24:35", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -7825,18 +7953,18 @@ }, "typeName": { "baseType": { - "id": 39158, + "id": 34314, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5696:7:39", + "src": "5750:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 39159, + "id": 34315, "nodeType": "ArrayTypeName", - "src": "5696:9:39", + "src": "5750:9:35", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -7845,15 +7973,15 @@ "visibility": "internal" } ], - "src": "5666:55:39" + "src": "5720:55:35" }, "returnParameters": { - "id": 39164, + "id": 34320, "nodeType": "ParameterList", "parameters": [], - "src": "5747:0:39" + "src": "5801:0:35" }, - "scope": 39252, + "scope": 34408, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" @@ -7863,33 +7991,33 @@ "baseContracts": [ { "baseName": { - "id": 38714, + "id": 33860, "name": "GatewayActorModifiers", "nameLocations": [ - "1023:21:39" + "1023:21:35" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 42504, - "src": "1023:21:39" + "referencedDeclaration": 37666, + "src": "1023:21:35" }, - "id": 38715, + "id": 33861, "nodeType": "InheritanceSpecifier", - "src": "1023:21:39" + "src": "1023:21:35" }, { "baseName": { - "id": 38716, + "id": 33862, "name": "ReentrancyGuard", "nameLocations": [ - "1046:15:39" + "1046:15:35" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 42567, - "src": "1046:15:39" + "referencedDeclaration": 37729, + "src": "1046:15:35" }, - "id": 38717, + "id": 33863, "nodeType": "InheritanceSpecifier", - "src": "1046:15:39" + "src": "1046:15:35" } ], "canonicalName": "GatewayManagerFacet", @@ -7897,37 +8025,37 @@ "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ - 39252, - 42567, - 42504 + 34408, + 37729, + 37666 ], "name": "GatewayManagerFacet", - "nameLocation": "1000:19:39", - "scope": 39253, + "nameLocation": "1000:19:35", + "scope": 34409, "usedErrors": [ 4, 8, 29492, 29497, 29500, - 38148, - 38150, - 38154, - 38172, - 38198, - 38204, - 38206, - 38208, - 38216, - 38218, - 38220, - 38232, - 38234, - 42517 + 33164, + 33166, + 33170, + 33188, + 33214, + 33220, + 33222, + 33224, + 33232, + 33234, + 33236, + 33248, + 33250, + 37679 ] } ], "license": "UNLICENSED" }, - "id": 39 + "id": 35 } \ No newline at end of file diff --git a/contracts/GatewayRouterFacet.json b/contracts/GatewayRouterFacet.json index fcab6ad4..4cdf8d8a 100644 --- a/contracts/GatewayRouterFacet.json +++ b/contracts/GatewayRouterFacet.json @@ -629,13 +629,13 @@ } ], "bytecode": { - "object": "0x608060405234801561001057600080fd5b5061615780620000216000396000f3fe60806040526004361061003f5760003560e01c806325bf0db6146100445780632f757dd114610059578063986acf381461006c578063d4e149a81461008c575b600080fd5b61005761005236600461401c565b6100ac565b005b61005761006736600461404d565b61065a565b34801561007857600080fd5b5061005761008736600461404d565b610834565b34801561009857600080fd5b506100576100a7366004614081565b6111aa565b6100b4611c1e565b600081815260066020908152604080832081516101808101835281546001600160401b0316610140820190815260018301805485518188028101880187528181529497968796610448968a958795928601948794869461010089019487948694909386936101608d019392909183018282801561015a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161013c575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610194906140c2565b80601f01602080910402602001604051908101604052809291908181526020018280546101c0906140c2565b801561020d5780601f106101e25761010080835404028352916020019161020d565b820191906000526020600020905b8154815290600101906020018083116101f057829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561029e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610280575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906102d8906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054610304906140c2565b80156103515780601f1061032657610100808354040283529160200191610351565b820191906000526020600020905b81548152906001019060200180831161033457829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916103ac906140c2565b80601f01602080910402602001604051908101604052809291908181526020018280546103d8906140c2565b80156104255780601f106103fa57610100808354040283529160200191610425565b820191906000526020600020905b81548152906001019060200180831161040857829003601f168201915b505050919092525050508152600b919091015460ff161515602090910152611c43565b60088501546040805180820182526004880180546001600160401b03168252600589018054845160208281028201810190965281815297995095975093956000959294919380860193919291908301828280156104ce57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116104b0575b50505091909252505060405163089032d560e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263089032d59250610510916000906004016141cc565b600060405180830381865af415801561052d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261055591908101906142ce565b600087815260066020526040812080546001600160401b03191681559192508181818181816105876001830182613f0a565b505060028201805460ff1916815560006105a46003850182613f28565b505050506004820180546001600160401b0319168155600081816105cb6005870182613f0a565b505060028201805460ff1916815560006105e86003850182613f28565b50506000600885018190556009850180546001600160601b03191690556106159250600a85019150613f28565b505050600b01805460ff1916905561062f82828686611fb5565b600a5460009061063f90346143c9565b90508015610651576106513382612056565b50505050505050565b6106626120eb565b61066a611c1e565b3461067582806143dc565b604001351461069757604051631036b5ad60e31b815260040160405180910390fd5b6106a181806143dc565b6106ab90806143fc565b6106b590806143fc565b6106be906144da565b60405163c836244d60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9163c836244d916106f791906000906004016141cc565b602060405180830381865af4158015610714573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073891906144f4565b61075557604051638481de4960e01b815260040160405180910390fd5b60008061076961076484614772565b611c43565b909250905061082f61077b84806143dc565b6040013561078985806143dc565b6107979060208101906143fc565b6107a190806143fc565b6107aa906144da565b60405163089032d560e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9163089032d5916107e391906000906004016141cc565b600060405180830381865af4158015610800573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261082891908101906142ce565b8484611fb5565b505050565b61083c6120eb565b61085161084c602083018361477e565b61217b565b600d546000908152600c6020908152604080832033845290915290205460105460ff16610891576040516321c4e35760e21b815260040160405180910390fd5b806000036108b257604051632ec5b44960e01b815260040160405180910390fd5b73__$33b79814e84bf6cf5e47244090b19ce5f8$__63898414756108d9602085018561479b565b6040518363ffffffff1660e01b81526004016108f6929190614ae7565b602060405180830381865af4158015610913573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093791906144f4565b61095457604051630bd9169f60e01b815260040160405180910390fd5b6000601181610966602086018661477e565b6001600160401b03166001600160401b031681526020019081526020016000209050600061099682853386612187565b905060608115610d6f576109a9836126bf565b805480602002602001604051908101604052809291908181526020016000905b82821015610d685760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015610a6f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a51575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610aa9906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad5906140c2565b8015610b225780601f10610af757610100808354040283529160200191610b22565b820191906000526020600020905b815481529060010190602001808311610b0557829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015610bb357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b95575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610bed906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054610c19906140c2565b8015610c665780601f10610c3b57610100808354040283529160200191610c66565b820191906000526020600020905b815481529060010190602001808311610c4957829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191610cc1906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054610ced906140c2565b8015610d3a5780601f10610d0f57610100808354040283529160200191610d3a565b820191906000526020600020905b815481529060010190602001808311610d1d57829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016109c9565b5050505090505b805160000361117857600080610d836126f1565b915091508015611175576001600160401b0382166000908152601160205260409020610dae816126bf565b805480602002602001604051908101604052809291908181526020016000905b8282101561116d5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015610e7457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e56575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610eae906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054610eda906140c2565b8015610f275780601f10610efc57610100808354040283529160200191610f27565b820191906000526020600020905b815481529060010190602001808311610f0a57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015610fb857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610f9a575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610ff2906140c2565b80601f016020809104026020016040519081016040528092919081815260200182805461101e906140c2565b801561106b5780601f106110405761010080835404028352916020019161106b565b820191906000526020600020905b81548152906001019060200180831161104e57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916110c6906140c2565b80601f01602080910402602001604051908101604052809291908181526020018280546110f2906140c2565b801561113f5780601f106111145761010080835404028352916020019161113f565b820191906000526020600020905b81548152906001019060200180831161112257829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101610dce565b505050509350505b50505b6040805180820182526000808252825181815260208181019094526111a39383019150905282612744565b5050505050565b60105460ff166111cd576040516321c4e35760e21b815260040160405180910390fd5b336112696111db83806143fc565b6111e4906144da565b604051632cff562160e11b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__916359feac429161121a9190600401614afb565b602060405180830381865af4158015611237573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125b9190614b0e565b6001600160a01b031661277c565b6001600160a01b03161461129057604051637f39132760e11b815260040160405180910390fd5b600061129b336127c3565b915060019050815460ff1660058111156112b7576112b7614b2b565b146112d55760405163c18316bf60e01b815260040160405180910390fd5b6112e5604083016020840161477e565b60088201546001600160401b039182169116106113155760405163fae4eadb60e01b815260040160405180910390fd5b60a082013515611a1f5760408051610120810182526006830180546001600160401b031660e083019081526007850180548551602082810282018101909752818152949593948694869361010087019390918301828280156113a057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611382575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156117aa5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d019390918301828280156114b157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611493575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906114eb906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054611517906140c2565b80156115645780601f1061153957610100808354040283529160200191611564565b820191906000526020600020905b81548152906001019060200180831161154757829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156115f557602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116115d7575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061162f906140c2565b80601f016020809104026020016040519081016040528092919081815260200182805461165b906140c2565b80156116a85780601f1061167d576101008083540402835291602001916116a8565b820191906000526020600020905b81548152906001019060200180831161168b57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191611703906140c2565b80601f016020809104026020016040519081016040528092919081815260200182805461172f906140c2565b801561177c5780601f106117515761010080835404028352916020019161177c565b820191906000526020600020905b81548152906001019060200180831161175f57829003601f168201915b505050919092525050508152600b919091015460ff161515602091820152908252600192909201910161140b565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b828210156118e1576000848152602090819020604080516080810182526003860290920180546001600160401b03168383019081526001820180548451818802810188019095528085529495929486949293869360608701939092909183018282801561186d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161184f575b5050505050815250508152602001600282018054806020026020016040519081016040528092919081815260200182805480156118c957602002820191906000526020600020905b8154815260200190600101908083116118b5575b505050505081525050815260200190600101906117d7565b50505050815260200160068201548152602001600782018054611903906140c2565b80601f016020809104026020016040519081016040528092919081815260200182805461192f906140c2565b801561197c5780601f106119515761010080835404028352916020019161197c565b820191906000526020600020905b81548152906001019060200180831161195f57829003601f168201915b5050509190925250506040516339aa47fb60e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__926339aa47fb92506119bb91600401614d61565b602060405180830381865af41580156119d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119fc9190614dfe565b8260a0013514611a1f576040516312232e5d60e11b815260040160405180910390fd5b6000806000611a2c6128fb565b92509250925082611a8a576000805482546001600160401b0319166001600160401b03909116178255600180548391611a69918184019190613f62565b5050506002810180546001600160401b0319166001600160401b0384161790555b60405163445cc97560e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__9063445cc97590611acb9084908990600e90600f908990600401614ec2565b60006040518083038186803b158015611ae357600080fd5b505af4158015611af7573d6000803e3d6000fd5b50505050600080868060600190611b0e919061479b565b9050905060005b81811015611b6e57611b2a606089018961479b565b82818110611b3a57611b3a614fbf565b9050602002810190611b4c91906143fc565b611b5690806143dc565b611b64906040013584614fd5565b9250600101611b15565b506003830154611b82906040890135614fd5565b611b8c9083614fd5565b91508186600301541015611bb357604051631d36ca1560e21b815260040160405180910390fd5b81866003016000828254611bc791906143c9565b9091555087905060068701611bdc8282615972565b50611c109050611bec88806143fc565b611bf5906144da565b611c0260608a018a61479b565b611c0b91615b14565b612744565b610651338860400135612a31565b600a54341015611c41576040516334472ad760e11b815260040160405180910390fd5b565b80516020015151604051630c133d1360e31b8152600091829173__$a0fe38a9a81205afccc10810b09a4d3f45$__90636099e89890611c86908490600401614afb565b602060405180830381865af4158015611ca3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc791906144f4565b15611ce55760405163461e815d60e01b815260040160405180910390fd5b60405163c836244d60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9063c836244d90611d1f9084906000906004016141cc565b602060405180830381865af4158015611d3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d6091906144f4565b15611d7e57604051632f3335ff60e21b815260040160405180910390fd5b835180515160405163f47ad7eb60e01b8152909160009173__$386b5c41ce93e8b832daf8008b3d30ae09$__9163f47ad7eb91611dc091908590600401615b21565b602060405180830381865af4158015611ddd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e019190615b34565b905060006001826001811115611e1957611e19614b2b565b03611f1a57604051631ccc893360e11b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__90633999126690611e579087908790600401615b55565b600060405180830381865af4158015611e74573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e9c91908101906142ce565b60405163c836244d60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9163c836244d91611ed591906000906004016141cc565b602060405180830381865af4158015611ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f1691906144f4565b1590505b8015611f3e57611f2987612a8f565b50509351604001511515946000945092505050565b6000826001811115611f5257611f52614b2b565b03611f9c5760098054600890611f7790600160401b90046001600160401b0316615b7a565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b611fa587612cc1565b5060009660019650945050505050565b8115611fc657611fc6606385612056565b801561205057604051632cff562160e11b81526120509073__$a0fe38a9a81205afccc10810b09a4d3f45$__906359feac4290612007908790600401614afb565b602060405180830381865af4158015612024573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120489190614b0e565b600a54612a31565b50505050565b804710156120775760405163356680b760e01b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146120c4576040519150601f19603f3d011682016040523d82523d6000602084013e6120c9565b606091505b505090508061082f57604051633204506f60e01b815260040160405180910390fd5b604051630972932760e21b815233600482015273__$e800e3908cdbb6b1b5bd452383a17b18f7$__906325ca4c9c90602401602060405180830381865af415801561213a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215e91906144f4565b611c4157604051630a23da2b60e31b815260040160405180910390fd5b61218481612f92565b50565b60008061219385615ba0565b604051630edf122560e41b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__9163edf12250916121c99190600401615c0c565b602060405180830381865af41580156121e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061220a9190614dfe565b90506122288682868661222060208b018b61477e565b600b54613048565b600082815260058801602090815260408083208151808301835281546001600160401b03168152600182018054845181870281018701909552808552969850909591948685019491929184015b828210156126145760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561231b57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116122fd575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190612355906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054612381906140c2565b80156123ce5780601f106123a3576101008083540402835291602001916123ce565b820191906000526020600020905b8154815290600101906020018083116123b157829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561245f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612441575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190612499906140c2565b80601f01602080910402602001604051908101604052809291908181526020018280546124c5906140c2565b80156125125780601f106124e757610100808354040283529160200191612512565b820191906000526020600020905b8154815290600101906020018083116124f557829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161256d906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054612599906140c2565b80156125e65780601f106125bb576101008083540402835291602001916125e6565b820191906000526020600020905b8154815290600101906020018083116125c957829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101612275565b50505091525050604051632d34315760e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__91632d343157916126519190600401615c0c565b602060405180830381865af415801561266e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061269291906144f4565b156126b6576000818152600587016020526040902085906126b38282615c3a565b50505b50949350505050565b60028101546000908152600582016020526040812080546126e8906001600160401b0316613295565b60010192915050565b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27154600160401b90046001600160401b0316600060008051602061610283398151915261273d836133f6565b9150509091565b805160005b81811015612050576127748484838151811061276757612767614fbf565b6020026020010151613443565b600101612749565b600080600061278a84613a22565b915091508161279b57509192915050565b6000806127a783613a5e565b91509150816127ba575093949350505050565b95945050505050565b600080806001600160a01b0384166127ee576040516370e4510960e01b815260040160405180910390fd5b60408051808201825282546001600160401b031681526001830180548351602082810282018101909552818152600094869381860193909183018282801561285f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612841575b50505091909252505060405163aa5106cb60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263aa5106cb92506128a0918990600401615d5f565b600060405180830381865af41580156128bd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526128e591908101906142ce565b90506128f081613ac8565b935093505050915091565b60055460009081908190819061291b9043906001600160401b0316613c5b565b6001600160401b03808216600090815260088401602090815260409182902082518084018452815490941684526001810180548451818502810185019095528085529598509096509293869385830193929091908301828280156129a857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161298a575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e89892506129e791600401614afb565b602060405180830381865af4158015612a04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a2891906144f4565b15935050909192565b80600003612a3d575050565b61082f612a52836001600160a01b031661277c565b6040805160248082018690528251808303909101815260449091019091526020810180516001600160e01b0316632a7edd8f60e21b179052613c86565b600080612a9a6128fb565b600985015486516001600160401b03909116606090910152600a8501546003820180549295509093509150600090612ad3908490614fd5565b90915550506004810180546001808201835560009283526020928390208651805180518051600c90960290930180546001600160401b0319166001600160401b039096169590951785558286015180518a979395879593948694938593612b41938501929190910190613fb2565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190612b779082615d89565b50505050602083810151805180516004860180546001600160401b0319166001600160401b03909216919091178155818401518051939550909391928492612bc6926005890192910190613fb2565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190612bfc9082615d89565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a820190612c599082615d89565b50505060209190910151600b909101805460ff191691151591909117905560098201805460019190600090612c989084906001600160401b0316615e42565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550505050565b8051602001515160405163089032d560e01b8152600091829173__$a0fe38a9a81205afccc10810b09a4d3f45$__9163089032d591612d05919085906004016141cc565b600060405180830381865af4158015612d22573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612d4a91908101906142ce565b9050600080612d5883613ac8565b9150915081612d7a57604051630e991abd60e41b815260040160405180910390fd5b805485516101009091046001600160401b0316606090910181905260019082908290612da7908290615e42565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550846000015160400151816003016000828254612de79190614fd5565b9091555050600e810180546001808201835560009283526020928390208851805180518051600c90960290930180546001600160401b0319166001600160401b039096169590951785558286015180518c979395879593948694938593612e55938501929190910190613fb2565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190612e8b9082615d89565b50505050602083810151805180516004860180546001600160401b0319166001600160401b03909216919091178155818401518051939550909391928492612eda926005890192910190613fb2565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190612f109082615d89565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a820190612f6d9082615d89565b50505060209190910151600b909101805460ff19169115159190911790555050505050565b60008051602061610283398151915280546001600160401b0390811690831611612fcf57604051631f30cc6360e21b815260040160405180910390fd5b80546001600160401b03600160401b909104811690831611156130445780546001600160401b03600160881b820481169161301391600160401b9091041684615e69565b61301d9190615e9f565b6001600160401b0316156130445760405163b4f68f9760e01b815260040160405180910390fd5b5050565b8554600081815260038801602090815260408083206001600160a01b038916845290915281205490916000805160206161028339815191529160ff16156130a2576040516337138f5f60e11b815260040160405180910390fd5b600081815260038a01602090815260408083206001600160a01b038b1684529091528120805460ff191660019081179091558a0180548892906130e6908490614fd5565b9091555050600081815260048a01602090815260408083208b845290915281208054889290613116908490614fd5565b9091555050600081815260048a016020908152604080832060028d01548452909152808220548a8352912054808210156131525760028b018a90555b600061315e8c88613c97565b9050600381600381111561317457613174614b2b565b0361320957613182886133f6565b156131905760019550613286565b60405163199b9ca560e01b81526001860160048201526001600160401b038916602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__9063199b9ca59060440160006040518083038186803b1580156131ec57600080fd5b505af4158015613200573d6000803e3d6000fd5b50505050613286565b600281600381111561321d5761321d614b2b565b0361328657604051635a27a53960e11b8152600481018d905273__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063b44f4a729060240160006040518083038186803b15801561326d57600080fd5b505af4158015613281573d6000803e3d6000fd5b505050505b50505050509695505050505050565b6000805160206161028339815191526132ad826133f6565b6132b5575050565b604051634953836d60e11b81526001820160048201526001600160401b038316602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__906392a706da90604401602060405180830381865af4158015613316573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061333a91906144f4565b156133615760018101546001600160401b03838116600160401b9092041614613361575050565b6040516394ecccfd60e01b81526001820160048201526001600160401b038316602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__906394ecccfd9060440160006040518083038186803b1580156133bd57600080fd5b505af41580156133d1573d6000803e3d6000fd5b505082546001600160401b0319166001600160401b0394909416939093179091555050565b600080516020616102833981519152805460009190613427906001600160401b03600160881b820481169116615e42565b6001600160401b0316836001600160401b031614915050919050565b80516020015151604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__91636099e898916134809190600401614afb565b602060405180830381865af415801561349d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134c191906144f4565b156134df5760405163461e815d60e01b815260040160405180910390fd5b8051608001516001600160e01b031916613519578051604001514710156135195760405163569d45cf60e11b815260040160405180910390fd5b805160405163f47ad7eb60e01b815260009173__$386b5c41ce93e8b832daf8008b3d30ae09$__9163f47ad7eb91613555918590600401615b21565b602060405180830381865af4158015613572573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135969190615b34565b8251602001515160405163c836244d60e01b815291925073__$a0fe38a9a81205afccc10810b09a4d3f45$__9163c836244d916135d8916000906004016141cc565b602060405180830381865af41580156135f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061361991906144f4565b1561388257600181600181111561363257613632614b2b565b0361376757604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__90636099e8989061366e908690600401614afb565b602060405180830381865af415801561368b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136af91906144f4565b613767576000806136bf85613ac8565b91509150816136e157604051630e991abd60e41b815260040160405180910390fd5b8351606001518154600160481b90046001600160401b0390811691161461371b5760405163a57cadff60e01b815260040160405180910390fd5b80546001908290600990613740908490600160481b90046001600160401b0316615e42565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555050505b600081600181111561377b5761377b614b2b565b0361380657815160600151600954600160401b90046001600160401b039081169116146137bb5760405163a57cadff60e01b815260040160405180910390fd5b60098054600191906008906137e1908490600160401b90046001600160401b0316615e42565b92506101000a8154816001600160401b0302191690836001600160401b031602179055505b604051635c46fefb60e11b815273__$33b79814e84bf6cf5e47244090b19ce5f8$__9063b88dfdf69061383d908590600401615ec5565b600060405180830381865af415801561385a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120509190810190615ed8565b600061388d83613dac565b6000818152600660209081526040909120855180518051805184546001600160401b0319166001600160401b03909116178455808501518051969750899694959394869485939284926138e69260018501920190613fb2565b505050602082810151805160028401805460ff191660ff90921691909117815591810151909190600384019061391c9082615d89565b50505050602083810151805180516004860180546001600160401b0319166001600160401b0390921691909117815581840151805193955090939192849261396b926005890192910190613fb2565b505050602082810151805160028401805460ff191660ff9092169190911781559181015190919060038401906139a19082615d89565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a8201906139fe9082615d89565b50505060209190910151600b909101805460ff191691151591909117905550505050565b60008073ffffffffffffffffffffffff0000000000000000831660ff60981b8103613a5857600192506001600160401b03841691505b50915091565b600080826000526016600a602060006002607f60991b015afa9150600051806001600160a01b031691508060a01c61ffff16905061040a8114613aa45760009250600091505b50811580613ab357503d601614155b15613ac357506000928392509050565b915091565b6040516390ba52cf60e01b815260009081908190600490829073__$a0fe38a9a81205afccc10810b09a4d3f45$__906390ba52cf90613b0a9089908601614afb565b602060405180830381865af4158015613b27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b4b9190614dfe565b81526020808201929092526040908101600020815180830183526004820180546001600160401b031682526005830180548551818802810188019096528086529397509194909385820193909291830182828015613bd257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613bb4575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e8989250613c1191600401614afb565b602060405180830381865af4158015613c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c5291906144f4565b15925050915091565b600081613c688185615f45565b613c73906001615e42565b613c7d9190615f6b565b90505b92915050565b6060613c7d83836000613ddc613df5565b6000805160206161028339815191528054600091908290606490613cc590600160801b900460ff1686614ff5565b613ccf9190615f96565b604051637d2ef4e560e11b81526004810187905290915060009073__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063fa5de9ca90602401602060405180830381865af4158015613d25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d499190614dfe565b905081866001015411613d625760009350505050613c80565b81811115613d765760039350505050613c80565b6001860154613d8590866143c9565b613d8f82846143c9565b10613da05760029350505050613c80565b50600195945050505050565b600081604051602001613dbf919061603d565b604051602081830303815290604052805190602001209050919050565b604051630a12f52160e11b815260040160405180910390fd5b606082471015613e1f5760405163cd78605960e01b81523060048201526024015b60405180910390fd5b600080866001600160a01b03168587604051613e3b91906160ef565b60006040518083038185875af1925050503d8060008114613e78576040519150601f19603f3d011682016040523d82523d6000602084013e613e7d565b606091505b5091509150613e8e87838387613e9b565b925050505b949350505050565b60608315613ee9578251600003613ee257846001600160a01b03163b600003613ee257604051639996b31560e01b81526001600160a01b0386166004820152602401613e16565b5081613e93565b613e938383815115613efe5781518083602001fd5b613ddc8163ffffffff16565b50805460008255906000526020600020908101906121849190614007565b508054613f34906140c2565b6000825580601f10613f44575050565b601f0160209004906000526020600020908101906121849190614007565b828054828255906000526020600020908101928215613fa25760005260206000209182015b82811115613fa2578254825591600101919060010190613f87565b50613fae929150614007565b5090565b828054828255906000526020600020908101928215613fa2579160200282015b82811115613fa257825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613fd2565b5b80821115613fae5760008155600101614008565b60006020828403121561402e57600080fd5b5035919050565b60006040828403121561404757600080fd5b50919050565b60006020828403121561405f57600080fd5b81356001600160401b0381111561407557600080fd5b613e9384828501614035565b60006020828403121561409357600080fd5b81356001600160401b038111156140a957600080fd5b820160e081850312156140bb57600080fd5b9392505050565b600181811c908216806140d657607f821691505b60208210810361404757634e487b7160e01b600052602260045260246000fd5b6000604083016001600160401b0383511684526020808401516040828701528281518085526060880191508383019450600092505b808310156141545784516001600160a01b0316825293830193600192909201919083019061412b565b509695505050505050565b6000604083016001600160401b0383541684526001808401602060408188015283825480865260608901915083600052826000209550600093505b808410156141c05785546001600160a01b0316825294840194928401929082019061419a565b50979650505050505050565b6040815260006141df60408301856140f6565b82810360208401526127ba818561415f565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715614229576142296141f1565b60405290565b60405160c081016001600160401b0381118282101715614229576142296141f1565b604051601f8201601f191681016001600160401b0381118282101715614279576142796141f1565b604052919050565b6001600160401b038116811461218457600080fd5b60006001600160401b038211156142af576142af6141f1565b5060051b60200190565b6001600160a01b038116811461218457600080fd5b600060208083850312156142e157600080fd5b82516001600160401b03808211156142f857600080fd5b908401906040828703121561430c57600080fd5b614314614207565b825161431f81614281565b8152828401518281111561433257600080fd5b80840193505086601f84011261434757600080fd5b8251915061435c61435783614296565b614251565b82815260059290921b8301840191848101908884111561437b57600080fd5b938501935b838510156143a2578451614393816142b9565b82529385019390850190614380565b948201949094529695505050505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115613c8057613c806143b3565b6000823560be198336030181126143f257600080fd5b9190910192915050565b60008235603e198336030181126143f257600080fd5b803561441d81614281565b919050565b60006040828403121561443457600080fd5b61443c614207565b9050813561444981614281565b81526020828101356001600160401b0381111561446557600080fd5b8301601f8101851361447657600080fd5b803561448461435782614296565b81815260059190911b820183019083810190878311156144a357600080fd5b928401925b828410156144ca5783356144bb816142b9565b825292840192908401906144a8565b8085870152505050505092915050565b6000613c803683614422565b801515811461218457600080fd5b60006020828403121561450657600080fd5b81516140bb816144e6565b60ff8116811461218457600080fd5b60006001600160401b03821115614539576145396141f1565b50601f01601f191660200190565b600082601f83011261455857600080fd5b813561456661435782614520565b81815284602083860101111561457b57600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156145aa57600080fd5b6145b2614207565b905081356001600160401b03808211156145cb57600080fd5b6145d785838601614422565b835260208401359150808211156145ed57600080fd5b908301906040828603121561460157600080fd5b614609614207565b823561461481614511565b815260208301358281111561462857600080fd5b61463487828601614547565b60208301525080602085015250505092915050565b6001600160e01b03198116811461218457600080fd5b803561441d81614649565b803561441d816144e6565b60006040828403121561468757600080fd5b61468f614207565b905081356001600160401b03808211156146a857600080fd5b9083019060c082860312156146bc57600080fd5b6146c461422f565b8235828111156146d357600080fd5b6146df87828601614598565b8252506020830135828111156146f457600080fd5b61470087828601614598565b6020830152506040830135604082015261471c60608401614412565b606082015261472d6080840161465f565b608082015260a08301358281111561474457600080fd5b61475087828601614547565b60a08301525083525061476790506020830161466a565b602082015292915050565b6000613c803683614675565b60006020828403121561479057600080fd5b81356140bb81614281565b6000808335601e198436030181126147b257600080fd5b8301803591506001600160401b038211156147cc57600080fd5b6020019150600581901b36038213156147e457600080fd5b9250929050565b60008235603e1983360301811261480157600080fd5b90910192915050565b6000808335601e1984360301811261482157600080fd5b83016020810192503590506001600160401b0381111561484057600080fd5b8060051b36038213156147e457600080fd5b600060408301823561486381614281565b6001600160401b03168452602061487c8482018561480a565b6040878401529283905291600090606087015b818310156148bf5784356148a2816142b9565b6001600160a01b031681529383019360019290920191830161488f565b979650505050505050565b6000808335601e198436030181126148e157600080fd5b83016020810192503590506001600160401b0381111561490057600080fd5b8036038213156147e457600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600061494482836147eb565b604084526149556040850182614852565b905061496460208401846147eb565b8482036020860152803561497781614511565b60ff16825261498960208201826148ca565b9150604060208401526149a060408401838361490f565b9695505050505050565b81835260006020808501808196508560051b81019150846000805b88811015614ad9578385038a526149dc83896147eb565b6040813560be198336030181126149f1578485fd5b8188528201614a0081806147eb565b60c080848b0152614a156101008b0183614938565b9150614a238b8401846147eb565b603f196060818d860301818e0152614a3b8584614938565b94506080925086860135838e015280860135965050614a5986614281565b60a06001600160401b038716818e0152828601359650614a7887614649565b6001600160e01b031987168d850152614a93868201876148ca565b9750955050808c85030160e08d0152505050614ab081848461490f565b92505050614abf88830161466a565b1515968801969096525098850198918501916001016149c5565b509298975050505050505050565b602081526000613e936020830184866149aa565b602081526000613c7d60208301846140f6565b600060208284031215614b2057600080fd5b81516140bb816142b9565b634e487b7160e01b600052602160045260246000fd5b60005b83811015614b5c578181015183820152602001614b44565b50506000910152565b60008151808452614b7d816020860160208601614b41565b601f01601f19169290920160200192915050565b6000815160408452614ba660408501826140f6565b90506020830151848203602086015260ff815116825260208101519050604060208301526127ba6040830182614b65565b6000815160c08452614bec60c0850182614b91565b905060208301518482036020860152614c058282614b91565b915050604083015160408501526001600160401b03606084015116606085015263ffffffff60e01b608084015116608085015260a083015184820360a08601526127ba8282614b65565b6000815160408452614c646040850182614bd7565b6020938401511515949093019390935250919050565b600081518084526020808501808196508360051b8101915082860160005b85811015614cc2578284038952614cb0848351614c4f565b98850198935090840190600101614c98565b5091979650505050505050565b600081518084526020808501808196508360051b810191508286016000805b86811015614ad9578385038a52825160408151818852614d10828901826140f6565b92890151888403898b01528051808552908a01938693508a0191505b80831015614d4c5783518252928901926001929092019190890190614d2c565b509b88019b9650505091850191600101614cee565b602081526000825160e06020840152614d7e6101008401826140f6565b90506001600160401b036020850151166040840152604084015160608401526060840151601f1980858403016080860152614db98383614c7a565b925060808601519150808584030160a0860152614dd68383614ccf565b925060a086015160c086015260c08601519150808584030160e0860152506127ba8282614b65565b600060208284031215614e1057600080fd5b5051919050565b81835260006020808501808196506005915085821b8101856000805b89811015614eb3578484038b52614e4a838a6147eb565b6040614e5682836147eb565b818752614e6582880182614852565b915050614e748983018361480a565b8783038b89015280835292506001600160fb1b03831115614e93578485fd5b91881b918281838c0137509b88019b018701935091860191600101614e33565b50919998505050505050505050565b85815260a060208201526000614ed886876147eb565b60e060a0840152614eed610180840182614852565b90506020870135614efd81614281565b6001600160401b031660c0840152604087013560e0840152614f22606088018861480a565b609f198086850301610100870152614f3b8483856149aa565b9350614f4a60808b018b61480a565b935091508086850301610120870152614f64848484614e17565b935060a08a0135610140870152614f7e60c08b018b6148ca565b93509150808685030161016087015250614f9983838361490f565b93505050508460408301528360608301526149a060808301846001600160401b03169052565b634e487b7160e01b600052603260045260246000fd5b80820180821115613c8057613c806143b3565b60008135613c8081614281565b8082028115828204841417613c8057613c806143b3565b5b81811015613044576000815560010161500d565b80546000825580156130445781600052602060002061082f8282018261500c565b600160401b821115615056576150566141f1565b80548282558083101561082f5781600052602060002061205082820185830161500c565b6000815561218460018201615021565b600019600383901b1c191660019190911b1790565b6150a981546140c2565b801561304457601f8111600181146150c357505060009055565b8260005260206000206150e1601f840160051c82016001830161500c565b60008085559055505050565b600081556150fd60018201615021565b600060028201556121846003820161509f565b6000808335601e1984360301811261512757600080fd5b8301803591506001600160401b0382111561514157600080fd5b6020019150368190038213156147e457600080fd5b601f82111561082f57806000526020600020601f840160051c8101602085101561517d5750805b6111a3601f850160051c83018261500c565b6001600160401b038311156151a6576151a66141f1565b6151ba836151b483546140c2565b83615156565b6000601f8411600181146151e857600085156151d65750838201355b6151e0868261508a565b8455506111a3565b600083815260209020601f19861690835b8281101561521957868501358255602094850194600190920191016151f9565b50868210156152365760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b61525282836143fc565b803561525d81614281565b82546001600160401b0319166001600160401b038216178355506001808301602061528a8185018561479b565b94506001600160401b03808611156152a4576152a46141f1565b6152ae8685615042565b600093845282842093805b878110156152db5783356152cc816142b9565b868201559284019286016152b9565b506002880196506152ee848a018a6143fc565b9450843592506152fd83614511565b865460ff191660ff841617909655600387019561531c85850186615110565b9550925081851115615330576153306141f1565b6153448561533e89546140c2565b89615156565b809150601f851160018114615372578186156153605750838301355b61536a878261508a565b8955506153c7565b600088815260209020601f19871690835b828110156153a05786860135825594870194908901908701615383565b50878210156153bd5760001960f88960031b161c19858701351681555b50508686881b0188555b50505050505050505050565b60008135613c8081614649565b60008135613c80816144e6565b813560be1983360301811261540157600080fd5b820161540d81806143fc565b61541781826143fc565b803561542281614281565b84546001600160401b0319166001600160401b038216178555506001808501602061544f8185018561479b565b94506001600160401b0380861115615469576154696141f1565b6154738685615042565b600093845282842093805b878110156154a0578335615491816142b9565b8682015592840192860161547e565b5060028a0196506154b3848901896143fc565b9750873594506154c285614511565b865460ff191660ff86161790965560038901956154e188850189615110565b98509450818811156154f5576154f56141f1565b6155038861533e89546140c2565b809250601f881160018114615533578192508815615522578386013592505b61552c898461508a565b8855615588565b600088815260209020601f198a169350825b848110156155625787860135825594860194908801908601615545565b508984101561557f5760001960f88b60031b161c19858801351681555b508689881b0188555b505050506155a461559b828801886143fc565b60048901615248565b604086013560088801556009870194506155e06155c360608801614fe8565b86546001600160401b0319166001600160401b0391909116178655565b6156196155ef608088016153d3565b86546bffffffff0000000000000000191660a09190911c6bffffffff000000000000000016178655565b61562660a0870187615110565b965094506156388686600a8a0161518f565b61565f615646828a016153e0565b600b890160ff1981541660ff8315151681178255505050565b5050505050505050565b600160401b83111561567d5761567d6141f1565b80548382558084101561571157600c81810281810483146156a0576156a06143b3565b85820282810487146156b4576156b46143b3565b6000858152602081209283019291909101905b8282101561570c576156d8826150ed565b6156e4600483016150ed565b8060088301558060098301556156fc600a830161509f565b80600b83015583820191506156c7565b505050505b5060008181526020812083915b8581101561574f5761573961573384876143fc565b836153ed565b60209290920191600c919091019060010161571e565b505050505050565b80546000808355811561082f57828152602081208281015b808210156111a35782825560018201915061576f565b600160401b821115615799576157996141f1565b80548282558083101561082f576000828152602081208481019083015b8082101561574f578282556001820191506157b6565b6157d682836143fc565b80356157e181614281565b82546001600160401b0319166001600160401b038216178355506001808301602061580e8185018561479b565b94506001600160401b0380861115615828576158286141f1565b6158328685615042565b600093845282842093805b8781101561585f578335615850816142b9565b8682015592840192860161583d565b50600288019650615872848a018a61479b565b9550925081851115615886576158866141f1565b6158908588615785565b95865250818520945b8381101561565f57813586820155908201908401615899565b600160401b8311156158c6576158c66141f1565b80548382558084101561593457600381810281810483146158e9576158e96143b3565b85820282810487146158fd576158fd6143b3565b60008581526020902091820191015b818110156159305761591d8161507a565b61592960028201615757565b820161590c565b5050505b5060008181526020812083915b8581101561574f5761595c61595684876143fc565b836157cc565b6020929092019160039190910190600101615941565b61597c82836143fc565b803561598781614281565b82546001600160401b0319166001600160401b03821617835550600180830160206159b48185018561479b565b94506001600160401b038511156159cd576159cd6141f1565b6159d78584615042565b6000928352818320925b85811015615a035781356159f4816142b9565b848201559082019084016159e1565b5050615a34615a13828801614fe8565b600287016001600160401b0382166001600160401b03198254161781555050565b5050505060408201356003820155615a4f606083018361479b565b615a5d818360048601615669565b5050615a6c608083018361479b565b615a7a8183600586016158b2565b505060a08201356006820155615a9360c0830183615110565b61205081836007860161518f565b6000615aaf61435784614296565b8381529050602080820190600585901b840186811115615ace57600080fd5b845b81811015615b095780356001600160401b03811115615aef5760008081fd5b615afb89828901614675565b855250928201928201615ad0565b505050509392505050565b6000613c7d368484615aa1565b6040815260006141df6040830185614bd7565b600060208284031215615b4657600080fd5b8151600281106140bb57600080fd5b604081526000615b6860408301856140f6565b82810360208401526127ba81856140f6565b60006001600160401b03808316818103615b9657615b966143b3565b6001019392505050565b600060408236031215615bb257600080fd5b615bba614207565b8235615bc581614281565b815260208301356001600160401b03811115615be057600080fd5b830136601f820112615bf157600080fd5b615c0036823560208401615aa1565b60208301525092915050565b602081526001600160401b03825116602082015260006020830151604080840152613e936060840182614c7a565b8135615c4581614281565b81546001600160401b0319166001600160401b0382161782555060018082016020615c728186018661479b565b600160401b811115615c8657615c866141f1565b835481855580821015615d1957600c8181028181048314615ca957615ca96143b3565b8382028281048514615cbd57615cbd6143b3565b60008881528781209283019291909101905b82821015615d1457615ce0826150ed565b615cec600483016150ed565b806008830155806009830155615d04600a830161509f565b80600b8301558382019150615ccf565b505050505b506000938452602084209382905b82811015615d5457615d42615d3c83866143fc565b876153ed565b600c9590950194908401908601615d27565b505050505050505050565b604081526000615d7260408301856140f6565b905060018060a01b03831660208301529392505050565b81516001600160401b03811115615da257615da26141f1565b615db681615db084546140c2565b84615156565b602080601f831160018114615de55760008415615dd35750858301515b615ddd858261508a565b86555061574f565b600085815260208120601f198616915b82811015615e1457888601518255948401946001909101908401615df5565b5085821015615e325787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160401b03818116838216019080821115615e6257615e626143b3565b5092915050565b6001600160401b03828116828216039080821115615e6257615e626143b3565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b0380841680615eb957615eb9615e89565b92169190910692915050565b602081526000613c7d6020830184614c4f565b600060208284031215615eea57600080fd5b81516001600160401b03811115615f0057600080fd5b8201601f81018413615f1157600080fd5b8051615f1f61435782614520565b818152856020838501011115615f3457600080fd5b6127ba826020830160208601614b41565b60006001600160401b0380841680615f5f57615f5f615e89565b92169190910492915050565b6001600160401b03818116838216028082169190828114615f8e57615f8e6143b3565b505092915050565b600082615fa557615fa5615e89565b500490565b8051604080845281516001600160401b031684820152602091820151606085019190915280516080850181905260009291820191839160a08701905b8084101561600f5784516001600160a01b03168252938201936001939093019290820190615fe6565b508186015193508681038288015260ff84511681528184015193506040828201526148bf6040820185614b65565b602081526000825160406020840152805160c06060850152616063610120850182615faa565b90506020820151605f19808684030160808701526160818383615faa565b9250604084015160a08701526001600160401b0360608501511660c087015263ffffffff60e01b60808501511660e087015260a08401519350808684030161010087015250506160d18183614b65565b91505060208401516160e7604085018215159052565b509392505050565b600082516143f2818460208701614b4156fe283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e270a26469706673582212207ed4ef5ae251d58e3538675b2f94b163330eac21fc1fc4991ea468722d0abb7564736f6c63430008130033", - "sourceMap": "1458:13897:40:-:0;;;;;;;;;;;;;;;;;;;", + "object": "0x608060405234801561001057600080fd5b506161b180620000216000396000f3fe60806040526004361061003f5760003560e01c806325bf0db6146100445780632f757dd114610059578063986acf381461006c578063d4e149a81461008c575b600080fd5b610057610052366004614076565b6100ac565b005b6100576100673660046140a7565b610660565b34801561007857600080fd5b506100576100873660046140a7565b61083a565b34801561009857600080fd5b506100576100a73660046140db565b6111b7565b6100b4611c3c565b600081815260016020818152604080842081516101808101835281546001600160401b031661014082019081529482018054845181870281018701865281815293979687966104479694958a95879590860194879486946101008901948794869486936101608d019392919083018282801561015957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161013b575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906101939061411c565b80601f01602080910402602001604051908101604052809291908181526020018280546101bf9061411c565b801561020c5780601f106101e15761010080835404028352916020019161020c565b820191906000526020600020905b8154815290600101906020018083116101ef57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561029d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161027f575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906102d79061411c565b80601f01602080910402602001604051908101604052809291908181526020018280546103039061411c565b80156103505780601f1061032557610100808354040283529160200191610350565b820191906000526020600020905b81548152906001019060200180831161033357829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916103ab9061411c565b80601f01602080910402602001604051908101604052809291908181526020018280546103d79061411c565b80156104245780601f106103f957610100808354040283529160200191610424565b820191906000526020600020905b81548152906001019060200180831161040757829003601f168201915b505050919092525050508152600b919091015460ff161515602090910152611c61565b60088501546040805180820182526004880180546001600160401b03168252600589018054845160208281028201810190965281815297995095975093956000959294919380860193919291908301828280156104cd57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116104af575b50505091909252505060405163089032d560e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263089032d5925061050f91600890600401614226565b600060405180830381865af415801561052c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105549190810190614328565b6000878152600160208190526040822080546001600160401b031916815592935082908290829082908290829061058d90830182613f64565b505060028201805460ff1916815560006105aa6003850182613f82565b505050506004820180546001600160401b0319168155600081816105d16005870182613f64565b505060028201805460ff1916815560006105ee6003850182613f82565b50506000600885018190556009850180546001600160601b031916905561061b9250600a85019150613f82565b505050600b01805460ff1916905561063582828686611fd4565b600c546000906106459034614423565b90508015610657576106573382612075565b50505050505050565b61066861210a565b610670611c3c565b3461067b8280614436565b604001351461069d57604051631036b5ad60e31b815260040160405180910390fd5b6106a78180614436565b6106b19080614456565b6106bb9080614456565b6106c490614534565b60405163c836244d60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9163c836244d916106fd9190600890600401614226565b602060405180830381865af415801561071a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073e919061454e565b61075b57604051638481de4960e01b815260040160405180910390fd5b60008061076f61076a846147cc565b611c61565b90925090506108356107818480614436565b6040013561078f8580614436565b61079d906020810190614456565b6107a79080614456565b6107b090614534565b60405163089032d560e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9163089032d5916107e99190600890600401614226565b600060405180830381865af4158015610806573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261082e9190810190614328565b8484611fd4565b505050565b61084261210a565b61085761085260208301836147d8565b61219a565b600b546000908152600360209081526040808320338452909152902054600f54600160401b900460ff1661089e576040516321c4e35760e21b815260040160405180910390fd5b806000036108bf57604051632ec5b44960e01b815260040160405180910390fd5b73__$33b79814e84bf6cf5e47244090b19ce5f8$__63898414756108e660208501856147f5565b6040518363ffffffff1660e01b8152600401610903929190614b41565b602060405180830381865af4158015610920573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610944919061454e565b61096157604051630bd9169f60e01b815260040160405180910390fd5b600060068161097360208601866147d8565b6001600160401b03166001600160401b03168152602001908152602001600020905060006109a3828533866121a6565b905060608115610d7c576109b6836126de565b805480602002602001604051908101604052809291908181526020016000905b82821015610d755760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015610a7c57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a5e575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610ab69061411c565b80601f0160208091040260200160405190810160405280929190818152602001828054610ae29061411c565b8015610b2f5780601f10610b0457610100808354040283529160200191610b2f565b820191906000526020600020905b815481529060010190602001808311610b1257829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015610bc057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ba2575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610bfa9061411c565b80601f0160208091040260200160405190810160405280929190818152602001828054610c269061411c565b8015610c735780601f10610c4857610100808354040283529160200191610c73565b820191906000526020600020905b815481529060010190602001808311610c5657829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191610cce9061411c565b80601f0160208091040260200160405190810160405280929190818152602001828054610cfa9061411c565b8015610d475780601f10610d1c57610100808354040283529160200191610d47565b820191906000526020600020905b815481529060010190602001808311610d2a57829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016109d6565b5050505090505b805160000361118557600080610d90612710565b915091508015611182576001600160401b0382166000908152600660205260409020610dbb816126de565b805480602002602001604051908101604052809291908181526020016000905b8282101561117a5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015610e8157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e63575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610ebb9061411c565b80601f0160208091040260200160405190810160405280929190818152602001828054610ee79061411c565b8015610f345780601f10610f0957610100808354040283529160200191610f34565b820191906000526020600020905b815481529060010190602001808311610f1757829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015610fc557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610fa7575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610fff9061411c565b80601f016020809104026020016040519081016040528092919081815260200182805461102b9061411c565b80156110785780601f1061104d57610100808354040283529160200191611078565b820191906000526020600020905b81548152906001019060200180831161105b57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916110d39061411c565b80601f01602080910402602001604051908101604052809291908181526020018280546110ff9061411c565b801561114c5780601f106111215761010080835404028352916020019161114c565b820191906000526020600020905b81548152906001019060200180831161112f57829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101610ddb565b505050509350505b50505b6040805180820182526000808252825181815260208181019094526111b09383019150905282612763565b5050505050565b600f54600160401b900460ff166111e1576040516321c4e35760e21b815260040160405180910390fd5b3361127d6111ef8380614456565b6111f890614534565b604051632cff562160e11b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__916359feac429161122e9190600401614b55565b602060405180830381865af415801561124b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126f9190614b68565b6001600160a01b031661279b565b6001600160a01b0316146112a457604051637f39132760e11b815260040160405180910390fd5b60006112af336127e2565b9150600190506003820154600160801b900460ff1660058111156112d5576112d5614b85565b146112f35760405163c18316bf60e01b815260040160405180910390fd5b61130360408301602084016147d8565b60088201546001600160401b039182169116106113335760405163fae4eadb60e01b815260040160405180910390fd5b60a082013515611a3d5760408051610120810182526006830180546001600160401b031660e083019081526007850180548551602082810282018101909752818152949593948694869361010087019390918301828280156113be57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116113a0575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156117c85760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d019390918301828280156114cf57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114b1575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906115099061411c565b80601f01602080910402602001604051908101604052809291908181526020018280546115359061411c565b80156115825780601f1061155757610100808354040283529160200191611582565b820191906000526020600020905b81548152906001019060200180831161156557829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561161357602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116115f5575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061164d9061411c565b80601f01602080910402602001604051908101604052809291908181526020018280546116799061411c565b80156116c65780601f1061169b576101008083540402835291602001916116c6565b820191906000526020600020905b8154815290600101906020018083116116a957829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916117219061411c565b80601f016020809104026020016040519081016040528092919081815260200182805461174d9061411c565b801561179a5780601f1061176f5761010080835404028352916020019161179a565b820191906000526020600020905b81548152906001019060200180831161177d57829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101611429565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b828210156118ff576000848152602090819020604080516080810182526003860290920180546001600160401b03168383019081526001820180548451818802810188019095528085529495929486949293869360608701939092909183018282801561188b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161186d575b5050505050815250508152602001600282018054806020026020016040519081016040528092919081815260200182805480156118e757602002820191906000526020600020905b8154815260200190600101908083116118d3575b505050505081525050815260200190600101906117f5565b505050508152602001600682015481526020016007820180546119219061411c565b80601f016020809104026020016040519081016040528092919081815260200182805461194d9061411c565b801561199a5780601f1061196f5761010080835404028352916020019161199a565b820191906000526020600020905b81548152906001019060200180831161197d57829003601f168201915b5050509190925250506040516339aa47fb60e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__926339aa47fb92506119d991600401614dbb565b602060405180830381865af41580156119f6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1a9190614e58565b8260a0013514611a3d576040516312232e5d60e11b815260040160405180910390fd5b6000806000611a4a61291d565b92509250925082611aa9576008805482546001600160401b0319166001600160401b03909116178255600980548391611a8891600184019190613fbc565b5050506002810180546001600160401b0319166001600160401b0384161790555b60405163445cc97560e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__9063445cc97590611ae9908490899060049060059089908301614f1c565b60006040518083038186803b158015611b0157600080fd5b505af4158015611b15573d6000803e3d6000fd5b50505050600080868060600190611b2c91906147f5565b9050905060005b81811015611b8c57611b4860608901896147f5565b82818110611b5857611b58615019565b9050602002810190611b6a9190614456565b611b749080614436565b611b8290604001358461502f565b9250600101611b33565b506003830154611ba090604089013561502f565b611baa908361502f565b91508186600201541015611bd157604051631d36ca1560e21b815260040160405180910390fd5b81866002016000828254611be59190614423565b9091555087905060068701611bfa82826159cc565b50611c2e9050611c0a8880614456565b611c1390614534565b611c2060608a018a6147f5565b611c2991615b6e565b612763565b610657338860400135612a53565b600c54341015611c5f576040516334472ad760e11b815260040160405180910390fd5b565b80516020015151604051630c133d1360e31b8152600091829173__$a0fe38a9a81205afccc10810b09a4d3f45$__90636099e89890611ca4908490600401614b55565b602060405180830381865af4158015611cc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce5919061454e565b15611d035760405163461e815d60e01b815260040160405180910390fd5b60405163c836244d60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9063c836244d90611d3d908490600890600401614226565b602060405180830381865af4158015611d5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7e919061454e565b15611d9c57604051632f3335ff60e21b815260040160405180910390fd5b835180515160405163f47ad7eb60e01b8152909160009173__$386b5c41ce93e8b832daf8008b3d30ae09$__9163f47ad7eb91611ddf9190600890600401615b7b565b602060405180830381865af4158015611dfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e209190615b8e565b905060006001826001811115611e3857611e38614b85565b03611f3957604051631ccc893360e11b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__90633999126690611e769087908790600401615baf565b600060405180830381865af4158015611e93573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ebb9190810190614328565b60405163c836244d60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9163c836244d91611ef49190600890600401614226565b602060405180830381865af4158015611f11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f35919061454e565b1590505b8015611f5d57611f4887612ab1565b50509351604001511515946000945092505050565b6000826001811115611f7157611f71614b85565b03611fbb57600e8054600890611f9690600160401b90046001600160401b0316615bd4565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b611fc487612ce3565b5060009660019650945050505050565b8115611fe557611fe5606385612075565b801561206f57604051632cff562160e11b815261206f9073__$a0fe38a9a81205afccc10810b09a4d3f45$__906359feac4290612026908790600401614b55565b602060405180830381865af4158015612043573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120679190614b68565b600c54612a53565b50505050565b804710156120965760405163356680b760e01b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146120e3576040519150601f19603f3d011682016040523d82523d6000602084013e6120e8565b606091505b505090508061083557604051633204506f60e01b815260040160405180910390fd5b604051630972932760e21b815233600482015273__$e800e3908cdbb6b1b5bd452383a17b18f7$__906325ca4c9c90602401602060405180830381865af4158015612159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217d919061454e565b611c5f57604051630a23da2b60e31b815260040160405180910390fd5b6121a381612fb5565b50565b6000806121b285615bfa565b604051630edf122560e41b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__9163edf12250916121e89190600401615c66565b602060405180830381865af4158015612205573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122299190614e58565b90506122478682868661223f60208b018b6147d8565b600d54613084565b600082815260058801602090815260408083208151808301835281546001600160401b03168152600182018054845181870281018701909552808552969850909591948685019491929184015b828210156126335760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561233a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161231c575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906123749061411c565b80601f01602080910402602001604051908101604052809291908181526020018280546123a09061411c565b80156123ed5780601f106123c2576101008083540402835291602001916123ed565b820191906000526020600020905b8154815290600101906020018083116123d057829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561247e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612460575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906124b89061411c565b80601f01602080910402602001604051908101604052809291908181526020018280546124e49061411c565b80156125315780601f1061250657610100808354040283529160200191612531565b820191906000526020600020905b81548152906001019060200180831161251457829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161258c9061411c565b80601f01602080910402602001604051908101604052809291908181526020018280546125b89061411c565b80156126055780601f106125da57610100808354040283529160200191612605565b820191906000526020600020905b8154815290600101906020018083116125e857829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101612294565b50505091525050604051632d34315760e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__91632d343157916126709190600401615c66565b602060405180830381865af415801561268d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126b1919061454e565b156126d5576000818152600587016020526040902085906126d28282615c94565b50505b50949350505050565b6002810154600090815260058201602052604081208054612707906001600160401b03166132d1565b60010192915050565b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27154600160801b90046001600160401b0316600060008051602061615c83398151915261275c83613432565b9150509091565b805160005b8181101561206f576127938484838151811061278657612786615019565b602002602001015161347f565b600101612768565b60008060006127a984613a63565b91509150816127ba57509192915050565b6000806127c683613a9f565b91509150816127d9575093949350505050565b95945050505050565b600080806001600160a01b03841661280d576040516370e4510960e01b815260040160405180910390fd5b6040805180820182526008830180546001600160401b0316825260098401805484516020828102820181019096528181526000958086019391929083018282801561288157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612863575b50505091909252505060405163aa5106cb60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263aa5106cb92506128c2918990600401615db9565b600060405180830381865af41580156128df573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526129079190810190614328565b905061291281613b09565b935093505050915091565b600f5460009081908190819061293d9043906001600160401b0316613c9c565b6001600160401b03808216600090815260028401602090815260409182902082518084018452815490941684526001810180548451818502810185019095528085529598509096509293869385830193929091908301828280156129ca57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116129ac575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e8989250612a0991600401614b55565b602060405180830381865af4158015612a26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a4a919061454e565b15935050909192565b80600003612a5f575050565b610835612a74836001600160a01b031661279b565b6040805160248082018690528251808303909101815260449091019091526020810180516001600160e01b0316632a7edd8f60e21b179052613cc7565b600080612abc61291d565b600e85015486516001600160401b03909116606090910152600c8501546003820180549295509093509150600090612af590849061502f565b90915550506004810180546001808201835560009283526020928390208651805180518051600c90960290930180546001600160401b0319166001600160401b039096169590951785558286015180518a979395879593948694938593612b6393850192919091019061400c565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190612b999082615de3565b50505050602083810151805180516004860180546001600160401b0319166001600160401b03909216919091178155818401518051939550909391928492612be892600589019291019061400c565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190612c1e9082615de3565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a820190612c7b9082615de3565b50505060209190910151600b909101805460ff1916911515919091179055600e8201805460019190600090612cba9084906001600160401b0316615e9c565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550505050565b8051602001515160405163089032d560e01b8152600091829173__$a0fe38a9a81205afccc10810b09a4d3f45$__9163089032d591612d289190600890600401614226565b600060405180830381865af4158015612d45573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612d6d9190810190614328565b9050600080612d7b83613b09565b9150915081612d9d57604051630e991abd60e41b815260040160405180910390fd5b60038101805486516001600160401b03909116606090910181905260019190600090612dca908490615e9c565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550846000015160400151816002016000828254612e0a919061502f565b9091555050600e810180546001808201835560009283526020928390208851805180518051600c90960290930180546001600160401b0319166001600160401b039096169590951785558286015180518c979395879593948694938593612e7893850192919091019061400c565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190612eae9082615de3565b50505050602083810151805180516004860180546001600160401b0319166001600160401b03909216919091178155818401518051939550909391928492612efd92600589019291019061400c565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190612f339082615de3565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a820190612f909082615de3565b50505060209190910151600b909101805460ff19169115159190911790555050505050565b60008051602061615c83398151915280546001600160401b0390811690831611612ff257604051631f30cc6360e21b815260040160405180910390fd5b80546001600160401b03600160401b909104811690831610156130285760405163b4f68f9760e01b815260040160405180910390fd5b80546001600160401b03600160801b820481169161304f91600160401b9091041684615ec3565b6130599190615ef9565b6001600160401b0316156130805760405163b4f68f9760e01b815260040160405180910390fd5b5050565b8554600081815260038801602090815260408083206001600160a01b0389168452909152812054909160008051602061615c8339815191529160ff16156130de576040516337138f5f60e11b815260040160405180910390fd5b600081815260038a01602090815260408083206001600160a01b038b1684529091528120805460ff191660019081179091558a01805488929061312290849061502f565b9091555050600081815260048a01602090815260408083208b84529091528120805488929061315290849061502f565b9091555050600081815260048a016020908152604080832060028d01548452909152808220548a83529120548082101561318e5760028b018a90555b600061319a8c88613cd8565b905060038160038111156131b0576131b0614b85565b03613245576131be88613432565b156131cc57600195506132c2565b60405163199b9ca560e01b81526001860160048201526001600160401b038916602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__9063199b9ca59060440160006040518083038186803b15801561322857600080fd5b505af415801561323c573d6000803e3d6000fd5b505050506132c2565b600281600381111561325957613259614b85565b036132c257604051635a27a53960e11b8152600481018d905273__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063b44f4a729060240160006040518083038186803b1580156132a957600080fd5b505af41580156132bd573d6000803e3d6000fd5b505050505b50505050509695505050505050565b60008051602061615c8339815191526132e982613432565b6132f1575050565b604051634953836d60e11b81526001820160048201526001600160401b038316602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__906392a706da90604401602060405180830381865af4158015613352573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613376919061454e565b1561339d5760018101546001600160401b03838116600160801b909204161461339d575050565b6040516394ecccfd60e01b81526001820160048201526001600160401b038316602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__906394ecccfd9060440160006040518083038186803b1580156133f957600080fd5b505af415801561340d573d6000803e3d6000fd5b505082546001600160401b0319166001600160401b0394909416939093179091555050565b60008051602061615c833981519152805460009190613463906001600160401b03600160801b820481169116615e9c565b6001600160401b0316836001600160401b031614915050919050565b80516020015151604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__91636099e898916134bc9190600401614b55565b602060405180830381865af41580156134d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134fd919061454e565b1561351b5760405163461e815d60e01b815260040160405180910390fd5b8051608001516001600160e01b031916613555578051604001514710156135555760405163569d45cf60e11b815260040160405180910390fd5b805160405163f47ad7eb60e01b815260009173__$386b5c41ce93e8b832daf8008b3d30ae09$__9163f47ad7eb9161359291600890600401615b7b565b602060405180830381865af41580156135af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135d39190615b8e565b8251602001515160405163c836244d60e01b815291925073__$a0fe38a9a81205afccc10810b09a4d3f45$__9163c836244d9161361591600890600401614226565b602060405180830381865af4158015613632573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613656919061454e565b156138c457600181600181111561366f5761366f614b85565b036137a957604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__90636099e898906136ab908690600401614b55565b602060405180830381865af41580156136c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136ec919061454e565b6137a9576000806136fc85613b09565b915091508161371e57604051630e991abd60e41b815260040160405180910390fd5b8351606001516003820154600160401b90046001600160401b0390811691161461375b5760405163a57cadff60e01b815260040160405180910390fd5b60018160030160088282829054906101000a90046001600160401b03166137829190615e9c565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555050505b60008160018111156137bd576137bd614b85565b0361384857815160600151600e54600160401b90046001600160401b039081169116146137fd5760405163a57cadff60e01b815260040160405180910390fd5b600e805460019190600890613823908490600160401b90046001600160401b0316615e9c565b92506101000a8154816001600160401b0302191690836001600160401b031602179055505b604051635c46fefb60e11b815273__$33b79814e84bf6cf5e47244090b19ce5f8$__9063b88dfdf69061387f908590600401615f1f565b600060405180830381865af415801561389c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261206f9190810190615f32565b60006138cf83613e06565b6000818152600160208181526040909220865180518051805184546001600160401b0319166001600160401b039091161784558086015180519798508a9794969395879593948694859361392793850192019061400c565b505050602082810151805160028401805460ff191660ff90921691909117815591810151909190600384019061395d9082615de3565b50505050602083810151805180516004860180546001600160401b0319166001600160401b039092169190911781558184015180519395509093919284926139ac92600589019291019061400c565b505050602082810151805160028401805460ff191660ff9092169190911781559181015190919060038401906139e29082615de3565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a820190613a3f9082615de3565b50505060209190910151600b909101805460ff191691151591909117905550505050565b60008073ffffffffffffffffffffffff0000000000000000831660ff60981b8103613a9957600192506001600160401b03841691505b50915091565b600080826000526016600a602060006002607f60991b015afa9150600051806001600160a01b031691508060a01c61ffff16905061040a8114613ae55760009250600091505b50811580613af457503d601614155b15613b0457506000928392509050565b915091565b6040516390ba52cf60e01b8152600090819081908190819073__$a0fe38a9a81205afccc10810b09a4d3f45$__906390ba52cf90613b4b908990600401614b55565b602060405180830381865af4158015613b68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b8c9190614e58565b81526020808201929092526040908101600020815180830183526004820180546001600160401b031682526005830180548551818802810188019096528086529397509194909385820193909291830182828015613c1357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613bf5575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e8989250613c5291600401614b55565b602060405180830381865af4158015613c6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c93919061454e565b15925050915091565b600081613ca98185615f9f565b613cb4906001615e9c565b613cbe9190615fc5565b90505b92915050565b6060613cbe83836000613e36613e4f565b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e2735460009060008051602061615c833981519152908290606490613d1f9060ff168661504f565b613d299190615ff0565b604051637d2ef4e560e11b81526004810187905290915060009073__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063fa5de9ca90602401602060405180830381865af4158015613d7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613da39190614e58565b905081866001015411613dbc5760009350505050613cc1565b81811115613dd05760039350505050613cc1565b6001860154613ddf9086614423565b613de98284614423565b10613dfa5760029350505050613cc1565b50600195945050505050565b600081604051602001613e199190616097565b604051602081830303815290604052805190602001209050919050565b604051630a12f52160e11b815260040160405180910390fd5b606082471015613e795760405163cd78605960e01b81523060048201526024015b60405180910390fd5b600080866001600160a01b03168587604051613e959190616149565b60006040518083038185875af1925050503d8060008114613ed2576040519150601f19603f3d011682016040523d82523d6000602084013e613ed7565b606091505b5091509150613ee887838387613ef5565b925050505b949350505050565b60608315613f43578251600003613f3c57846001600160a01b03163b600003613f3c57604051639996b31560e01b81526001600160a01b0386166004820152602401613e70565b5081613eed565b613eed8383815115613f585781518083602001fd5b613e368163ffffffff16565b50805460008255906000526020600020908101906121a39190614061565b508054613f8e9061411c565b6000825580601f10613f9e575050565b601f0160209004906000526020600020908101906121a39190614061565b828054828255906000526020600020908101928215613ffc5760005260206000209182015b82811115613ffc578254825591600101919060010190613fe1565b50614008929150614061565b5090565b828054828255906000526020600020908101928215613ffc579160200282015b82811115613ffc57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019061402c565b5b808211156140085760008155600101614062565b60006020828403121561408857600080fd5b5035919050565b6000604082840312156140a157600080fd5b50919050565b6000602082840312156140b957600080fd5b81356001600160401b038111156140cf57600080fd5b613eed8482850161408f565b6000602082840312156140ed57600080fd5b81356001600160401b0381111561410357600080fd5b820160e0818503121561411557600080fd5b9392505050565b600181811c9082168061413057607f821691505b6020821081036140a157634e487b7160e01b600052602260045260246000fd5b6000604083016001600160401b0383511684526020808401516040828701528281518085526060880191508383019450600092505b808310156141ae5784516001600160a01b03168252938301936001929092019190830190614185565b509695505050505050565b6000604083016001600160401b0383541684526001808401602060408188015283825480865260608901915083600052826000209550600093505b8084101561421a5785546001600160a01b031682529484019492840192908201906141f4565b50979650505050505050565b6040815260006142396040830185614150565b82810360208401526127d981856141b9565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156142835761428361424b565b60405290565b60405160c081016001600160401b03811182821017156142835761428361424b565b604051601f8201601f191681016001600160401b03811182821017156142d3576142d361424b565b604052919050565b6001600160401b03811681146121a357600080fd5b60006001600160401b038211156143095761430961424b565b5060051b60200190565b6001600160a01b03811681146121a357600080fd5b6000602080838503121561433b57600080fd5b82516001600160401b038082111561435257600080fd5b908401906040828703121561436657600080fd5b61436e614261565b8251614379816142db565b8152828401518281111561438c57600080fd5b80840193505086601f8401126143a157600080fd5b825191506143b66143b1836142f0565b6142ab565b82815260059290921b830184019184810190888411156143d557600080fd5b938501935b838510156143fc5784516143ed81614313565b825293850193908501906143da565b948201949094529695505050505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115613cc157613cc161440d565b6000823560be1983360301811261444c57600080fd5b9190910192915050565b60008235603e1983360301811261444c57600080fd5b8035614477816142db565b919050565b60006040828403121561448e57600080fd5b614496614261565b905081356144a3816142db565b81526020828101356001600160401b038111156144bf57600080fd5b8301601f810185136144d057600080fd5b80356144de6143b1826142f0565b81815260059190911b820183019083810190878311156144fd57600080fd5b928401925b8284101561452457833561451581614313565b82529284019290840190614502565b8085870152505050505092915050565b6000613cc1368361447c565b80151581146121a357600080fd5b60006020828403121561456057600080fd5b815161411581614540565b60ff811681146121a357600080fd5b60006001600160401b038211156145935761459361424b565b50601f01601f191660200190565b600082601f8301126145b257600080fd5b81356145c06143b18261457a565b8181528460208386010111156145d557600080fd5b816020850160208301376000918101602001919091529392505050565b60006040828403121561460457600080fd5b61460c614261565b905081356001600160401b038082111561462557600080fd5b6146318583860161447c565b8352602084013591508082111561464757600080fd5b908301906040828603121561465b57600080fd5b614663614261565b823561466e8161456b565b815260208301358281111561468257600080fd5b61468e878286016145a1565b60208301525080602085015250505092915050565b6001600160e01b0319811681146121a357600080fd5b8035614477816146a3565b803561447781614540565b6000604082840312156146e157600080fd5b6146e9614261565b905081356001600160401b038082111561470257600080fd5b9083019060c0828603121561471657600080fd5b61471e614289565b82358281111561472d57600080fd5b614739878286016145f2565b82525060208301358281111561474e57600080fd5b61475a878286016145f2565b602083015250604083013560408201526147766060840161446c565b6060820152614787608084016146b9565b608082015260a08301358281111561479e57600080fd5b6147aa878286016145a1565b60a0830152508352506147c19050602083016146c4565b602082015292915050565b6000613cc136836146cf565b6000602082840312156147ea57600080fd5b8135614115816142db565b6000808335601e1984360301811261480c57600080fd5b8301803591506001600160401b0382111561482657600080fd5b6020019150600581901b360382131561483e57600080fd5b9250929050565b60008235603e1983360301811261485b57600080fd5b90910192915050565b6000808335601e1984360301811261487b57600080fd5b83016020810192503590506001600160401b0381111561489a57600080fd5b8060051b360382131561483e57600080fd5b60006040830182356148bd816142db565b6001600160401b0316845260206148d684820185614864565b6040878401529283905291600090606087015b818310156149195784356148fc81614313565b6001600160a01b03168152938301936001929092019183016148e9565b979650505050505050565b6000808335601e1984360301811261493b57600080fd5b83016020810192503590506001600160401b0381111561495a57600080fd5b80360382131561483e57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600061499e8283614845565b604084526149af60408501826148ac565b90506149be6020840184614845565b848203602086015280356149d18161456b565b60ff1682526149e36020820182614924565b9150604060208401526149fa604084018383614969565b9695505050505050565b81835260006020808501808196508560051b81019150846000805b88811015614b33578385038a52614a368389614845565b6040813560be19833603018112614a4b578485fd5b8188528201614a5a8180614845565b60c080848b0152614a6f6101008b0183614992565b9150614a7d8b840184614845565b603f196060818d860301818e0152614a958584614992565b94506080925086860135838e015280860135965050614ab3866142db565b60a06001600160401b038716818e0152828601359650614ad2876146a3565b6001600160e01b031987168d850152614aed86820187614924565b9750955050808c85030160e08d0152505050614b0a818484614969565b92505050614b198883016146c4565b151596880196909652509885019891850191600101614a1f565b509298975050505050505050565b602081526000613eed602083018486614a04565b602081526000613cbe6020830184614150565b600060208284031215614b7a57600080fd5b815161411581614313565b634e487b7160e01b600052602160045260246000fd5b60005b83811015614bb6578181015183820152602001614b9e565b50506000910152565b60008151808452614bd7816020860160208601614b9b565b601f01601f19169290920160200192915050565b6000815160408452614c006040850182614150565b90506020830151848203602086015260ff815116825260208101519050604060208301526127d96040830182614bbf565b6000815160c08452614c4660c0850182614beb565b905060208301518482036020860152614c5f8282614beb565b915050604083015160408501526001600160401b03606084015116606085015263ffffffff60e01b608084015116608085015260a083015184820360a08601526127d98282614bbf565b6000815160408452614cbe6040850182614c31565b6020938401511515949093019390935250919050565b600081518084526020808501808196508360051b8101915082860160005b85811015614d1c578284038952614d0a848351614ca9565b98850198935090840190600101614cf2565b5091979650505050505050565b600081518084526020808501808196508360051b810191508286016000805b86811015614b33578385038a52825160408151818852614d6a82890182614150565b92890151888403898b01528051808552908a01938693508a0191505b80831015614da65783518252928901926001929092019190890190614d86565b509b88019b9650505091850191600101614d48565b602081526000825160e06020840152614dd8610100840182614150565b90506001600160401b036020850151166040840152604084015160608401526060840151601f1980858403016080860152614e138383614cd4565b925060808601519150808584030160a0860152614e308383614d29565b925060a086015160c086015260c08601519150808584030160e0860152506127d98282614bbf565b600060208284031215614e6a57600080fd5b5051919050565b81835260006020808501808196506005915085821b8101856000805b89811015614f0d578484038b52614ea4838a614845565b6040614eb08283614845565b818752614ebf828801826148ac565b915050614ece89830183614864565b8783038b89015280835292506001600160fb1b03831115614eed578485fd5b91881b918281838c0137509b88019b018701935091860191600101614e8d565b50919998505050505050505050565b85815260a060208201526000614f328687614845565b60e060a0840152614f476101808401826148ac565b90506020870135614f57816142db565b6001600160401b031660c0840152604087013560e0840152614f7c6060880188614864565b609f198086850301610100870152614f95848385614a04565b9350614fa460808b018b614864565b935091508086850301610120870152614fbe848484614e71565b935060a08a0135610140870152614fd860c08b018b614924565b93509150808685030161016087015250614ff3838383614969565b93505050508460408301528360608301526149fa60808301846001600160401b03169052565b634e487b7160e01b600052603260045260246000fd5b80820180821115613cc157613cc161440d565b60008135613cc1816142db565b8082028115828204841417613cc157613cc161440d565b5b818110156130805760008155600101615067565b80546000825580156130805781600052602060002061083582820182615066565b600160401b8211156150b0576150b061424b565b8054828255808310156108355781600052602060002061206f828201858301615066565b600081556121a36001820161507b565b600019600383901b1c191660019190911b1790565b615103815461411c565b801561308057601f81116001811461511d57505060009055565b82600052602060002061513b601f840160051c820160018301615066565b60008085559055505050565b600081556151576001820161507b565b600060028201556121a3600382016150f9565b6000808335601e1984360301811261518157600080fd5b8301803591506001600160401b0382111561519b57600080fd5b60200191503681900382131561483e57600080fd5b601f82111561083557806000526020600020601f840160051c810160208510156151d75750805b6111b0601f850160051c830182615066565b6001600160401b038311156152005761520061424b565b6152148361520e835461411c565b836151b0565b6000601f84116001811461524257600085156152305750838201355b61523a86826150e4565b8455506111b0565b600083815260209020601f19861690835b828110156152735786850135825560209485019460019092019101615253565b50868210156152905760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6152ac8283614456565b80356152b7816142db565b82546001600160401b0319166001600160401b03821617835550600180830160206152e4818501856147f5565b94506001600160401b03808611156152fe576152fe61424b565b615308868561509c565b600093845282842093805b8781101561533557833561532681614313565b86820155928401928601615313565b50600288019650615348848a018a614456565b9450843592506153578361456b565b865460ff191660ff84161790965560038701956153768585018661516a565b955092508185111561538a5761538a61424b565b61539e85615398895461411c565b896151b0565b809150601f8511600181146153cc578186156153ba5750838301355b6153c487826150e4565b895550615421565b600088815260209020601f19871690835b828110156153fa57868601358255948701949089019087016153dd565b50878210156154175760001960f88960031b161c19858701351681555b50508686881b0188555b50505050505050505050565b60008135613cc1816146a3565b60008135613cc181614540565b813560be1983360301811261545b57600080fd5b82016154678180614456565b6154718182614456565b803561547c816142db565b84546001600160401b0319166001600160401b03821617855550600180850160206154a9818501856147f5565b94506001600160401b03808611156154c3576154c361424b565b6154cd868561509c565b600093845282842093805b878110156154fa5783356154eb81614313565b868201559284019286016154d8565b5060028a01965061550d84890189614456565b97508735945061551c8561456b565b865460ff191660ff861617909655600389019561553b8885018961516a565b985094508188111561554f5761554f61424b565b61555d88615398895461411c565b809250601f88116001811461558d57819250881561557c578386013592505b61558689846150e4565b88556155e2565b600088815260209020601f198a169350825b848110156155bc578786013582559486019490880190860161559f565b50898410156155d95760001960f88b60031b161c19858801351681555b508689881b0188555b505050506155fe6155f582880188614456565b600489016152a2565b6040860135600888015560098701945061563a61561d60608801615042565b86546001600160401b0319166001600160401b0391909116178655565b6156736156496080880161542d565b86546bffffffff0000000000000000191660a09190911c6bffffffff000000000000000016178655565b61568060a087018761516a565b965094506156928686600a8a016151e9565b6156b96156a0828a0161543a565b600b890160ff1981541660ff8315151681178255505050565b5050505050505050565b600160401b8311156156d7576156d761424b565b80548382558084101561576b57600c81810281810483146156fa576156fa61440d565b858202828104871461570e5761570e61440d565b6000858152602081209283019291909101905b828210156157665761573282615147565b61573e60048301615147565b806008830155806009830155615756600a83016150f9565b80600b8301558382019150615721565b505050505b5060008181526020812083915b858110156157a95761579361578d8487614456565b83615447565b60209290920191600c9190910190600101615778565b505050505050565b80546000808355811561083557828152602081208281015b808210156111b0578282556001820191506157c9565b600160401b8211156157f3576157f361424b565b805482825580831015610835576000828152602081208481019083015b808210156157a957828255600182019150615810565b6158308283614456565b803561583b816142db565b82546001600160401b0319166001600160401b0382161783555060018083016020615868818501856147f5565b94506001600160401b03808611156158825761588261424b565b61588c868561509c565b600093845282842093805b878110156158b95783356158aa81614313565b86820155928401928601615897565b506002880196506158cc848a018a6147f5565b95509250818511156158e0576158e061424b565b6158ea85886157df565b95865250818520945b838110156156b9578135868201559082019084016158f3565b600160401b8311156159205761592061424b565b80548382558084101561598e57600381810281810483146159435761594361440d565b85820282810487146159575761595761440d565b60008581526020902091820191015b8181101561598a57615977816150d4565b615983600282016157b1565b8201615966565b5050505b5060008181526020812083915b858110156157a9576159b66159b08487614456565b83615826565b602092909201916003919091019060010161599b565b6159d68283614456565b80356159e1816142db565b82546001600160401b0319166001600160401b0382161783555060018083016020615a0e818501856147f5565b94506001600160401b03851115615a2757615a2761424b565b615a31858461509c565b6000928352818320925b85811015615a5d578135615a4e81614313565b84820155908201908401615a3b565b5050615a8e615a6d828801615042565b600287016001600160401b0382166001600160401b03198254161781555050565b5050505060408201356003820155615aa960608301836147f5565b615ab78183600486016156c3565b5050615ac660808301836147f5565b615ad481836005860161590c565b505060a08201356006820155615aed60c083018361516a565b61206f8183600786016151e9565b6000615b096143b1846142f0565b8381529050602080820190600585901b840186811115615b2857600080fd5b845b81811015615b635780356001600160401b03811115615b495760008081fd5b615b55898289016146cf565b855250928201928201615b2a565b505050509392505050565b6000613cbe368484615afb565b6040815260006142396040830185614c31565b600060208284031215615ba057600080fd5b81516002811061411557600080fd5b604081526000615bc26040830185614150565b82810360208401526127d98185614150565b60006001600160401b03808316818103615bf057615bf061440d565b6001019392505050565b600060408236031215615c0c57600080fd5b615c14614261565b8235615c1f816142db565b815260208301356001600160401b03811115615c3a57600080fd5b830136601f820112615c4b57600080fd5b615c5a36823560208401615afb565b60208301525092915050565b602081526001600160401b03825116602082015260006020830151604080840152613eed6060840182614cd4565b8135615c9f816142db565b81546001600160401b0319166001600160401b0382161782555060018082016020615ccc818601866147f5565b600160401b811115615ce057615ce061424b565b835481855580821015615d7357600c8181028181048314615d0357615d0361440d565b8382028281048514615d1757615d1761440d565b60008881528781209283019291909101905b82821015615d6e57615d3a82615147565b615d4660048301615147565b806008830155806009830155615d5e600a83016150f9565b80600b8301558382019150615d29565b505050505b506000938452602084209382905b82811015615dae57615d9c615d968386614456565b87615447565b600c9590950194908401908601615d81565b505050505050505050565b604081526000615dcc6040830185614150565b905060018060a01b03831660208301529392505050565b81516001600160401b03811115615dfc57615dfc61424b565b615e1081615e0a845461411c565b846151b0565b602080601f831160018114615e3f5760008415615e2d5750858301515b615e3785826150e4565b8655506157a9565b600085815260208120601f198616915b82811015615e6e57888601518255948401946001909101908401615e4f565b5085821015615e8c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160401b03818116838216019080821115615ebc57615ebc61440d565b5092915050565b6001600160401b03828116828216039080821115615ebc57615ebc61440d565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b0380841680615f1357615f13615ee3565b92169190910692915050565b602081526000613cbe6020830184614ca9565b600060208284031215615f4457600080fd5b81516001600160401b03811115615f5a57600080fd5b8201601f81018413615f6b57600080fd5b8051615f796143b18261457a565b818152856020838501011115615f8e57600080fd5b6127d9826020830160208601614b9b565b60006001600160401b0380841680615fb957615fb9615ee3565b92169190910492915050565b6001600160401b03818116838216028082169190828114615fe857615fe861440d565b505092915050565b600082615fff57615fff615ee3565b500490565b8051604080845281516001600160401b031684820152602091820151606085019190915280516080850181905260009291820191839160a08701905b808410156160695784516001600160a01b03168252938201936001939093019290820190616040565b508186015193508681038288015260ff84511681528184015193506040828201526149196040820185614bbf565b602081526000825160406020840152805160c060608501526160bd610120850182616004565b90506020820151605f19808684030160808701526160db8383616004565b9250604084015160a08701526001600160401b0360608501511660c087015263ffffffff60e01b60808501511660e087015260a084015193508086840301610100870152505061612b8183614bbf565b9150506020840151616141604085018215159052565b509392505050565b6000825161444c818460208701614b9b56fe283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e270a2646970667358221220e4d93e06942e0372e3e225f5a5bed5ea268125a45a170e8906395b9afeb23a4b64736f6c63430008130033", + "sourceMap": "1458:13897:36:-:0;;;;;;;;;;;;;;;;;;;", "linkReferences": { "src/lib/AccountHelper.sol": { "AccountHelper": [ { - "start": 8481, + "start": 8512, "length": 20 } ] @@ -643,19 +643,19 @@ "src/lib/CheckpointHelper.sol": { "CheckpointHelper": [ { - "start": 6581, + "start": 6611, "length": 20 }, { - "start": 6842, + "start": 6873, "length": 20 }, { - "start": 8643, + "start": 8674, "length": 20 }, { - "start": 9803, + "start": 9834, "length": 20 } ] @@ -663,11 +663,11 @@ "src/lib/CrossMsgHelper.sol": { "CrossMsgHelper": [ { - "start": 2261, + "start": 2274, "length": 20 }, { - "start": 14390, + "start": 14456, "length": 20 } ] @@ -675,11 +675,11 @@ "src/lib/EpochVoteSubmissionHelper.sol": { "EpochVoteSubmissionHelper": [ { - "start": 12889, + "start": 12949, "length": 20 }, { - "start": 15628, + "start": 15718, "length": 20 } ] @@ -687,15 +687,15 @@ "src/lib/ExecutableQueueHelper.sol": { "ExecutableQueueHelper": [ { - "start": 12760, + "start": 12820, "length": 20 }, { - "start": 13053, + "start": 13113, "length": 20 }, { - "start": 13225, + "start": 13285, "length": 20 } ] @@ -703,11 +703,11 @@ "src/lib/StorableMsgHelper.sol": { "StorableMsgHelper": [ { - "start": 7608, + "start": 7638, "length": 20 }, { - "start": 13646, + "start": 13706, "length": 20 } ] @@ -715,71 +715,71 @@ "src/lib/SubnetIDHelper.sol": { "SubnetIDHelper": [ { - "start": 1287, + "start": 1286, "length": 20 }, { - "start": 1774, + "start": 1780, "length": 20 }, { - "start": 2010, + "start": 2016, "length": 20 }, { - "start": 4628, + "start": 4648, "length": 20 }, { - "start": 7295, + "start": 7325, "length": 20 }, { - "start": 7445, + "start": 7475, "length": 20 }, { - "start": 7758, + "start": 7789, "length": 20 }, { - "start": 7884, + "start": 7915, "length": 20 }, { - "start": 8192, + "start": 8223, "length": 20 }, { - "start": 10392, + "start": 10426, "length": 20 }, { - "start": 10721, + "start": 10755, "length": 20 }, { - "start": 11517, + "start": 11551, "length": 20 }, { - "start": 13434, + "start": 13494, "length": 20 }, { - "start": 13776, + "start": 13837, "length": 20 }, { - "start": 13927, + "start": 13988, "length": 20 }, { - "start": 15108, + "start": 15172, "length": 20 }, { - "start": 15371, + "start": 15436, "length": 20 } ] @@ -787,13 +787,13 @@ } }, "deployedBytecode": { - "object": "0x60806040526004361061003f5760003560e01c806325bf0db6146100445780632f757dd114610059578063986acf381461006c578063d4e149a81461008c575b600080fd5b61005761005236600461401c565b6100ac565b005b61005761006736600461404d565b61065a565b34801561007857600080fd5b5061005761008736600461404d565b610834565b34801561009857600080fd5b506100576100a7366004614081565b6111aa565b6100b4611c1e565b600081815260066020908152604080832081516101808101835281546001600160401b0316610140820190815260018301805485518188028101880187528181529497968796610448968a958795928601948794869461010089019487948694909386936101608d019392909183018282801561015a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161013c575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610194906140c2565b80601f01602080910402602001604051908101604052809291908181526020018280546101c0906140c2565b801561020d5780601f106101e25761010080835404028352916020019161020d565b820191906000526020600020905b8154815290600101906020018083116101f057829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561029e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610280575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906102d8906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054610304906140c2565b80156103515780601f1061032657610100808354040283529160200191610351565b820191906000526020600020905b81548152906001019060200180831161033457829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916103ac906140c2565b80601f01602080910402602001604051908101604052809291908181526020018280546103d8906140c2565b80156104255780601f106103fa57610100808354040283529160200191610425565b820191906000526020600020905b81548152906001019060200180831161040857829003601f168201915b505050919092525050508152600b919091015460ff161515602090910152611c43565b60088501546040805180820182526004880180546001600160401b03168252600589018054845160208281028201810190965281815297995095975093956000959294919380860193919291908301828280156104ce57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116104b0575b50505091909252505060405163089032d560e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263089032d59250610510916000906004016141cc565b600060405180830381865af415801561052d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261055591908101906142ce565b600087815260066020526040812080546001600160401b03191681559192508181818181816105876001830182613f0a565b505060028201805460ff1916815560006105a46003850182613f28565b505050506004820180546001600160401b0319168155600081816105cb6005870182613f0a565b505060028201805460ff1916815560006105e86003850182613f28565b50506000600885018190556009850180546001600160601b03191690556106159250600a85019150613f28565b505050600b01805460ff1916905561062f82828686611fb5565b600a5460009061063f90346143c9565b90508015610651576106513382612056565b50505050505050565b6106626120eb565b61066a611c1e565b3461067582806143dc565b604001351461069757604051631036b5ad60e31b815260040160405180910390fd5b6106a181806143dc565b6106ab90806143fc565b6106b590806143fc565b6106be906144da565b60405163c836244d60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9163c836244d916106f791906000906004016141cc565b602060405180830381865af4158015610714573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073891906144f4565b61075557604051638481de4960e01b815260040160405180910390fd5b60008061076961076484614772565b611c43565b909250905061082f61077b84806143dc565b6040013561078985806143dc565b6107979060208101906143fc565b6107a190806143fc565b6107aa906144da565b60405163089032d560e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9163089032d5916107e391906000906004016141cc565b600060405180830381865af4158015610800573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261082891908101906142ce565b8484611fb5565b505050565b61083c6120eb565b61085161084c602083018361477e565b61217b565b600d546000908152600c6020908152604080832033845290915290205460105460ff16610891576040516321c4e35760e21b815260040160405180910390fd5b806000036108b257604051632ec5b44960e01b815260040160405180910390fd5b73__$33b79814e84bf6cf5e47244090b19ce5f8$__63898414756108d9602085018561479b565b6040518363ffffffff1660e01b81526004016108f6929190614ae7565b602060405180830381865af4158015610913573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093791906144f4565b61095457604051630bd9169f60e01b815260040160405180910390fd5b6000601181610966602086018661477e565b6001600160401b03166001600160401b031681526020019081526020016000209050600061099682853386612187565b905060608115610d6f576109a9836126bf565b805480602002602001604051908101604052809291908181526020016000905b82821015610d685760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015610a6f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a51575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610aa9906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad5906140c2565b8015610b225780601f10610af757610100808354040283529160200191610b22565b820191906000526020600020905b815481529060010190602001808311610b0557829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015610bb357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b95575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610bed906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054610c19906140c2565b8015610c665780601f10610c3b57610100808354040283529160200191610c66565b820191906000526020600020905b815481529060010190602001808311610c4957829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191610cc1906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054610ced906140c2565b8015610d3a5780601f10610d0f57610100808354040283529160200191610d3a565b820191906000526020600020905b815481529060010190602001808311610d1d57829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016109c9565b5050505090505b805160000361117857600080610d836126f1565b915091508015611175576001600160401b0382166000908152601160205260409020610dae816126bf565b805480602002602001604051908101604052809291908181526020016000905b8282101561116d5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015610e7457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e56575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610eae906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054610eda906140c2565b8015610f275780601f10610efc57610100808354040283529160200191610f27565b820191906000526020600020905b815481529060010190602001808311610f0a57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015610fb857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610f9a575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610ff2906140c2565b80601f016020809104026020016040519081016040528092919081815260200182805461101e906140c2565b801561106b5780601f106110405761010080835404028352916020019161106b565b820191906000526020600020905b81548152906001019060200180831161104e57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916110c6906140c2565b80601f01602080910402602001604051908101604052809291908181526020018280546110f2906140c2565b801561113f5780601f106111145761010080835404028352916020019161113f565b820191906000526020600020905b81548152906001019060200180831161112257829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101610dce565b505050509350505b50505b6040805180820182526000808252825181815260208181019094526111a39383019150905282612744565b5050505050565b60105460ff166111cd576040516321c4e35760e21b815260040160405180910390fd5b336112696111db83806143fc565b6111e4906144da565b604051632cff562160e11b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__916359feac429161121a9190600401614afb565b602060405180830381865af4158015611237573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125b9190614b0e565b6001600160a01b031661277c565b6001600160a01b03161461129057604051637f39132760e11b815260040160405180910390fd5b600061129b336127c3565b915060019050815460ff1660058111156112b7576112b7614b2b565b146112d55760405163c18316bf60e01b815260040160405180910390fd5b6112e5604083016020840161477e565b60088201546001600160401b039182169116106113155760405163fae4eadb60e01b815260040160405180910390fd5b60a082013515611a1f5760408051610120810182526006830180546001600160401b031660e083019081526007850180548551602082810282018101909752818152949593948694869361010087019390918301828280156113a057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611382575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156117aa5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d019390918301828280156114b157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611493575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906114eb906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054611517906140c2565b80156115645780601f1061153957610100808354040283529160200191611564565b820191906000526020600020905b81548152906001019060200180831161154757829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156115f557602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116115d7575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061162f906140c2565b80601f016020809104026020016040519081016040528092919081815260200182805461165b906140c2565b80156116a85780601f1061167d576101008083540402835291602001916116a8565b820191906000526020600020905b81548152906001019060200180831161168b57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191611703906140c2565b80601f016020809104026020016040519081016040528092919081815260200182805461172f906140c2565b801561177c5780601f106117515761010080835404028352916020019161177c565b820191906000526020600020905b81548152906001019060200180831161175f57829003601f168201915b505050919092525050508152600b919091015460ff161515602091820152908252600192909201910161140b565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b828210156118e1576000848152602090819020604080516080810182526003860290920180546001600160401b03168383019081526001820180548451818802810188019095528085529495929486949293869360608701939092909183018282801561186d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161184f575b5050505050815250508152602001600282018054806020026020016040519081016040528092919081815260200182805480156118c957602002820191906000526020600020905b8154815260200190600101908083116118b5575b505050505081525050815260200190600101906117d7565b50505050815260200160068201548152602001600782018054611903906140c2565b80601f016020809104026020016040519081016040528092919081815260200182805461192f906140c2565b801561197c5780601f106119515761010080835404028352916020019161197c565b820191906000526020600020905b81548152906001019060200180831161195f57829003601f168201915b5050509190925250506040516339aa47fb60e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__926339aa47fb92506119bb91600401614d61565b602060405180830381865af41580156119d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119fc9190614dfe565b8260a0013514611a1f576040516312232e5d60e11b815260040160405180910390fd5b6000806000611a2c6128fb565b92509250925082611a8a576000805482546001600160401b0319166001600160401b03909116178255600180548391611a69918184019190613f62565b5050506002810180546001600160401b0319166001600160401b0384161790555b60405163445cc97560e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__9063445cc97590611acb9084908990600e90600f908990600401614ec2565b60006040518083038186803b158015611ae357600080fd5b505af4158015611af7573d6000803e3d6000fd5b50505050600080868060600190611b0e919061479b565b9050905060005b81811015611b6e57611b2a606089018961479b565b82818110611b3a57611b3a614fbf565b9050602002810190611b4c91906143fc565b611b5690806143dc565b611b64906040013584614fd5565b9250600101611b15565b506003830154611b82906040890135614fd5565b611b8c9083614fd5565b91508186600301541015611bb357604051631d36ca1560e21b815260040160405180910390fd5b81866003016000828254611bc791906143c9565b9091555087905060068701611bdc8282615972565b50611c109050611bec88806143fc565b611bf5906144da565b611c0260608a018a61479b565b611c0b91615b14565b612744565b610651338860400135612a31565b600a54341015611c41576040516334472ad760e11b815260040160405180910390fd5b565b80516020015151604051630c133d1360e31b8152600091829173__$a0fe38a9a81205afccc10810b09a4d3f45$__90636099e89890611c86908490600401614afb565b602060405180830381865af4158015611ca3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc791906144f4565b15611ce55760405163461e815d60e01b815260040160405180910390fd5b60405163c836244d60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9063c836244d90611d1f9084906000906004016141cc565b602060405180830381865af4158015611d3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d6091906144f4565b15611d7e57604051632f3335ff60e21b815260040160405180910390fd5b835180515160405163f47ad7eb60e01b8152909160009173__$386b5c41ce93e8b832daf8008b3d30ae09$__9163f47ad7eb91611dc091908590600401615b21565b602060405180830381865af4158015611ddd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e019190615b34565b905060006001826001811115611e1957611e19614b2b565b03611f1a57604051631ccc893360e11b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__90633999126690611e579087908790600401615b55565b600060405180830381865af4158015611e74573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e9c91908101906142ce565b60405163c836244d60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9163c836244d91611ed591906000906004016141cc565b602060405180830381865af4158015611ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f1691906144f4565b1590505b8015611f3e57611f2987612a8f565b50509351604001511515946000945092505050565b6000826001811115611f5257611f52614b2b565b03611f9c5760098054600890611f7790600160401b90046001600160401b0316615b7a565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b611fa587612cc1565b5060009660019650945050505050565b8115611fc657611fc6606385612056565b801561205057604051632cff562160e11b81526120509073__$a0fe38a9a81205afccc10810b09a4d3f45$__906359feac4290612007908790600401614afb565b602060405180830381865af4158015612024573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120489190614b0e565b600a54612a31565b50505050565b804710156120775760405163356680b760e01b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146120c4576040519150601f19603f3d011682016040523d82523d6000602084013e6120c9565b606091505b505090508061082f57604051633204506f60e01b815260040160405180910390fd5b604051630972932760e21b815233600482015273__$e800e3908cdbb6b1b5bd452383a17b18f7$__906325ca4c9c90602401602060405180830381865af415801561213a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215e91906144f4565b611c4157604051630a23da2b60e31b815260040160405180910390fd5b61218481612f92565b50565b60008061219385615ba0565b604051630edf122560e41b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__9163edf12250916121c99190600401615c0c565b602060405180830381865af41580156121e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061220a9190614dfe565b90506122288682868661222060208b018b61477e565b600b54613048565b600082815260058801602090815260408083208151808301835281546001600160401b03168152600182018054845181870281018701909552808552969850909591948685019491929184015b828210156126145760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561231b57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116122fd575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190612355906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054612381906140c2565b80156123ce5780601f106123a3576101008083540402835291602001916123ce565b820191906000526020600020905b8154815290600101906020018083116123b157829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561245f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612441575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190612499906140c2565b80601f01602080910402602001604051908101604052809291908181526020018280546124c5906140c2565b80156125125780601f106124e757610100808354040283529160200191612512565b820191906000526020600020905b8154815290600101906020018083116124f557829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161256d906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054612599906140c2565b80156125e65780601f106125bb576101008083540402835291602001916125e6565b820191906000526020600020905b8154815290600101906020018083116125c957829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101612275565b50505091525050604051632d34315760e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__91632d343157916126519190600401615c0c565b602060405180830381865af415801561266e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061269291906144f4565b156126b6576000818152600587016020526040902085906126b38282615c3a565b50505b50949350505050565b60028101546000908152600582016020526040812080546126e8906001600160401b0316613295565b60010192915050565b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27154600160401b90046001600160401b0316600060008051602061610283398151915261273d836133f6565b9150509091565b805160005b81811015612050576127748484838151811061276757612767614fbf565b6020026020010151613443565b600101612749565b600080600061278a84613a22565b915091508161279b57509192915050565b6000806127a783613a5e565b91509150816127ba575093949350505050565b95945050505050565b600080806001600160a01b0384166127ee576040516370e4510960e01b815260040160405180910390fd5b60408051808201825282546001600160401b031681526001830180548351602082810282018101909552818152600094869381860193909183018282801561285f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612841575b50505091909252505060405163aa5106cb60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263aa5106cb92506128a0918990600401615d5f565b600060405180830381865af41580156128bd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526128e591908101906142ce565b90506128f081613ac8565b935093505050915091565b60055460009081908190819061291b9043906001600160401b0316613c5b565b6001600160401b03808216600090815260088401602090815260409182902082518084018452815490941684526001810180548451818502810185019095528085529598509096509293869385830193929091908301828280156129a857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161298a575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e89892506129e791600401614afb565b602060405180830381865af4158015612a04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a2891906144f4565b15935050909192565b80600003612a3d575050565b61082f612a52836001600160a01b031661277c565b6040805160248082018690528251808303909101815260449091019091526020810180516001600160e01b0316632a7edd8f60e21b179052613c86565b600080612a9a6128fb565b600985015486516001600160401b03909116606090910152600a8501546003820180549295509093509150600090612ad3908490614fd5565b90915550506004810180546001808201835560009283526020928390208651805180518051600c90960290930180546001600160401b0319166001600160401b039096169590951785558286015180518a979395879593948694938593612b41938501929190910190613fb2565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190612b779082615d89565b50505050602083810151805180516004860180546001600160401b0319166001600160401b03909216919091178155818401518051939550909391928492612bc6926005890192910190613fb2565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190612bfc9082615d89565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a820190612c599082615d89565b50505060209190910151600b909101805460ff191691151591909117905560098201805460019190600090612c989084906001600160401b0316615e42565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550505050565b8051602001515160405163089032d560e01b8152600091829173__$a0fe38a9a81205afccc10810b09a4d3f45$__9163089032d591612d05919085906004016141cc565b600060405180830381865af4158015612d22573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612d4a91908101906142ce565b9050600080612d5883613ac8565b9150915081612d7a57604051630e991abd60e41b815260040160405180910390fd5b805485516101009091046001600160401b0316606090910181905260019082908290612da7908290615e42565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550846000015160400151816003016000828254612de79190614fd5565b9091555050600e810180546001808201835560009283526020928390208851805180518051600c90960290930180546001600160401b0319166001600160401b039096169590951785558286015180518c979395879593948694938593612e55938501929190910190613fb2565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190612e8b9082615d89565b50505050602083810151805180516004860180546001600160401b0319166001600160401b03909216919091178155818401518051939550909391928492612eda926005890192910190613fb2565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190612f109082615d89565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a820190612f6d9082615d89565b50505060209190910151600b909101805460ff19169115159190911790555050505050565b60008051602061610283398151915280546001600160401b0390811690831611612fcf57604051631f30cc6360e21b815260040160405180910390fd5b80546001600160401b03600160401b909104811690831611156130445780546001600160401b03600160881b820481169161301391600160401b9091041684615e69565b61301d9190615e9f565b6001600160401b0316156130445760405163b4f68f9760e01b815260040160405180910390fd5b5050565b8554600081815260038801602090815260408083206001600160a01b038916845290915281205490916000805160206161028339815191529160ff16156130a2576040516337138f5f60e11b815260040160405180910390fd5b600081815260038a01602090815260408083206001600160a01b038b1684529091528120805460ff191660019081179091558a0180548892906130e6908490614fd5565b9091555050600081815260048a01602090815260408083208b845290915281208054889290613116908490614fd5565b9091555050600081815260048a016020908152604080832060028d01548452909152808220548a8352912054808210156131525760028b018a90555b600061315e8c88613c97565b9050600381600381111561317457613174614b2b565b0361320957613182886133f6565b156131905760019550613286565b60405163199b9ca560e01b81526001860160048201526001600160401b038916602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__9063199b9ca59060440160006040518083038186803b1580156131ec57600080fd5b505af4158015613200573d6000803e3d6000fd5b50505050613286565b600281600381111561321d5761321d614b2b565b0361328657604051635a27a53960e11b8152600481018d905273__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063b44f4a729060240160006040518083038186803b15801561326d57600080fd5b505af4158015613281573d6000803e3d6000fd5b505050505b50505050509695505050505050565b6000805160206161028339815191526132ad826133f6565b6132b5575050565b604051634953836d60e11b81526001820160048201526001600160401b038316602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__906392a706da90604401602060405180830381865af4158015613316573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061333a91906144f4565b156133615760018101546001600160401b03838116600160401b9092041614613361575050565b6040516394ecccfd60e01b81526001820160048201526001600160401b038316602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__906394ecccfd9060440160006040518083038186803b1580156133bd57600080fd5b505af41580156133d1573d6000803e3d6000fd5b505082546001600160401b0319166001600160401b0394909416939093179091555050565b600080516020616102833981519152805460009190613427906001600160401b03600160881b820481169116615e42565b6001600160401b0316836001600160401b031614915050919050565b80516020015151604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__91636099e898916134809190600401614afb565b602060405180830381865af415801561349d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134c191906144f4565b156134df5760405163461e815d60e01b815260040160405180910390fd5b8051608001516001600160e01b031916613519578051604001514710156135195760405163569d45cf60e11b815260040160405180910390fd5b805160405163f47ad7eb60e01b815260009173__$386b5c41ce93e8b832daf8008b3d30ae09$__9163f47ad7eb91613555918590600401615b21565b602060405180830381865af4158015613572573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135969190615b34565b8251602001515160405163c836244d60e01b815291925073__$a0fe38a9a81205afccc10810b09a4d3f45$__9163c836244d916135d8916000906004016141cc565b602060405180830381865af41580156135f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061361991906144f4565b1561388257600181600181111561363257613632614b2b565b0361376757604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__90636099e8989061366e908690600401614afb565b602060405180830381865af415801561368b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136af91906144f4565b613767576000806136bf85613ac8565b91509150816136e157604051630e991abd60e41b815260040160405180910390fd5b8351606001518154600160481b90046001600160401b0390811691161461371b5760405163a57cadff60e01b815260040160405180910390fd5b80546001908290600990613740908490600160481b90046001600160401b0316615e42565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555050505b600081600181111561377b5761377b614b2b565b0361380657815160600151600954600160401b90046001600160401b039081169116146137bb5760405163a57cadff60e01b815260040160405180910390fd5b60098054600191906008906137e1908490600160401b90046001600160401b0316615e42565b92506101000a8154816001600160401b0302191690836001600160401b031602179055505b604051635c46fefb60e11b815273__$33b79814e84bf6cf5e47244090b19ce5f8$__9063b88dfdf69061383d908590600401615ec5565b600060405180830381865af415801561385a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120509190810190615ed8565b600061388d83613dac565b6000818152600660209081526040909120855180518051805184546001600160401b0319166001600160401b03909116178455808501518051969750899694959394869485939284926138e69260018501920190613fb2565b505050602082810151805160028401805460ff191660ff90921691909117815591810151909190600384019061391c9082615d89565b50505050602083810151805180516004860180546001600160401b0319166001600160401b0390921691909117815581840151805193955090939192849261396b926005890192910190613fb2565b505050602082810151805160028401805460ff191660ff9092169190911781559181015190919060038401906139a19082615d89565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a8201906139fe9082615d89565b50505060209190910151600b909101805460ff191691151591909117905550505050565b60008073ffffffffffffffffffffffff0000000000000000831660ff60981b8103613a5857600192506001600160401b03841691505b50915091565b600080826000526016600a602060006002607f60991b015afa9150600051806001600160a01b031691508060a01c61ffff16905061040a8114613aa45760009250600091505b50811580613ab357503d601614155b15613ac357506000928392509050565b915091565b6040516390ba52cf60e01b815260009081908190600490829073__$a0fe38a9a81205afccc10810b09a4d3f45$__906390ba52cf90613b0a9089908601614afb565b602060405180830381865af4158015613b27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b4b9190614dfe565b81526020808201929092526040908101600020815180830183526004820180546001600160401b031682526005830180548551818802810188019096528086529397509194909385820193909291830182828015613bd257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613bb4575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e8989250613c1191600401614afb565b602060405180830381865af4158015613c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c5291906144f4565b15925050915091565b600081613c688185615f45565b613c73906001615e42565b613c7d9190615f6b565b90505b92915050565b6060613c7d83836000613ddc613df5565b6000805160206161028339815191528054600091908290606490613cc590600160801b900460ff1686614ff5565b613ccf9190615f96565b604051637d2ef4e560e11b81526004810187905290915060009073__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063fa5de9ca90602401602060405180830381865af4158015613d25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d499190614dfe565b905081866001015411613d625760009350505050613c80565b81811115613d765760039350505050613c80565b6001860154613d8590866143c9565b613d8f82846143c9565b10613da05760029350505050613c80565b50600195945050505050565b600081604051602001613dbf919061603d565b604051602081830303815290604052805190602001209050919050565b604051630a12f52160e11b815260040160405180910390fd5b606082471015613e1f5760405163cd78605960e01b81523060048201526024015b60405180910390fd5b600080866001600160a01b03168587604051613e3b91906160ef565b60006040518083038185875af1925050503d8060008114613e78576040519150601f19603f3d011682016040523d82523d6000602084013e613e7d565b606091505b5091509150613e8e87838387613e9b565b925050505b949350505050565b60608315613ee9578251600003613ee257846001600160a01b03163b600003613ee257604051639996b31560e01b81526001600160a01b0386166004820152602401613e16565b5081613e93565b613e938383815115613efe5781518083602001fd5b613ddc8163ffffffff16565b50805460008255906000526020600020908101906121849190614007565b508054613f34906140c2565b6000825580601f10613f44575050565b601f0160209004906000526020600020908101906121849190614007565b828054828255906000526020600020908101928215613fa25760005260206000209182015b82811115613fa2578254825591600101919060010190613f87565b50613fae929150614007565b5090565b828054828255906000526020600020908101928215613fa2579160200282015b82811115613fa257825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613fd2565b5b80821115613fae5760008155600101614008565b60006020828403121561402e57600080fd5b5035919050565b60006040828403121561404757600080fd5b50919050565b60006020828403121561405f57600080fd5b81356001600160401b0381111561407557600080fd5b613e9384828501614035565b60006020828403121561409357600080fd5b81356001600160401b038111156140a957600080fd5b820160e081850312156140bb57600080fd5b9392505050565b600181811c908216806140d657607f821691505b60208210810361404757634e487b7160e01b600052602260045260246000fd5b6000604083016001600160401b0383511684526020808401516040828701528281518085526060880191508383019450600092505b808310156141545784516001600160a01b0316825293830193600192909201919083019061412b565b509695505050505050565b6000604083016001600160401b0383541684526001808401602060408188015283825480865260608901915083600052826000209550600093505b808410156141c05785546001600160a01b0316825294840194928401929082019061419a565b50979650505050505050565b6040815260006141df60408301856140f6565b82810360208401526127ba818561415f565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715614229576142296141f1565b60405290565b60405160c081016001600160401b0381118282101715614229576142296141f1565b604051601f8201601f191681016001600160401b0381118282101715614279576142796141f1565b604052919050565b6001600160401b038116811461218457600080fd5b60006001600160401b038211156142af576142af6141f1565b5060051b60200190565b6001600160a01b038116811461218457600080fd5b600060208083850312156142e157600080fd5b82516001600160401b03808211156142f857600080fd5b908401906040828703121561430c57600080fd5b614314614207565b825161431f81614281565b8152828401518281111561433257600080fd5b80840193505086601f84011261434757600080fd5b8251915061435c61435783614296565b614251565b82815260059290921b8301840191848101908884111561437b57600080fd5b938501935b838510156143a2578451614393816142b9565b82529385019390850190614380565b948201949094529695505050505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115613c8057613c806143b3565b6000823560be198336030181126143f257600080fd5b9190910192915050565b60008235603e198336030181126143f257600080fd5b803561441d81614281565b919050565b60006040828403121561443457600080fd5b61443c614207565b9050813561444981614281565b81526020828101356001600160401b0381111561446557600080fd5b8301601f8101851361447657600080fd5b803561448461435782614296565b81815260059190911b820183019083810190878311156144a357600080fd5b928401925b828410156144ca5783356144bb816142b9565b825292840192908401906144a8565b8085870152505050505092915050565b6000613c803683614422565b801515811461218457600080fd5b60006020828403121561450657600080fd5b81516140bb816144e6565b60ff8116811461218457600080fd5b60006001600160401b03821115614539576145396141f1565b50601f01601f191660200190565b600082601f83011261455857600080fd5b813561456661435782614520565b81815284602083860101111561457b57600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156145aa57600080fd5b6145b2614207565b905081356001600160401b03808211156145cb57600080fd5b6145d785838601614422565b835260208401359150808211156145ed57600080fd5b908301906040828603121561460157600080fd5b614609614207565b823561461481614511565b815260208301358281111561462857600080fd5b61463487828601614547565b60208301525080602085015250505092915050565b6001600160e01b03198116811461218457600080fd5b803561441d81614649565b803561441d816144e6565b60006040828403121561468757600080fd5b61468f614207565b905081356001600160401b03808211156146a857600080fd5b9083019060c082860312156146bc57600080fd5b6146c461422f565b8235828111156146d357600080fd5b6146df87828601614598565b8252506020830135828111156146f457600080fd5b61470087828601614598565b6020830152506040830135604082015261471c60608401614412565b606082015261472d6080840161465f565b608082015260a08301358281111561474457600080fd5b61475087828601614547565b60a08301525083525061476790506020830161466a565b602082015292915050565b6000613c803683614675565b60006020828403121561479057600080fd5b81356140bb81614281565b6000808335601e198436030181126147b257600080fd5b8301803591506001600160401b038211156147cc57600080fd5b6020019150600581901b36038213156147e457600080fd5b9250929050565b60008235603e1983360301811261480157600080fd5b90910192915050565b6000808335601e1984360301811261482157600080fd5b83016020810192503590506001600160401b0381111561484057600080fd5b8060051b36038213156147e457600080fd5b600060408301823561486381614281565b6001600160401b03168452602061487c8482018561480a565b6040878401529283905291600090606087015b818310156148bf5784356148a2816142b9565b6001600160a01b031681529383019360019290920191830161488f565b979650505050505050565b6000808335601e198436030181126148e157600080fd5b83016020810192503590506001600160401b0381111561490057600080fd5b8036038213156147e457600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600061494482836147eb565b604084526149556040850182614852565b905061496460208401846147eb565b8482036020860152803561497781614511565b60ff16825261498960208201826148ca565b9150604060208401526149a060408401838361490f565b9695505050505050565b81835260006020808501808196508560051b81019150846000805b88811015614ad9578385038a526149dc83896147eb565b6040813560be198336030181126149f1578485fd5b8188528201614a0081806147eb565b60c080848b0152614a156101008b0183614938565b9150614a238b8401846147eb565b603f196060818d860301818e0152614a3b8584614938565b94506080925086860135838e015280860135965050614a5986614281565b60a06001600160401b038716818e0152828601359650614a7887614649565b6001600160e01b031987168d850152614a93868201876148ca565b9750955050808c85030160e08d0152505050614ab081848461490f565b92505050614abf88830161466a565b1515968801969096525098850198918501916001016149c5565b509298975050505050505050565b602081526000613e936020830184866149aa565b602081526000613c7d60208301846140f6565b600060208284031215614b2057600080fd5b81516140bb816142b9565b634e487b7160e01b600052602160045260246000fd5b60005b83811015614b5c578181015183820152602001614b44565b50506000910152565b60008151808452614b7d816020860160208601614b41565b601f01601f19169290920160200192915050565b6000815160408452614ba660408501826140f6565b90506020830151848203602086015260ff815116825260208101519050604060208301526127ba6040830182614b65565b6000815160c08452614bec60c0850182614b91565b905060208301518482036020860152614c058282614b91565b915050604083015160408501526001600160401b03606084015116606085015263ffffffff60e01b608084015116608085015260a083015184820360a08601526127ba8282614b65565b6000815160408452614c646040850182614bd7565b6020938401511515949093019390935250919050565b600081518084526020808501808196508360051b8101915082860160005b85811015614cc2578284038952614cb0848351614c4f565b98850198935090840190600101614c98565b5091979650505050505050565b600081518084526020808501808196508360051b810191508286016000805b86811015614ad9578385038a52825160408151818852614d10828901826140f6565b92890151888403898b01528051808552908a01938693508a0191505b80831015614d4c5783518252928901926001929092019190890190614d2c565b509b88019b9650505091850191600101614cee565b602081526000825160e06020840152614d7e6101008401826140f6565b90506001600160401b036020850151166040840152604084015160608401526060840151601f1980858403016080860152614db98383614c7a565b925060808601519150808584030160a0860152614dd68383614ccf565b925060a086015160c086015260c08601519150808584030160e0860152506127ba8282614b65565b600060208284031215614e1057600080fd5b5051919050565b81835260006020808501808196506005915085821b8101856000805b89811015614eb3578484038b52614e4a838a6147eb565b6040614e5682836147eb565b818752614e6582880182614852565b915050614e748983018361480a565b8783038b89015280835292506001600160fb1b03831115614e93578485fd5b91881b918281838c0137509b88019b018701935091860191600101614e33565b50919998505050505050505050565b85815260a060208201526000614ed886876147eb565b60e060a0840152614eed610180840182614852565b90506020870135614efd81614281565b6001600160401b031660c0840152604087013560e0840152614f22606088018861480a565b609f198086850301610100870152614f3b8483856149aa565b9350614f4a60808b018b61480a565b935091508086850301610120870152614f64848484614e17565b935060a08a0135610140870152614f7e60c08b018b6148ca565b93509150808685030161016087015250614f9983838361490f565b93505050508460408301528360608301526149a060808301846001600160401b03169052565b634e487b7160e01b600052603260045260246000fd5b80820180821115613c8057613c806143b3565b60008135613c8081614281565b8082028115828204841417613c8057613c806143b3565b5b81811015613044576000815560010161500d565b80546000825580156130445781600052602060002061082f8282018261500c565b600160401b821115615056576150566141f1565b80548282558083101561082f5781600052602060002061205082820185830161500c565b6000815561218460018201615021565b600019600383901b1c191660019190911b1790565b6150a981546140c2565b801561304457601f8111600181146150c357505060009055565b8260005260206000206150e1601f840160051c82016001830161500c565b60008085559055505050565b600081556150fd60018201615021565b600060028201556121846003820161509f565b6000808335601e1984360301811261512757600080fd5b8301803591506001600160401b0382111561514157600080fd5b6020019150368190038213156147e457600080fd5b601f82111561082f57806000526020600020601f840160051c8101602085101561517d5750805b6111a3601f850160051c83018261500c565b6001600160401b038311156151a6576151a66141f1565b6151ba836151b483546140c2565b83615156565b6000601f8411600181146151e857600085156151d65750838201355b6151e0868261508a565b8455506111a3565b600083815260209020601f19861690835b8281101561521957868501358255602094850194600190920191016151f9565b50868210156152365760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b61525282836143fc565b803561525d81614281565b82546001600160401b0319166001600160401b038216178355506001808301602061528a8185018561479b565b94506001600160401b03808611156152a4576152a46141f1565b6152ae8685615042565b600093845282842093805b878110156152db5783356152cc816142b9565b868201559284019286016152b9565b506002880196506152ee848a018a6143fc565b9450843592506152fd83614511565b865460ff191660ff841617909655600387019561531c85850186615110565b9550925081851115615330576153306141f1565b6153448561533e89546140c2565b89615156565b809150601f851160018114615372578186156153605750838301355b61536a878261508a565b8955506153c7565b600088815260209020601f19871690835b828110156153a05786860135825594870194908901908701615383565b50878210156153bd5760001960f88960031b161c19858701351681555b50508686881b0188555b50505050505050505050565b60008135613c8081614649565b60008135613c80816144e6565b813560be1983360301811261540157600080fd5b820161540d81806143fc565b61541781826143fc565b803561542281614281565b84546001600160401b0319166001600160401b038216178555506001808501602061544f8185018561479b565b94506001600160401b0380861115615469576154696141f1565b6154738685615042565b600093845282842093805b878110156154a0578335615491816142b9565b8682015592840192860161547e565b5060028a0196506154b3848901896143fc565b9750873594506154c285614511565b865460ff191660ff86161790965560038901956154e188850189615110565b98509450818811156154f5576154f56141f1565b6155038861533e89546140c2565b809250601f881160018114615533578192508815615522578386013592505b61552c898461508a565b8855615588565b600088815260209020601f198a169350825b848110156155625787860135825594860194908801908601615545565b508984101561557f5760001960f88b60031b161c19858801351681555b508689881b0188555b505050506155a461559b828801886143fc565b60048901615248565b604086013560088801556009870194506155e06155c360608801614fe8565b86546001600160401b0319166001600160401b0391909116178655565b6156196155ef608088016153d3565b86546bffffffff0000000000000000191660a09190911c6bffffffff000000000000000016178655565b61562660a0870187615110565b965094506156388686600a8a0161518f565b61565f615646828a016153e0565b600b890160ff1981541660ff8315151681178255505050565b5050505050505050565b600160401b83111561567d5761567d6141f1565b80548382558084101561571157600c81810281810483146156a0576156a06143b3565b85820282810487146156b4576156b46143b3565b6000858152602081209283019291909101905b8282101561570c576156d8826150ed565b6156e4600483016150ed565b8060088301558060098301556156fc600a830161509f565b80600b83015583820191506156c7565b505050505b5060008181526020812083915b8581101561574f5761573961573384876143fc565b836153ed565b60209290920191600c919091019060010161571e565b505050505050565b80546000808355811561082f57828152602081208281015b808210156111a35782825560018201915061576f565b600160401b821115615799576157996141f1565b80548282558083101561082f576000828152602081208481019083015b8082101561574f578282556001820191506157b6565b6157d682836143fc565b80356157e181614281565b82546001600160401b0319166001600160401b038216178355506001808301602061580e8185018561479b565b94506001600160401b0380861115615828576158286141f1565b6158328685615042565b600093845282842093805b8781101561585f578335615850816142b9565b8682015592840192860161583d565b50600288019650615872848a018a61479b565b9550925081851115615886576158866141f1565b6158908588615785565b95865250818520945b8381101561565f57813586820155908201908401615899565b600160401b8311156158c6576158c66141f1565b80548382558084101561593457600381810281810483146158e9576158e96143b3565b85820282810487146158fd576158fd6143b3565b60008581526020902091820191015b818110156159305761591d8161507a565b61592960028201615757565b820161590c565b5050505b5060008181526020812083915b8581101561574f5761595c61595684876143fc565b836157cc565b6020929092019160039190910190600101615941565b61597c82836143fc565b803561598781614281565b82546001600160401b0319166001600160401b03821617835550600180830160206159b48185018561479b565b94506001600160401b038511156159cd576159cd6141f1565b6159d78584615042565b6000928352818320925b85811015615a035781356159f4816142b9565b848201559082019084016159e1565b5050615a34615a13828801614fe8565b600287016001600160401b0382166001600160401b03198254161781555050565b5050505060408201356003820155615a4f606083018361479b565b615a5d818360048601615669565b5050615a6c608083018361479b565b615a7a8183600586016158b2565b505060a08201356006820155615a9360c0830183615110565b61205081836007860161518f565b6000615aaf61435784614296565b8381529050602080820190600585901b840186811115615ace57600080fd5b845b81811015615b095780356001600160401b03811115615aef5760008081fd5b615afb89828901614675565b855250928201928201615ad0565b505050509392505050565b6000613c7d368484615aa1565b6040815260006141df6040830185614bd7565b600060208284031215615b4657600080fd5b8151600281106140bb57600080fd5b604081526000615b6860408301856140f6565b82810360208401526127ba81856140f6565b60006001600160401b03808316818103615b9657615b966143b3565b6001019392505050565b600060408236031215615bb257600080fd5b615bba614207565b8235615bc581614281565b815260208301356001600160401b03811115615be057600080fd5b830136601f820112615bf157600080fd5b615c0036823560208401615aa1565b60208301525092915050565b602081526001600160401b03825116602082015260006020830151604080840152613e936060840182614c7a565b8135615c4581614281565b81546001600160401b0319166001600160401b0382161782555060018082016020615c728186018661479b565b600160401b811115615c8657615c866141f1565b835481855580821015615d1957600c8181028181048314615ca957615ca96143b3565b8382028281048514615cbd57615cbd6143b3565b60008881528781209283019291909101905b82821015615d1457615ce0826150ed565b615cec600483016150ed565b806008830155806009830155615d04600a830161509f565b80600b8301558382019150615ccf565b505050505b506000938452602084209382905b82811015615d5457615d42615d3c83866143fc565b876153ed565b600c9590950194908401908601615d27565b505050505050505050565b604081526000615d7260408301856140f6565b905060018060a01b03831660208301529392505050565b81516001600160401b03811115615da257615da26141f1565b615db681615db084546140c2565b84615156565b602080601f831160018114615de55760008415615dd35750858301515b615ddd858261508a565b86555061574f565b600085815260208120601f198616915b82811015615e1457888601518255948401946001909101908401615df5565b5085821015615e325787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160401b03818116838216019080821115615e6257615e626143b3565b5092915050565b6001600160401b03828116828216039080821115615e6257615e626143b3565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b0380841680615eb957615eb9615e89565b92169190910692915050565b602081526000613c7d6020830184614c4f565b600060208284031215615eea57600080fd5b81516001600160401b03811115615f0057600080fd5b8201601f81018413615f1157600080fd5b8051615f1f61435782614520565b818152856020838501011115615f3457600080fd5b6127ba826020830160208601614b41565b60006001600160401b0380841680615f5f57615f5f615e89565b92169190910492915050565b6001600160401b03818116838216028082169190828114615f8e57615f8e6143b3565b505092915050565b600082615fa557615fa5615e89565b500490565b8051604080845281516001600160401b031684820152602091820151606085019190915280516080850181905260009291820191839160a08701905b8084101561600f5784516001600160a01b03168252938201936001939093019290820190615fe6565b508186015193508681038288015260ff84511681528184015193506040828201526148bf6040820185614b65565b602081526000825160406020840152805160c06060850152616063610120850182615faa565b90506020820151605f19808684030160808701526160818383615faa565b9250604084015160a08701526001600160401b0360608501511660c087015263ffffffff60e01b60808501511660e087015260a08401519350808684030161010087015250506160d18183614b65565b91505060208401516160e7604085018215159052565b509392505050565b600082516143f2818460208701614b4156fe283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e270a26469706673582212207ed4ef5ae251d58e3538675b2f94b163330eac21fc1fc4991ea468722d0abb7564736f6c63430008130033", - "sourceMap": "1458:13897:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7442:874;;;;;;:::i;:::-;;:::i;:::-;;6038:1264;;;;;;:::i;:::-;;:::i;4141:1750::-;;;;;;;;;;-1:-1:-1;4141:1750:40;;;;;:::i;:::-;;:::i;1945:2052::-;;;;;;;;;;-1:-1:-1;1945:2052:40;;;;;:::i;:::-;;:::i;7442:874::-;4766:9:55;:7;:9::i;:::-;7511:25:40::1;7539:17:::0;;;:9:::1;:17;::::0;;;;;;;7617:29;;;;;;;;;-1:-1:-1;;;;;7617:29:40::1;::::0;;;;;;;;::::1;::::0;;;;;;::::1;::::0;;;;;;;;;7539:17;;7511:25;;;7617:29:::1;::::0;7539:17;;7617:29;;;;::::1;::::0;7539:17;;7617:29;;;;;;7539:17;;7617:29;;;;7539:17;;7617:29;;;;;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;7617:29:40::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;;;7617:29:40;;;;-1:-1:-1;;;7617:29:40;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;;::::0;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;7617:29:40;;;;-1:-1:-1;;;7617:29:40;;-1:-1:-1;7617:29:40;;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;7617:29:40::1;::::0;;::::1;::::0;;;;;;;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;;;::::1;::::0;;;;;;;;;;;;;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;7617:29:40::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;;;7617:29:40;;;;-1:-1:-1;;;7617:29:40;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;;::::0;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;7617:29:40;;;;-1:-1:-1;;;7617:29:40;;-1:-1:-1;7617:29:40;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;7617:29:40;::::1;::::0;;;;-1:-1:-1;;;7617:29:40;::::1;;;-1:-1:-1::0;;;;;;7617:29:40::1;::::0;;;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;7617:29:40;;;;-1:-1:-1;;;7617:29:40;;::::1;::::0;;;::::1;::::0;::::1;;;;;::::0;;::::1;::::0;:19:::1;:29::i;:::-;7924:22;::::0;::::1;::::0;7985:33:::1;::::0;;;;::::1;::::0;;:19:::1;::::0;::::1;:33:::0;;-1:-1:-1;;;;;7985:33:40::1;::::0;;;;;;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;7567:79;;-1:-1:-1;7567:79:40;;-1:-1:-1;7924:22:40;;7912:9:::1;::::0;7985:33;;:19;;:33;;::::1;::::0;;;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;7985:33:40::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;;;7985:33:40;;;;-1:-1:-1;;7985:48:40::1;::::0;-1:-1:-1;;;7985:48:40;;:33:::1;::::0;::::1;::::0;-1:-1:-1;7985:48:40::1;::::0;8019:1:::1;::::0;7985:48:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;7985:48:40::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;8050:1;:17:::0;;;:9:::1;:17;::::0;;;;8043:24;;-1:-1:-1;;;;;;8043:24:40::1;::::0;;7956:77;;-1:-1:-1;8050:17:40;:1;:17;:1;:17;:1;8043:24:::1;::::0;;::::1;8050:1:::0;8043:24:::1;:::i;:::-;-1:-1:-1::0;;8043:24:40::1;::::0;::::1;::::0;;-1:-1:-1;;8043:24:40::1;::::0;;::::1;;::::0;;;;::::1;:::i;:::-;-1:-1:-1::0;;;;8043:24:40::1;::::0;::::1;::::0;;-1:-1:-1;;;;;;8043:24:40::1;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;:::i;:::-;-1:-1:-1::0;;8043:24:40::1;::::0;::::1;::::0;;-1:-1:-1;;8043:24:40::1;::::0;;::::1;;::::0;;;;::::1;:::i;:::-;-1:-1:-1::0;;8043:24:40::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;;8043:24:40;;;::::1;::::0;-1:-1:-1;8043:24:40::1;::::0;::::1;::::0;-1:-1:-1;8043:24:40::1;:::i;:::-;-1:-1:-1::0;;;8043:24:40::1;;::::0;;-1:-1:-1;;8043:24:40::1;::::0;;8078:72:::1;8099:1:::0;8102:10;8114;8126:23;8078:20:::1;:72::i;:::-;8196:13;::::0;8161:20:::1;::::0;8184:25:::1;::::0;:9:::1;:25;:::i;:::-;8161:48:::0;-1:-1:-1;8224:16:40;;8220:90:::1;;8256:43;8264:10;8286:12:::0;8256:29:::1;:43::i;:::-;7501:815;;;;;;7442:874:::0;:::o;6038:1264::-;4620:15:55;:13;:15::i;:::-;4766:9:::1;:7;:9::i;:::-;6603::40::2;6577:16;:8:::0;;:16:::2;:::i;:::-;:22;;;:35;6573:89;;6635:16;;-1:-1:-1::0;;;6635:16:40::2;;;;;;;;;;;6573:89;6843:16;:8:::0;;:16:::2;:::i;:::-;:21;::::0;;::::2;:::i;:::-;:30;::::0;;::::2;:::i;:::-;:37;;;:::i;:::-;:52;::::0;-1:-1:-1;;;6843:52:40;;:37:::2;::::0;::::2;::::0;:52:::2;::::0;:37;6881:1:::2;::::0;6843:52:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6838:120;;6918:29;;-1:-1:-1::0;;;6918:29:40::2;;;;;;;;;;;6838:120;7017:15;::::0;7066:29:::2;;7086:8:::0;7066:29:::2;:::i;:::-;:19;:29::i;:::-;7016:79:::0;;-1:-1:-1;7016:79:40;-1:-1:-1;7106:189:40::2;7140:16;:8:::0;;:16:::2;:::i;:::-;:22;;;7176:16;:8:::0;;:16:::2;:::i;:::-;:19;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;:28;::::0;;::::2;:::i;:::-;:33;;;:::i;:::-;:48;::::0;-1:-1:-1;;;7176:48:40;;:33:::2;::::0;::::2;::::0;:48:::2;::::0;:33;7210:1:::2;::::0;7176:48:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;::::0;;::::2;-1:-1:-1::0;;7176:48:40::2;::::0;::::2;;::::0;::::2;::::0;;;::::2;::::0;::::2;:::i;:::-;7238:10;7262:23;7106:20;:189::i;:::-;6129:1173;;6038:1264:::0;:::o;4141:1750::-;4620:15:55;:13;:15::i;:::-;4304:47:40::1;4334:16;;::::0;::::1;:10:::0;:16:::1;:::i;:::-;4304:29;:47::i;:::-;4403:16;::::0;4362:23:::1;4388:32:::0;;;:14:::1;:32;::::0;;;;;;;4421:10:::1;4388:44:::0;;;;;;;;4448:13:::1;::::0;::::1;;4443:68;;4484:16;;-1:-1:-1::0;;;4484:16:40::1;;;;;;;;;;;4443:68;4524:15;4543:1;4524:20:::0;4520:72:::1;;4567:14;;-1:-1:-1::0;;;4567:14:40::1;;;;;;;;;;;4520:72;4606:14;:23;4630:22;;::::0;::::1;:10:::0;:22:::1;:::i;:::-;4606:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4601:105;;4676:19;;-1:-1:-1::0;;;4676:19:40::1;;;;;;;;;;;4601:105;4716:49;4768:22;4716:49:::0;4791:16:::1;;::::0;::::1;:10:::0;:16:::1;:::i;:::-;-1:-1:-1::0;;;;;4768:40:40::1;-1:-1:-1::0;;;;;4768:40:40::1;;;;;;;;;;;;4716:92;;4846:22;4871:75;4890:14;4906:10;4918;4930:15;4871:18;:75::i;:::-;4846:100;;5014:29;5058:17;5054:110;;;5105:48;5138:14;5105:32;:48::i;:::-;5091:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;;::::1;::::0;;;;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;;;5091:62:40::1;::::0;;;;;;;;::::1;::::0;;;;;;::::1;::::0;;;;;;;;;;;;;;;;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;5091:62:40::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;;;5091:62:40;;;;-1:-1:-1;;;5091:62:40;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;;::::0;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;5091:62:40;;;;-1:-1:-1;;;5091:62:40;;-1:-1:-1;5091:62:40;;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;5091:62:40::1;::::0;;::::1;::::0;;;;;;;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;;;::::1;::::0;;;;;;;;;;;;;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;5091:62:40::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;;;5091:62:40;;;;-1:-1:-1;;;5091:62:40;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;;::::0;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;5091:62:40;;;;-1:-1:-1;;;5091:62:40;;-1:-1:-1;5091:62:40;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;5091:62:40;::::1;::::0;;;;-1:-1:-1;;;5091:62:40;::::1;;;-1:-1:-1::0;;;;;;5091:62:40::1;::::0;;;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;5091:62:40;;;;-1:-1:-1;;;5091:62:40;;::::1;::::0;;;::::1;::::0;::::1;;;;;::::0;;::::1;::::0;;;;;;;;::::1;::::0;::::1;;;;;;;;;;5054:110;5325:11;:18;5347:1;5325:23:::0;5321:397:::1;;5365:26;5393:22:::0;5419:34:::1;:32;:34::i;:::-;5364:89;;;;5472:17;5468:240;;;-1:-1:-1::0;;;;;5565:43:40;::::1;5509:53;5565:43:::0;;;:22:::1;:43;::::0;;;;5641:52:::1;5565:43:::0;5641:32:::1;:52::i;:::-;5627:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;;::::1;::::0;;;;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;;;5627:66:40::1;::::0;;;;;;;;::::1;::::0;;;;;;::::1;::::0;;;;;;;;;;;;;;;;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;5627:66:40::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;;;5627:66:40;;;;-1:-1:-1;;;5627:66:40;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;;::::0;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;5627:66:40;;;;-1:-1:-1;;;5627:66:40;;-1:-1:-1;5627:66:40;;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;5627:66:40::1;::::0;;::::1;::::0;;;;;;;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;;;::::1;::::0;;;;;;;;;;;;;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;5627:66:40::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;;;5627:66:40;;;;-1:-1:-1;;;5627:66:40;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;;::::0;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;5627:66:40;;;;-1:-1:-1;;;5627:66:40;;-1:-1:-1;5627:66:40;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;5627:66:40;::::1;::::0;;;;-1:-1:-1;;;5627:66:40;::::1;;;-1:-1:-1::0;;;;;;5627:66:40::1;::::0;;;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;5627:66:40;;;;-1:-1:-1;;;5627:66:40;;::::1;::::0;;;::::1;::::0;::::1;;;;;::::0;;::::1;::::0;;;;;;;;::::1;::::0;::::1;;;;;;;;;;5491:217;5468:240;5350:368;;5321:397;5841:29;::::0;;;;::::1;::::0;;-1:-1:-1;5841:29:40;;;5853:16;;;;;5841:29:::1;5853:16:::0;;::::1;::::0;;;5826:58:::1;::::0;5841:29;::::1;::::0;-1:-1:-1;5841:29:40;;5872:11;5826:14:::1;:58::i;:::-;4235:1656;;;;4141:1750:::0;:::o;1945:2052::-;2031:13;;;;2026:68;;2067:16;;-1:-1:-1;;;2067:16:40;;;;;;;;;;;2026:68;2147:10;2107:36;:13;:6;;:13;:::i;:::-;:22;;;:::i;:::-;:24;;-1:-1:-1;;;2107:24:40;;:22;;;;:24;;:22;:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2107:34:40;;:36::i;:::-;-1:-1:-1;;;;;2107:50:40;;2103:113;;2180:25;;-1:-1:-1;;;2180:25:40;;;;;;;;;;;2103:113;2280:21;2305:32;2326:10;2305:20;:32::i;:::-;2277:60;-1:-1:-1;2368:13:40;;-1:-1:-1;2351:13:40;;;;:30;;;;;;;;:::i;:::-;;2347:85;;2404:17;;-1:-1:-1;;;2404:17:40;;;;;;;;;;;2347:85;2476:12;;;;;;;;:::i;:::-;2445:27;;;;-1:-1:-1;;;;;2445:43:40;;;:27;;:43;2441:105;;2511:24;;-1:-1:-1;;;2511:24:40;;;;;;;;;;;2441:105;2559:15;;;;:29;2555:182;;2627:28;;;;;;;;:21;;;:28;;-1:-1:-1;;;;;2627:28:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:21;;:28;;:21;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2627:28:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2627:28:40;-1:-1:-1;;;;;2627:28:40;-1:-1:-1;;;;;2627:28:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2627:28:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2627:28:40;;;;;;;;;;;;;;;;-1:-1:-1;;;2627:28:40;;;;-1:-1:-1;;;2627:28:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2627:28:40;;;;-1:-1:-1;;;2627:28:40;;-1:-1:-1;2627:28:40;;;;;;;;;;;;;;;-1:-1:-1;;;;;2627:28:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2627:28:40;;;;;;;;;;;;;;;;-1:-1:-1;;;2627:28:40;;;;-1:-1:-1;;;2627:28:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2627:28:40;;;;-1:-1:-1;;;2627:28:40;;-1:-1:-1;2627:28:40;;;;;;;;;;;;;;-1:-1:-1;;;;;2627:28:40;;;;;;-1:-1:-1;;;2627:28:40;;;;-1:-1:-1;;;;;;2627:28:40;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2627:28:40;;;;-1:-1:-1;;;2627:28:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2627:28:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2627:28:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2627:28:40;;;;-1:-1:-1;;2627:30:40;;-1:-1:-1;;;2627:30:40;;:28;;;;-1:-1:-1;2627:30:40;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2608:6;:15;;;:49;2604:123;;2684:28;;-1:-1:-1;;;2684:28:40;;;;;;;;;;;2604:123;2815:21;2838;2861:37;2902:54;:52;:54::i;:::-;2814:142;;;;;;3033:16;3028:128;;3085:1;3065:33;;;;-1:-1:-1;;;;;;3065:33:40;-1:-1:-1;;;;;3065:33:40;;;;;;;;;:10;;:33;;;;;;;;:::i;:::-;-1:-1:-1;;;3112:16:40;;;:33;;-1:-1:-1;;;;;;3112:33:40;-1:-1:-1;;;;;3112:33:40;;;;;3028:128;3166:70;;-1:-1:-1;;;3166:70:40;;:24;;;;:70;;:10;;3191:6;;3199:10;;3211:8;;3221:14;;3166:70;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3247:18;3279:22;3304:6;:16;;;;;;;;:::i;:::-;:23;;3279:48;;3342:9;3337:173;3361:14;3357:1;:18;3337:173;;;3407:16;;;;:6;:16;:::i;:::-;3424:1;3407:19;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:27;;;;:::i;:::-;3393:47;;3407:33;;;3393:47;;:::i;:::-;;-1:-1:-1;3482:3:40;;3337:173;;;-1:-1:-1;3547:14:40;;;;3534:27;;:10;;;;:27;:::i;:::-;3520:41;;;;:::i;:::-;;;3716:10;3696:6;:17;;;:30;3692:95;;;3749:27;;-1:-1:-1;;;3749:27:40;;;;;;;;;;;3692:95;3818:10;3797:6;:17;;;:31;;;;;;;:::i;:::-;;;;-1:-1:-1;3863:6:40;;-1:-1:-1;3839:21:40;;;:30;3863:6;3839:21;:30;:::i;:::-;-1:-1:-1;3880:47:40;;-1:-1:-1;3895:13:40;:6;;:13;:::i;:::-;3880:47;;;:::i;:::-;3910:16;;;;:6;:16;:::i;:::-;3880:47;;;:::i;:::-;:14;:47::i;:::-;3938:52;3967:10;3979:6;:10;;;3938:28;:52::i;4311:125:55:-;4369:13;;4357:9;:25;4353:77;;;4405:14;;-1:-1:-1;;;4405:14:55;;;;;;;;;;;4353:77;4311:125::o;10384:1306:40:-;10553:20;;:23;;;:32;10599:12;;-1:-1:-1;;;10599:12:40;;10475:15;;;;10599:10;;;;:12;;10553:32;;10599:12;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10595:84;;;10634:34;;-1:-1:-1;;;10634:34:40;;;;;;;;;;;10595:84;10799:24;;-1:-1:-1;;;10799:24:40;;:9;;;;:24;;:2;;10809:1;;10799:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10795:90;;;10846:28;;-1:-1:-1;;;10846:28:40;;;;;;;;;;;10795:90;10918:20;;:25;;:34;10985:45;;-1:-1:-1;;;10985:45:40;;10918:34;;10895:20;;10985:30;;;;:45;;10918:20;10895;;10985:45;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10962:68;-1:-1:-1;11098:25:40;11151:19;11138:9;:32;;;;;;;;:::i;:::-;;11134:130;;11210:21;;-1:-1:-1;;;11210:21:40;;:15;;;;:21;;:2;;11226:4;;11210:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11210:21:40;;;;;;;;;;;;:::i;:::-;:43;;-1:-1:-1;;;11210:43:40;;:28;;;;:43;;:28;11239:1;;11210:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11209:44;11186:67;;11134:130;11278:20;11274:193;;;11314:42;11343:12;11314:28;:42::i;:::-;-1:-1:-1;;11392:20:40;;:26;;;:30;;;11421:1;;-1:-1:-1;10384:1306:40;-1:-1:-1;;;10384:1306:40:o;11274:193::-;11494:18;11481:9;:31;;;;;;;;:::i;:::-;;11477:85;;11530:21;11528:23;;11530:21;;11528:23;;-1:-1:-1;;;11528:23:40;;-1:-1:-1;;;;;11528:23:40;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;11528:23:40;;;;;-1:-1:-1;;;;;11528:23:40;;;;;;11477:85;11572:41;11600:12;11572:27;:41::i;:::-;-1:-1:-1;11645:5:40;;11678:4;;-1:-1:-1;10384:1306:40;-1:-1:-1;;;;;10384:1306:40:o;12149:389::-;12326:10;12322:80;;;12352:39;109:2:31;12389:1:40;12352:36;:39::i;:::-;12416:23;12412:120;;;12484:21;;-1:-1:-1;;;12484:21:40;;12455:66;;12484:19;;;;:21;;:10;;:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12507:13;;12455:28;:66::i;:::-;12149:389;;;;:::o;13246:258:0:-;13354:7;13330:21;:31;13326:63;;;13370:19;;-1:-1:-1;;;13370:19:0;;;;;;;;;;;13326:63;13401:12;13419:10;-1:-1:-1;;;;;13419:15:0;13442:7;13419:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13400:54;;;13469:7;13464:33;;13485:12;;-1:-1:-1;;;13485:12:0;;;;;;;;;;;4170:135:55;4223:22;;-1:-1:-1;;;4223:22:55;;:10;:22;;;54094:51:83;4223:20:55;;;;54067:18:83;;4223:22:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4218:81;;4268:20;;-1:-1:-1;;;4268:20:55;;;;;;;;;;;1779:96:58;1846:22;1862:5;1846:15;:22::i;:::-;1779:96;:::o;9287:748:40:-;9512:22;;9571:17;:10;:17;:::i;:::-;:19;;-1:-1:-1;;;9571:19:40;;:17;;;;:19;;:17;:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9546:44;-1:-1:-1;9621:207:40;9655:14;9546:44;9716:16;9746:15;9775:16;;;;:10;:16;:::i;:::-;9805:13;;9621:20;:207::i;:::-;9895:42;;;;:26;;;:42;;;;;;;;:50;;;;;;;;;-1:-1:-1;;;;;9895:50:40;;;;;;;;;;;;;;;;;;;;;;;9601:227;;-1:-1:-1;9895:50:40;;:42;;:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9895:50:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9895:50:40;;;;;;;;;;;;;;;;-1:-1:-1;;;9895:50:40;;;;-1:-1:-1;;;9895:50:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9895:50:40;;;;-1:-1:-1;;;9895:50:40;;-1:-1:-1;9895:50:40;;;;;;;;;;;;;;;-1:-1:-1;;;;;9895:50:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9895:50:40;;;;;;;;;;;;;;;;-1:-1:-1;;;9895:50:40;;;;-1:-1:-1;;;9895:50:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9895:50:40;;;;-1:-1:-1;;;9895:50:40;;-1:-1:-1;9895:50:40;;;;;;;;;;;;;;-1:-1:-1;;;;;9895:50:40;;;;;;-1:-1:-1;;;9895:50:40;;;;-1:-1:-1;;;;;;9895:50:40;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9895:50:40;;;;-1:-1:-1;;;9895:50:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9895:50:40;;-1:-1:-1;;9895:52:40;;-1:-1:-1;;;9895:52:40;;:50;;;;:52;;:50;:52;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9891:138;;;9963:42;;;;:26;;;:42;;;;;10008:10;;9963:55;10008:10;9963:42;:55;:::i;:::-;-1:-1:-1;;9891:138:40;9536:499;9287:748;;;;;;:::o;8531:418::-;8774:39;;;;8656:18;8734:89;;;:26;;;:89;;;;;8867:25;;8834:59;;-1:-1:-1;;;;;8867:25:40;8834:32;:59::i;:::-;8911:31;;;8531:418;-1:-1:-1;;8531:418:40:o;7090:254:58:-;7257:17;:23;-1:-1:-1;;;7257:23:58;;-1:-1:-1;;;;;7257:23:58;7147:16;-1:-1:-1;;;;;;;;;;;7305:32:58;7257:23;7305:21;:32::i;:::-;7290:47;;7184:160;7090:254;;:::o;15035:318:40:-;15160:16;;15134:23;15186:161;15210:15;15206:1;:19;15186:161;;;15243:34;15253:9;15264;15274:1;15264:12;;;;;;;;:::i;:::-;;;;;;;15243:9;:34::i;:::-;15319:3;;15186:161;;2356:528:0;2410:7;2506:9;2517;2530:15;2542:2;2530:11;:15::i;:::-;2505:40;;;;2560:4;2555:45;;-1:-1:-1;2587:2:0;;2356:528;-1:-1:-1;;2356:528:0:o;2555:45::-;2733:12;2747:11;2762:17;2776:2;2762:13;:17::i;:::-;2732:47;;;;2794:7;2789:89;;-1:-1:-1;2824:2:0;;2356:528;-1:-1:-1;;;;2356:528:0:o;2789:89::-;2864:3;2356:528;-1:-1:-1;;;;;2356:528:0:o;5250:372:54:-;5307:10;;;-1:-1:-1;;;;;5433:19:54;;5429:78;;5475:21;;-1:-1:-1;;;5475:21:54;;;;;;;;;;;5429:78;5543:28;;;;;;;;;;-1:-1:-1;;;;;5543:28:54;;;;;;;;;;;;;;;;;;;;;;;;5516:24;;5543:1;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5543:28:54;;;;;;;;;;;;;;;;-1:-1:-1;;;5543:28:54;;;;-1:-1:-1;;5543:35:54;;-1:-1:-1;;;5543:35:54;;:28;;;;-1:-1:-1;5543:35:54;;5572:5;;5543:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5543:35:54;;;;;;;;;;;;:::i;:::-;5516:62;;5596:19;5606:8;5596:9;:19::i;:::-;5589:26;;;;;;5250:372;;;:::o;2733:416::-;3022:21;;2820:11;;;;;;;;2985:59;;3008:12;;-1:-1:-1;;;;;3022:21:54;2985:22;:59::i;:::-;-1:-1:-1;;;;;3067:28:54;;;;;;;:21;;;:28;;;;;;;;;3115:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2977:67;;-1:-1:-1;3067:28:54;;-1:-1:-1;3115:25:54;;3067:28;;3115:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3115:25:54;;;;;;;;;;;;;;;;-1:-1:-1;;;3115:25:54;;;;-1:-1:-1;;3115:27:54;;-1:-1:-1;;;3115:27:54;;:25;;;;-1:-1:-1;3115:27:54;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3114:28;3105:37;;2890:259;2733:416;;;:::o;4748:287::-;4826:6;4836:1;4826:11;4822:48;;4748:287;;:::o;4822:48::-;4930:98;4951:14;:2;-1:-1:-1;;;;;4951:12:54;;:14::i;:::-;4967:60;;;;;;;58025:25:83;;;4967:60:54;;;;;;;;;;57998:18:83;;;;4967:60:54;;;;;;;;-1:-1:-1;;;;;4967:60:54;-1:-1:-1;;;4967:60:54;;;4930:20;:98::i;4143:412::-;4219:29;4301:37;4342:30;:28;:30::i;:::-;4412:15;;;;4383:20;;-1:-1:-1;;;;;4412:15:54;;;4383:26;;;;:44;4456:13;;;;4438:14;;;:31;;4296:76;;-1:-1:-1;4456:13:54;;-1:-1:-1;4438:14:54;-1:-1:-1;4412:15:54;;4438:31;;4456:13;;4438:31;:::i;:::-;;;;-1:-1:-1;;4479:20:54;;;:39;;;;;;;;-1:-1:-1;4479:39:54;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4479:39:54;-1:-1:-1;;;;;4479:39:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;4479:39:54;;;;;;;;;;;;-1:-1:-1;;4479:39:54;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;4479:39:54;;;;;;;;;;;;;;-1:-1:-1;;;;;;4479:39:54;-1:-1:-1;;;;;4479:39:54;;;;;;;;;;;;;;;;;-1:-1:-1;4479:39:54;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;4479:39:54;;;;;;;;;;;;-1:-1:-1;;4479:39:54;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;4479:39:54;;;;;;;;-1:-1:-1;4479:39:54;;;;;;;;;;;;;;;-1:-1:-1;;;4479:39:54;-1:-1:-1;;;;;;4479:39:54;;;-1:-1:-1;;;;;4479:39:54;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;4479:39:54;;;;;;;;;;;;-1:-1:-1;;4479:39:54;;;;;;;;;;4528:15;;;:20;;-1:-1:-1;;4528:15:54;-1:-1:-1;;4528:20:54;;-1:-1:-1;;;;;;;4528:20:54;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;4528:20:54;;;;;-1:-1:-1;;;;;4528:20:54;;;;;;4209:346;;4143:412;:::o;3353:588::-;3532:20;;:23;;;:32;:52;;-1:-1:-1;;;3532:52:54;;3428:29;;;;3532:37;;;;:52;;:32;3428:29;;3532:52;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3532:52:54;;;;;;;;;;;;:::i;:::-;3505:79;;3596:15;3613:21;3638:19;3648:8;3638:9;:19::i;:::-;3595:62;;;;3673:10;3668:70;;3706:21;;-1:-1:-1;;;3706:21:54;;;;;;;;;;;3668:70;3777:19;;3748:20;;3777:19;;;;-1:-1:-1;;;;;3777:19:54;3748:26;;;;:48;;;3777:19;;;;;;3806:24;;3777:19;;3806:24;:::i;:::-;;;;;;;;-1:-1:-1;;;;;3806:24:54;;;;;-1:-1:-1;;;;;3806:24:54;;;;;;3861:12;:20;;;:26;;;3840:6;:17;;;:47;;;;;;;:::i;:::-;;;;-1:-1:-1;;3897:18:54;;;:37;;;;;;;;-1:-1:-1;3897:37:54;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3897:37:54;-1:-1:-1;;;;;3897:37:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;3897:37:54;;;;;;;;;;;;-1:-1:-1;;3897:37:54;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;3897:37:54;;;;;;;;;;;;;;-1:-1:-1;;;;;;3897:37:54;-1:-1:-1;;;;;3897:37:54;;;;;;;;;;;;;;;;;-1:-1:-1;3897:37:54;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;3897:37:54;;;;;;;;;;;;-1:-1:-1;;3897:37:54;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;3897:37:54;;;;;;;;-1:-1:-1;3897:37:54;;;;;;;;;;;;;;;-1:-1:-1;;;3897:37:54;-1:-1:-1;;;;;;3897:37:54;;;-1:-1:-1;;;;;3897:37:54;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;3897:37:54;;;;;;;;;;;;-1:-1:-1;;3897:37:54;;;;;;;;;;-1:-1:-1;;;;;3353:588:54:o;1881:387:58:-;-1:-1:-1;;;;;;;;;;;2007:25:58;;-1:-1:-1;;;;;2007:25:58;;;1998:34;;;;1994:94;;2055:22;;-1:-1:-1;;;2055:22:58;;;;;;;;;;;1994:94;2109:14;;-1:-1:-1;;;;;;;;2109:14:58;;;;;2101:22;;;;2097:165;;;2170:18;;-1:-1:-1;;;;;;;;2170:18:58;;;;;2144:22;;-1:-1:-1;;;2152:14:58;;;;2144:5;:22;:::i;:::-;2143:45;;;;:::i;:::-;-1:-1:-1;;;;;2143:50:58;;2139:113;;2220:17;;-1:-1:-1;;;2220:17:58;;;;;;;;;;;2139:113;1933:335;1881:387;:::o;7834:1528::-;8171:10;;8070:22;8195;;;:15;;;:22;;;;;;;;-1:-1:-1;;;;;8195:40:58;;;;;;;;;;8070:22;;-1:-1:-1;;;;;;;;;;;1438:42:58;8195:40;;8191:101;;;8258:23;;-1:-1:-1;;;8258:23:58;;;;;;;;;;;8191:101;8302:22;;;;:15;;;:22;;;;;;;;-1:-1:-1;;;;;8302:40:58;;;;;;;;;:47;;-1:-1:-1;;8302:47:58;8345:4;8302:47;;;;;;8359:26;;:45;;8389:15;;8302:22;8359:45;;8389:15;;8359:45;:::i;:::-;;;;-1:-1:-1;;8414:29:58;;;;:22;;;:29;;;;;;;;:45;;;;;;;;:64;;8463:15;;8414:29;:64;;8463:15;;8414:64;:::i;:::-;;;;-1:-1:-1;;8489:23:58;8515:29;;;:22;;;:29;;;;;;;;8545:24;;;;8515:55;;;;;;;;;8606:45;;;;;;8666:33;;;8662:105;;;8715:24;;;:41;;;8662:105;8777:26;8806:40;8828:4;8834:11;8806:21;:40::i;:::-;8777:69;-1:-1:-1;8871:36:58;8861:6;:46;;;;;;;;:::i;:::-;;8857:499;;8927:28;8949:5;8927:21;:28::i;:::-;8923:264;;;8995:4;8975:24;;8857:499;;8923:264;9143:29;;-1:-1:-1;;;9143:29:58;;:17;;;:29;;;60342:25:83;-1:-1:-1;;;;;60403:31:83;;60383:18;;;60376:59;9143:22:58;;;;60315:18:83;;9143:29:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8857:499;;;9217:30;9207:6;:40;;;;;;;;:::i;:::-;;9203:153;;9333:12;;-1:-1:-1;;;9333:12:58;;;;;58025:25:83;;;9333:10:58;;;;57998:18:83;;9333:12:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9203:153;8094:1268;;;;;7834:1528;;;;;;;;:::o;5877:619::-;-1:-1:-1;;;;;;;;;;;6045:28:58;6067:5;6045:21;:28::i;:::-;6040:66;;6089:7;5877:619;:::o;6040:66::-;6180:33;;-1:-1:-1;;;6180:33:58;;:17;;;:33;;;60342:25:83;-1:-1:-1;;;;;60403:31:83;;60383:18;;;60376:59;6180:26:58;;;;60315:18:83;;6180:33:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6176:140;;;6233:17;;;:23;-1:-1:-1;;;;;6233:32:58;;;-1:-1:-1;;;6233:23:58;;;;:32;6229:77;;6285:7;5877:619;:::o;6229:77::-;6372:31;;-1:-1:-1;;;6372:31:58;;:17;;;:31;;;60342:25:83;-1:-1:-1;;;;;60403:31:83;;60383:18;;;60376:59;6372:24:58;;;;60315:18:83;;6372:31:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6456:33:58;;-1:-1:-1;;;;;;6456:33:58;-1:-1:-1;;;;;6456:33:58;;;;;;;;;;;-1:-1:-1;;5877:619:58:o;6696:204::-;-1:-1:-1;;;;;;;;;;;6875:18:58;;6764:4;;1438:42;6847:46;;-1:-1:-1;;;;;;;;6875:18:58;;;;;6847:25;:46;:::i;:::-;-1:-1:-1;;;;;6838:55:58;:5;-1:-1:-1;;;;;6838:55:58;;6831:62;;;6696:204;;;:::o;12814:1880:40:-;12909:16;;:19;;;:28;:38;;-1:-1:-1;;;12909:38:40;;:36;;;;:38;;:28;:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12905:110;;;12970:34;;-1:-1:-1;;;12970:34:40;;;;;;;;;;;12905:110;13028:16;;:23;;;-1:-1:-1;;;;;;13028:38:40;13024:178;;13086:16;;:22;;;13111:21;-1:-1:-1;13082:110:40;;;13159:18;;-1:-1:-1;;;13159:18:40;;;;;;;;;;;13082:110;13235:16;;:41;;-1:-1:-1;;;13235:41:40;;13212:20;;13235:26;;;;:41;;13212:20;;13235:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13359:16;;:19;;;:28;:50;;-1:-1:-1;;;13359:50:40;;13212:64;;-1:-1:-1;13359:35:40;;;;:50;;:16;;:50;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13355:1147;;;13612:19;13599:9;:32;;;;;;;;:::i;:::-;;13595:539;;13656:19;;-1:-1:-1;;;13656:19:40;;:17;;;;:19;;:9;;:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13651:469;;13700:15;13717:21;13742:31;13763:9;13742:20;:31::i;:::-;13699:74;;;;13800:10;13795:94;;13845:21;;-1:-1:-1;;;13845:21:40;;;;;;;;;;;13795:94;13945:16;;:22;;;13914:27;;-1:-1:-1;;;13914:27:40;;-1:-1:-1;;;;;13914:27:40;;;:53;;;13910:137;;14002:22;;-1:-1:-1;;;14002:22:40;;;;;;;;;;;13910:137;14069:32;;14100:1;;14069:32;;:27;;:32;;14100:1;;-1:-1:-1;;;14069:32:40;;-1:-1:-1;;;;;14069:32:40;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;14069:32:40;;;;;-1:-1:-1;;;;;14069:32:40;;;;;;13677:443;;13651:469;14165:18;14152:9;:31;;;;;;;;:::i;:::-;;14148:236;;14232:16;;:22;;;14207:21;;-1:-1:-1;;;14207:21:40;;-1:-1:-1;;;;;14207:21:40;;;:47;;;14203:123;;14285:22;;-1:-1:-1;;;14285:22:40;;;;;;;;;;;14203:123;14343:21;:26;;14368:1;;14343:21;;;:26;;14368:1;;-1:-1:-1;;;14343:26:40;;-1:-1:-1;;;;;14343:26:40;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;14343:26:40;;;;;-1:-1:-1;;;;;14343:26:40;;;;;;14148:236;14453:18;;-1:-1:-1;;;14453:18:40;;:16;;;;:18;;:8;;:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14453:18:40;;;;;;;;;;;;:::i;13355:1147::-;14620:11;14634:17;:8;:15;:17::i;:::-;14662:1;:14;;;:9;:14;;;;;;;;:25;;;;;;;;;;-1:-1:-1;;;;;;14662:25:40;-1:-1:-1;;;;;14662:25:40;;;;;;;;;;;;:14;;-1:-1:-1;14662:25:40;;:14;;:25;;:14;;;;:25;:14;;:25;;-1:-1:-1;14662:25:40;;;;;;:::i;:::-;-1:-1:-1;;;14662:25:40;;;;;;;;;;;;-1:-1:-1;;14662:25:40;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;14662:25:40;;;;;;;;;;;;;;-1:-1:-1;;;;;;14662:25:40;-1:-1:-1;;;;;14662:25:40;;;;;;;;;;;;;;;;;-1:-1:-1;14662:25:40;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;14662:25:40;;;;;;;;;;;;-1:-1:-1;;14662:25:40;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;14662:25:40;;;;;;;;-1:-1:-1;14662:25:40;;;;;;;;;;;;;;;-1:-1:-1;;;14662:25:40;-1:-1:-1;;;;;;14662:25:40;;;-1:-1:-1;;;;;14662:25:40;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;14662:25:40;;;;;;;;;;;;-1:-1:-1;;14662:25:40;;;;;;;;;;-1:-1:-1;;;;12814:1880:40:o;4411:476:0:-;4467:9;4478;4636:8;4632:2;4628:17;-1:-1:-1;;;4763:6:0;4760:27;4757:114;;4814:4;4806:12;;-1:-1:-1;;;;;4845:2:0;4841:16;4835:22;;4757:114;;4411:476;;;:::o;7171:2211::-;7229:12;7243:11;8058:3;8055:1;8048:14;8141:2;8137;8133;8130:1;-1:-1:-1;;;;;8097:5:0;8086:58;8075:69;;8405:1;8399:8;8445:6;-1:-1:-1;;;;;8427:25:0;8420:32;;8828:6;8823:3;8819:16;8811:6;8807:29;8793:43;;8870:6;8862;8859:18;8849:103;;8908:5;8897:16;;8937:1;8930:8;;8849:103;;9290:7;9289:8;:34;;;-1:-1:-1;13641:16:0;9321:2;9301:22;;9289:34;9285:91;;;-1:-1:-1;9347:5:0;;;;-1:-1:-1;7171:2211:0;-1:-1:-1;7171:2211:0:o;9285:91::-;7171:2211;;;:::o;5818:272:54:-;6027:17;;-1:-1:-1;;;6027:17:54;;5886:10;;;;;;6017:9;;5886:10;;6027:15;;;;:17;;:8;;:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6017:28;;;;;;;;;;;;;;-1:-1:-1;6017:28:54;6064:17;;;;;;;:9;;;:17;;-1:-1:-1;;;;;6064:17:54;;;;;;;;;;;;;;;;;;;;;;;6017:28;;-1:-1:-1;6064:17:54;;:9;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6064:17:54;;;;;;;;;;;;;;;;-1:-1:-1;;;6064:17:54;;;;-1:-1:-1;;6064:19:54;;-1:-1:-1;;;6064:19:54;;:17;;;;-1:-1:-1;6064:19:54;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6063:20;6055:28;;5921:169;5818:272;;;:::o;3077:173:58:-;3163:6;3232:11;3190:33;3232:11;3197;3190:33;:::i;:::-;3189:39;;3227:1;3189:39;:::i;:::-;3188:55;;;;:::i;:::-;3181:62;;3077:173;;;;;:::o;2565:166:19:-;2640:12;2671:53;2693:6;2701:4;2707:1;2710:13;2671:21;:53::i;3873:1880:58:-;-1:-1:-1;;;;;;;;;;;4121:20:58;;4004:19;;1438:42;4004:19;;4145:3;;4107:34;;-1:-1:-1;;;4121:20:58;;;;4107:11;:34;:::i;:::-;4106:42;;;;:::i;:::-;4184:25;;-1:-1:-1;;;4184:25:58;;;;;58025::83;;;4086:62:58;;-1:-1:-1;4158:23:58;;4184;;;;57998:18:83;;4184:25:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4158:51;;4347:9;4317:4;:26;;;:39;4313:116;;4379:39;4372:46;;;;;;;4313:116;4490:9;4472:15;:27;4468:101;;;4522:36;4515:43;;;;;;;4468:101;5549:26;;;;5535:40;;:11;:40;:::i;:::-;5504:27;5516:15;5504:9;:27;:::i;:::-;:71;5500:139;;5598:30;5591:37;;;;;;;5500:139;-1:-1:-1;5709:37:58;;3873:1880;-1:-1:-1;;;;;3873:1880:58:o;2159:129:49:-;2224:7;2271:8;2260:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;2250:31;;;;;;2243:38;;2159:129;;;:::o;8154:80:19:-;8210:17;;-1:-1:-1;;;8210:17:19;;;;;;;;;;;4063:483;4239:12;4291:5;4267:21;:29;4263:108;;;4319:41;;-1:-1:-1;;;4319:41:19;;4354:4;4319:41;;;54094:51:83;54067:18;;4319:41:19;;;;;;;;4263:108;4381:12;4395:23;4422:6;-1:-1:-1;;;;;4422:11:19;4441:5;4448:4;4422:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4380:73;;;;4470:69;4497:6;4505:7;4514:10;4526:12;4470:26;:69::i;:::-;4463:76;;;;4063:483;;;;;;;:::o;6395:692::-;6586:12;6614:7;6610:471;;;6641:10;:17;6662:1;6641:22;6637:339;;6865:6;-1:-1:-1;;;;;6865:18:19;;6887:1;6865:23;6861:101;;6919:24;;-1:-1:-1;;;6919:24:19;;-1:-1:-1;;;;;54112:32:83;;6919:24:19;;;54094:51:83;54067:18;;6919:24:19;53940:211:83;6861:101:19;-1:-1:-1;6996:10:19;6989:17;;6610:471;7037:33;7045:10;7057:12;8410:17;;:21;8406:411;;8638:10;8632:17;8694:15;8681:10;8677:2;8673:19;8666:44;8406:411;8754:14;:12;:14;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:180:83;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:83;;14:180;-1:-1:-1;14:180:83:o;199:156::-;260:5;305:2;296:6;291:3;287:16;283:25;280:45;;;321:1;318;311:12;280:45;-1:-1:-1;343:6:83;199:156;-1:-1:-1;199:156:83:o;360:359::-;448:6;501:2;489:9;480:7;476:23;472:32;469:52;;;517:1;514;507:12;469:52;557:9;544:23;-1:-1:-1;;;;;582:6:83;579:30;576:50;;;622:1;619;612:12;576:50;645:68;705:7;696:6;685:9;681:22;645:68;:::i;1097:399::-;1195:6;1248:2;1236:9;1227:7;1223:23;1219:32;1216:52;;;1264:1;1261;1254:12;1216:52;1304:9;1291:23;-1:-1:-1;;;;;1329:6:83;1326:30;1323:50;;;1369:1;1366;1359:12;1323:50;1392:22;;1448:3;1430:16;;;1426:26;1423:46;;;1465:1;1462;1455:12;1423:46;1488:2;1097:399;-1:-1:-1;;;1097:399:83:o;1501:380::-;1580:1;1576:12;;;;1623;;;1644:61;;1698:4;1690:6;1686:17;1676:27;;1644:61;1751:2;1743:6;1740:14;1720:18;1717:38;1714:161;;1797:10;1792:3;1788:20;1785:1;1778:31;1832:4;1829:1;1822:15;1860:4;1857:1;1850:15;1993:689;2044:3;2083:4;2078:3;2074:14;-1:-1:-1;;;;;2119:5:83;2113:12;2109:37;2104:3;2097:50;2166:4;2216:2;2209:5;2205:14;2199:21;2250:4;2245:2;2240:3;2236:12;2229:26;2277:4;2310:12;2304:19;2345:6;2339:4;2332:20;2379:2;2374:3;2370:12;2361:21;;2423:2;2409:12;2405:21;2391:35;;2444:1;2435:10;;2454:201;2468:6;2465:1;2462:13;2454:201;;;2535:13;;-1:-1:-1;;;;;2531:39:83;2517:54;;2630:15;;;;2567:1;2483:9;;;;;2593:14;;;;2454:201;;;-1:-1:-1;2671:5:83;1993:689;-1:-1:-1;;;;;;1993:689:83:o;2824:741::-;2883:3;2922:4;2917:3;2913:14;-1:-1:-1;;;;;2958:5:83;2952:12;2948:37;2943:3;2936:50;3005:4;3049:2;3042:5;3038:14;3071:4;3105;3100:2;3095:3;3091:12;3084:26;3132:4;3165:12;3159:19;3200:6;3194:4;3187:20;3234:2;3229:3;3225:12;3216:21;;3256:12;3253:1;3246:23;3305:2;3302:1;3292:16;3278:30;;3326:1;3317:10;;3336:202;3350:6;3347:1;3344:13;3336:202;;;3418:13;;-1:-1:-1;;;;;3414:39:83;3400:54;;3513:15;;;;3365:10;;;;3476:14;;;;3336:202;;;-1:-1:-1;3554:5:83;2824:741;-1:-1:-1;;;;;;;2824:741:83:o;3570:482::-;3840:2;3829:9;3822:21;3803:4;3866:54;3916:2;3905:9;3901:18;3893:6;3866:54;:::i;:::-;3968:9;3960:6;3956:22;3951:2;3940:9;3936:18;3929:50;3996;4039:6;4031;3996:50;:::i;4057:127::-;4118:10;4113:3;4109:20;4106:1;4099:31;4149:4;4146:1;4139:15;4173:4;4170:1;4163:15;4189:258;4262:4;4256:11;;;4294:17;;-1:-1:-1;;;;;4326:34:83;;4362:22;;;4323:62;4320:88;;;4388:18;;:::i;:::-;4424:4;4417:24;4189:258;:::o;4452:254::-;4525:2;4519:9;4567:4;4555:17;;-1:-1:-1;;;;;4587:34:83;;4623:22;;;4584:62;4581:88;;;4649:18;;:::i;4711:275::-;4782:2;4776:9;4847:2;4828:13;;-1:-1:-1;;4824:27:83;4812:40;;-1:-1:-1;;;;;4867:34:83;;4903:22;;;4864:62;4861:88;;;4929:18;;:::i;:::-;4965:2;4958:22;4711:275;;-1:-1:-1;4711:275:83:o;4991:129::-;-1:-1:-1;;;;;5069:5:83;5065:30;5058:5;5055:41;5045:69;;5110:1;5107;5100:12;5125:183;5185:4;-1:-1:-1;;;;;5210:6:83;5207:30;5204:56;;;5240:18;;:::i;:::-;-1:-1:-1;5285:1:83;5281:14;5297:4;5277:25;;5125:183::o;5313:131::-;-1:-1:-1;;;;;5388:31:83;;5378:42;;5368:70;;5434:1;5431;5424:12;5449:1353;5546:6;5577:2;5620;5608:9;5599:7;5595:23;5591:32;5588:52;;;5636:1;5633;5626:12;5588:52;5669:9;5663:16;-1:-1:-1;;;;;5739:2:83;5731:6;5728:14;5725:34;;;5755:1;5752;5745:12;5725:34;5778:22;;;;5834:4;5816:16;;;5812:27;5809:47;;;5852:1;5849;5842:12;5809:47;5878:23;;:::i;:::-;5931:2;5925:9;5943:32;5967:7;5943:32;:::i;:::-;5984:22;;6037:11;;;6031:18;6061:16;;;6058:36;;;6090:1;6087;6080:12;6058:36;6121:8;6117:2;6113:17;6103:27;;;6168:7;6161:4;6157:2;6153:13;6149:27;6139:55;;6190:1;6187;6180:12;6139:55;6219:2;6213:9;6203:19;;6242:60;6258:43;6298:2;6258:43;:::i;:::-;6242:60;:::i;:::-;6336:15;;;6418:1;6414:10;;;;6406:19;;6402:28;;;6367:12;;;;6442:19;;;6439:39;;;6474:1;6471;6464:12;6439:39;6498:11;;;;6518:216;6534:6;6529:3;6526:15;6518:216;;;6609:3;6603:10;6626:33;6651:7;6626:33;:::i;:::-;6672:20;;6551:12;;;;6712;;;;6518:216;;;6750:14;;;6743:29;;;;6754:5;5449:1353;-1:-1:-1;;;;;;5449:1353:83:o;6807:127::-;6868:10;6863:3;6859:20;6856:1;6849:31;6899:4;6896:1;6889:15;6923:4;6920:1;6913:15;6939:128;7006:9;;;7027:11;;;7024:37;;;7041:18;;:::i;7072:330::-;7170:4;7228:11;7215:25;7322:3;7318:8;7307;7291:14;7287:29;7283:44;7263:18;7259:69;7249:97;;7342:1;7339;7332:12;7249:97;7363:33;;;;;7072:330;-1:-1:-1;;7072:330:83:o;7407:328::-;7504:4;7562:11;7549:25;7656:2;7652:7;7641:8;7625:14;7621:29;7617:43;7597:18;7593:68;7583:96;;7675:1;7672;7665:12;8071:132;8138:20;;8167:30;8138:20;8167:30;:::i;:::-;8071:132;;;:::o;8208:1115::-;8263:5;8311:4;8299:9;8294:3;8290:19;8286:30;8283:50;;;8329:1;8326;8319:12;8283:50;8351:23;;:::i;:::-;8342:32;;8411:9;8398:23;8430:32;8454:7;8430:32;:::i;:::-;8471:22;;8512:2;8550:18;;;8537:32;-1:-1:-1;;;;;8581:30:83;;8578:50;;;8624:1;8621;8614:12;8578:50;8647:22;;8700:4;8692:13;;8688:23;-1:-1:-1;8678:51:83;;8725:1;8722;8715:12;8678:51;8761:2;8748:16;8784:60;8800:43;8840:2;8800:43;:::i;8784:60::-;8878:15;;;8960:1;8956:10;;;;8948:19;;8944:28;;;8909:12;;;;8984:15;;;8981:35;;;9012:1;9009;9002:12;8981:35;9036:11;;;;9056:223;9072:6;9067:3;9064:15;9056:223;;;9154:3;9141:17;9171:33;9196:7;9171:33;:::i;:::-;9217:20;;9089:12;;;;9257;;;;9056:223;;;9311:5;9306:2;9299:5;9295:14;9288:29;;;;;;8208:1115;;;;:::o;9328:198::-;9434:9;9471:49;9505:14;9498:5;9471:49;:::i;9531:118::-;9617:5;9610:13;9603:21;9596:5;9593:32;9583:60;;9639:1;9636;9629:12;9654:245;9721:6;9774:2;9762:9;9753:7;9749:23;9745:32;9742:52;;;9790:1;9787;9780:12;9742:52;9822:9;9816:16;9841:28;9863:5;9841:28;:::i;9904:114::-;9988:4;9981:5;9977:16;9970:5;9967:27;9957:55;;10008:1;10005;9998:12;10023:186;10071:4;-1:-1:-1;;;;;10096:6:83;10093:30;10090:56;;;10126:18;;:::i;:::-;-1:-1:-1;10192:2:83;10171:15;-1:-1:-1;;10167:29:83;10198:4;10163:40;;10023:186::o;10214:462::-;10256:5;10309:3;10302:4;10294:6;10290:17;10286:27;10276:55;;10327:1;10324;10317:12;10276:55;10363:6;10350:20;10394:48;10410:31;10438:2;10410:31;:::i;10394:48::-;10467:2;10458:7;10451:19;10513:3;10506:4;10501:2;10493:6;10489:15;10485:26;10482:35;10479:55;;;10530:1;10527;10520:12;10479:55;10595:2;10588:4;10580:6;10576:17;10569:4;10560:7;10556:18;10543:55;10643:1;10618:16;;;10636:4;10614:27;10607:38;;;;10622:7;10214:462;-1:-1:-1;;;10214:462:83:o;10681:946::-;10738:5;10786:4;10774:9;10769:3;10765:19;10761:30;10758:50;;;10804:1;10801;10794:12;10758:50;10826:23;;:::i;:::-;10817:32;;10885:9;10872:23;-1:-1:-1;;;;;10955:2:83;10947:6;10944:14;10941:34;;;10971:1;10968;10961:12;10941:34;10998:55;11049:3;11040:6;11029:9;11025:22;10998:55;:::i;:::-;10991:5;10984:70;11107:2;11096:9;11092:18;11079:32;11063:48;;11136:2;11126:8;11123:16;11120:36;;;11152:1;11149;11142:12;11120:36;11175:24;;;;11229:4;11215:12;;;11211:23;11208:43;;;11247:1;11244;11237:12;11208:43;11275:23;;:::i;:::-;11335:2;11322:16;11347:31;11370:7;11347:31;:::i;:::-;11387:24;;11457:2;11449:11;;11436:25;11473:16;;;11470:36;;;11502:1;11499;11492:12;11470:36;11540:40;11576:3;11565:8;11561:2;11557:17;11540:40;:::i;:::-;11535:2;11526:7;11522:16;11515:66;;11613:7;11608:2;11601:5;11597:14;11590:31;;;;10681:946;;;;:::o;11632:131::-;-1:-1:-1;;;;;;11706:32:83;;11696:43;;11686:71;;11753:1;11750;11743:12;11768:132;11835:20;;11864:30;11835:20;11864:30;:::i;11905:128::-;11970:20;;11999:28;11970:20;11999:28;:::i;12038:1251::-;12093:5;12141:4;12129:9;12124:3;12120:19;12116:30;12113:50;;;12159:1;12156;12149:12;12113:50;12181:23;;:::i;:::-;12172:32;;12240:9;12227:23;-1:-1:-1;;;;;12310:2:83;12302:6;12299:14;12296:34;;;12326:1;12323;12316:12;12296:34;12349:22;;;;12401:4;12387:12;;;12383:23;12380:43;;;12419:1;12416;12409:12;12380:43;12447:23;;:::i;:::-;12508:2;12495:16;12536:2;12526:8;12523:16;12520:36;;;12552:1;12549;12542:12;12520:36;12581:52;12629:3;12618:8;12614:2;12610:17;12581:52;:::i;:::-;12572:7;12565:69;;12680:2;12676;12672:11;12659:25;12709:2;12699:8;12696:16;12693:36;;;12725:1;12722;12715:12;12693:36;12763:52;12811:3;12800:8;12796:2;12792:17;12763:52;:::i;:::-;12758:2;12749:7;12745:16;12738:78;;12873:4;12869:2;12865:13;12852:27;12845:4;12836:7;12832:18;12825:55;12914:30;12940:2;12936;12932:11;12914:30;:::i;:::-;12909:2;12900:7;12896:16;12889:56;12980:31;13006:3;13002:2;12998:12;12980:31;:::i;:::-;12974:3;12965:7;12961:17;12954:58;13058:3;13054:2;13050:12;13037:26;13088:2;13078:8;13075:16;13072:36;;;13104:1;13101;13094:12;13072:36;13143:40;13179:3;13168:8;13164:2;13160:17;13143:40;:::i;:::-;13137:3;13124:17;;13117:67;-1:-1:-1;13193:22:83;;-1:-1:-1;13247:35:83;;-1:-1:-1;13278:2:83;13263:18;;13247:35;:::i;:::-;13242:2;13235:5;13231:14;13224:59;12038:1251;;;;:::o;13294:198::-;13400:9;13437:49;13471:14;13464:5;13437:49;:::i;13497:245::-;13555:6;13608:2;13596:9;13587:7;13583:23;13579:32;13576:52;;;13624:1;13621;13614:12;13576:52;13663:9;13650:23;13682:30;13706:5;13682:30;:::i;13747:574::-;13869:4;13875:6;13935:11;13922:25;14029:2;14025:7;14014:8;13998:14;13994:29;13990:43;13970:18;13966:68;13956:96;;14048:1;14045;14038:12;13956:96;14075:33;;14127:20;;;-1:-1:-1;;;;;;14159:30:83;;14156:50;;;14202:1;14199;14192:12;14156:50;14235:4;14223:17;;-1:-1:-1;14286:1:83;14282:14;;;14266;14262:35;14252:46;;14249:66;;;14311:1;14308;14301:12;14249:66;13747:574;;;;;:::o;14326:295::-;14396:5;14455:3;14442:17;14541:2;14537:7;14526:8;14510:14;14506:29;14502:43;14482:18;14478:68;14468:96;;14560:1;14557;14550:12;14468:96;14582:33;;;;14326:295;-1:-1:-1;;14326:295:83:o;14626:520::-;14696:5;14703:6;14763:3;14750:17;14849:2;14845:7;14834:8;14818:14;14814:29;14810:43;14790:18;14786:68;14776:96;;14868:1;14865;14858:12;14776:96;14896:33;;15000:4;14987:18;;;-1:-1:-1;14948:21:83;;-1:-1:-1;;;;;;15017:30:83;;15014:50;;;15060:1;15057;15050:12;15014:50;15114:6;15111:1;15107:14;15091;15087:35;15080:5;15076:47;15073:67;;;15136:1;15133;15126:12;15151:884;15211:3;15250:4;15245:3;15241:14;15292:5;15279:19;15307:32;15331:7;15307:32;:::i;:::-;-1:-1:-1;;;;;15360:32:83;15348:45;;15412:4;15459:65;15509:14;;;15513:5;15459:65;:::i;:::-;15554:4;15540:12;;;15533:26;15594;;;;15673:12;15703:1;;15647:2;15638:12;;15713:295;15727:12;15724:1;15721:19;15713:295;;;15810:6;15797:20;15830:33;15855:7;15830:33;:::i;:::-;-1:-1:-1;;;;;15890:33:83;15876:48;;15983:15;;;;15920:1;15748:9;;;;;15946:14;;15713:295;;;16024:5;15151:884;-1:-1:-1;;;;;;;15151:884:83:o;16040:500::-;16098:5;16105:6;16165:3;16152:17;16251:2;16247:7;16236:8;16220:14;16216:29;16212:43;16192:18;16188:68;16178:96;;16270:1;16267;16260:12;16178:96;16298:33;;16402:4;16389:18;;;-1:-1:-1;16350:21:83;;-1:-1:-1;;;;;;16419:30:83;;16416:50;;;16462:1;16459;16452:12;16416:50;16509:6;16493:14;16489:27;16482:5;16478:39;16475:59;;;16530:1;16527;16520:12;16545:266;16633:6;16628:3;16621:19;16685:6;16678:5;16671:4;16666:3;16662:14;16649:43;-1:-1:-1;16737:1:83;16712:16;;;16730:4;16708:27;;;16701:38;;;;16793:2;16772:15;;;-1:-1:-1;;16768:29:83;16759:39;;;16755:50;;16545:266::o;16816:796::-;16878:3;16916:56;16966:5;16959;16916:56;:::i;:::-;16993:4;16988:3;16981:17;17019:65;17078:4;17073:3;17069:14;17055:12;17019:65;:::i;:::-;17007:77;;17115:67;17176:4;17169:5;17165:16;17158:5;17115:67;:::i;:::-;17224:3;17218:4;17214:14;17207:4;17202:3;17198:14;17191:38;17266:14;17253:28;17290:31;17313:7;17290:31;:::i;:::-;17356:4;17343:18;17330:32;;17407:73;17474:4;17454:25;;17458:14;17407:73;:::i;:::-;17371:109;;17513:4;17506;17500;17496:15;17489:29;17534:72;17600:4;17594;17590:15;17576:12;17560:14;17534:72;:::i;:::-;17527:79;16816:796;-1:-1:-1;;;;;;16816:796:83:o;17713:2354::-;17830:6;17825:3;17818:19;17800:3;17856:4;17897:2;17892:3;17888:12;17922:11;17949;17942:18;;17999:6;17996:1;17992:14;17985:5;17981:26;17969:38;;18030:5;18053:1;18074;18084:1957;18100:6;18095:3;18092:15;18084:1957;;;18175:5;18169:4;18165:16;18160:3;18153:29;18205:57;18255:6;18248:5;18205:57;:::i;:::-;18285:4;18341:2;18328:16;18424:3;18420:8;18415:2;18399:14;18395:23;18391:38;18371:18;18367:63;18357:91;;18444:1;18441;18434:12;18357:91;18516:16;;;18476:27;;18565:60;18476:27;;18565:60;:::i;:::-;18648:4;18687:2;18682;18676:4;18672:13;18665:25;18717:67;18779:3;18773:4;18769:14;18755:12;18717:67;:::i;:::-;18703:81;;18819:69;18884:2;18875:7;18871:16;18862:7;18819:69;:::i;:::-;18915:2;18911:7;18941:2;19001;18994:4;18986:6;18982:17;18978:26;18973:2;18967:4;18963:13;18956:49;19032:61;19086:6;19070:14;19032:61;:::i;:::-;19018:75;;19116:3;19106:13;;19180:2;19171:7;19167:16;19154:30;19149:2;19143:4;19139:13;19132:53;19239:2;19230:7;19226:16;19213:30;19198:45;;;19256:32;19280:7;19256:32;:::i;:::-;19311:3;-1:-1:-1;;;;;19353:7:83;19349:32;19344:2;19338:4;19334:13;19327:55;19436:2;19427:7;19423:16;19410:30;19395:45;;19453:32;19477:7;19453:32;:::i;:::-;-1:-1:-1;;;;;;19520:34:83;;19505:13;;;19498:57;19604;19644:16;;;19648:7;19604:57;:::i;:::-;19568:93;;;;;19720:2;19713:4;19705:6;19701:17;19697:26;19691:3;19685:4;19681:14;19674:50;;;;19750:63;19806:6;19792:12;19776:14;19750:63;:::i;:::-;19737:76;;;;19848:28;19872:2;19868;19864:11;19848:28;:::i;:::-;17687:13;17680:21;19921:13;;;17668:34;;;;-1:-1:-1;20019:12:83;;;;19984:15;;;;18126:1;18117:11;18084:1957;;;-1:-1:-1;20057:4:83;;17713:2354;-1:-1:-1;;;;;;;;17713:2354:83:o;20072:369::-;20325:2;20314:9;20307:21;20288:4;20345:90;20431:2;20420:9;20416:18;20408:6;20400;20345:90;:::i;20446:271::-;20637:2;20626:9;20619:21;20600:4;20657:54;20707:2;20696:9;20692:18;20684:6;20657:54;:::i;20722:251::-;20792:6;20845:2;20833:9;20824:7;20820:23;20816:32;20813:52;;;20861:1;20858;20851:12;20813:52;20893:9;20887:16;20912:31;20937:5;20912:31;:::i;20978:127::-;21039:10;21034:3;21030:20;21027:1;21020:31;21070:4;21067:1;21060:15;21094:4;21091:1;21084:15;21110:250;21195:1;21205:113;21219:6;21216:1;21213:13;21205:113;;;21295:11;;;21289:18;21276:11;;;21269:39;21241:2;21234:10;21205:113;;;-1:-1:-1;;21352:1:83;21334:16;;21327:27;21110:250::o;21365:270::-;21406:3;21444:5;21438:12;21471:6;21466:3;21459:19;21487:76;21556:6;21549:4;21544:3;21540:14;21533:4;21526:5;21522:16;21487:76;:::i;:::-;21617:2;21596:15;-1:-1:-1;;21592:29:83;21583:39;;;;21624:4;21579:50;;21365:270;-1:-1:-1;;21365:270:83:o;21640:534::-;21693:3;21737:5;21731:12;21764:4;21759:3;21752:17;21790:56;21840:4;21835:3;21831:14;21817:12;21790:56;:::i;:::-;21778:68;;21894:4;21887:5;21883:16;21877:23;21942:3;21936:4;21932:14;21925:4;21920:3;21916:14;21909:38;21996:4;21979:14;21973:21;21969:32;21963:4;21956:46;22059:4;22043:14;22039:25;22033:32;22011:54;;22098:4;22091;22085;22081:15;22074:29;22119:49;22162:4;22156;22152:15;22136:14;22119:49;:::i;22179:768::-;22233:3;22277:5;22271:12;22304:4;22299:3;22292:17;22330:58;22382:4;22377:3;22373:14;22359:12;22330:58;:::i;:::-;22318:70;;22436:4;22429:5;22425:16;22419:23;22484:3;22478:4;22474:14;22467:4;22462:3;22458:14;22451:38;22512:50;22557:4;22541:14;22512:50;:::i;:::-;22498:64;;;22611:4;22604:5;22600:16;22594:23;22587:4;22582:3;22578:14;22571:47;-1:-1:-1;;;;;22671:4:83;22664:5;22660:16;22654:23;22650:48;22643:4;22638:3;22634:14;22627:72;22769:10;22764:3;22760:20;22752:4;22745:5;22741:16;22735:23;22731:50;22724:4;22719:3;22715:14;22708:74;22830:4;22823:5;22819:16;22813:23;22880:3;22872:6;22868:16;22861:4;22856:3;22852:14;22845:40;22901;22934:6;22918:14;22901:40;:::i;22952:305::-;23003:3;23047:5;23041:12;23074:4;23069:3;23062:17;23100:59;23153:4;23148:3;23144:14;23130:12;23100:59;:::i;:::-;23222:4;23211:16;;;23205:23;23198:31;23191:39;23175:14;;;;23168:63;;;;-1:-1:-1;23088:71:83;22952:305;-1:-1:-1;22952:305:83:o;23262:634::-;23323:3;23361:5;23355:12;23388:6;23383:3;23376:19;23414:4;23455:2;23450:3;23446:12;23480:11;23507;23500:18;;23557:6;23554:1;23550:14;23543:5;23539:26;23527:38;;23599:2;23592:5;23588:14;23620:1;23630:240;23644:6;23641:1;23638:13;23630:240;;;23715:5;23709:4;23705:16;23700:3;23693:29;23743:47;23785:4;23776:6;23770:13;23743:47;:::i;:::-;23848:12;;;;23735:55;-1:-1:-1;23813:15:83;;;;23666:1;23659:9;23630:240;;;-1:-1:-1;23886:4:83;;23262:634;-1:-1:-1;;;;;;;23262:634:83:o;23901:1398::-;23964:3;24002:5;23996:12;24029:6;24024:3;24017:19;24055:4;24096:2;24091:3;24087:12;24121:11;24148;24141:18;;24198:6;24195:1;24191:14;24184:5;24180:26;24168:38;;24240:2;24233:5;24229:14;24261:1;24282;24292:981;24308:6;24303:3;24300:15;24292:981;;;24383:5;24377:4;24373:16;24368:3;24361:29;24419:6;24413:13;24449:4;24492:2;24486:9;24521:2;24515:4;24508:16;24551:55;24602:2;24596:4;24592:13;24578:12;24551:55;:::i;:::-;24647:11;;;24641:18;24694:17;;;24679:13;;;24672:40;24773:21;;24807:24;;;24897:23;;;;24944:1;;-1:-1:-1;24853:15:83;;;-1:-1:-1;24958:209:83;24974:8;24969:3;24966:17;24958:209;;;25051:15;;25037:30;;25136:17;;;;25002:1;24993:11;;;;;25093:14;;;;24958:209;;;-1:-1:-1;25251:12:83;;;;25188:5;-1:-1:-1;;;25216:15:83;;;;24334:1;24325:11;24292:981;;25304:1211;25515:2;25504:9;25497:21;25478:4;25553:6;25547:13;25596:4;25591:2;25580:9;25576:18;25569:32;25624:61;25680:3;25669:9;25665:19;25651:12;25624:61;:::i;:::-;25610:75;;-1:-1:-1;;;;;25743:2:83;25735:6;25731:15;25725:22;25721:47;25716:2;25705:9;25701:18;25694:75;25823:2;25815:6;25811:15;25805:22;25800:2;25789:9;25785:18;25778:50;25877:2;25869:6;25865:15;25859:22;25904:2;25900:7;25972:2;25960:9;25952:6;25948:22;25944:31;25938:3;25927:9;25923:19;25916:60;25999;26052:6;26036:14;25999:60;:::i;:::-;25985:74;;26108:3;26100:6;26096:16;26090:23;26068:45;;26178:2;26166:9;26158:6;26154:22;26150:31;26144:3;26133:9;26129:19;26122:60;26205:62;26260:6;26244:14;26205:62;:::i;:::-;26191:76;;26322:3;26314:6;26310:16;26304:23;26298:3;26287:9;26283:19;26276:52;26377:3;26369:6;26365:16;26359:23;26337:45;;26448:2;26436:9;26428:6;26424:22;26420:31;26413:4;26402:9;26398:20;26391:61;;26469:40;26502:6;26486:14;26469:40;:::i;26520:184::-;26590:6;26643:2;26631:9;26622:7;26618:23;26614:32;26611:52;;;26659:1;26656;26649:12;26611:52;-1:-1:-1;26682:16:83;;26520:184;-1:-1:-1;26520:184:83:o;26709:1349::-;26828:6;26823:3;26816:19;26798:3;26854:4;26895:2;26890:3;26886:12;26920:11;26947;26940:18;;26977:1;26967:11;;27018:6;27014:2;27010:15;27003:5;26999:27;27049:5;27072:1;27093;27103:929;27119:6;27114:3;27111:15;27103:929;;;27194:5;27188:4;27184:16;27179:3;27172:29;27224:57;27274:6;27267:5;27224:57;:::i;:::-;27304:4;27341:50;27388:2;27384;27341:50;:::i;:::-;27417:2;27411:4;27404:16;27447:64;27507:2;27501:4;27497:13;27483:12;27447:64;:::i;:::-;27433:78;;;27560:59;27615:2;27611;27607:11;27603:2;27560:59;:::i;:::-;27654:17;;;27639:13;;;27632:40;27685:28;;;27524:95;-1:-1:-1;;;;;;27729:37:83;;27726:57;;;27779:1;27776;27769:12;27726:57;27812:21;;;;;27876:14;27859:15;;;27846:55;-1:-1:-1;28010:12:83;;;;27926:21;27922:30;;;-1:-1:-1;27975:15:83;;;;27145:1;27136:11;27103:929;;;-1:-1:-1;28048:4:83;;26709:1349;-1:-1:-1;;;;;;;;;26709:1349:83:o;28063:2101::-;28564:6;28553:9;28546:25;28607:3;28602:2;28591:9;28587:18;28580:31;28527:4;28640:58;28691:6;28683;28640:58;:::i;:::-;28735:4;28729:3;28718:9;28714:19;28707:33;28763:70;28828:3;28817:9;28813:19;28799:12;28763:70;:::i;:::-;28749:84;;28880:2;28872:6;28868:15;28855:29;28893:30;28917:5;28893:30;:::i;:::-;-1:-1:-1;;;;;28960:30:83;28954:3;28939:19;;28932:59;29054:4;29042:17;;29029:31;29022:4;29007:20;;29000:61;29106:69;29169:4;29157:17;;29046:6;29106:69;:::i;:::-;29198:3;29194:8;29267:2;29255:9;29247:6;29243:22;29239:31;29233:3;29222:9;29218:19;29211:60;29294:92;29379:6;29365:12;29349:14;29294:92;:::i;:::-;29280:106;;29433:69;29496:4;29488:6;29484:17;29476:6;29433:69;:::i;:::-;29395:107;;;;29567:2;29555:9;29547:6;29543:22;29539:31;29533:3;29522:9;29518:19;29511:60;29594:96;29683:6;29667:14;29651;29594:96;:::i;:::-;29580:110;;29752:3;29744:6;29740:16;29727:30;29721:3;29710:9;29706:19;29699:59;29805:56;29856:3;29848:6;29844:16;29836:6;29805:56;:::i;:::-;29767:94;;;;29926:2;29914:9;29906:6;29902:22;29898:31;29892:3;29881:9;29877:19;29870:60;;29947:65;30005:6;29989:14;29973;29947:65;:::i;:::-;29939:73;;;;;30050:6;30043:4;30032:9;30028:20;30021:36;30095:6;30088:4;30077:9;30073:20;30066:36;30111:47;30152:4;30141:9;30137:20;30129:6;-1:-1:-1;;;;;1951:30:83;1939:43;;1886:102;30169:127;30230:10;30225:3;30221:20;30218:1;30211:31;30261:4;30258:1;30251:15;30285:4;30282:1;30275:15;30632:125;30697:9;;;30718:10;;;30715:36;;;30731:18;;:::i;30762:174::-;30806:11;30858:3;30845:17;30871:30;30895:5;30871:30;:::i;31125:168::-;31198:9;;;31229;;31246:15;;;31240:22;;31226:37;31216:71;;31267:18;;:::i;31298:147::-;31361:78;31379:3;31372:5;31369:14;31361:78;;;31435:1;31421:16;;31406:1;31395:13;31361:78;;31450:323;31545:5;31539:12;31574:1;31567:5;31560:16;31602:6;31595:14;31585:182;;31643:5;31640:1;31633:16;31687:4;31684:1;31674:18;31705:52;31749:6;31743:4;31739:17;31733:4;31705:52;:::i;31778:406::-;-1:-1:-1;;;31861:6:83;31858:32;31855:58;;;31893:18;;:::i;:::-;31942:5;31936:12;31971:6;31964:5;31957:21;32001:6;31993;31990:18;31987:191;;;32041:5;32038:1;32031:16;32085:4;32082:1;32072:18;32103:65;32160:6;32154:4;32150:17;32141:6;32135:4;32131:17;32103:65;:::i;32189:153::-;32267:1;32261:4;32254:15;32278:58;32333:1;32327:4;32323:12;32278:58;:::i;32347:166::-;-1:-1:-1;;32475:1:83;32471:11;;;32467:24;32463:29;32453:40;32499:1;32495:11;;;;32450:57;;32347:166::o;32518:513::-;32587:38;32619:4;32613:11;32587:38;:::i;:::-;32651:6;32644:14;32634:391;;32700:2;32692:6;32689:14;32721:1;32716:259;;;;-1:-1:-1;;33011:1:83;32998:15;;6038:1264:40:o;32716:259:83:-;32751:4;32748:1;32741:15;32798:4;32795:1;32785:18;32820:77;32891:2;32883:6;32879:15;32876:1;32872:23;32866:4;32862:34;32858:1;32852:4;32848:12;32820:77;:::i;:::-;32927:1;32914:15;;;32946;;32682:333;32634:391;32518:513;:::o;33036:235::-;33116:1;33110:4;33103:15;33127:58;33182:1;33176:4;33172:12;33127:58;:::i;:::-;33215:1;33211;33205:4;33201:12;33194:23;33226:39;33262:1;33256:4;33252:12;33226:39;:::i;33276:515::-;33347:4;33353:6;33413:11;33400:25;33507:2;33503:7;33492:8;33476:14;33472:29;33468:43;33448:18;33444:68;33434:96;;33526:1;33523;33516:12;33434:96;33553:33;;33605:20;;;-1:-1:-1;;;;;;33637:30:83;;33634:50;;;33680:1;33677;33670:12;33634:50;33713:4;33701:17;;-1:-1:-1;33744:14:83;33740:27;;;33730:38;;33727:58;;;33781:1;33778;33771:12;33796:418;33897:2;33892:3;33889:11;33886:322;;;33933:5;33930:1;33923:16;33977:4;33974:1;33964:18;34047:2;34035:10;34031:19;34028:1;34024:27;34018:4;34014:38;34083:4;34071:10;34068:20;34065:47;;;-1:-1:-1;34106:4:83;34065:47;34125:73;34192:2;34187:3;34183:12;34180:1;34176:20;34170:4;34166:31;34153:11;34125:73;:::i;34219:1198::-;-1:-1:-1;;;;;34320:3:83;34317:27;34314:53;;;34347:18;;:::i;:::-;34376:93;34465:3;34425:38;34457:4;34451:11;34425:38;:::i;:::-;34419:4;34376:93;:::i;:::-;34495:1;34520:2;34515:3;34512:11;34537:1;34532:627;;;;35203:1;35220:3;35217:93;;;-1:-1:-1;35276:19:83;;;35263:33;35217:93;35336:64;35396:3;35389:5;35336:64;:::i;:::-;35330:4;35323:78;;34505:906;;34532:627;2771:1;2764:14;;;2808:4;2795:18;;-1:-1:-1;;34568:17:83;;;34680:9;34702:229;34716:7;34713:1;34710:14;34702:229;;;34805:19;;;34792:33;34777:49;;34912:4;34897:20;;;;34865:1;34853:14;;;;34732:12;34702:229;;;34706:3;34959;34950:7;34947:16;34944:159;;;35083:1;35079:6;35073:3;35067;35064:1;35060:11;35056:21;35052:34;35048:39;35035:9;35030:3;35026:19;35013:33;35009:79;35001:6;34994:95;34944:159;;;35146:1;35140:3;35137:1;35133:11;35129:19;35123:4;35116:33;34505:906;;34219:1198;;;:::o;35422:2889::-;35544:75;35613:5;35606;35544:75;:::i;:::-;35656:2;35643:16;35668:32;35692:7;35668:32;:::i;:::-;31043:11;;-1:-1:-1;;;;;;31039:41:83;-1:-1:-1;;;;;31082:30:83;;31036:77;31023:91;;35709:60;35788:1;35826:2;35820:4;35816:13;35848:2;35893:103;35992:2;35988;35984:11;35980:2;35893:103;:::i;:::-;35859:137;;-1:-1:-1;;;;;36063:2:83;36048:13;36045:21;36042:47;;;36069:18;;:::i;:::-;36098:65;36149:13;36137:10;36098:65;:::i;:::-;36216:1;36226:22;;;36269:17;;;;36216:1;36315:281;36329:13;36326:1;36323:20;36315:281;;;36414:6;36401:20;36434:33;36459:7;36434:33;:::i;:::-;36562:12;;;36555:31;36527:15;;;;36351:10;;36315:281;;;36319:3;36635:1;36629:4;36625:12;36605:32;;36656:84;36736:2;36729:5;36725:14;36718:5;36656:84;:::i;:::-;36646:94;;36777:2;36764:16;36749:31;;36789;36812:7;36789:31;:::i;:::-;36857:19;;-1:-1:-1;;36853:34:83;36902:4;36889:18;;36850:58;36829:80;;;36948:1;36938:12;;;36995:52;37035:11;;;37039:2;36995:52;:::i;:::-;36959:88;;;;37077:2;37062:13;37059:21;37056:47;;;37083:18;;:::i;:::-;37112:119;37217:13;37169:46;37201:12;37195:19;37169:46;:::i;:::-;37155:12;37112:119;:::i;:::-;37257:2;37240:19;;37293:2;37278:13;37275:21;37310:1;37305:703;;;;38054:2;38072:13;38069:115;;;-1:-1:-1;38140:29:83;;;38127:43;38069:115;38218:76;38280:13;38271:7;38218:76;:::i;:::-;38204:12;38197:98;;37268:1037;;37305:703;2771:1;2764:14;;;2808:4;2795:18;;-1:-1:-1;;37341:27:83;;;37473:2;37488:242;37504:7;37499:3;37496:16;37488:242;;;37595:29;;;37582:43;37567:59;;37698:18;;;;37653:15;;;;37522:12;;37488:242;;;37492:3;37758:13;37749:7;37746:26;37743:189;;;37912:1;37908:6;37902:3;37886:13;37883:1;37879:21;37875:31;37871:44;37867:49;37854:9;37839:13;37835:29;37822:43;37818:99;37810:6;37803:115;37743:189;;;37994:2;37978:13;37974:2;37970:22;37966:31;37952:12;37945:53;37268:1037;;;;;;;;;35422:2889;;:::o;38316:174::-;38360:11;38412:3;38399:17;38425:30;38449:5;38425:30;:::i;38726:170::-;38768:11;38820:3;38807:17;38833:28;38855:5;38833:28;:::i;39098:3956::-;39245:5;39232:19;39330:3;39326:8;39318:5;39302:14;39298:26;39294:41;39274:18;39270:66;39260:94;;39350:1;39347;39340:12;39260:94;39375:30;;39424:73;39375:30;;39424:73;:::i;:::-;39516:69;39582:2;39578;39516:69;:::i;:::-;39622:2;39609:16;39634:32;39658:7;39634:32;:::i;:::-;31043:11;;-1:-1:-1;;;;;;31039:41:83;-1:-1:-1;;;;;31082:30:83;;31036:77;31023:91;;39675:60;39754:1;39792:2;39786:4;39782:13;39814:2;39859:103;39958:2;39954;39950:11;39946:2;39859:103;:::i;:::-;39825:137;;-1:-1:-1;;;;;40029:2:83;40014:13;40011:21;40008:47;;;40035:18;;:::i;:::-;40064:65;40115:13;40103:10;40064:65;:::i;:::-;40182:1;40192:22;;;40235:17;;;;40182:1;40281:242;40295:13;40292:1;40289:20;40281:242;;;40380:6;40367:20;40400:33;40425:7;40400:33;:::i;:::-;40491:12;;;40484:29;40456:15;;;;40317:10;;40281:242;;;40285:3;40562:1;40556:4;40552:12;40532:32;;40583:78;40657:2;40653;40649:11;40645:2;40583:78;:::i;:::-;40573:88;;40698:2;40685:16;40670:31;;40710;40733:7;40710:31;:::i;:::-;40778:19;;-1:-1:-1;;40774:34:83;40823:4;40810:18;;40771:58;40750:80;;;40869:1;40859:12;;;40916:52;40956:11;;;40960:2;40916:52;:::i;:::-;40880:88;;;;40998:2;40983:13;40980:21;40977:47;;;41004:18;;:::i;:::-;41033:119;41138:13;41090:46;41122:12;41116:19;41090:46;:::i;41033:119::-;41178:2;41161:19;;41214:2;41199:13;41196:21;41231:1;41226:703;;;;41975:2;41960:17;;41993:13;41990:115;;;42080:9;42065:13;42061:29;42048:43;42037:54;;41990:115;42139:76;42201:13;42192:7;42139:76;:::i;:::-;42125:12;42118:98;41189:1037;;41226:703;2771:1;2764:14;;;2808:4;2795:18;;-1:-1:-1;;41262:27:83;;;-1:-1:-1;41394:2:83;41409:242;41425:7;41420:3;41417:16;41409:242;;;41516:29;;;41503:43;41488:59;;41619:18;;;;41574:15;;;;41443:12;;41409:242;;;41413:3;41679:13;41670:7;41667:26;41664:189;;;41833:1;41829:6;41823:3;41807:13;41804:1;41800:21;41796:31;41792:44;41788:49;41775:9;41760:13;41756:29;41743:43;41739:99;41731:6;41724:115;41664:189;;41915:2;41899:13;41895:2;41891:22;41887:31;41873:12;41866:53;41189:1037;;;;;42235:173;42325:82;42403:2;42397:4;42393:13;42387:4;42325:82;:::i;:::-;42321:1;42315:4;42311:12;42235:173;:::i;:::-;42461:2;42455:4;42451:13;42438:27;42434:1;42428:4;42424:12;42417:49;42505:1;42499:4;42495:12;42475:32;;42516:102;42576:41;42613:2;42607:4;42603:13;42576:41;:::i;:::-;31043:11;;-1:-1:-1;;;;;;31039:41:83;-1:-1:-1;;;;;31082:30:83;;;;31036:77;31023:91;;30941:179;42516:102;42627:103;42687:42;42724:3;42718:4;42714:14;42687:42;:::i;:::-;38587:11;;-1:-1:-1;;38623:40:83;38673:3;38669:15;;;;38686:26;38665:48;38620:94;38607:108;;38495:226;42627:103;42775:57;42827:3;42821:4;42817:14;42811:4;42775:57;:::i;:::-;42739:93;;;;42841:100;42927:13;42912;42907:2;42901:4;42897:13;42841:100;:::i;:::-;42950:98;43007:40;43043:2;43036:5;43032:14;43007:40;:::i;:::-;43002:2;42996:4;42992:13;39015:3;39011:8;39004:4;38998:11;38994:26;39081:3;39072:5;39065:13;39058:21;39054:31;39045:7;39042:44;39036:4;39029:58;;38901:192;;;42950:98;;;;;;;39098:3956;;:::o;43059:1606::-;-1:-1:-1;;;43207:3:83;43204:29;43201:55;;;43236:18;;:::i;:::-;43285:4;43279:11;43312:3;43306:4;43299:17;43336:6;43331:3;43328:15;43325:886;;;43376:2;43414:6;43410:2;43406:15;43468:2;43459:7;43455:16;43447:6;43444:28;43434:62;;43476:18;;:::i;:::-;43534:3;43530:2;43526:12;43584:2;43573:9;43569:18;43564:3;43561:27;43551:61;;43592:18;;:::i;:::-;43635:1;43649:16;;;43704:4;43690:19;;43732:18;;;;43776:20;;;;;43809:392;43827:2;43820:5;43817:13;43809:392;;;43889:44;43927:5;43889:44;:::i;:::-;43950:52;43999:1;43992:5;43988:13;43950:52;:::i;:::-;44041:2;44037:1;44030:5;44026:13;44019:25;44083:2;44079:1;44072:5;44068:13;44061:25;44103:41;44140:2;44133:5;44129:14;44103:41;:::i;:::-;44184:2;44179;44172:5;44168:14;44161:26;43853:2;43846:5;43842:14;43833:23;;43809:392;;;43813:3;;;;43325:886;-1:-1:-1;2771:1:83;2764:14;;;2808:4;2795:18;;44234:5;;44341:318;44355:3;44352:1;44349:10;44341:318;;;44401:162;44486:76;44555:6;44548:5;44486:76;:::i;:::-;44473:11;44401:162;:::i;:::-;44598:2;44586:15;;;;;44646:2;44629:20;;;;;44374:1;44367:9;44341:318;;;44345:3;;;43059:1606;;;:::o;44670:446::-;44765:5;44759:12;44790:1;44814:2;44807:5;44800:17;44843:6;44836:14;44826:284;;44885:5;44881:2;44874:17;44930:4;44926:2;44916:19;44968:6;44962:4;44958:17;45018:82;45036:2;45029:5;45026:13;45018:82;;;45095:2;45088:5;45081:17;45062:1;45055:5;45051:13;45042:22;;45018:82;;45121:532;-1:-1:-1;;;45204:6:83;45201:32;45198:58;;;45236:18;;:::i;:::-;45285:5;45279:12;45314:6;45307:5;45300:21;45344:6;45336;45333:18;45330:317;;;45384:1;45398:17;;;45454:4;45440:19;;45525:17;;;;45482;;45555:82;45573:2;45566:5;45563:13;45555:82;;;45632:2;45625:5;45618:17;45599:1;45592:5;45588:13;45579:22;;45555:82;;45658:1869;45780:75;45849:5;45842;45780:75;:::i;:::-;45892:2;45879:16;45904:32;45928:7;45904:32;:::i;:::-;31043:11;;-1:-1:-1;;;;;;31039:41:83;-1:-1:-1;;;;;31082:30:83;;31036:77;31023:91;;45945:60;46024:1;46062:2;46056:4;46052:13;46084:2;46129:103;46228:2;46224;46220:11;46216:2;46129:103;:::i;:::-;46095:137;;-1:-1:-1;;;;;46299:2:83;46284:13;46281:21;46278:47;;;46305:18;;:::i;:::-;46334:65;46385:13;46373:10;46334:65;:::i;:::-;46452:1;46462:22;;;46505:17;;;;46452:1;46551:281;46565:13;46562:1;46559:20;46551:281;;;46650:6;46637:20;46670:33;46695:7;46670:33;:::i;:::-;46798:12;;;46791:31;46763:15;;;;46587:10;;46551:281;;;46555:3;46871:1;46865:4;46861:12;46841:32;;46918:109;47023:2;47016:5;47012:14;47005:5;46918:109;:::i;:::-;46882:145;;;;47057:2;47042:13;47039:21;47036:47;;;47063:18;;:::i;:::-;47092:67;47145:13;47131:12;47092:67;:::i;:::-;47206:24;;;-1:-1:-1;47253:17:83;;;;47301:220;47317:13;47312:3;47309:22;47301:220;;;47397:22;;47481:16;;;47474:37;47444:17;;;;47341:12;;47301:220;;47532:1406;-1:-1:-1;;;47684:3:83;47681:29;47678:55;;;47713:18;;:::i;:::-;47762:4;47756:11;47789:3;47783:4;47776:17;47813:6;47808:3;47805:15;47802:679;;;47853:1;47890:6;47886:2;47882:15;47944:2;47935:7;47931:16;47923:6;47920:28;47910:62;;47952:18;;:::i;:::-;48010:3;48006:2;48002:12;48060:2;48049:9;48045:18;48040:3;48037:27;48027:61;;48068:18;;:::i;:::-;48108:1;48101:15;;;48154:4;48141:18;;48182;;;;48226:20;48259:212;48277:2;48270:5;48267:13;48259:212;;;48339:42;48375:5;48339:42;:::i;:::-;48398:59;48454:1;48447:5;48443:13;48398:59;:::i;:::-;48292:14;;48259:212;;;48263:3;;;47802:679;-1:-1:-1;2771:1:83;2764:14;;;2808:4;2795:18;;48504:5;;48611:321;48625:3;48622:1;48619:10;48611:321;;;48671:166;48760:76;48829:6;48822:5;48760:76;:::i;:::-;48747:11;48671:166;:::i;:::-;48872:2;48860:15;;;;;48920:1;48903:19;;;;;48644:1;48637:9;48611:321;;48943:2208;49114:75;49183:5;49176;49114:75;:::i;:::-;49226:2;49213:16;49238:32;49262:7;49238:32;:::i;:::-;31043:11;;-1:-1:-1;;;;;;31039:41:83;-1:-1:-1;;;;;31082:30:83;;31036:77;31023:91;;49279:60;49358:1;49396:2;49390:4;49386:13;49418:2;49463:103;49562:2;49558;49554:11;49550:2;49463:103;:::i;:::-;49429:137;;-1:-1:-1;;;;;49581:13:83;49578:37;49575:63;;;49618:18;;:::i;:::-;49647:65;49698:13;49686:10;49647:65;:::i;:::-;49762:1;49755:21;;;49797:16;;;;49841:242;49855:13;49852:1;49849:20;49841:242;;;49940:6;49927:20;49960:33;49985:7;49960:33;:::i;:::-;50051:12;;;50044:29;50016:15;;;;49877:10;;49841:242;;;49845:3;;50092:103;50152:42;50190:2;50183:5;50179:14;50152:42;:::i;:::-;50148:1;50142:4;50138:12;-1:-1:-1;;;;;31086:5:83;31082:30;-1:-1:-1;;;;;31056:23:83;31049:4;31043:11;31039:41;31036:77;31030:4;31023:91;;;30941:179;50092:103;;;;;50249:2;50242:5;50238:14;50225:28;50221:1;50215:4;50211:12;50204:50;50299:109;50404:2;50397:5;50393:14;50386:5;50299:109;:::i;:::-;50417:144;50547:13;50532;50528:1;50522:4;50518:12;50417:144;:::i;:::-;;;50606:110;50711:3;50704:5;50700:15;50693:5;50606:110;:::i;:::-;50725:148;50859:13;50844;50840:1;50834:4;50830:12;50725:148;:::i;:::-;;;50927:3;50920:5;50916:15;50903:29;50899:1;50893:4;50889:12;50882:51;50978:59;51032:3;51025:5;51021:15;51014:5;50978:59;:::i;:::-;51046:99;51131:13;51116;51112:1;51106:4;51102:12;51046:99;:::i;51156:792::-;51243:5;51272:64;51288:47;51328:6;51288:47;:::i;51272:64::-;51370:21;;;51263:73;-1:-1:-1;51410:4:83;51430:14;;;;51483:1;51479:14;;;51467:27;;51506:15;;;51503:35;;;51534:1;51531;51524:12;51503:35;51558:6;51573:369;51589:6;51584:3;51581:15;51573:369;;;51675:3;51662:17;-1:-1:-1;;;;;51698:11:83;51695:35;51692:125;;;51771:1;51800:2;51796;51789:14;51692:125;51842:57;51895:3;51881:11;51873:6;51869:24;51842:57;:::i;:::-;51830:70;;-1:-1:-1;51920:12:83;;;;51606;;51573:369;;;51577:3;;;;51156:792;;;;;:::o;51953:299::-;52125:9;52162:84;52231:14;52223:6;52216:5;52162:84;:::i;52257:491::-;52533:2;52522:9;52515:21;52496:4;52559:57;52612:2;52601:9;52597:18;52589:6;52559:57;:::i;52753:276::-;52839:6;52892:2;52880:9;52871:7;52867:23;52863:32;52860:52;;;52908:1;52905;52898:12;52860:52;52940:9;52934:16;52979:1;52972:5;52969:12;52959:40;;52995:1;52992;52985:12;53034:477;53307:2;53296:9;53289:21;53270:4;53333:54;53383:2;53372:9;53368:18;53360:6;53333:54;:::i;:::-;53435:9;53427:6;53423:22;53418:2;53407:9;53403:18;53396:50;53463:42;53498:6;53490;53463:42;:::i;53516:209::-;53554:3;-1:-1:-1;;;;;53635:2:83;53628:5;53624:14;53662:2;53653:7;53650:15;53647:41;;53668:18;;:::i;:::-;53717:1;53704:15;;53516:209;-1:-1:-1;;;53516:209:83:o;54156:757::-;54280:9;54339:4;54331:5;54315:14;54311:26;54307:37;54304:57;;;54357:1;54354;54347:12;54304:57;54385:23;;:::i;:::-;54445:5;54432:19;54460:32;54484:7;54460:32;:::i;:::-;54501:24;;54572:2;54561:14;;54548:28;-1:-1:-1;;;;;54588:30:83;;54585:50;;;54631:1;54628;54621:12;54585:50;54654:18;;54710:14;54703:4;54695:13;;54691:34;54681:62;;54739:1;54736;54729:12;54681:62;54777:100;54862:14;54857:2;54844:16;54839:2;54835;54831:11;54777:100;:::i;:::-;54772:2;54759:16;;54752:126;-1:-1:-1;54763:7:83;54156:757;-1:-1:-1;;54156:757:83:o;54918:474::-;55127:2;55116:9;55109:21;-1:-1:-1;;;;;55176:6:83;55170:13;55166:38;55161:2;55150:9;55146:18;55139:66;55090:4;55252:2;55244:6;55240:15;55234:22;55294:4;55287;55276:9;55272:20;55265:34;55316:70;55382:2;55371:9;55367:18;55353:12;55316:70;:::i;55397:2104::-;55584:5;55571:19;55599:32;55623:7;55599:32;:::i;:::-;31043:11;;-1:-1:-1;;;;;;31039:41:83;-1:-1:-1;;;;;31082:30:83;;31036:77;31023:91;;55640:60;55719:1;55757:2;55751:4;55747:13;55779:2;55824:109;55929:2;55922:5;55918:14;55911:5;55824:109;:::i;:::-;-1:-1:-1;;;55948:13:83;55945:39;55942:65;;;55987:18;;:::i;:::-;56036:10;56030:17;56075:13;56063:10;56056:33;56119:6;56104:13;56101:25;56098:920;;;56159:2;56197:6;56193:2;56189:15;56251:2;56242:7;56238:16;56230:6;56227:28;56217:62;;56259:18;;:::i;:::-;56317:13;56313:2;56309:22;56387:2;56376:9;56372:18;56357:13;56354:37;56344:71;;56395:18;;:::i;:::-;56438:1;56452:22;;;56499:17;;;56539:18;;;;56583:20;;;;;56616:392;56634:2;56627:5;56624:13;56616:392;;;56696:44;56734:5;56696:44;:::i;:::-;56757:52;56806:1;56799:5;56795:13;56757:52;:::i;:::-;56848:2;56844:1;56837:5;56833:13;56826:25;56890:2;56886:1;56879:5;56875:13;56868:25;56910:41;56947:2;56940:5;56936:14;56910:41;:::i;:::-;56991:2;56986;56979:5;56975:14;56968:26;56660:2;56653:5;56649:14;56640:23;;56616:392;;;56620:3;;;;56098:920;-1:-1:-1;2771:1:83;2764:14;;;2808:4;2795:18;;;57041:11;;57160:335;57174:13;57171:1;57168:20;57160:335;;;57231:168;57316:82;57391:6;57378:11;57316:82;:::i;:::-;57303:11;57231:168;:::i;:::-;57482:2;57465:20;;;;;57422:15;;;;57196:10;;57160:335;;;57164:3;;;;;;;55397:2104;;:::o;57506:368::-;57725:2;57714:9;57707:21;57688:4;57745:54;57795:2;57784:9;57780:18;57772:6;57745:54;:::i;:::-;57737:62;;57864:1;57860;57855:3;57851:11;57847:19;57839:6;57835:32;57830:2;57819:9;57815:18;57808:60;57506:368;;;;;:::o;58061:1360::-;58185:3;58179:10;-1:-1:-1;;;;;58204:6:83;58201:30;58198:56;;;58234:18;;:::i;:::-;58263:96;58352:6;58312:38;58344:4;58338:11;58312:38;:::i;:::-;58306:4;58263:96;:::i;:::-;58414:4;;58478:2;58467:14;;58495:1;58490:674;;;;59208:1;59225:6;59222:89;;;-1:-1:-1;59277:19:83;;;59271:26;59222:89;59337:67;59397:6;59390:5;59337:67;:::i;:::-;59331:4;59324:81;;58460:955;;58490:674;2771:1;2764:14;;;2808:4;2795:18;;-1:-1:-1;;58526:20:83;;;58655:236;58669:7;58666:1;58663:14;58655:236;;;58758:19;;;58752:26;58737:42;;58850:27;;;;58818:1;58806:14;;;;58685:19;;58655:236;;;58659:3;58919:6;58910:7;58907:19;58904:201;;;58980:19;;;58974:26;-1:-1:-1;;59063:1:83;59059:14;;;59075:3;59055:24;59051:37;59047:42;59032:58;59017:74;;58904:201;-1:-1:-1;;;;;59151:1:83;59135:14;;;59131:22;59118:36;;-1:-1:-1;58061:1360:83:o;59426:180::-;-1:-1:-1;;;;;59531:10:83;;;59543;;;59527:27;;59566:11;;;59563:37;;;59580:18;;:::i;:::-;59563:37;59426:180;;;;:::o;59611:183::-;-1:-1:-1;;;;;59730:10:83;;;59718;;;59714:27;;59753:12;;;59750:38;;;59768:18;;:::i;59799:127::-;59860:10;59855:3;59851:20;59848:1;59841:31;59891:4;59888:1;59881:15;59915:4;59912:1;59905:15;59931:191;59962:1;-1:-1:-1;;;;;60033:2:83;60030:1;60026:10;60055:3;60045:37;;60062:18;;:::i;:::-;60100:10;;60096:20;;;;;59931:191;-1:-1:-1;;59931:191:83:o;60675:271::-;60866:2;60855:9;60848:21;60829:4;60886:54;60936:2;60925:9;60921:18;60913:6;60886:54;:::i;60951:647::-;61030:6;61083:2;61071:9;61062:7;61058:23;61054:32;61051:52;;;61099:1;61096;61089:12;61051:52;61132:9;61126:16;-1:-1:-1;;;;;61157:6:83;61154:30;61151:50;;;61197:1;61194;61187:12;61151:50;61220:22;;61273:4;61265:13;;61261:27;-1:-1:-1;61251:55:83;;61302:1;61299;61292:12;61251:55;61331:2;61325:9;61356:48;61372:31;61400:2;61372:31;:::i;61356:48::-;61427:2;61420:5;61413:17;61467:7;61462:2;61457;61453;61449:11;61445:20;61442:33;61439:53;;;61488:1;61485;61478:12;61439:53;61501:67;61565:2;61560;61553:5;61549:14;61544:2;61540;61536:11;61501:67;:::i;61603:199::-;61642:1;-1:-1:-1;;;;;61713:2:83;61710:1;61706:10;61735:3;61725:37;;61742:18;;:::i;:::-;61780:10;;61776:20;;;;;61603:199;-1:-1:-1;;61603:199:83:o;61807:257::-;-1:-1:-1;;;;;61928:10:83;;;61940;;;61924:27;61971:20;;;;61878:18;62010:24;;;62000:58;;62038:18;;:::i;:::-;62000:58;;61807:257;;;;:::o;62069:120::-;62109:1;62135;62125:35;;62140:18;;:::i;:::-;-1:-1:-1;62174:9:83;;62069:120::o;62383:1097::-;62485:12;;62518:4;62506:17;;;62593:19;;-1:-1:-1;;;;;62589:44:83;62573:14;;;62566:68;62653:4;62694:21;;;62688:28;62741:2;62732:12;;62725:26;;;;62800:21;;62553:3;62544:13;;62830:20;;;62447:3;;62904:23;;;;62447:3;;62877;62868:13;;;62955:201;62969:6;62966:1;62963:13;62955:201;;;63036:13;;-1:-1:-1;;;;;63032:39:83;63018:54;;63131:15;;;;63068:1;62984:9;;;;;63094:14;;;;62955:201;;;62959:3;63204:2;63197:5;63193:14;63187:21;63165:43;;63249:3;63242:5;63238:15;63233:2;63228:3;63224:12;63217:37;63304:4;63287:14;63281:21;63277:32;63270:5;63263:47;63367:2;63351:14;63347:23;63341:30;63319:52;;63403:4;63398:2;63391:5;63387:14;63380:28;63424:50;63468:4;63461:5;63457:16;63441:14;63424:50;:::i;63485:1283::-;63668:2;63657:9;63650:21;63631:4;63706:6;63700:13;63749:4;63744:2;63733:9;63729:18;63722:32;63791:12;63785:19;63840:4;63835:2;63824:9;63820:18;63813:32;63868:76;63939:3;63928:9;63924:19;63908:14;63868:76;:::i;:::-;63854:90;;63999:2;63985:12;63981:21;63975:28;64026:2;64022:7;64094:2;64082:9;64074:6;64070:22;64066:31;64060:3;64049:9;64045:19;64038:60;64121:63;64177:6;64161:14;64121:63;:::i;:::-;64107:77;;64245:4;64231:12;64227:23;64221:30;64215:3;64204:9;64200:19;64193:59;-1:-1:-1;;;;;64318:2:83;64304:12;64300:21;64294:28;64290:53;64283:4;64272:9;64268:20;64261:83;64425:10;64420:3;64416:20;64409:3;64395:12;64391:22;64385:29;64381:56;64375:3;64364:9;64360:19;64353:85;64493:3;64479:12;64475:22;64469:29;64447:51;;64563:2;64551:9;64543:6;64539:22;64535:31;64529:3;64518:9;64514:19;64507:60;;;64587:40;64620:6;64604:14;64587:40;:::i;:::-;64576:51;;;64676:2;64668:6;64664:15;64658:22;64689:53;64736:4;64725:9;64721:20;64705:14;17687:13;17680:21;17668:34;;17617:91;64689:53;-1:-1:-1;64759:3:83;63485:1283;-1:-1:-1;;;63485:1283:83:o;64981:287::-;65110:3;65148:6;65142:13;65164:66;65223:6;65218:3;65211:4;65203:6;65199:17;65164:66;:::i", + "object": "0x60806040526004361061003f5760003560e01c806325bf0db6146100445780632f757dd114610059578063986acf381461006c578063d4e149a81461008c575b600080fd5b610057610052366004614076565b6100ac565b005b6100576100673660046140a7565b610660565b34801561007857600080fd5b506100576100873660046140a7565b61083a565b34801561009857600080fd5b506100576100a73660046140db565b6111b7565b6100b4611c3c565b600081815260016020818152604080842081516101808101835281546001600160401b031661014082019081529482018054845181870281018701865281815293979687966104479694958a95879590860194879486946101008901948794869486936101608d019392919083018282801561015957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161013b575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906101939061411c565b80601f01602080910402602001604051908101604052809291908181526020018280546101bf9061411c565b801561020c5780601f106101e15761010080835404028352916020019161020c565b820191906000526020600020905b8154815290600101906020018083116101ef57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561029d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161027f575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906102d79061411c565b80601f01602080910402602001604051908101604052809291908181526020018280546103039061411c565b80156103505780601f1061032557610100808354040283529160200191610350565b820191906000526020600020905b81548152906001019060200180831161033357829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916103ab9061411c565b80601f01602080910402602001604051908101604052809291908181526020018280546103d79061411c565b80156104245780601f106103f957610100808354040283529160200191610424565b820191906000526020600020905b81548152906001019060200180831161040757829003601f168201915b505050919092525050508152600b919091015460ff161515602090910152611c61565b60088501546040805180820182526004880180546001600160401b03168252600589018054845160208281028201810190965281815297995095975093956000959294919380860193919291908301828280156104cd57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116104af575b50505091909252505060405163089032d560e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263089032d5925061050f91600890600401614226565b600060405180830381865af415801561052c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105549190810190614328565b6000878152600160208190526040822080546001600160401b031916815592935082908290829082908290829061058d90830182613f64565b505060028201805460ff1916815560006105aa6003850182613f82565b505050506004820180546001600160401b0319168155600081816105d16005870182613f64565b505060028201805460ff1916815560006105ee6003850182613f82565b50506000600885018190556009850180546001600160601b031916905561061b9250600a85019150613f82565b505050600b01805460ff1916905561063582828686611fd4565b600c546000906106459034614423565b90508015610657576106573382612075565b50505050505050565b61066861210a565b610670611c3c565b3461067b8280614436565b604001351461069d57604051631036b5ad60e31b815260040160405180910390fd5b6106a78180614436565b6106b19080614456565b6106bb9080614456565b6106c490614534565b60405163c836244d60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9163c836244d916106fd9190600890600401614226565b602060405180830381865af415801561071a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073e919061454e565b61075b57604051638481de4960e01b815260040160405180910390fd5b60008061076f61076a846147cc565b611c61565b90925090506108356107818480614436565b6040013561078f8580614436565b61079d906020810190614456565b6107a79080614456565b6107b090614534565b60405163089032d560e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9163089032d5916107e99190600890600401614226565b600060405180830381865af4158015610806573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261082e9190810190614328565b8484611fd4565b505050565b61084261210a565b61085761085260208301836147d8565b61219a565b600b546000908152600360209081526040808320338452909152902054600f54600160401b900460ff1661089e576040516321c4e35760e21b815260040160405180910390fd5b806000036108bf57604051632ec5b44960e01b815260040160405180910390fd5b73__$33b79814e84bf6cf5e47244090b19ce5f8$__63898414756108e660208501856147f5565b6040518363ffffffff1660e01b8152600401610903929190614b41565b602060405180830381865af4158015610920573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610944919061454e565b61096157604051630bd9169f60e01b815260040160405180910390fd5b600060068161097360208601866147d8565b6001600160401b03166001600160401b03168152602001908152602001600020905060006109a3828533866121a6565b905060608115610d7c576109b6836126de565b805480602002602001604051908101604052809291908181526020016000905b82821015610d755760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015610a7c57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a5e575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610ab69061411c565b80601f0160208091040260200160405190810160405280929190818152602001828054610ae29061411c565b8015610b2f5780601f10610b0457610100808354040283529160200191610b2f565b820191906000526020600020905b815481529060010190602001808311610b1257829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015610bc057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ba2575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610bfa9061411c565b80601f0160208091040260200160405190810160405280929190818152602001828054610c269061411c565b8015610c735780601f10610c4857610100808354040283529160200191610c73565b820191906000526020600020905b815481529060010190602001808311610c5657829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191610cce9061411c565b80601f0160208091040260200160405190810160405280929190818152602001828054610cfa9061411c565b8015610d475780601f10610d1c57610100808354040283529160200191610d47565b820191906000526020600020905b815481529060010190602001808311610d2a57829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016109d6565b5050505090505b805160000361118557600080610d90612710565b915091508015611182576001600160401b0382166000908152600660205260409020610dbb816126de565b805480602002602001604051908101604052809291908181526020016000905b8282101561117a5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d01939091830182828015610e8157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e63575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610ebb9061411c565b80601f0160208091040260200160405190810160405280929190818152602001828054610ee79061411c565b8015610f345780601f10610f0957610100808354040283529160200191610f34565b820191906000526020600020905b815481529060010190602001808311610f1757829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b0316828401908152600586018054855160208281028201810190975281815296860196949593948694869360608701939091830182828015610fc557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610fa7575b5050509190925250505081526040805180820190915260028301805460ff16825260038401805460209485019484019190610fff9061411c565b80601f016020809104026020016040519081016040528092919081815260200182805461102b9061411c565b80156110785780601f1061104d57610100808354040283529160200191611078565b820191906000526020600020905b81548152906001019060200180831161105b57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916110d39061411c565b80601f01602080910402602001604051908101604052809291908181526020018280546110ff9061411c565b801561114c5780601f106111215761010080835404028352916020019161114c565b820191906000526020600020905b81548152906001019060200180831161112f57829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101610ddb565b505050509350505b50505b6040805180820182526000808252825181815260208181019094526111b09383019150905282612763565b5050505050565b600f54600160401b900460ff166111e1576040516321c4e35760e21b815260040160405180910390fd5b3361127d6111ef8380614456565b6111f890614534565b604051632cff562160e11b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__916359feac429161122e9190600401614b55565b602060405180830381865af415801561124b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126f9190614b68565b6001600160a01b031661279b565b6001600160a01b0316146112a457604051637f39132760e11b815260040160405180910390fd5b60006112af336127e2565b9150600190506003820154600160801b900460ff1660058111156112d5576112d5614b85565b146112f35760405163c18316bf60e01b815260040160405180910390fd5b61130360408301602084016147d8565b60088201546001600160401b039182169116106113335760405163fae4eadb60e01b815260040160405180910390fd5b60a082013515611a3d5760408051610120810182526006830180546001600160401b031660e083019081526007850180548551602082810282018101909752818152949593948694869361010087019390918301828280156113be57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116113a0575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156117c85760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d019390918301828280156114cf57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114b1575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906115099061411c565b80601f01602080910402602001604051908101604052809291908181526020018280546115359061411c565b80156115825780601f1061155757610100808354040283529160200191611582565b820191906000526020600020905b81548152906001019060200180831161156557829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561161357602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116115f5575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061164d9061411c565b80601f01602080910402602001604051908101604052809291908181526020018280546116799061411c565b80156116c65780601f1061169b576101008083540402835291602001916116c6565b820191906000526020600020905b8154815290600101906020018083116116a957829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916117219061411c565b80601f016020809104026020016040519081016040528092919081815260200182805461174d9061411c565b801561179a5780601f1061176f5761010080835404028352916020019161179a565b820191906000526020600020905b81548152906001019060200180831161177d57829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101611429565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b828210156118ff576000848152602090819020604080516080810182526003860290920180546001600160401b03168383019081526001820180548451818802810188019095528085529495929486949293869360608701939092909183018282801561188b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161186d575b5050505050815250508152602001600282018054806020026020016040519081016040528092919081815260200182805480156118e757602002820191906000526020600020905b8154815260200190600101908083116118d3575b505050505081525050815260200190600101906117f5565b505050508152602001600682015481526020016007820180546119219061411c565b80601f016020809104026020016040519081016040528092919081815260200182805461194d9061411c565b801561199a5780601f1061196f5761010080835404028352916020019161199a565b820191906000526020600020905b81548152906001019060200180831161197d57829003601f168201915b5050509190925250506040516339aa47fb60e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__926339aa47fb92506119d991600401614dbb565b602060405180830381865af41580156119f6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1a9190614e58565b8260a0013514611a3d576040516312232e5d60e11b815260040160405180910390fd5b6000806000611a4a61291d565b92509250925082611aa9576008805482546001600160401b0319166001600160401b03909116178255600980548391611a8891600184019190613fbc565b5050506002810180546001600160401b0319166001600160401b0384161790555b60405163445cc97560e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__9063445cc97590611ae9908490899060049060059089908301614f1c565b60006040518083038186803b158015611b0157600080fd5b505af4158015611b15573d6000803e3d6000fd5b50505050600080868060600190611b2c91906147f5565b9050905060005b81811015611b8c57611b4860608901896147f5565b82818110611b5857611b58615019565b9050602002810190611b6a9190614456565b611b749080614436565b611b8290604001358461502f565b9250600101611b33565b506003830154611ba090604089013561502f565b611baa908361502f565b91508186600201541015611bd157604051631d36ca1560e21b815260040160405180910390fd5b81866002016000828254611be59190614423565b9091555087905060068701611bfa82826159cc565b50611c2e9050611c0a8880614456565b611c1390614534565b611c2060608a018a6147f5565b611c2991615b6e565b612763565b610657338860400135612a53565b600c54341015611c5f576040516334472ad760e11b815260040160405180910390fd5b565b80516020015151604051630c133d1360e31b8152600091829173__$a0fe38a9a81205afccc10810b09a4d3f45$__90636099e89890611ca4908490600401614b55565b602060405180830381865af4158015611cc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce5919061454e565b15611d035760405163461e815d60e01b815260040160405180910390fd5b60405163c836244d60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9063c836244d90611d3d908490600890600401614226565b602060405180830381865af4158015611d5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7e919061454e565b15611d9c57604051632f3335ff60e21b815260040160405180910390fd5b835180515160405163f47ad7eb60e01b8152909160009173__$386b5c41ce93e8b832daf8008b3d30ae09$__9163f47ad7eb91611ddf9190600890600401615b7b565b602060405180830381865af4158015611dfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e209190615b8e565b905060006001826001811115611e3857611e38614b85565b03611f3957604051631ccc893360e11b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__90633999126690611e769087908790600401615baf565b600060405180830381865af4158015611e93573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ebb9190810190614328565b60405163c836244d60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9163c836244d91611ef49190600890600401614226565b602060405180830381865af4158015611f11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f35919061454e565b1590505b8015611f5d57611f4887612ab1565b50509351604001511515946000945092505050565b6000826001811115611f7157611f71614b85565b03611fbb57600e8054600890611f9690600160401b90046001600160401b0316615bd4565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b611fc487612ce3565b5060009660019650945050505050565b8115611fe557611fe5606385612075565b801561206f57604051632cff562160e11b815261206f9073__$a0fe38a9a81205afccc10810b09a4d3f45$__906359feac4290612026908790600401614b55565b602060405180830381865af4158015612043573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120679190614b68565b600c54612a53565b50505050565b804710156120965760405163356680b760e01b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146120e3576040519150601f19603f3d011682016040523d82523d6000602084013e6120e8565b606091505b505090508061083557604051633204506f60e01b815260040160405180910390fd5b604051630972932760e21b815233600482015273__$e800e3908cdbb6b1b5bd452383a17b18f7$__906325ca4c9c90602401602060405180830381865af4158015612159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217d919061454e565b611c5f57604051630a23da2b60e31b815260040160405180910390fd5b6121a381612fb5565b50565b6000806121b285615bfa565b604051630edf122560e41b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__9163edf12250916121e89190600401615c66565b602060405180830381865af4158015612205573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122299190614e58565b90506122478682868661223f60208b018b6147d8565b600d54613084565b600082815260058801602090815260408083208151808301835281546001600160401b03168152600182018054845181870281018701909552808552969850909591948685019491929184015b828210156126335760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561233a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161231c575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906123749061411c565b80601f01602080910402602001604051908101604052809291908181526020018280546123a09061411c565b80156123ed5780601f106123c2576101008083540402835291602001916123ed565b820191906000526020600020905b8154815290600101906020018083116123d057829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561247e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612460575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906124b89061411c565b80601f01602080910402602001604051908101604052809291908181526020018280546124e49061411c565b80156125315780601f1061250657610100808354040283529160200191612531565b820191906000526020600020905b81548152906001019060200180831161251457829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161258c9061411c565b80601f01602080910402602001604051908101604052809291908181526020018280546125b89061411c565b80156126055780601f106125da57610100808354040283529160200191612605565b820191906000526020600020905b8154815290600101906020018083116125e857829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101612294565b50505091525050604051632d34315760e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__91632d343157916126709190600401615c66565b602060405180830381865af415801561268d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126b1919061454e565b156126d5576000818152600587016020526040902085906126d28282615c94565b50505b50949350505050565b6002810154600090815260058201602052604081208054612707906001600160401b03166132d1565b60010192915050565b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27154600160801b90046001600160401b0316600060008051602061615c83398151915261275c83613432565b9150509091565b805160005b8181101561206f576127938484838151811061278657612786615019565b602002602001015161347f565b600101612768565b60008060006127a984613a63565b91509150816127ba57509192915050565b6000806127c683613a9f565b91509150816127d9575093949350505050565b95945050505050565b600080806001600160a01b03841661280d576040516370e4510960e01b815260040160405180910390fd5b6040805180820182526008830180546001600160401b0316825260098401805484516020828102820181019096528181526000958086019391929083018282801561288157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612863575b50505091909252505060405163aa5106cb60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__9263aa5106cb92506128c2918990600401615db9565b600060405180830381865af41580156128df573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526129079190810190614328565b905061291281613b09565b935093505050915091565b600f5460009081908190819061293d9043906001600160401b0316613c9c565b6001600160401b03808216600090815260028401602090815260409182902082518084018452815490941684526001810180548451818502810185019095528085529598509096509293869385830193929091908301828280156129ca57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116129ac575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e8989250612a0991600401614b55565b602060405180830381865af4158015612a26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a4a919061454e565b15935050909192565b80600003612a5f575050565b610835612a74836001600160a01b031661279b565b6040805160248082018690528251808303909101815260449091019091526020810180516001600160e01b0316632a7edd8f60e21b179052613cc7565b600080612abc61291d565b600e85015486516001600160401b03909116606090910152600c8501546003820180549295509093509150600090612af590849061502f565b90915550506004810180546001808201835560009283526020928390208651805180518051600c90960290930180546001600160401b0319166001600160401b039096169590951785558286015180518a979395879593948694938593612b6393850192919091019061400c565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190612b999082615de3565b50505050602083810151805180516004860180546001600160401b0319166001600160401b03909216919091178155818401518051939550909391928492612be892600589019291019061400c565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190612c1e9082615de3565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a820190612c7b9082615de3565b50505060209190910151600b909101805460ff1916911515919091179055600e8201805460019190600090612cba9084906001600160401b0316615e9c565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550505050565b8051602001515160405163089032d560e01b8152600091829173__$a0fe38a9a81205afccc10810b09a4d3f45$__9163089032d591612d289190600890600401614226565b600060405180830381865af4158015612d45573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612d6d9190810190614328565b9050600080612d7b83613b09565b9150915081612d9d57604051630e991abd60e41b815260040160405180910390fd5b60038101805486516001600160401b03909116606090910181905260019190600090612dca908490615e9c565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550846000015160400151816002016000828254612e0a919061502f565b9091555050600e810180546001808201835560009283526020928390208851805180518051600c90960290930180546001600160401b0319166001600160401b039096169590951785558286015180518c979395879593948694938593612e7893850192919091019061400c565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190612eae9082615de3565b50505050602083810151805180516004860180546001600160401b0319166001600160401b03909216919091178155818401518051939550909391928492612efd92600589019291019061400c565b505050602082810151805160028401805460ff191660ff909216919091178155918101519091906003840190612f339082615de3565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a820190612f909082615de3565b50505060209190910151600b909101805460ff19169115159190911790555050505050565b60008051602061615c83398151915280546001600160401b0390811690831611612ff257604051631f30cc6360e21b815260040160405180910390fd5b80546001600160401b03600160401b909104811690831610156130285760405163b4f68f9760e01b815260040160405180910390fd5b80546001600160401b03600160801b820481169161304f91600160401b9091041684615ec3565b6130599190615ef9565b6001600160401b0316156130805760405163b4f68f9760e01b815260040160405180910390fd5b5050565b8554600081815260038801602090815260408083206001600160a01b0389168452909152812054909160008051602061615c8339815191529160ff16156130de576040516337138f5f60e11b815260040160405180910390fd5b600081815260038a01602090815260408083206001600160a01b038b1684529091528120805460ff191660019081179091558a01805488929061312290849061502f565b9091555050600081815260048a01602090815260408083208b84529091528120805488929061315290849061502f565b9091555050600081815260048a016020908152604080832060028d01548452909152808220548a83529120548082101561318e5760028b018a90555b600061319a8c88613cd8565b905060038160038111156131b0576131b0614b85565b03613245576131be88613432565b156131cc57600195506132c2565b60405163199b9ca560e01b81526001860160048201526001600160401b038916602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__9063199b9ca59060440160006040518083038186803b15801561322857600080fd5b505af415801561323c573d6000803e3d6000fd5b505050506132c2565b600281600381111561325957613259614b85565b036132c257604051635a27a53960e11b8152600481018d905273__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063b44f4a729060240160006040518083038186803b1580156132a957600080fd5b505af41580156132bd573d6000803e3d6000fd5b505050505b50505050509695505050505050565b60008051602061615c8339815191526132e982613432565b6132f1575050565b604051634953836d60e11b81526001820160048201526001600160401b038316602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__906392a706da90604401602060405180830381865af4158015613352573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613376919061454e565b1561339d5760018101546001600160401b03838116600160801b909204161461339d575050565b6040516394ecccfd60e01b81526001820160048201526001600160401b038316602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__906394ecccfd9060440160006040518083038186803b1580156133f957600080fd5b505af415801561340d573d6000803e3d6000fd5b505082546001600160401b0319166001600160401b0394909416939093179091555050565b60008051602061615c833981519152805460009190613463906001600160401b03600160801b820481169116615e9c565b6001600160401b0316836001600160401b031614915050919050565b80516020015151604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__91636099e898916134bc9190600401614b55565b602060405180830381865af41580156134d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134fd919061454e565b1561351b5760405163461e815d60e01b815260040160405180910390fd5b8051608001516001600160e01b031916613555578051604001514710156135555760405163569d45cf60e11b815260040160405180910390fd5b805160405163f47ad7eb60e01b815260009173__$386b5c41ce93e8b832daf8008b3d30ae09$__9163f47ad7eb9161359291600890600401615b7b565b602060405180830381865af41580156135af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135d39190615b8e565b8251602001515160405163c836244d60e01b815291925073__$a0fe38a9a81205afccc10810b09a4d3f45$__9163c836244d9161361591600890600401614226565b602060405180830381865af4158015613632573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613656919061454e565b156138c457600181600181111561366f5761366f614b85565b036137a957604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__90636099e898906136ab908690600401614b55565b602060405180830381865af41580156136c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136ec919061454e565b6137a9576000806136fc85613b09565b915091508161371e57604051630e991abd60e41b815260040160405180910390fd5b8351606001516003820154600160401b90046001600160401b0390811691161461375b5760405163a57cadff60e01b815260040160405180910390fd5b60018160030160088282829054906101000a90046001600160401b03166137829190615e9c565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555050505b60008160018111156137bd576137bd614b85565b0361384857815160600151600e54600160401b90046001600160401b039081169116146137fd5760405163a57cadff60e01b815260040160405180910390fd5b600e805460019190600890613823908490600160401b90046001600160401b0316615e9c565b92506101000a8154816001600160401b0302191690836001600160401b031602179055505b604051635c46fefb60e11b815273__$33b79814e84bf6cf5e47244090b19ce5f8$__9063b88dfdf69061387f908590600401615f1f565b600060405180830381865af415801561389c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261206f9190810190615f32565b60006138cf83613e06565b6000818152600160208181526040909220865180518051805184546001600160401b0319166001600160401b039091161784558086015180519798508a9794969395879593948694859361392793850192019061400c565b505050602082810151805160028401805460ff191660ff90921691909117815591810151909190600384019061395d9082615de3565b50505050602083810151805180516004860180546001600160401b0319166001600160401b039092169190911781558184015180519395509093919284926139ac92600589019291019061400c565b505050602082810151805160028401805460ff191660ff9092169190911781559181015190919060038401906139e29082615de3565b5050505060408301516008830155506060820151600982018054608085015160e01c600160401b026001600160601b03199091166001600160401b039093169290921791909117905560a0820151600a820190613a3f9082615de3565b50505060209190910151600b909101805460ff191691151591909117905550505050565b60008073ffffffffffffffffffffffff0000000000000000831660ff60981b8103613a9957600192506001600160401b03841691505b50915091565b600080826000526016600a602060006002607f60991b015afa9150600051806001600160a01b031691508060a01c61ffff16905061040a8114613ae55760009250600091505b50811580613af457503d601614155b15613b0457506000928392509050565b915091565b6040516390ba52cf60e01b8152600090819081908190819073__$a0fe38a9a81205afccc10810b09a4d3f45$__906390ba52cf90613b4b908990600401614b55565b602060405180830381865af4158015613b68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b8c9190614e58565b81526020808201929092526040908101600020815180830183526004820180546001600160401b031682526005830180548551818802810188019096528086529397509194909385820193909291830182828015613c1357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613bf5575b505050919092525050604051630c133d1360e31b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e8989250613c5291600401614b55565b602060405180830381865af4158015613c6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c93919061454e565b15925050915091565b600081613ca98185615f9f565b613cb4906001615e9c565b613cbe9190615fc5565b90505b92915050565b6060613cbe83836000613e36613e4f565b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e2735460009060008051602061615c833981519152908290606490613d1f9060ff168661504f565b613d299190615ff0565b604051637d2ef4e560e11b81526004810187905290915060009073__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063fa5de9ca90602401602060405180830381865af4158015613d7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613da39190614e58565b905081866001015411613dbc5760009350505050613cc1565b81811115613dd05760039350505050613cc1565b6001860154613ddf9086614423565b613de98284614423565b10613dfa5760029350505050613cc1565b50600195945050505050565b600081604051602001613e199190616097565b604051602081830303815290604052805190602001209050919050565b604051630a12f52160e11b815260040160405180910390fd5b606082471015613e795760405163cd78605960e01b81523060048201526024015b60405180910390fd5b600080866001600160a01b03168587604051613e959190616149565b60006040518083038185875af1925050503d8060008114613ed2576040519150601f19603f3d011682016040523d82523d6000602084013e613ed7565b606091505b5091509150613ee887838387613ef5565b925050505b949350505050565b60608315613f43578251600003613f3c57846001600160a01b03163b600003613f3c57604051639996b31560e01b81526001600160a01b0386166004820152602401613e70565b5081613eed565b613eed8383815115613f585781518083602001fd5b613e368163ffffffff16565b50805460008255906000526020600020908101906121a39190614061565b508054613f8e9061411c565b6000825580601f10613f9e575050565b601f0160209004906000526020600020908101906121a39190614061565b828054828255906000526020600020908101928215613ffc5760005260206000209182015b82811115613ffc578254825591600101919060010190613fe1565b50614008929150614061565b5090565b828054828255906000526020600020908101928215613ffc579160200282015b82811115613ffc57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019061402c565b5b808211156140085760008155600101614062565b60006020828403121561408857600080fd5b5035919050565b6000604082840312156140a157600080fd5b50919050565b6000602082840312156140b957600080fd5b81356001600160401b038111156140cf57600080fd5b613eed8482850161408f565b6000602082840312156140ed57600080fd5b81356001600160401b0381111561410357600080fd5b820160e0818503121561411557600080fd5b9392505050565b600181811c9082168061413057607f821691505b6020821081036140a157634e487b7160e01b600052602260045260246000fd5b6000604083016001600160401b0383511684526020808401516040828701528281518085526060880191508383019450600092505b808310156141ae5784516001600160a01b03168252938301936001929092019190830190614185565b509695505050505050565b6000604083016001600160401b0383541684526001808401602060408188015283825480865260608901915083600052826000209550600093505b8084101561421a5785546001600160a01b031682529484019492840192908201906141f4565b50979650505050505050565b6040815260006142396040830185614150565b82810360208401526127d981856141b9565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156142835761428361424b565b60405290565b60405160c081016001600160401b03811182821017156142835761428361424b565b604051601f8201601f191681016001600160401b03811182821017156142d3576142d361424b565b604052919050565b6001600160401b03811681146121a357600080fd5b60006001600160401b038211156143095761430961424b565b5060051b60200190565b6001600160a01b03811681146121a357600080fd5b6000602080838503121561433b57600080fd5b82516001600160401b038082111561435257600080fd5b908401906040828703121561436657600080fd5b61436e614261565b8251614379816142db565b8152828401518281111561438c57600080fd5b80840193505086601f8401126143a157600080fd5b825191506143b66143b1836142f0565b6142ab565b82815260059290921b830184019184810190888411156143d557600080fd5b938501935b838510156143fc5784516143ed81614313565b825293850193908501906143da565b948201949094529695505050505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115613cc157613cc161440d565b6000823560be1983360301811261444c57600080fd5b9190910192915050565b60008235603e1983360301811261444c57600080fd5b8035614477816142db565b919050565b60006040828403121561448e57600080fd5b614496614261565b905081356144a3816142db565b81526020828101356001600160401b038111156144bf57600080fd5b8301601f810185136144d057600080fd5b80356144de6143b1826142f0565b81815260059190911b820183019083810190878311156144fd57600080fd5b928401925b8284101561452457833561451581614313565b82529284019290840190614502565b8085870152505050505092915050565b6000613cc1368361447c565b80151581146121a357600080fd5b60006020828403121561456057600080fd5b815161411581614540565b60ff811681146121a357600080fd5b60006001600160401b038211156145935761459361424b565b50601f01601f191660200190565b600082601f8301126145b257600080fd5b81356145c06143b18261457a565b8181528460208386010111156145d557600080fd5b816020850160208301376000918101602001919091529392505050565b60006040828403121561460457600080fd5b61460c614261565b905081356001600160401b038082111561462557600080fd5b6146318583860161447c565b8352602084013591508082111561464757600080fd5b908301906040828603121561465b57600080fd5b614663614261565b823561466e8161456b565b815260208301358281111561468257600080fd5b61468e878286016145a1565b60208301525080602085015250505092915050565b6001600160e01b0319811681146121a357600080fd5b8035614477816146a3565b803561447781614540565b6000604082840312156146e157600080fd5b6146e9614261565b905081356001600160401b038082111561470257600080fd5b9083019060c0828603121561471657600080fd5b61471e614289565b82358281111561472d57600080fd5b614739878286016145f2565b82525060208301358281111561474e57600080fd5b61475a878286016145f2565b602083015250604083013560408201526147766060840161446c565b6060820152614787608084016146b9565b608082015260a08301358281111561479e57600080fd5b6147aa878286016145a1565b60a0830152508352506147c19050602083016146c4565b602082015292915050565b6000613cc136836146cf565b6000602082840312156147ea57600080fd5b8135614115816142db565b6000808335601e1984360301811261480c57600080fd5b8301803591506001600160401b0382111561482657600080fd5b6020019150600581901b360382131561483e57600080fd5b9250929050565b60008235603e1983360301811261485b57600080fd5b90910192915050565b6000808335601e1984360301811261487b57600080fd5b83016020810192503590506001600160401b0381111561489a57600080fd5b8060051b360382131561483e57600080fd5b60006040830182356148bd816142db565b6001600160401b0316845260206148d684820185614864565b6040878401529283905291600090606087015b818310156149195784356148fc81614313565b6001600160a01b03168152938301936001929092019183016148e9565b979650505050505050565b6000808335601e1984360301811261493b57600080fd5b83016020810192503590506001600160401b0381111561495a57600080fd5b80360382131561483e57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600061499e8283614845565b604084526149af60408501826148ac565b90506149be6020840184614845565b848203602086015280356149d18161456b565b60ff1682526149e36020820182614924565b9150604060208401526149fa604084018383614969565b9695505050505050565b81835260006020808501808196508560051b81019150846000805b88811015614b33578385038a52614a368389614845565b6040813560be19833603018112614a4b578485fd5b8188528201614a5a8180614845565b60c080848b0152614a6f6101008b0183614992565b9150614a7d8b840184614845565b603f196060818d860301818e0152614a958584614992565b94506080925086860135838e015280860135965050614ab3866142db565b60a06001600160401b038716818e0152828601359650614ad2876146a3565b6001600160e01b031987168d850152614aed86820187614924565b9750955050808c85030160e08d0152505050614b0a818484614969565b92505050614b198883016146c4565b151596880196909652509885019891850191600101614a1f565b509298975050505050505050565b602081526000613eed602083018486614a04565b602081526000613cbe6020830184614150565b600060208284031215614b7a57600080fd5b815161411581614313565b634e487b7160e01b600052602160045260246000fd5b60005b83811015614bb6578181015183820152602001614b9e565b50506000910152565b60008151808452614bd7816020860160208601614b9b565b601f01601f19169290920160200192915050565b6000815160408452614c006040850182614150565b90506020830151848203602086015260ff815116825260208101519050604060208301526127d96040830182614bbf565b6000815160c08452614c4660c0850182614beb565b905060208301518482036020860152614c5f8282614beb565b915050604083015160408501526001600160401b03606084015116606085015263ffffffff60e01b608084015116608085015260a083015184820360a08601526127d98282614bbf565b6000815160408452614cbe6040850182614c31565b6020938401511515949093019390935250919050565b600081518084526020808501808196508360051b8101915082860160005b85811015614d1c578284038952614d0a848351614ca9565b98850198935090840190600101614cf2565b5091979650505050505050565b600081518084526020808501808196508360051b810191508286016000805b86811015614b33578385038a52825160408151818852614d6a82890182614150565b92890151888403898b01528051808552908a01938693508a0191505b80831015614da65783518252928901926001929092019190890190614d86565b509b88019b9650505091850191600101614d48565b602081526000825160e06020840152614dd8610100840182614150565b90506001600160401b036020850151166040840152604084015160608401526060840151601f1980858403016080860152614e138383614cd4565b925060808601519150808584030160a0860152614e308383614d29565b925060a086015160c086015260c08601519150808584030160e0860152506127d98282614bbf565b600060208284031215614e6a57600080fd5b5051919050565b81835260006020808501808196506005915085821b8101856000805b89811015614f0d578484038b52614ea4838a614845565b6040614eb08283614845565b818752614ebf828801826148ac565b915050614ece89830183614864565b8783038b89015280835292506001600160fb1b03831115614eed578485fd5b91881b918281838c0137509b88019b018701935091860191600101614e8d565b50919998505050505050505050565b85815260a060208201526000614f328687614845565b60e060a0840152614f476101808401826148ac565b90506020870135614f57816142db565b6001600160401b031660c0840152604087013560e0840152614f7c6060880188614864565b609f198086850301610100870152614f95848385614a04565b9350614fa460808b018b614864565b935091508086850301610120870152614fbe848484614e71565b935060a08a0135610140870152614fd860c08b018b614924565b93509150808685030161016087015250614ff3838383614969565b93505050508460408301528360608301526149fa60808301846001600160401b03169052565b634e487b7160e01b600052603260045260246000fd5b80820180821115613cc157613cc161440d565b60008135613cc1816142db565b8082028115828204841417613cc157613cc161440d565b5b818110156130805760008155600101615067565b80546000825580156130805781600052602060002061083582820182615066565b600160401b8211156150b0576150b061424b565b8054828255808310156108355781600052602060002061206f828201858301615066565b600081556121a36001820161507b565b600019600383901b1c191660019190911b1790565b615103815461411c565b801561308057601f81116001811461511d57505060009055565b82600052602060002061513b601f840160051c820160018301615066565b60008085559055505050565b600081556151576001820161507b565b600060028201556121a3600382016150f9565b6000808335601e1984360301811261518157600080fd5b8301803591506001600160401b0382111561519b57600080fd5b60200191503681900382131561483e57600080fd5b601f82111561083557806000526020600020601f840160051c810160208510156151d75750805b6111b0601f850160051c830182615066565b6001600160401b038311156152005761520061424b565b6152148361520e835461411c565b836151b0565b6000601f84116001811461524257600085156152305750838201355b61523a86826150e4565b8455506111b0565b600083815260209020601f19861690835b828110156152735786850135825560209485019460019092019101615253565b50868210156152905760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6152ac8283614456565b80356152b7816142db565b82546001600160401b0319166001600160401b03821617835550600180830160206152e4818501856147f5565b94506001600160401b03808611156152fe576152fe61424b565b615308868561509c565b600093845282842093805b8781101561533557833561532681614313565b86820155928401928601615313565b50600288019650615348848a018a614456565b9450843592506153578361456b565b865460ff191660ff84161790965560038701956153768585018661516a565b955092508185111561538a5761538a61424b565b61539e85615398895461411c565b896151b0565b809150601f8511600181146153cc578186156153ba5750838301355b6153c487826150e4565b895550615421565b600088815260209020601f19871690835b828110156153fa57868601358255948701949089019087016153dd565b50878210156154175760001960f88960031b161c19858701351681555b50508686881b0188555b50505050505050505050565b60008135613cc1816146a3565b60008135613cc181614540565b813560be1983360301811261545b57600080fd5b82016154678180614456565b6154718182614456565b803561547c816142db565b84546001600160401b0319166001600160401b03821617855550600180850160206154a9818501856147f5565b94506001600160401b03808611156154c3576154c361424b565b6154cd868561509c565b600093845282842093805b878110156154fa5783356154eb81614313565b868201559284019286016154d8565b5060028a01965061550d84890189614456565b97508735945061551c8561456b565b865460ff191660ff861617909655600389019561553b8885018961516a565b985094508188111561554f5761554f61424b565b61555d88615398895461411c565b809250601f88116001811461558d57819250881561557c578386013592505b61558689846150e4565b88556155e2565b600088815260209020601f198a169350825b848110156155bc578786013582559486019490880190860161559f565b50898410156155d95760001960f88b60031b161c19858801351681555b508689881b0188555b505050506155fe6155f582880188614456565b600489016152a2565b6040860135600888015560098701945061563a61561d60608801615042565b86546001600160401b0319166001600160401b0391909116178655565b6156736156496080880161542d565b86546bffffffff0000000000000000191660a09190911c6bffffffff000000000000000016178655565b61568060a087018761516a565b965094506156928686600a8a016151e9565b6156b96156a0828a0161543a565b600b890160ff1981541660ff8315151681178255505050565b5050505050505050565b600160401b8311156156d7576156d761424b565b80548382558084101561576b57600c81810281810483146156fa576156fa61440d565b858202828104871461570e5761570e61440d565b6000858152602081209283019291909101905b828210156157665761573282615147565b61573e60048301615147565b806008830155806009830155615756600a83016150f9565b80600b8301558382019150615721565b505050505b5060008181526020812083915b858110156157a95761579361578d8487614456565b83615447565b60209290920191600c9190910190600101615778565b505050505050565b80546000808355811561083557828152602081208281015b808210156111b0578282556001820191506157c9565b600160401b8211156157f3576157f361424b565b805482825580831015610835576000828152602081208481019083015b808210156157a957828255600182019150615810565b6158308283614456565b803561583b816142db565b82546001600160401b0319166001600160401b0382161783555060018083016020615868818501856147f5565b94506001600160401b03808611156158825761588261424b565b61588c868561509c565b600093845282842093805b878110156158b95783356158aa81614313565b86820155928401928601615897565b506002880196506158cc848a018a6147f5565b95509250818511156158e0576158e061424b565b6158ea85886157df565b95865250818520945b838110156156b9578135868201559082019084016158f3565b600160401b8311156159205761592061424b565b80548382558084101561598e57600381810281810483146159435761594361440d565b85820282810487146159575761595761440d565b60008581526020902091820191015b8181101561598a57615977816150d4565b615983600282016157b1565b8201615966565b5050505b5060008181526020812083915b858110156157a9576159b66159b08487614456565b83615826565b602092909201916003919091019060010161599b565b6159d68283614456565b80356159e1816142db565b82546001600160401b0319166001600160401b0382161783555060018083016020615a0e818501856147f5565b94506001600160401b03851115615a2757615a2761424b565b615a31858461509c565b6000928352818320925b85811015615a5d578135615a4e81614313565b84820155908201908401615a3b565b5050615a8e615a6d828801615042565b600287016001600160401b0382166001600160401b03198254161781555050565b5050505060408201356003820155615aa960608301836147f5565b615ab78183600486016156c3565b5050615ac660808301836147f5565b615ad481836005860161590c565b505060a08201356006820155615aed60c083018361516a565b61206f8183600786016151e9565b6000615b096143b1846142f0565b8381529050602080820190600585901b840186811115615b2857600080fd5b845b81811015615b635780356001600160401b03811115615b495760008081fd5b615b55898289016146cf565b855250928201928201615b2a565b505050509392505050565b6000613cbe368484615afb565b6040815260006142396040830185614c31565b600060208284031215615ba057600080fd5b81516002811061411557600080fd5b604081526000615bc26040830185614150565b82810360208401526127d98185614150565b60006001600160401b03808316818103615bf057615bf061440d565b6001019392505050565b600060408236031215615c0c57600080fd5b615c14614261565b8235615c1f816142db565b815260208301356001600160401b03811115615c3a57600080fd5b830136601f820112615c4b57600080fd5b615c5a36823560208401615afb565b60208301525092915050565b602081526001600160401b03825116602082015260006020830151604080840152613eed6060840182614cd4565b8135615c9f816142db565b81546001600160401b0319166001600160401b0382161782555060018082016020615ccc818601866147f5565b600160401b811115615ce057615ce061424b565b835481855580821015615d7357600c8181028181048314615d0357615d0361440d565b8382028281048514615d1757615d1761440d565b60008881528781209283019291909101905b82821015615d6e57615d3a82615147565b615d4660048301615147565b806008830155806009830155615d5e600a83016150f9565b80600b8301558382019150615d29565b505050505b506000938452602084209382905b82811015615dae57615d9c615d968386614456565b87615447565b600c9590950194908401908601615d81565b505050505050505050565b604081526000615dcc6040830185614150565b905060018060a01b03831660208301529392505050565b81516001600160401b03811115615dfc57615dfc61424b565b615e1081615e0a845461411c565b846151b0565b602080601f831160018114615e3f5760008415615e2d5750858301515b615e3785826150e4565b8655506157a9565b600085815260208120601f198616915b82811015615e6e57888601518255948401946001909101908401615e4f565b5085821015615e8c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160401b03818116838216019080821115615ebc57615ebc61440d565b5092915050565b6001600160401b03828116828216039080821115615ebc57615ebc61440d565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b0380841680615f1357615f13615ee3565b92169190910692915050565b602081526000613cbe6020830184614ca9565b600060208284031215615f4457600080fd5b81516001600160401b03811115615f5a57600080fd5b8201601f81018413615f6b57600080fd5b8051615f796143b18261457a565b818152856020838501011115615f8e57600080fd5b6127d9826020830160208601614b9b565b60006001600160401b0380841680615fb957615fb9615ee3565b92169190910492915050565b6001600160401b03818116838216028082169190828114615fe857615fe861440d565b505092915050565b600082615fff57615fff615ee3565b500490565b8051604080845281516001600160401b031684820152602091820151606085019190915280516080850181905260009291820191839160a08701905b808410156160695784516001600160a01b03168252938201936001939093019290820190616040565b508186015193508681038288015260ff84511681528184015193506040828201526149196040820185614bbf565b602081526000825160406020840152805160c060608501526160bd610120850182616004565b90506020820151605f19808684030160808701526160db8383616004565b9250604084015160a08701526001600160401b0360608501511660c087015263ffffffff60e01b60808501511660e087015260a084015193508086840301610100870152505061612b8183614bbf565b9150506020840151616141604085018215159052565b509392505050565b6000825161444c818460208701614b9b56fe283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e270a2646970667358221220e4d93e06942e0372e3e225f5a5bed5ea268125a45a170e8906395b9afeb23a4b64736f6c63430008130033", + "sourceMap": "1458:13897:36:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7442:874;;;;;;:::i;:::-;;:::i;:::-;;6038:1264;;;;;;:::i;:::-;;:::i;4141:1750::-;;;;;;;;;;-1:-1:-1;4141:1750:36;;;;;:::i;:::-;;:::i;1945:2052::-;;;;;;;;;;-1:-1:-1;1945:2052:36;;;;;:::i;:::-;;:::i;7442:874::-;4870:9:51;:7;:9::i;:::-;7511:25:36::1;7539:17:::0;;;:9:::1;:17;::::0;;;;;;;7617:29;;;;;;;;;-1:-1:-1;;;;;7617:29:36::1;::::0;;;;;;;;::::1;::::0;;;;;;::::1;::::0;;;;;;;;;7539:17;;7511:25;;;7617:29:::1;::::0;;;7539:17;;7617:29;;;;::::1;::::0;7539:17;;7617:29;;;;;;7539:17;;7617:29;;7539:17;;7617:29;;;;;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;7617:29:36::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;;;7617:29:36;;;;-1:-1:-1;;;7617:29:36;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;;::::0;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;7617:29:36;;;;-1:-1:-1;;;7617:29:36;;-1:-1:-1;7617:29:36;;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;7617:29:36::1;::::0;;::::1;::::0;;;;;;;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;;;::::1;::::0;;;;;;;;;;;;;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;7617:29:36::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;;;7617:29:36;;;;-1:-1:-1;;;7617:29:36;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;;::::0;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;7617:29:36;;;;-1:-1:-1;;;7617:29:36;;-1:-1:-1;7617:29:36;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;7617:29:36;::::1;::::0;;;;-1:-1:-1;;;7617:29:36;::::1;;;-1:-1:-1::0;;;;;;7617:29:36::1;::::0;;;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;7617:29:36;;;;-1:-1:-1;;;7617:29:36;;::::1;::::0;;;::::1;::::0;::::1;;;;;::::0;;::::1;::::0;:19:::1;:29::i;:::-;7924:22;::::0;::::1;::::0;7985:33:::1;::::0;;;;::::1;::::0;;:19:::1;::::0;::::1;:33:::0;;-1:-1:-1;;;;;7985:33:36::1;::::0;;;;;;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;7567:79;;-1:-1:-1;7567:79:36;;-1:-1:-1;7924:22:36;;7912:9:::1;::::0;7985:33;;:19;;:33;;::::1;::::0;;;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;7985:33:36::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;;;7985:33:36;;;;-1:-1:-1;;7985:48:36::1;::::0;-1:-1:-1;;;7985:48:36;;:33:::1;::::0;::::1;::::0;-1:-1:-1;7985:48:36::1;::::0;8019:13:::1;::::0;7985:48:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;7985:48:36::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;8050:1;:17:::0;;;:9:::1;:17;::::0;;;;;;8043:24;;-1:-1:-1;;;;;;8043:24:36::1;::::0;;7956:77;;-1:-1:-1;8050:17:36;;:1;;:17;;:1;;:17;;:1;;8043:24:::1;::::0;;::::1;8050:1:::0;8043:24:::1;:::i;:::-;-1:-1:-1::0;;8043:24:36::1;::::0;::::1;::::0;;-1:-1:-1;;8043:24:36::1;::::0;;::::1;;::::0;;;;::::1;:::i;:::-;-1:-1:-1::0;;;;8043:24:36::1;::::0;::::1;::::0;;-1:-1:-1;;;;;;8043:24:36::1;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;:::i;:::-;-1:-1:-1::0;;8043:24:36::1;::::0;::::1;::::0;;-1:-1:-1;;8043:24:36::1;::::0;;::::1;;::::0;;;;::::1;:::i;:::-;-1:-1:-1::0;;8043:24:36::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;;8043:24:36;;;::::1;::::0;-1:-1:-1;8043:24:36::1;::::0;::::1;::::0;-1:-1:-1;8043:24:36::1;:::i;:::-;-1:-1:-1::0;;;8043:24:36::1;;::::0;;-1:-1:-1;;8043:24:36::1;::::0;;8078:72:::1;8099:1:::0;8102:10;8114;8126:23;8078:20:::1;:72::i;:::-;8196:13;::::0;8161:20:::1;::::0;8184:25:::1;::::0;:9:::1;:25;:::i;:::-;8161:48:::0;-1:-1:-1;8224:16:36;;8220:90:::1;;8256:43;8264:10;8286:12:::0;8256:29:::1;:43::i;:::-;7501:815;;;;;;7442:874:::0;:::o;6038:1264::-;4724:15:51;:13;:15::i;:::-;4870:9:::1;:7;:9::i;:::-;6603::36::2;6577:16;:8:::0;;:16:::2;:::i;:::-;:22;;;:35;6573:89;;6635:16;;-1:-1:-1::0;;;6635:16:36::2;;;;;;;;;;;6573:89;6843:16;:8:::0;;:16:::2;:::i;:::-;:21;::::0;;::::2;:::i;:::-;:30;::::0;;::::2;:::i;:::-;:37;;;:::i;:::-;:52;::::0;-1:-1:-1;;;6843:52:36;;:37:::2;::::0;::::2;::::0;:52:::2;::::0;:37;6881:13:::2;::::0;6843:52:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6838:120;;6918:29;;-1:-1:-1::0;;;6918:29:36::2;;;;;;;;;;;6838:120;7017:15;::::0;7066:29:::2;;7086:8:::0;7066:29:::2;:::i;:::-;:19;:29::i;:::-;7016:79:::0;;-1:-1:-1;7016:79:36;-1:-1:-1;7106:189:36::2;7140:16;:8:::0;;:16:::2;:::i;:::-;:22;;;7176:16;:8:::0;;:16:::2;:::i;:::-;:19;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;:28;::::0;;::::2;:::i;:::-;:33;;;:::i;:::-;:48;::::0;-1:-1:-1;;;7176:48:36;;:33:::2;::::0;::::2;::::0;:48:::2;::::0;:33;7210:13:::2;::::0;7176:48:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;::::0;;::::2;-1:-1:-1::0;;7176:48:36::2;::::0;::::2;;::::0;::::2;::::0;;;::::2;::::0;::::2;:::i;:::-;7238:10;7262:23;7106:20;:189::i;:::-;6129:1173;;6038:1264:::0;:::o;4141:1750::-;4724:15:51;:13;:15::i;:::-;4304:47:36::1;4334:16;;::::0;::::1;:10:::0;:16:::1;:::i;:::-;4304:29;:47::i;:::-;4403:16;::::0;4362:23:::1;4388:32:::0;;;:14:::1;:32;::::0;;;;;;;4421:10:::1;4388:44:::0;;;;;;;;4448:13:::1;::::0;-1:-1:-1;;;4448:13:36;::::1;;;4443:68;;4484:16;;-1:-1:-1::0;;;4484:16:36::1;;;;;;;;;;;4443:68;4524:15;4543:1;4524:20:::0;4520:72:::1;;4567:14;;-1:-1:-1::0;;;4567:14:36::1;;;;;;;;;;;4520:72;4606:14;:23;4630:22;;::::0;::::1;:10:::0;:22:::1;:::i;:::-;4606:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4601:105;;4676:19;;-1:-1:-1::0;;;4676:19:36::1;;;;;;;;;;;4601:105;4716:49;4768:22;4716:49:::0;4791:16:::1;;::::0;::::1;:10:::0;:16:::1;:::i;:::-;-1:-1:-1::0;;;;;4768:40:36::1;-1:-1:-1::0;;;;;4768:40:36::1;;;;;;;;;;;;4716:92;;4846:22;4871:75;4890:14;4906:10;4918;4930:15;4871:18;:75::i;:::-;4846:100;;5014:29;5058:17;5054:110;;;5105:48;5138:14;5105:32;:48::i;:::-;5091:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;;::::1;::::0;;;;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;;;5091:62:36::1;::::0;;;;;;;;::::1;::::0;;;;;;::::1;::::0;;;;;;;;;;;;;;;;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;5091:62:36::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;;;5091:62:36;;;;-1:-1:-1;;;5091:62:36;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;;::::0;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;5091:62:36;;;;-1:-1:-1;;;5091:62:36;;-1:-1:-1;5091:62:36;;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;5091:62:36::1;::::0;;::::1;::::0;;;;;;;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;;;::::1;::::0;;;;;;;;;;;;;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;5091:62:36::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;;;5091:62:36;;;;-1:-1:-1;;;5091:62:36;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;;::::0;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;5091:62:36;;;;-1:-1:-1;;;5091:62:36;;-1:-1:-1;5091:62:36;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;5091:62:36;::::1;::::0;;;;-1:-1:-1;;;5091:62:36;::::1;;;-1:-1:-1::0;;;;;;5091:62:36::1;::::0;;;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;5091:62:36;;;;-1:-1:-1;;;5091:62:36;;::::1;::::0;;;::::1;::::0;::::1;;;;;::::0;;::::1;::::0;;;;;;;;::::1;::::0;::::1;;;;;;;;;;5054:110;5325:11;:18;5347:1;5325:23:::0;5321:397:::1;;5365:26;5393:22:::0;5419:34:::1;:32;:34::i;:::-;5364:89;;;;5472:17;5468:240;;;-1:-1:-1::0;;;;;5565:43:36;::::1;5509:53;5565:43:::0;;;:22:::1;:43;::::0;;;;5641:52:::1;5565:43:::0;5641:32:::1;:52::i;:::-;5627:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;;::::1;::::0;;;;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;;;5627:66:36::1;::::0;;;;;;;;::::1;::::0;;;;;;::::1;::::0;;;;;;;;;;;;;;;;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;5627:66:36::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;;;5627:66:36;;;;-1:-1:-1;;;5627:66:36;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;;::::0;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;5627:66:36;;;;-1:-1:-1;;;5627:66:36;;-1:-1:-1;5627:66:36;;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;5627:66:36::1;::::0;;::::1;::::0;;;;;;;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;;;::::1;::::0;;;;;;;;;;;;;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;5627:66:36::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;-1:-1:-1::0;;;5627:66:36;;;;-1:-1:-1;;;5627:66:36;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;;::::0;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;5627:66:36;;;;-1:-1:-1;;;5627:66:36;;-1:-1:-1;5627:66:36;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;5627:66:36;::::1;::::0;;;;-1:-1:-1;;;5627:66:36;::::1;;;-1:-1:-1::0;;;;;;5627:66:36::1;::::0;;;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;5627:66:36;;;;-1:-1:-1;;;5627:66:36;;::::1;::::0;;;::::1;::::0;::::1;;;;;::::0;;::::1;::::0;;;;;;;;::::1;::::0;::::1;;;;;;;;;;5491:217;5468:240;5350:368;;5321:397;5841:29;::::0;;;;::::1;::::0;;-1:-1:-1;5841:29:36;;;5853:16;;;;;5841:29:::1;5853:16:::0;;::::1;::::0;;;5826:58:::1;::::0;5841:29;::::1;::::0;-1:-1:-1;5841:29:36;;5872:11;5826:14:::1;:58::i;:::-;4235:1656;;;;4141:1750:::0;:::o;1945:2052::-;2031:13;;-1:-1:-1;;;2031:13:36;;;;2026:68;;2067:16;;-1:-1:-1;;;2067:16:36;;;;;;;;;;;2026:68;2147:10;2107:36;:13;:6;;:13;:::i;:::-;:22;;;:::i;:::-;:24;;-1:-1:-1;;;2107:24:36;;:22;;;;:24;;:22;:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2107:34:36;;:36::i;:::-;-1:-1:-1;;;;;2107:50:36;;2103:113;;2180:25;;-1:-1:-1;;;2180:25:36;;;;;;;;;;;2103:113;2280:21;2305:32;2326:10;2305:20;:32::i;:::-;2277:60;-1:-1:-1;2368:13:36;;-1:-1:-1;2351:13:36;;;;-1:-1:-1;;;2351:13:36;;;;:30;;;;;;;;:::i;:::-;;2347:85;;2404:17;;-1:-1:-1;;;2404:17:36;;;;;;;;;;;2347:85;2476:12;;;;;;;;:::i;:::-;2445:27;;;;-1:-1:-1;;;;;2445:43:36;;;:27;;:43;2441:105;;2511:24;;-1:-1:-1;;;2511:24:36;;;;;;;;;;;2441:105;2559:15;;;;:29;2555:182;;2627:28;;;;;;;;:21;;;:28;;-1:-1:-1;;;;;2627:28:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:21;;:28;;:21;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2627:28:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2627:28:36;-1:-1:-1;;;;;2627:28:36;-1:-1:-1;;;;;2627:28:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2627:28:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2627:28:36;;;;;;;;;;;;;;;;-1:-1:-1;;;2627:28:36;;;;-1:-1:-1;;;2627:28:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2627:28:36;;;;-1:-1:-1;;;2627:28:36;;-1:-1:-1;2627:28:36;;;;;;;;;;;;;;;-1:-1:-1;;;;;2627:28:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2627:28:36;;;;;;;;;;;;;;;;-1:-1:-1;;;2627:28:36;;;;-1:-1:-1;;;2627:28:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2627:28:36;;;;-1:-1:-1;;;2627:28:36;;-1:-1:-1;2627:28:36;;;;;;;;;;;;;;-1:-1:-1;;;;;2627:28:36;;;;;;-1:-1:-1;;;2627:28:36;;;;-1:-1:-1;;;;;;2627:28:36;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2627:28:36;;;;-1:-1:-1;;;2627:28:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2627:28:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2627:28:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2627:28:36;;;;-1:-1:-1;;2627:30:36;;-1:-1:-1;;;2627:30:36;;:28;;;;-1:-1:-1;2627:30:36;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2608:6;:15;;;:49;2604:123;;2684:28;;-1:-1:-1;;;2684:28:36;;;;;;;;;;;2604:123;2815:21;2838;2861:37;2902:54;:52;:54::i;:::-;2814:142;;;;;;3033:16;3028:128;;3085:13;3065:33;;;;-1:-1:-1;;;;;;3065:33:36;-1:-1:-1;;;;;3065:33:36;;;;;;;;;:10;;:33;;;;;;;;:::i;:::-;-1:-1:-1;;;3112:16:36;;;:33;;-1:-1:-1;;;;;;3112:33:36;-1:-1:-1;;;;;3112:33:36;;;;;3028:128;3166:70;;-1:-1:-1;;;3166:70:36;;:24;;;;:70;;:10;;3191:6;;3199:10;;3211:8;;3221:14;;3166:70;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3247:18;3279:22;3304:6;:16;;;;;;;;:::i;:::-;:23;;3279:48;;3342:9;3337:173;3361:14;3357:1;:18;3337:173;;;3407:16;;;;:6;:16;:::i;:::-;3424:1;3407:19;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:27;;;;:::i;:::-;3393:47;;3407:33;;;3393:47;;:::i;:::-;;-1:-1:-1;3482:3:36;;3337:173;;;-1:-1:-1;3547:14:36;;;;3534:27;;:10;;;;:27;:::i;:::-;3520:41;;;;:::i;:::-;;;3716:10;3696:6;:17;;;:30;3692:95;;;3749:27;;-1:-1:-1;;;3749:27:36;;;;;;;;;;;3692:95;3818:10;3797:6;:17;;;:31;;;;;;;:::i;:::-;;;;-1:-1:-1;3863:6:36;;-1:-1:-1;3839:21:36;;;:30;3863:6;3839:21;:30;:::i;:::-;-1:-1:-1;3880:47:36;;-1:-1:-1;3895:13:36;:6;;:13;:::i;:::-;3880:47;;;:::i;:::-;3910:16;;;;:6;:16;:::i;:::-;3880:47;;;:::i;:::-;:14;:47::i;:::-;3938:52;3967:10;3979:6;:10;;;3938:28;:52::i;4415:125:51:-;4473:13;;4461:9;:25;4457:77;;;4509:14;;-1:-1:-1;;;4509:14:51;;;;;;;;;;;4457:77;4415:125::o;10384:1306:36:-;10553:20;;:23;;;:32;10599:12;;-1:-1:-1;;;10599:12:36;;10475:15;;;;10599:10;;;;:12;;10553:32;;10599:12;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10595:84;;;10634:34;;-1:-1:-1;;;10634:34:36;;;;;;;;;;;10595:84;10799:24;;-1:-1:-1;;;10799:24:36;;:9;;;;:24;;:2;;10809:13;;10799:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10795:90;;;10846:28;;-1:-1:-1;;;10846:28:36;;;;;;;;;;;10795:90;10918:20;;:25;;:34;10985:45;;-1:-1:-1;;;10985:45:36;;10918:34;;10895:20;;10985:30;;;;:45;;10918:20;11016:13;;10985:45;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10962:68;-1:-1:-1;11098:25:36;11151:19;11138:9;:32;;;;;;;;:::i;:::-;;11134:130;;11210:21;;-1:-1:-1;;;11210:21:36;;:15;;;;:21;;:2;;11226:4;;11210:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11210:21:36;;;;;;;;;;;;:::i;:::-;:43;;-1:-1:-1;;;11210:43:36;;:28;;;;:43;;:28;11239:13;;11210:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11209:44;11186:67;;11134:130;11278:20;11274:193;;;11314:42;11343:12;11314:28;:42::i;:::-;-1:-1:-1;;11392:20:36;;:26;;;:30;;;11421:1;;-1:-1:-1;10384:1306:36;-1:-1:-1;;;10384:1306:36:o;11274:193::-;11494:18;11481:9;:31;;;;;;;;:::i;:::-;;11477:85;;11530:21;11528:23;;11530:21;;11528:23;;-1:-1:-1;;;11528:23:36;;-1:-1:-1;;;;;11528:23:36;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;11528:23:36;;;;;-1:-1:-1;;;;;11528:23:36;;;;;;11477:85;11572:41;11600:12;11572:27;:41::i;:::-;-1:-1:-1;11645:5:36;;11678:4;;-1:-1:-1;10384:1306:36;-1:-1:-1;;;;;10384:1306:36:o;12149:389::-;12326:10;12322:80;;;12352:39;109:2:27;12389:1:36;12352:36;:39::i;:::-;12416:23;12412:120;;;12484:21;;-1:-1:-1;;;12484:21:36;;12455:66;;12484:19;;;;:21;;:10;;:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12507:13;;12455:28;:66::i;:::-;12149:389;;;;:::o;13246:258:0:-;13354:7;13330:21;:31;13326:63;;;13370:19;;-1:-1:-1;;;13370:19:0;;;;;;;;;;;13326:63;13401:12;13419:10;-1:-1:-1;;;;;13419:15:0;13442:7;13419:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13400:54;;;13469:7;13464:33;;13485:12;;-1:-1:-1;;;13485:12:0;;;;;;;;;;;4274:135:51;4327:22;;-1:-1:-1;;;4327:22:51;;:10;:22;;;54094:51:78;4327:20:51;;;;54067:18:78;;4327:22:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4322:81;;4372:20;;-1:-1:-1;;;4372:20:51;;;;;;;;;;;1863:96:54;1930:22;1946:5;1930:15;:22::i;:::-;1863:96;:::o;9287:748:36:-;9512:22;;9571:17;:10;:17;:::i;:::-;:19;;-1:-1:-1;;;9571:19:36;;:17;;;;:19;;:17;:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9546:44;-1:-1:-1;9621:207:36;9655:14;9546:44;9716:16;9746:15;9775:16;;;;:10;:16;:::i;:::-;9805:13;;9621:20;:207::i;:::-;9895:42;;;;:26;;;:42;;;;;;;;:50;;;;;;;;;-1:-1:-1;;;;;9895:50:36;;;;;;;;;;;;;;;;;;;;;;;9601:227;;-1:-1:-1;9895:50:36;;:42;;:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9895:50:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9895:50:36;;;;;;;;;;;;;;;;-1:-1:-1;;;9895:50:36;;;;-1:-1:-1;;;9895:50:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9895:50:36;;;;-1:-1:-1;;;9895:50:36;;-1:-1:-1;9895:50:36;;;;;;;;;;;;;;;-1:-1:-1;;;;;9895:50:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9895:50:36;;;;;;;;;;;;;;;;-1:-1:-1;;;9895:50:36;;;;-1:-1:-1;;;9895:50:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9895:50:36;;;;-1:-1:-1;;;9895:50:36;;-1:-1:-1;9895:50:36;;;;;;;;;;;;;;-1:-1:-1;;;;;9895:50:36;;;;;;-1:-1:-1;;;9895:50:36;;;;-1:-1:-1;;;;;;9895:50:36;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9895:50:36;;;;-1:-1:-1;;;9895:50:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9895:50:36;;-1:-1:-1;;9895:52:36;;-1:-1:-1;;;9895:52:36;;:50;;;;:52;;:50;:52;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9891:138;;;9963:42;;;;:26;;;:42;;;;;10008:10;;9963:55;10008:10;9963:42;:55;:::i;:::-;-1:-1:-1;;9891:138:36;9536:499;9287:748;;;;;;:::o;8531:418::-;8774:39;;;;8656:18;8734:89;;;:26;;;:89;;;;;8867:25;;8834:59;;-1:-1:-1;;;;;8867:25:36;8834:32;:59::i;:::-;8911:31;;;8531:418;-1:-1:-1;;8531:418:36:o;7255:254:54:-;7422:17;:23;-1:-1:-1;;;7422:23:54;;-1:-1:-1;;;;;7422:23:54;7312:16;-1:-1:-1;;;;;;;;;;;7470:32:54;7422:23;7470:21;:32::i;:::-;7455:47;;7349:160;7255:254;;:::o;15035:318:36:-;15160:16;;15134:23;15186:161;15210:15;15206:1;:19;15186:161;;;15243:34;15253:9;15264;15274:1;15264:12;;;;;;;;:::i;:::-;;;;;;;15243:9;:34::i;:::-;15319:3;;15186:161;;2356:528:0;2410:7;2506:9;2517;2530:15;2542:2;2530:11;:15::i;:::-;2505:40;;;;2560:4;2555:45;;-1:-1:-1;2587:2:0;;2356:528;-1:-1:-1;;2356:528:0:o;2555:45::-;2733:12;2747:11;2762:17;2776:2;2762:13;:17::i;:::-;2732:47;;;;2794:7;2789:89;;-1:-1:-1;2824:2:0;;2356:528;-1:-1:-1;;;;2356:528:0:o;2789:89::-;2864:3;2356:528;-1:-1:-1;;;;;2356:528:0:o;5250:372:50:-;5307:10;;;-1:-1:-1;;;;;5433:19:50;;5429:78;;5475:21;;-1:-1:-1;;;5475:21:50;;;;;;;;;;;5429:78;5543:28;;;;;;;;:13;;;:28;;-1:-1:-1;;;;;5543:28:50;;;;;;;;;;;;;;;;;;;;;;;;5516:24;;5543:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5543:28:50;;;;;;;;;;;;;;;;-1:-1:-1;;;5543:28:50;;;;-1:-1:-1;;5543:35:50;;-1:-1:-1;;;5543:35:50;;:28;;;;-1:-1:-1;5543:35:50;;5572:5;;5543:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5543:35:50;;;;;;;;;;;;:::i;:::-;5516:62;;5596:19;5606:8;5596:9;:19::i;:::-;5589:26;;;;;;5250:372;;;:::o;2733:416::-;3022:21;;2820:11;;;;;;;;2985:59;;3008:12;;-1:-1:-1;;;;;3022:21:50;2985:22;:59::i;:::-;-1:-1:-1;;;;;3067:28:50;;;;;;;:21;;;:28;;;;;;;;;3115:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2977:67;;-1:-1:-1;3067:28:50;;-1:-1:-1;3115:25:50;;3067:28;;3115:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3115:25:50;;;;;;;;;;;;;;;;-1:-1:-1;;;3115:25:50;;;;-1:-1:-1;;3115:27:50;;-1:-1:-1;;;3115:27:50;;:25;;;;-1:-1:-1;3115:27:50;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3114:28;3105:37;;2890:259;2733:416;;;:::o;4748:287::-;4826:6;4836:1;4826:11;4822:48;;4748:287;;:::o;4822:48::-;4930:98;4951:14;:2;-1:-1:-1;;;;;4951:12:50;;:14::i;:::-;4967:60;;;;;;;58025:25:78;;;4967:60:50;;;;;;;;;;57998:18:78;;;;4967:60:50;;;;;;;;-1:-1:-1;;;;;4967:60:50;-1:-1:-1;;;4967:60:50;;;4930:20;:98::i;4143:412::-;4219:29;4301:37;4342:30;:28;:30::i;:::-;4412:15;;;;4383:20;;-1:-1:-1;;;;;4412:15:50;;;4383:26;;;;:44;4456:13;;;;4438:14;;;:31;;4296:76;;-1:-1:-1;4456:13:50;;-1:-1:-1;4438:14:50;-1:-1:-1;4412:15:50;;4438:31;;4456:13;;4438:31;:::i;:::-;;;;-1:-1:-1;;4479:20:50;;;:39;;;;;;;;-1:-1:-1;4479:39:50;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4479:39:50;-1:-1:-1;;;;;4479:39:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;4479:39:50;;;;;;;;;;;;-1:-1:-1;;4479:39:50;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;4479:39:50;;;;;;;;;;;;;;-1:-1:-1;;;;;;4479:39:50;-1:-1:-1;;;;;4479:39:50;;;;;;;;;;;;;;;;;-1:-1:-1;4479:39:50;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;4479:39:50;;;;;;;;;;;;-1:-1:-1;;4479:39:50;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;4479:39:50;;;;;;;;-1:-1:-1;4479:39:50;;;;;;;;;;;;;;;-1:-1:-1;;;4479:39:50;-1:-1:-1;;;;;;4479:39:50;;;-1:-1:-1;;;;;4479:39:50;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;4479:39:50;;;;;;;;;;;;-1:-1:-1;;4479:39:50;;;;;;;;;;4528:15;;;:20;;-1:-1:-1;;4528:15:50;-1:-1:-1;;4528:20:50;;-1:-1:-1;;;;;;;4528:20:50;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;4528:20:50;;;;;-1:-1:-1;;;;;4528:20:50;;;;;;4209:346;;4143:412;:::o;3353:588::-;3532:20;;:23;;;:32;:52;;-1:-1:-1;;;3532:52:50;;3428:29;;;;3532:37;;;;:52;;:32;3570:13;;3532:52;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3532:52:50;;;;;;;;;;;;:::i;:::-;3505:79;;3596:15;3613:21;3638:19;3648:8;3638:9;:19::i;:::-;3595:62;;;;3673:10;3668:70;;3706:21;;-1:-1:-1;;;3706:21:50;;;;;;;;;;;3668:70;3777:19;;;;;3748:20;;-1:-1:-1;;;;;3777:19:50;;;3748:26;;;;:48;;;3777:19;;;;;3806:24;;3777:19;;3806:24;:::i;:::-;;;;;;;;-1:-1:-1;;;;;3806:24:50;;;;;-1:-1:-1;;;;;3806:24:50;;;;;;3861:12;:20;;;:26;;;3840:6;:17;;;:47;;;;;;;:::i;:::-;;;;-1:-1:-1;;3897:18:50;;;:37;;;;;;;;-1:-1:-1;3897:37:50;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3897:37:50;-1:-1:-1;;;;;3897:37:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;3897:37:50;;;;;;;;;;;;-1:-1:-1;;3897:37:50;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;3897:37:50;;;;;;;;;;;;;;-1:-1:-1;;;;;;3897:37:50;-1:-1:-1;;;;;3897:37:50;;;;;;;;;;;;;;;;;-1:-1:-1;3897:37:50;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;3897:37:50;;;;;;;;;;;;-1:-1:-1;;3897:37:50;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;3897:37:50;;;;;;;;-1:-1:-1;3897:37:50;;;;;;;;;;;;;;;-1:-1:-1;;;3897:37:50;-1:-1:-1;;;;;;3897:37:50;;;-1:-1:-1;;;;;3897:37:50;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;3897:37:50;;;;;;;;;;;;-1:-1:-1;;3897:37:50;;;;;;;;;;-1:-1:-1;;;;;3353:588:50:o;1965:413:54:-;-1:-1:-1;;;;;;;;;;;2091:25:54;;-1:-1:-1;;;;;2091:25:54;;;2082:34;;;;2078:94;;2139:22;;-1:-1:-1;;;2139:22:54;;;;;;;;;;;2078:94;2193:14;;-1:-1:-1;;;;;;;;2193:14:54;;;;;2185:22;;;;2181:77;;;2230:17;;-1:-1:-1;;;2230:17:54;;;;;;;;;;;2181:77;2298:18;;-1:-1:-1;;;;;;;;2298:18:54;;;;;2272:22;;-1:-1:-1;;;2280:14:54;;;;2272:5;:22;:::i;:::-;2271:45;;;;:::i;:::-;-1:-1:-1;;;;;2271:50:54;;2267:105;;2344:17;;-1:-1:-1;;;2344:17:54;;;;;;;;;;;2267:105;2017:361;1965:413;:::o;7999:1528::-;8336:10;;8235:22;8360;;;:15;;;:22;;;;;;;;-1:-1:-1;;;;;8360:40:54;;;;;;;;;;8235:22;;-1:-1:-1;;;;;;;;;;;1522:42:54;8360:40;;8356:101;;;8423:23;;-1:-1:-1;;;8423:23:54;;;;;;;;;;;8356:101;8467:22;;;;:15;;;:22;;;;;;;;-1:-1:-1;;;;;8467:40:54;;;;;;;;;:47;;-1:-1:-1;;8467:47:54;8510:4;8467:47;;;;;;8524:26;;:45;;8554:15;;8467:22;8524:45;;8554:15;;8524:45;:::i;:::-;;;;-1:-1:-1;;8579:29:54;;;;:22;;;:29;;;;;;;;:45;;;;;;;;:64;;8628:15;;8579:29;:64;;8628:15;;8579:64;:::i;:::-;;;;-1:-1:-1;;8654:23:54;8680:29;;;:22;;;:29;;;;;;;;8710:24;;;;8680:55;;;;;;;;;8771:45;;;;;;8831:33;;;8827:105;;;8880:24;;;:41;;;8827:105;8942:26;8971:40;8993:4;8999:11;8971:21;:40::i;:::-;8942:69;-1:-1:-1;9036:36:54;9026:6;:46;;;;;;;;:::i;:::-;;9022:499;;9092:28;9114:5;9092:21;:28::i;:::-;9088:264;;;9160:4;9140:24;;9022:499;;9088:264;9308:29;;-1:-1:-1;;;9308:29:54;;:17;;;:29;;;60342:25:78;-1:-1:-1;;;;;60403:31:78;;60383:18;;;60376:59;9308:22:54;;;;60315:18:78;;9308:29:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9022:499;;;9382:30;9372:6;:40;;;;;;;;:::i;:::-;;9368:153;;9498:12;;-1:-1:-1;;;9498:12:54;;;;;58025:25:78;;;9498:10:54;;;;57998:18:78;;9498:12:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9368:153;8259:1268;;;;;7999:1528;;;;;;;;:::o;6042:619::-;-1:-1:-1;;;;;;;;;;;6210:28:54;6232:5;6210:21;:28::i;:::-;6205:66;;6254:7;6042:619;:::o;6205:66::-;6345:33;;-1:-1:-1;;;6345:33:54;;:17;;;:33;;;60342:25:78;-1:-1:-1;;;;;60403:31:78;;60383:18;;;60376:59;6345:26:54;;;;60315:18:78;;6345:33:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6341:140;;;6398:17;;;:23;-1:-1:-1;;;;;6398:32:54;;;-1:-1:-1;;;6398:23:54;;;;:32;6394:77;;6450:7;6042:619;:::o;6394:77::-;6537:31;;-1:-1:-1;;;6537:31:54;;:17;;;:31;;;60342:25:78;-1:-1:-1;;;;;60403:31:78;;60383:18;;;60376:59;6537:24:54;;;;60315:18:78;;6537:31:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6621:33:54;;-1:-1:-1;;;;;;6621:33:54;-1:-1:-1;;;;;6621:33:54;;;;;;;;;;;-1:-1:-1;;6042:619:54:o;6861:204::-;-1:-1:-1;;;;;;;;;;;7040:18:54;;6929:4;;1522:42;7012:46;;-1:-1:-1;;;;;;;;7040:18:54;;;;;7012:25;:46;:::i;:::-;-1:-1:-1;;;;;7003:55:54;:5;-1:-1:-1;;;;;7003:55:54;;6996:62;;;6861:204;;;:::o;12814:1880:36:-;12909:16;;:19;;;:28;:38;;-1:-1:-1;;;12909:38:36;;:36;;;;:38;;:28;:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12905:110;;;12970:34;;-1:-1:-1;;;12970:34:36;;;;;;;;;;;12905:110;13028:16;;:23;;;-1:-1:-1;;;;;;13028:38:36;13024:178;;13086:16;;:22;;;13111:21;-1:-1:-1;13082:110:36;;;13159:18;;-1:-1:-1;;;13159:18:36;;;;;;;;;;;13082:110;13235:16;;:41;;-1:-1:-1;;;13235:41:36;;13212:20;;13235:26;;;;:41;;13262:13;;13235:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13359:16;;:19;;;:28;:50;;-1:-1:-1;;;13359:50:36;;13212:64;;-1:-1:-1;13359:35:36;;;;:50;;13395:13;;13359:50;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13355:1147;;;13612:19;13599:9;:32;;;;;;;;:::i;:::-;;13595:539;;13656:19;;-1:-1:-1;;;13656:19:36;;:17;;;;:19;;:9;;:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13651:469;;13700:15;13717:21;13742:31;13763:9;13742:20;:31::i;:::-;13699:74;;;;13800:10;13795:94;;13845:21;;-1:-1:-1;;;13845:21:36;;;;;;;;;;;13795:94;13945:16;;:22;;;13914:27;;;;-1:-1:-1;;;13914:27:36;;-1:-1:-1;;;;;13914:27:36;;;:53;;;13910:137;;14002:22;;-1:-1:-1;;;14002:22:36;;;;;;;;;;;13910:137;14100:1;14069:6;:27;;;:32;;;;;;;;;;-1:-1:-1;;;;;14069:32:36;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;14069:32:36;;;;;-1:-1:-1;;;;;14069:32:36;;;;;;13677:443;;13651:469;14165:18;14152:9;:31;;;;;;;;:::i;:::-;;14148:236;;14232:16;;:22;;;14207:21;;-1:-1:-1;;;14207:21:36;;-1:-1:-1;;;;;14207:21:36;;;:47;;;14203:123;;14285:22;;-1:-1:-1;;;14285:22:36;;;;;;;;;;;14203:123;14343:21;:26;;14368:1;;14343:21;;;:26;;14368:1;;-1:-1:-1;;;14343:26:36;;-1:-1:-1;;;;;14343:26:36;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;14343:26:36;;;;;-1:-1:-1;;;;;14343:26:36;;;;;;14148:236;14453:18;;-1:-1:-1;;;14453:18:36;;:16;;;;:18;;:8;;:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14453:18:36;;;;;;;;;;;;:::i;13355:1147::-;14620:11;14634:17;:8;:15;:17::i;:::-;14662:1;:14;;;:9;:14;;;;;;;;:25;;;;;;;;;;-1:-1:-1;;;;;;14662:25:36;-1:-1:-1;;;;;14662:25:36;;;;;;;;;;;;:14;;-1:-1:-1;14662:25:36;;:14;;:25;;:14;;:25;;:14;;;;:25;;;;;;;;:::i;:::-;-1:-1:-1;;;14662:25:36;;;;;;;;;;;;-1:-1:-1;;14662:25:36;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;14662:25:36;;;;;;;;;;;;;;-1:-1:-1;;;;;;14662:25:36;-1:-1:-1;;;;;14662:25:36;;;;;;;;;;;;;;;;;-1:-1:-1;14662:25:36;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;14662:25:36;;;;;;;;;;;;-1:-1:-1;;14662:25:36;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;14662:25:36;;;;;;;;-1:-1:-1;14662:25:36;;;;;;;;;;;;;;;-1:-1:-1;;;14662:25:36;-1:-1:-1;;;;;;14662:25:36;;;-1:-1:-1;;;;;14662:25:36;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;14662:25:36;;;;;;;;;;;;-1:-1:-1;;14662:25:36;;;;;;;;;;-1:-1:-1;;;;12814:1880:36:o;4411:476:0:-;4467:9;4478;4636:8;4632:2;4628:17;-1:-1:-1;;;4763:6:0;4760:27;4757:114;;4814:4;4806:12;;-1:-1:-1;;;;;4845:2:0;4841:16;4835:22;;4757:114;;4411:476;;;:::o;7171:2211::-;7229:12;7243:11;8058:3;8055:1;8048:14;8141:2;8137;8133;8130:1;-1:-1:-1;;;;;8097:5:0;8086:58;8075:69;;8405:1;8399:8;8445:6;-1:-1:-1;;;;;8427:25:0;8420:32;;8828:6;8823:3;8819:16;8811:6;8807:29;8793:43;;8870:6;8862;8859:18;8849:103;;8908:5;8897:16;;8937:1;8930:8;;8849:103;;9290:7;9289:8;:34;;;-1:-1:-1;13641:16:0;9321:2;9301:22;;9289:34;9285:91;;;-1:-1:-1;9347:5:0;;;;-1:-1:-1;7171:2211:0;-1:-1:-1;7171:2211:0:o;9285:91::-;7171:2211;;;:::o;5818:272:50:-;6027:17;;-1:-1:-1;;;6027:17:50;;5886:10;;;;;;;;;;6027:15;;;;:17;;:8;;:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6017:28;;;;;;;;;;;;;;-1:-1:-1;6017:28:50;6064:17;;;;;;;:9;;;:17;;-1:-1:-1;;;;;6064:17:50;;;;;;;;;;;;;;;;;;;;;;;6017:28;;-1:-1:-1;6064:17:50;;:9;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6064:17:50;;;;;;;;;;;;;;;;-1:-1:-1;;;6064:17:50;;;;-1:-1:-1;;6064:19:50;;-1:-1:-1;;;6064:19:50;;:17;;;;-1:-1:-1;6064:19:50;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6063:20;6055:28;;5921:169;5818:272;;;:::o;3242:173:54:-;3328:6;3397:11;3355:33;3397:11;3362;3355:33;:::i;:::-;3354:39;;3392:1;3354:39;:::i;:::-;3353:55;;;;:::i;:::-;3346:62;;3242:173;;;;;:::o;2603:166:19:-;2678:12;2709:53;2731:6;2739:4;2745:1;2748:13;2709:21;:53::i;4038:1880:54:-;4286:20;;4169:19;;-1:-1:-1;;;;;;;;;;;1522:42:54;4169:19;;4310:3;;4272:34;;4286:20;;4272:11;:34;:::i;:::-;4271:42;;;;:::i;:::-;4349:25;;-1:-1:-1;;;4349:25:54;;;;;58025::78;;;4251:62:54;;-1:-1:-1;4323:23:54;;4349;;;;57998:18:78;;4349:25:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4323:51;;4512:9;4482:4;:26;;;:39;4478:116;;4544:39;4537:46;;;;;;;4478:116;4655:9;4637:15;:27;4633:101;;;4687:36;4680:43;;;;;;;4633:101;5714:26;;;;5700:40;;:11;:40;:::i;:::-;5669:27;5681:15;5669:9;:27;:::i;:::-;:71;5665:139;;5763:30;5756:37;;;;;;;5665:139;-1:-1:-1;5874:37:54;;4038:1880;-1:-1:-1;;;;;4038:1880:54:o;2159:129:45:-;2224:7;2271:8;2260:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;2250:31;;;;;;2243:38;;2159:129;;;:::o;8572:80:19:-;8628:17;;-1:-1:-1;;;8628:17:19;;;;;;;;;;;4215:483;4391:12;4443:5;4419:21;:29;4415:108;;;4471:41;;-1:-1:-1;;;4471:41:19;;4506:4;4471:41;;;54094:51:78;54067:18;;4471:41:19;;;;;;;;4415:108;4533:12;4547:23;4574:6;-1:-1:-1;;;;;4574:11:19;4593:5;4600:4;4574:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4532:73;;;;4622:69;4649:6;4657:7;4666:10;4678:12;4622:26;:69::i;:::-;4615:76;;;;4215:483;;;;;;;:::o;6737:692::-;6928:12;6956:7;6952:471;;;6983:10;:17;7004:1;6983:22;6979:339;;7207:6;-1:-1:-1;;;;;7207:18:19;;7229:1;7207:23;7203:101;;7261:24;;-1:-1:-1;;;7261:24:19;;-1:-1:-1;;;;;54112:32:78;;7261:24:19;;;54094:51:78;54067:18;;7261:24:19;53940:211:78;7203:101:19;-1:-1:-1;7338:10:19;7331:17;;6952:471;7379:33;7387:10;7399:12;8828:17;;:21;8824:411;;9056:10;9050:17;9112:15;9099:10;9095:2;9091:19;9084:44;8824:411;9172:14;:12;:14;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:180:78;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:78;;14:180;-1:-1:-1;14:180:78:o;199:156::-;260:5;305:2;296:6;291:3;287:16;283:25;280:45;;;321:1;318;311:12;280:45;-1:-1:-1;343:6:78;199:156;-1:-1:-1;199:156:78:o;360:359::-;448:6;501:2;489:9;480:7;476:23;472:32;469:52;;;517:1;514;507:12;469:52;557:9;544:23;-1:-1:-1;;;;;582:6:78;579:30;576:50;;;622:1;619;612:12;576:50;645:68;705:7;696:6;685:9;681:22;645:68;:::i;1097:399::-;1195:6;1248:2;1236:9;1227:7;1223:23;1219:32;1216:52;;;1264:1;1261;1254:12;1216:52;1304:9;1291:23;-1:-1:-1;;;;;1329:6:78;1326:30;1323:50;;;1369:1;1366;1359:12;1323:50;1392:22;;1448:3;1430:16;;;1426:26;1423:46;;;1465:1;1462;1455:12;1423:46;1488:2;1097:399;-1:-1:-1;;;1097:399:78:o;1501:380::-;1580:1;1576:12;;;;1623;;;1644:61;;1698:4;1690:6;1686:17;1676:27;;1644:61;1751:2;1743:6;1740:14;1720:18;1717:38;1714:161;;1797:10;1792:3;1788:20;1785:1;1778:31;1832:4;1829:1;1822:15;1860:4;1857:1;1850:15;1993:689;2044:3;2083:4;2078:3;2074:14;-1:-1:-1;;;;;2119:5:78;2113:12;2109:37;2104:3;2097:50;2166:4;2216:2;2209:5;2205:14;2199:21;2250:4;2245:2;2240:3;2236:12;2229:26;2277:4;2310:12;2304:19;2345:6;2339:4;2332:20;2379:2;2374:3;2370:12;2361:21;;2423:2;2409:12;2405:21;2391:35;;2444:1;2435:10;;2454:201;2468:6;2465:1;2462:13;2454:201;;;2535:13;;-1:-1:-1;;;;;2531:39:78;2517:54;;2630:15;;;;2567:1;2483:9;;;;;2593:14;;;;2454:201;;;-1:-1:-1;2671:5:78;1993:689;-1:-1:-1;;;;;;1993:689:78:o;2824:741::-;2883:3;2922:4;2917:3;2913:14;-1:-1:-1;;;;;2958:5:78;2952:12;2948:37;2943:3;2936:50;3005:4;3049:2;3042:5;3038:14;3071:4;3105;3100:2;3095:3;3091:12;3084:26;3132:4;3165:12;3159:19;3200:6;3194:4;3187:20;3234:2;3229:3;3225:12;3216:21;;3256:12;3253:1;3246:23;3305:2;3302:1;3292:16;3278:30;;3326:1;3317:10;;3336:202;3350:6;3347:1;3344:13;3336:202;;;3418:13;;-1:-1:-1;;;;;3414:39:78;3400:54;;3513:15;;;;3365:10;;;;3476:14;;;;3336:202;;;-1:-1:-1;3554:5:78;2824:741;-1:-1:-1;;;;;;;2824:741:78:o;3570:482::-;3840:2;3829:9;3822:21;3803:4;3866:54;3916:2;3905:9;3901:18;3893:6;3866:54;:::i;:::-;3968:9;3960:6;3956:22;3951:2;3940:9;3936:18;3929:50;3996;4039:6;4031;3996:50;:::i;4057:127::-;4118:10;4113:3;4109:20;4106:1;4099:31;4149:4;4146:1;4139:15;4173:4;4170:1;4163:15;4189:258;4262:4;4256:11;;;4294:17;;-1:-1:-1;;;;;4326:34:78;;4362:22;;;4323:62;4320:88;;;4388:18;;:::i;:::-;4424:4;4417:24;4189:258;:::o;4452:254::-;4525:2;4519:9;4567:4;4555:17;;-1:-1:-1;;;;;4587:34:78;;4623:22;;;4584:62;4581:88;;;4649:18;;:::i;4711:275::-;4782:2;4776:9;4847:2;4828:13;;-1:-1:-1;;4824:27:78;4812:40;;-1:-1:-1;;;;;4867:34:78;;4903:22;;;4864:62;4861:88;;;4929:18;;:::i;:::-;4965:2;4958:22;4711:275;;-1:-1:-1;4711:275:78:o;4991:129::-;-1:-1:-1;;;;;5069:5:78;5065:30;5058:5;5055:41;5045:69;;5110:1;5107;5100:12;5125:183;5185:4;-1:-1:-1;;;;;5210:6:78;5207:30;5204:56;;;5240:18;;:::i;:::-;-1:-1:-1;5285:1:78;5281:14;5297:4;5277:25;;5125:183::o;5313:131::-;-1:-1:-1;;;;;5388:31:78;;5378:42;;5368:70;;5434:1;5431;5424:12;5449:1353;5546:6;5577:2;5620;5608:9;5599:7;5595:23;5591:32;5588:52;;;5636:1;5633;5626:12;5588:52;5669:9;5663:16;-1:-1:-1;;;;;5739:2:78;5731:6;5728:14;5725:34;;;5755:1;5752;5745:12;5725:34;5778:22;;;;5834:4;5816:16;;;5812:27;5809:47;;;5852:1;5849;5842:12;5809:47;5878:23;;:::i;:::-;5931:2;5925:9;5943:32;5967:7;5943:32;:::i;:::-;5984:22;;6037:11;;;6031:18;6061:16;;;6058:36;;;6090:1;6087;6080:12;6058:36;6121:8;6117:2;6113:17;6103:27;;;6168:7;6161:4;6157:2;6153:13;6149:27;6139:55;;6190:1;6187;6180:12;6139:55;6219:2;6213:9;6203:19;;6242:60;6258:43;6298:2;6258:43;:::i;:::-;6242:60;:::i;:::-;6336:15;;;6418:1;6414:10;;;;6406:19;;6402:28;;;6367:12;;;;6442:19;;;6439:39;;;6474:1;6471;6464:12;6439:39;6498:11;;;;6518:216;6534:6;6529:3;6526:15;6518:216;;;6609:3;6603:10;6626:33;6651:7;6626:33;:::i;:::-;6672:20;;6551:12;;;;6712;;;;6518:216;;;6750:14;;;6743:29;;;;6754:5;5449:1353;-1:-1:-1;;;;;;5449:1353:78:o;6807:127::-;6868:10;6863:3;6859:20;6856:1;6849:31;6899:4;6896:1;6889:15;6923:4;6920:1;6913:15;6939:128;7006:9;;;7027:11;;;7024:37;;;7041:18;;:::i;7072:330::-;7170:4;7228:11;7215:25;7322:3;7318:8;7307;7291:14;7287:29;7283:44;7263:18;7259:69;7249:97;;7342:1;7339;7332:12;7249:97;7363:33;;;;;7072:330;-1:-1:-1;;7072:330:78:o;7407:328::-;7504:4;7562:11;7549:25;7656:2;7652:7;7641:8;7625:14;7621:29;7617:43;7597:18;7593:68;7583:96;;7675:1;7672;7665:12;8071:132;8138:20;;8167:30;8138:20;8167:30;:::i;:::-;8071:132;;;:::o;8208:1115::-;8263:5;8311:4;8299:9;8294:3;8290:19;8286:30;8283:50;;;8329:1;8326;8319:12;8283:50;8351:23;;:::i;:::-;8342:32;;8411:9;8398:23;8430:32;8454:7;8430:32;:::i;:::-;8471:22;;8512:2;8550:18;;;8537:32;-1:-1:-1;;;;;8581:30:78;;8578:50;;;8624:1;8621;8614:12;8578:50;8647:22;;8700:4;8692:13;;8688:23;-1:-1:-1;8678:51:78;;8725:1;8722;8715:12;8678:51;8761:2;8748:16;8784:60;8800:43;8840:2;8800:43;:::i;8784:60::-;8878:15;;;8960:1;8956:10;;;;8948:19;;8944:28;;;8909:12;;;;8984:15;;;8981:35;;;9012:1;9009;9002:12;8981:35;9036:11;;;;9056:223;9072:6;9067:3;9064:15;9056:223;;;9154:3;9141:17;9171:33;9196:7;9171:33;:::i;:::-;9217:20;;9089:12;;;;9257;;;;9056:223;;;9311:5;9306:2;9299:5;9295:14;9288:29;;;;;;8208:1115;;;;:::o;9328:198::-;9434:9;9471:49;9505:14;9498:5;9471:49;:::i;9531:118::-;9617:5;9610:13;9603:21;9596:5;9593:32;9583:60;;9639:1;9636;9629:12;9654:245;9721:6;9774:2;9762:9;9753:7;9749:23;9745:32;9742:52;;;9790:1;9787;9780:12;9742:52;9822:9;9816:16;9841:28;9863:5;9841:28;:::i;9904:114::-;9988:4;9981:5;9977:16;9970:5;9967:27;9957:55;;10008:1;10005;9998:12;10023:186;10071:4;-1:-1:-1;;;;;10096:6:78;10093:30;10090:56;;;10126:18;;:::i;:::-;-1:-1:-1;10192:2:78;10171:15;-1:-1:-1;;10167:29:78;10198:4;10163:40;;10023:186::o;10214:462::-;10256:5;10309:3;10302:4;10294:6;10290:17;10286:27;10276:55;;10327:1;10324;10317:12;10276:55;10363:6;10350:20;10394:48;10410:31;10438:2;10410:31;:::i;10394:48::-;10467:2;10458:7;10451:19;10513:3;10506:4;10501:2;10493:6;10489:15;10485:26;10482:35;10479:55;;;10530:1;10527;10520:12;10479:55;10595:2;10588:4;10580:6;10576:17;10569:4;10560:7;10556:18;10543:55;10643:1;10618:16;;;10636:4;10614:27;10607:38;;;;10622:7;10214:462;-1:-1:-1;;;10214:462:78:o;10681:946::-;10738:5;10786:4;10774:9;10769:3;10765:19;10761:30;10758:50;;;10804:1;10801;10794:12;10758:50;10826:23;;:::i;:::-;10817:32;;10885:9;10872:23;-1:-1:-1;;;;;10955:2:78;10947:6;10944:14;10941:34;;;10971:1;10968;10961:12;10941:34;10998:55;11049:3;11040:6;11029:9;11025:22;10998:55;:::i;:::-;10991:5;10984:70;11107:2;11096:9;11092:18;11079:32;11063:48;;11136:2;11126:8;11123:16;11120:36;;;11152:1;11149;11142:12;11120:36;11175:24;;;;11229:4;11215:12;;;11211:23;11208:43;;;11247:1;11244;11237:12;11208:43;11275:23;;:::i;:::-;11335:2;11322:16;11347:31;11370:7;11347:31;:::i;:::-;11387:24;;11457:2;11449:11;;11436:25;11473:16;;;11470:36;;;11502:1;11499;11492:12;11470:36;11540:40;11576:3;11565:8;11561:2;11557:17;11540:40;:::i;:::-;11535:2;11526:7;11522:16;11515:66;;11613:7;11608:2;11601:5;11597:14;11590:31;;;;10681:946;;;;:::o;11632:131::-;-1:-1:-1;;;;;;11706:32:78;;11696:43;;11686:71;;11753:1;11750;11743:12;11768:132;11835:20;;11864:30;11835:20;11864:30;:::i;11905:128::-;11970:20;;11999:28;11970:20;11999:28;:::i;12038:1251::-;12093:5;12141:4;12129:9;12124:3;12120:19;12116:30;12113:50;;;12159:1;12156;12149:12;12113:50;12181:23;;:::i;:::-;12172:32;;12240:9;12227:23;-1:-1:-1;;;;;12310:2:78;12302:6;12299:14;12296:34;;;12326:1;12323;12316:12;12296:34;12349:22;;;;12401:4;12387:12;;;12383:23;12380:43;;;12419:1;12416;12409:12;12380:43;12447:23;;:::i;:::-;12508:2;12495:16;12536:2;12526:8;12523:16;12520:36;;;12552:1;12549;12542:12;12520:36;12581:52;12629:3;12618:8;12614:2;12610:17;12581:52;:::i;:::-;12572:7;12565:69;;12680:2;12676;12672:11;12659:25;12709:2;12699:8;12696:16;12693:36;;;12725:1;12722;12715:12;12693:36;12763:52;12811:3;12800:8;12796:2;12792:17;12763:52;:::i;:::-;12758:2;12749:7;12745:16;12738:78;;12873:4;12869:2;12865:13;12852:27;12845:4;12836:7;12832:18;12825:55;12914:30;12940:2;12936;12932:11;12914:30;:::i;:::-;12909:2;12900:7;12896:16;12889:56;12980:31;13006:3;13002:2;12998:12;12980:31;:::i;:::-;12974:3;12965:7;12961:17;12954:58;13058:3;13054:2;13050:12;13037:26;13088:2;13078:8;13075:16;13072:36;;;13104:1;13101;13094:12;13072:36;13143:40;13179:3;13168:8;13164:2;13160:17;13143:40;:::i;:::-;13137:3;13124:17;;13117:67;-1:-1:-1;13193:22:78;;-1:-1:-1;13247:35:78;;-1:-1:-1;13278:2:78;13263:18;;13247:35;:::i;:::-;13242:2;13235:5;13231:14;13224:59;12038:1251;;;;:::o;13294:198::-;13400:9;13437:49;13471:14;13464:5;13437:49;:::i;13497:245::-;13555:6;13608:2;13596:9;13587:7;13583:23;13579:32;13576:52;;;13624:1;13621;13614:12;13576:52;13663:9;13650:23;13682:30;13706:5;13682:30;:::i;13747:574::-;13869:4;13875:6;13935:11;13922:25;14029:2;14025:7;14014:8;13998:14;13994:29;13990:43;13970:18;13966:68;13956:96;;14048:1;14045;14038:12;13956:96;14075:33;;14127:20;;;-1:-1:-1;;;;;;14159:30:78;;14156:50;;;14202:1;14199;14192:12;14156:50;14235:4;14223:17;;-1:-1:-1;14286:1:78;14282:14;;;14266;14262:35;14252:46;;14249:66;;;14311:1;14308;14301:12;14249:66;13747:574;;;;;:::o;14326:295::-;14396:5;14455:3;14442:17;14541:2;14537:7;14526:8;14510:14;14506:29;14502:43;14482:18;14478:68;14468:96;;14560:1;14557;14550:12;14468:96;14582:33;;;;14326:295;-1:-1:-1;;14326:295:78:o;14626:520::-;14696:5;14703:6;14763:3;14750:17;14849:2;14845:7;14834:8;14818:14;14814:29;14810:43;14790:18;14786:68;14776:96;;14868:1;14865;14858:12;14776:96;14896:33;;15000:4;14987:18;;;-1:-1:-1;14948:21:78;;-1:-1:-1;;;;;;15017:30:78;;15014:50;;;15060:1;15057;15050:12;15014:50;15114:6;15111:1;15107:14;15091;15087:35;15080:5;15076:47;15073:67;;;15136:1;15133;15126:12;15151:884;15211:3;15250:4;15245:3;15241:14;15292:5;15279:19;15307:32;15331:7;15307:32;:::i;:::-;-1:-1:-1;;;;;15360:32:78;15348:45;;15412:4;15459:65;15509:14;;;15513:5;15459:65;:::i;:::-;15554:4;15540:12;;;15533:26;15594;;;;15673:12;15703:1;;15647:2;15638:12;;15713:295;15727:12;15724:1;15721:19;15713:295;;;15810:6;15797:20;15830:33;15855:7;15830:33;:::i;:::-;-1:-1:-1;;;;;15890:33:78;15876:48;;15983:15;;;;15920:1;15748:9;;;;;15946:14;;15713:295;;;16024:5;15151:884;-1:-1:-1;;;;;;;15151:884:78:o;16040:500::-;16098:5;16105:6;16165:3;16152:17;16251:2;16247:7;16236:8;16220:14;16216:29;16212:43;16192:18;16188:68;16178:96;;16270:1;16267;16260:12;16178:96;16298:33;;16402:4;16389:18;;;-1:-1:-1;16350:21:78;;-1:-1:-1;;;;;;16419:30:78;;16416:50;;;16462:1;16459;16452:12;16416:50;16509:6;16493:14;16489:27;16482:5;16478:39;16475:59;;;16530:1;16527;16520:12;16545:266;16633:6;16628:3;16621:19;16685:6;16678:5;16671:4;16666:3;16662:14;16649:43;-1:-1:-1;16737:1:78;16712:16;;;16730:4;16708:27;;;16701:38;;;;16793:2;16772:15;;;-1:-1:-1;;16768:29:78;16759:39;;;16755:50;;16545:266::o;16816:796::-;16878:3;16916:56;16966:5;16959;16916:56;:::i;:::-;16993:4;16988:3;16981:17;17019:65;17078:4;17073:3;17069:14;17055:12;17019:65;:::i;:::-;17007:77;;17115:67;17176:4;17169:5;17165:16;17158:5;17115:67;:::i;:::-;17224:3;17218:4;17214:14;17207:4;17202:3;17198:14;17191:38;17266:14;17253:28;17290:31;17313:7;17290:31;:::i;:::-;17356:4;17343:18;17330:32;;17407:73;17474:4;17454:25;;17458:14;17407:73;:::i;:::-;17371:109;;17513:4;17506;17500;17496:15;17489:29;17534:72;17600:4;17594;17590:15;17576:12;17560:14;17534:72;:::i;:::-;17527:79;16816:796;-1:-1:-1;;;;;;16816:796:78:o;17713:2354::-;17830:6;17825:3;17818:19;17800:3;17856:4;17897:2;17892:3;17888:12;17922:11;17949;17942:18;;17999:6;17996:1;17992:14;17985:5;17981:26;17969:38;;18030:5;18053:1;18074;18084:1957;18100:6;18095:3;18092:15;18084:1957;;;18175:5;18169:4;18165:16;18160:3;18153:29;18205:57;18255:6;18248:5;18205:57;:::i;:::-;18285:4;18341:2;18328:16;18424:3;18420:8;18415:2;18399:14;18395:23;18391:38;18371:18;18367:63;18357:91;;18444:1;18441;18434:12;18357:91;18516:16;;;18476:27;;18565:60;18476:27;;18565:60;:::i;:::-;18648:4;18687:2;18682;18676:4;18672:13;18665:25;18717:67;18779:3;18773:4;18769:14;18755:12;18717:67;:::i;:::-;18703:81;;18819:69;18884:2;18875:7;18871:16;18862:7;18819:69;:::i;:::-;18915:2;18911:7;18941:2;19001;18994:4;18986:6;18982:17;18978:26;18973:2;18967:4;18963:13;18956:49;19032:61;19086:6;19070:14;19032:61;:::i;:::-;19018:75;;19116:3;19106:13;;19180:2;19171:7;19167:16;19154:30;19149:2;19143:4;19139:13;19132:53;19239:2;19230:7;19226:16;19213:30;19198:45;;;19256:32;19280:7;19256:32;:::i;:::-;19311:3;-1:-1:-1;;;;;19353:7:78;19349:32;19344:2;19338:4;19334:13;19327:55;19436:2;19427:7;19423:16;19410:30;19395:45;;19453:32;19477:7;19453:32;:::i;:::-;-1:-1:-1;;;;;;19520:34:78;;19505:13;;;19498:57;19604;19644:16;;;19648:7;19604:57;:::i;:::-;19568:93;;;;;19720:2;19713:4;19705:6;19701:17;19697:26;19691:3;19685:4;19681:14;19674:50;;;;19750:63;19806:6;19792:12;19776:14;19750:63;:::i;:::-;19737:76;;;;19848:28;19872:2;19868;19864:11;19848:28;:::i;:::-;17687:13;17680:21;19921:13;;;17668:34;;;;-1:-1:-1;20019:12:78;;;;19984:15;;;;18126:1;18117:11;18084:1957;;;-1:-1:-1;20057:4:78;;17713:2354;-1:-1:-1;;;;;;;;17713:2354:78:o;20072:369::-;20325:2;20314:9;20307:21;20288:4;20345:90;20431:2;20420:9;20416:18;20408:6;20400;20345:90;:::i;20446:271::-;20637:2;20626:9;20619:21;20600:4;20657:54;20707:2;20696:9;20692:18;20684:6;20657:54;:::i;20722:251::-;20792:6;20845:2;20833:9;20824:7;20820:23;20816:32;20813:52;;;20861:1;20858;20851:12;20813:52;20893:9;20887:16;20912:31;20937:5;20912:31;:::i;20978:127::-;21039:10;21034:3;21030:20;21027:1;21020:31;21070:4;21067:1;21060:15;21094:4;21091:1;21084:15;21110:250;21195:1;21205:113;21219:6;21216:1;21213:13;21205:113;;;21295:11;;;21289:18;21276:11;;;21269:39;21241:2;21234:10;21205:113;;;-1:-1:-1;;21352:1:78;21334:16;;21327:27;21110:250::o;21365:270::-;21406:3;21444:5;21438:12;21471:6;21466:3;21459:19;21487:76;21556:6;21549:4;21544:3;21540:14;21533:4;21526:5;21522:16;21487:76;:::i;:::-;21617:2;21596:15;-1:-1:-1;;21592:29:78;21583:39;;;;21624:4;21579:50;;21365:270;-1:-1:-1;;21365:270:78:o;21640:534::-;21693:3;21737:5;21731:12;21764:4;21759:3;21752:17;21790:56;21840:4;21835:3;21831:14;21817:12;21790:56;:::i;:::-;21778:68;;21894:4;21887:5;21883:16;21877:23;21942:3;21936:4;21932:14;21925:4;21920:3;21916:14;21909:38;21996:4;21979:14;21973:21;21969:32;21963:4;21956:46;22059:4;22043:14;22039:25;22033:32;22011:54;;22098:4;22091;22085;22081:15;22074:29;22119:49;22162:4;22156;22152:15;22136:14;22119:49;:::i;22179:768::-;22233:3;22277:5;22271:12;22304:4;22299:3;22292:17;22330:58;22382:4;22377:3;22373:14;22359:12;22330:58;:::i;:::-;22318:70;;22436:4;22429:5;22425:16;22419:23;22484:3;22478:4;22474:14;22467:4;22462:3;22458:14;22451:38;22512:50;22557:4;22541:14;22512:50;:::i;:::-;22498:64;;;22611:4;22604:5;22600:16;22594:23;22587:4;22582:3;22578:14;22571:47;-1:-1:-1;;;;;22671:4:78;22664:5;22660:16;22654:23;22650:48;22643:4;22638:3;22634:14;22627:72;22769:10;22764:3;22760:20;22752:4;22745:5;22741:16;22735:23;22731:50;22724:4;22719:3;22715:14;22708:74;22830:4;22823:5;22819:16;22813:23;22880:3;22872:6;22868:16;22861:4;22856:3;22852:14;22845:40;22901;22934:6;22918:14;22901:40;:::i;22952:305::-;23003:3;23047:5;23041:12;23074:4;23069:3;23062:17;23100:59;23153:4;23148:3;23144:14;23130:12;23100:59;:::i;:::-;23222:4;23211:16;;;23205:23;23198:31;23191:39;23175:14;;;;23168:63;;;;-1:-1:-1;23088:71:78;22952:305;-1:-1:-1;22952:305:78:o;23262:634::-;23323:3;23361:5;23355:12;23388:6;23383:3;23376:19;23414:4;23455:2;23450:3;23446:12;23480:11;23507;23500:18;;23557:6;23554:1;23550:14;23543:5;23539:26;23527:38;;23599:2;23592:5;23588:14;23620:1;23630:240;23644:6;23641:1;23638:13;23630:240;;;23715:5;23709:4;23705:16;23700:3;23693:29;23743:47;23785:4;23776:6;23770:13;23743:47;:::i;:::-;23848:12;;;;23735:55;-1:-1:-1;23813:15:78;;;;23666:1;23659:9;23630:240;;;-1:-1:-1;23886:4:78;;23262:634;-1:-1:-1;;;;;;;23262:634:78:o;23901:1398::-;23964:3;24002:5;23996:12;24029:6;24024:3;24017:19;24055:4;24096:2;24091:3;24087:12;24121:11;24148;24141:18;;24198:6;24195:1;24191:14;24184:5;24180:26;24168:38;;24240:2;24233:5;24229:14;24261:1;24282;24292:981;24308:6;24303:3;24300:15;24292:981;;;24383:5;24377:4;24373:16;24368:3;24361:29;24419:6;24413:13;24449:4;24492:2;24486:9;24521:2;24515:4;24508:16;24551:55;24602:2;24596:4;24592:13;24578:12;24551:55;:::i;:::-;24647:11;;;24641:18;24694:17;;;24679:13;;;24672:40;24773:21;;24807:24;;;24897:23;;;;24944:1;;-1:-1:-1;24853:15:78;;;-1:-1:-1;24958:209:78;24974:8;24969:3;24966:17;24958:209;;;25051:15;;25037:30;;25136:17;;;;25002:1;24993:11;;;;;25093:14;;;;24958:209;;;-1:-1:-1;25251:12:78;;;;25188:5;-1:-1:-1;;;25216:15:78;;;;24334:1;24325:11;24292:981;;25304:1211;25515:2;25504:9;25497:21;25478:4;25553:6;25547:13;25596:4;25591:2;25580:9;25576:18;25569:32;25624:61;25680:3;25669:9;25665:19;25651:12;25624:61;:::i;:::-;25610:75;;-1:-1:-1;;;;;25743:2:78;25735:6;25731:15;25725:22;25721:47;25716:2;25705:9;25701:18;25694:75;25823:2;25815:6;25811:15;25805:22;25800:2;25789:9;25785:18;25778:50;25877:2;25869:6;25865:15;25859:22;25904:2;25900:7;25972:2;25960:9;25952:6;25948:22;25944:31;25938:3;25927:9;25923:19;25916:60;25999;26052:6;26036:14;25999:60;:::i;:::-;25985:74;;26108:3;26100:6;26096:16;26090:23;26068:45;;26178:2;26166:9;26158:6;26154:22;26150:31;26144:3;26133:9;26129:19;26122:60;26205:62;26260:6;26244:14;26205:62;:::i;:::-;26191:76;;26322:3;26314:6;26310:16;26304:23;26298:3;26287:9;26283:19;26276:52;26377:3;26369:6;26365:16;26359:23;26337:45;;26448:2;26436:9;26428:6;26424:22;26420:31;26413:4;26402:9;26398:20;26391:61;;26469:40;26502:6;26486:14;26469:40;:::i;26520:184::-;26590:6;26643:2;26631:9;26622:7;26618:23;26614:32;26611:52;;;26659:1;26656;26649:12;26611:52;-1:-1:-1;26682:16:78;;26520:184;-1:-1:-1;26520:184:78:o;26709:1349::-;26828:6;26823:3;26816:19;26798:3;26854:4;26895:2;26890:3;26886:12;26920:11;26947;26940:18;;26977:1;26967:11;;27018:6;27014:2;27010:15;27003:5;26999:27;27049:5;27072:1;27093;27103:929;27119:6;27114:3;27111:15;27103:929;;;27194:5;27188:4;27184:16;27179:3;27172:29;27224:57;27274:6;27267:5;27224:57;:::i;:::-;27304:4;27341:50;27388:2;27384;27341:50;:::i;:::-;27417:2;27411:4;27404:16;27447:64;27507:2;27501:4;27497:13;27483:12;27447:64;:::i;:::-;27433:78;;;27560:59;27615:2;27611;27607:11;27603:2;27560:59;:::i;:::-;27654:17;;;27639:13;;;27632:40;27685:28;;;27524:95;-1:-1:-1;;;;;;27729:37:78;;27726:57;;;27779:1;27776;27769:12;27726:57;27812:21;;;;;27876:14;27859:15;;;27846:55;-1:-1:-1;28010:12:78;;;;27926:21;27922:30;;;-1:-1:-1;27975:15:78;;;;27145:1;27136:11;27103:929;;;-1:-1:-1;28048:4:78;;26709:1349;-1:-1:-1;;;;;;;;;26709:1349:78:o;28063:2101::-;28564:6;28553:9;28546:25;28607:3;28602:2;28591:9;28587:18;28580:31;28527:4;28640:58;28691:6;28683;28640:58;:::i;:::-;28735:4;28729:3;28718:9;28714:19;28707:33;28763:70;28828:3;28817:9;28813:19;28799:12;28763:70;:::i;:::-;28749:84;;28880:2;28872:6;28868:15;28855:29;28893:30;28917:5;28893:30;:::i;:::-;-1:-1:-1;;;;;28960:30:78;28954:3;28939:19;;28932:59;29054:4;29042:17;;29029:31;29022:4;29007:20;;29000:61;29106:69;29169:4;29157:17;;29046:6;29106:69;:::i;:::-;29198:3;29194:8;29267:2;29255:9;29247:6;29243:22;29239:31;29233:3;29222:9;29218:19;29211:60;29294:92;29379:6;29365:12;29349:14;29294:92;:::i;:::-;29280:106;;29433:69;29496:4;29488:6;29484:17;29476:6;29433:69;:::i;:::-;29395:107;;;;29567:2;29555:9;29547:6;29543:22;29539:31;29533:3;29522:9;29518:19;29511:60;29594:96;29683:6;29667:14;29651;29594:96;:::i;:::-;29580:110;;29752:3;29744:6;29740:16;29727:30;29721:3;29710:9;29706:19;29699:59;29805:56;29856:3;29848:6;29844:16;29836:6;29805:56;:::i;:::-;29767:94;;;;29926:2;29914:9;29906:6;29902:22;29898:31;29892:3;29881:9;29877:19;29870:60;;29947:65;30005:6;29989:14;29973;29947:65;:::i;:::-;29939:73;;;;;30050:6;30043:4;30032:9;30028:20;30021:36;30095:6;30088:4;30077:9;30073:20;30066:36;30111:47;30152:4;30141:9;30137:20;30129:6;-1:-1:-1;;;;;1951:30:78;1939:43;;1886:102;30169:127;30230:10;30225:3;30221:20;30218:1;30211:31;30261:4;30258:1;30251:15;30285:4;30282:1;30275:15;30632:125;30697:9;;;30718:10;;;30715:36;;;30731:18;;:::i;30762:174::-;30806:11;30858:3;30845:17;30871:30;30895:5;30871:30;:::i;31125:168::-;31198:9;;;31229;;31246:15;;;31240:22;;31226:37;31216:71;;31267:18;;:::i;31298:147::-;31361:78;31379:3;31372:5;31369:14;31361:78;;;31435:1;31421:16;;31406:1;31395:13;31361:78;;31450:323;31545:5;31539:12;31574:1;31567:5;31560:16;31602:6;31595:14;31585:182;;31643:5;31640:1;31633:16;31687:4;31684:1;31674:18;31705:52;31749:6;31743:4;31739:17;31733:4;31705:52;:::i;31778:406::-;-1:-1:-1;;;31861:6:78;31858:32;31855:58;;;31893:18;;:::i;:::-;31942:5;31936:12;31971:6;31964:5;31957:21;32001:6;31993;31990:18;31987:191;;;32041:5;32038:1;32031:16;32085:4;32082:1;32072:18;32103:65;32160:6;32154:4;32150:17;32141:6;32135:4;32131:17;32103:65;:::i;32189:153::-;32267:1;32261:4;32254:15;32278:58;32333:1;32327:4;32323:12;32278:58;:::i;32347:166::-;-1:-1:-1;;32475:1:78;32471:11;;;32467:24;32463:29;32453:40;32499:1;32495:11;;;;32450:57;;32347:166::o;32518:513::-;32587:38;32619:4;32613:11;32587:38;:::i;:::-;32651:6;32644:14;32634:391;;32700:2;32692:6;32689:14;32721:1;32716:259;;;;-1:-1:-1;;33011:1:78;32998:15;;6038:1264:36:o;32716:259:78:-;32751:4;32748:1;32741:15;32798:4;32795:1;32785:18;32820:77;32891:2;32883:6;32879:15;32876:1;32872:23;32866:4;32862:34;32858:1;32852:4;32848:12;32820:77;:::i;:::-;32927:1;32914:15;;;32946;;32682:333;32634:391;32518:513;:::o;33036:235::-;33116:1;33110:4;33103:15;33127:58;33182:1;33176:4;33172:12;33127:58;:::i;:::-;33215:1;33211;33205:4;33201:12;33194:23;33226:39;33262:1;33256:4;33252:12;33226:39;:::i;33276:515::-;33347:4;33353:6;33413:11;33400:25;33507:2;33503:7;33492:8;33476:14;33472:29;33468:43;33448:18;33444:68;33434:96;;33526:1;33523;33516:12;33434:96;33553:33;;33605:20;;;-1:-1:-1;;;;;;33637:30:78;;33634:50;;;33680:1;33677;33670:12;33634:50;33713:4;33701:17;;-1:-1:-1;33744:14:78;33740:27;;;33730:38;;33727:58;;;33781:1;33778;33771:12;33796:418;33897:2;33892:3;33889:11;33886:322;;;33933:5;33930:1;33923:16;33977:4;33974:1;33964:18;34047:2;34035:10;34031:19;34028:1;34024:27;34018:4;34014:38;34083:4;34071:10;34068:20;34065:47;;;-1:-1:-1;34106:4:78;34065:47;34125:73;34192:2;34187:3;34183:12;34180:1;34176:20;34170:4;34166:31;34153:11;34125:73;:::i;34219:1198::-;-1:-1:-1;;;;;34320:3:78;34317:27;34314:53;;;34347:18;;:::i;:::-;34376:93;34465:3;34425:38;34457:4;34451:11;34425:38;:::i;:::-;34419:4;34376:93;:::i;:::-;34495:1;34520:2;34515:3;34512:11;34537:1;34532:627;;;;35203:1;35220:3;35217:93;;;-1:-1:-1;35276:19:78;;;35263:33;35217:93;35336:64;35396:3;35389:5;35336:64;:::i;:::-;35330:4;35323:78;;34505:906;;34532:627;2771:1;2764:14;;;2808:4;2795:18;;-1:-1:-1;;34568:17:78;;;34680:9;34702:229;34716:7;34713:1;34710:14;34702:229;;;34805:19;;;34792:33;34777:49;;34912:4;34897:20;;;;34865:1;34853:14;;;;34732:12;34702:229;;;34706:3;34959;34950:7;34947:16;34944:159;;;35083:1;35079:6;35073:3;35067;35064:1;35060:11;35056:21;35052:34;35048:39;35035:9;35030:3;35026:19;35013:33;35009:79;35001:6;34994:95;34944:159;;;35146:1;35140:3;35137:1;35133:11;35129:19;35123:4;35116:33;34505:906;;34219:1198;;;:::o;35422:2889::-;35544:75;35613:5;35606;35544:75;:::i;:::-;35656:2;35643:16;35668:32;35692:7;35668:32;:::i;:::-;31043:11;;-1:-1:-1;;;;;;31039:41:78;-1:-1:-1;;;;;31082:30:78;;31036:77;31023:91;;35709:60;35788:1;35826:2;35820:4;35816:13;35848:2;35893:103;35992:2;35988;35984:11;35980:2;35893:103;:::i;:::-;35859:137;;-1:-1:-1;;;;;36063:2:78;36048:13;36045:21;36042:47;;;36069:18;;:::i;:::-;36098:65;36149:13;36137:10;36098:65;:::i;:::-;36216:1;36226:22;;;36269:17;;;;36216:1;36315:281;36329:13;36326:1;36323:20;36315:281;;;36414:6;36401:20;36434:33;36459:7;36434:33;:::i;:::-;36562:12;;;36555:31;36527:15;;;;36351:10;;36315:281;;;36319:3;36635:1;36629:4;36625:12;36605:32;;36656:84;36736:2;36729:5;36725:14;36718:5;36656:84;:::i;:::-;36646:94;;36777:2;36764:16;36749:31;;36789;36812:7;36789:31;:::i;:::-;36857:19;;-1:-1:-1;;36853:34:78;36902:4;36889:18;;36850:58;36829:80;;;36948:1;36938:12;;;36995:52;37035:11;;;37039:2;36995:52;:::i;:::-;36959:88;;;;37077:2;37062:13;37059:21;37056:47;;;37083:18;;:::i;:::-;37112:119;37217:13;37169:46;37201:12;37195:19;37169:46;:::i;:::-;37155:12;37112:119;:::i;:::-;37257:2;37240:19;;37293:2;37278:13;37275:21;37310:1;37305:703;;;;38054:2;38072:13;38069:115;;;-1:-1:-1;38140:29:78;;;38127:43;38069:115;38218:76;38280:13;38271:7;38218:76;:::i;:::-;38204:12;38197:98;;37268:1037;;37305:703;2771:1;2764:14;;;2808:4;2795:18;;-1:-1:-1;;37341:27:78;;;37473:2;37488:242;37504:7;37499:3;37496:16;37488:242;;;37595:29;;;37582:43;37567:59;;37698:18;;;;37653:15;;;;37522:12;;37488:242;;;37492:3;37758:13;37749:7;37746:26;37743:189;;;37912:1;37908:6;37902:3;37886:13;37883:1;37879:21;37875:31;37871:44;37867:49;37854:9;37839:13;37835:29;37822:43;37818:99;37810:6;37803:115;37743:189;;;37994:2;37978:13;37974:2;37970:22;37966:31;37952:12;37945:53;37268:1037;;;;;;;;;35422:2889;;:::o;38316:174::-;38360:11;38412:3;38399:17;38425:30;38449:5;38425:30;:::i;38726:170::-;38768:11;38820:3;38807:17;38833:28;38855:5;38833:28;:::i;39098:3956::-;39245:5;39232:19;39330:3;39326:8;39318:5;39302:14;39298:26;39294:41;39274:18;39270:66;39260:94;;39350:1;39347;39340:12;39260:94;39375:30;;39424:73;39375:30;;39424:73;:::i;:::-;39516:69;39582:2;39578;39516:69;:::i;:::-;39622:2;39609:16;39634:32;39658:7;39634:32;:::i;:::-;31043:11;;-1:-1:-1;;;;;;31039:41:78;-1:-1:-1;;;;;31082:30:78;;31036:77;31023:91;;39675:60;39754:1;39792:2;39786:4;39782:13;39814:2;39859:103;39958:2;39954;39950:11;39946:2;39859:103;:::i;:::-;39825:137;;-1:-1:-1;;;;;40029:2:78;40014:13;40011:21;40008:47;;;40035:18;;:::i;:::-;40064:65;40115:13;40103:10;40064:65;:::i;:::-;40182:1;40192:22;;;40235:17;;;;40182:1;40281:242;40295:13;40292:1;40289:20;40281:242;;;40380:6;40367:20;40400:33;40425:7;40400:33;:::i;:::-;40491:12;;;40484:29;40456:15;;;;40317:10;;40281:242;;;40285:3;40562:1;40556:4;40552:12;40532:32;;40583:78;40657:2;40653;40649:11;40645:2;40583:78;:::i;:::-;40573:88;;40698:2;40685:16;40670:31;;40710;40733:7;40710:31;:::i;:::-;40778:19;;-1:-1:-1;;40774:34:78;40823:4;40810:18;;40771:58;40750:80;;;40869:1;40859:12;;;40916:52;40956:11;;;40960:2;40916:52;:::i;:::-;40880:88;;;;40998:2;40983:13;40980:21;40977:47;;;41004:18;;:::i;:::-;41033:119;41138:13;41090:46;41122:12;41116:19;41090:46;:::i;41033:119::-;41178:2;41161:19;;41214:2;41199:13;41196:21;41231:1;41226:703;;;;41975:2;41960:17;;41993:13;41990:115;;;42080:9;42065:13;42061:29;42048:43;42037:54;;41990:115;42139:76;42201:13;42192:7;42139:76;:::i;:::-;42125:12;42118:98;41189:1037;;41226:703;2771:1;2764:14;;;2808:4;2795:18;;-1:-1:-1;;41262:27:78;;;-1:-1:-1;41394:2:78;41409:242;41425:7;41420:3;41417:16;41409:242;;;41516:29;;;41503:43;41488:59;;41619:18;;;;41574:15;;;;41443:12;;41409:242;;;41413:3;41679:13;41670:7;41667:26;41664:189;;;41833:1;41829:6;41823:3;41807:13;41804:1;41800:21;41796:31;41792:44;41788:49;41775:9;41760:13;41756:29;41743:43;41739:99;41731:6;41724:115;41664:189;;41915:2;41899:13;41895:2;41891:22;41887:31;41873:12;41866:53;41189:1037;;;;;42235:173;42325:82;42403:2;42397:4;42393:13;42387:4;42325:82;:::i;:::-;42321:1;42315:4;42311:12;42235:173;:::i;:::-;42461:2;42455:4;42451:13;42438:27;42434:1;42428:4;42424:12;42417:49;42505:1;42499:4;42495:12;42475:32;;42516:102;42576:41;42613:2;42607:4;42603:13;42576:41;:::i;:::-;31043:11;;-1:-1:-1;;;;;;31039:41:78;-1:-1:-1;;;;;31082:30:78;;;;31036:77;31023:91;;30941:179;42516:102;42627:103;42687:42;42724:3;42718:4;42714:14;42687:42;:::i;:::-;38587:11;;-1:-1:-1;;38623:40:78;38673:3;38669:15;;;;38686:26;38665:48;38620:94;38607:108;;38495:226;42627:103;42775:57;42827:3;42821:4;42817:14;42811:4;42775:57;:::i;:::-;42739:93;;;;42841:100;42927:13;42912;42907:2;42901:4;42897:13;42841:100;:::i;:::-;42950:98;43007:40;43043:2;43036:5;43032:14;43007:40;:::i;:::-;43002:2;42996:4;42992:13;39015:3;39011:8;39004:4;38998:11;38994:26;39081:3;39072:5;39065:13;39058:21;39054:31;39045:7;39042:44;39036:4;39029:58;;38901:192;;;42950:98;;;;;;;39098:3956;;:::o;43059:1606::-;-1:-1:-1;;;43207:3:78;43204:29;43201:55;;;43236:18;;:::i;:::-;43285:4;43279:11;43312:3;43306:4;43299:17;43336:6;43331:3;43328:15;43325:886;;;43376:2;43414:6;43410:2;43406:15;43468:2;43459:7;43455:16;43447:6;43444:28;43434:62;;43476:18;;:::i;:::-;43534:3;43530:2;43526:12;43584:2;43573:9;43569:18;43564:3;43561:27;43551:61;;43592:18;;:::i;:::-;43635:1;43649:16;;;43704:4;43690:19;;43732:18;;;;43776:20;;;;;43809:392;43827:2;43820:5;43817:13;43809:392;;;43889:44;43927:5;43889:44;:::i;:::-;43950:52;43999:1;43992:5;43988:13;43950:52;:::i;:::-;44041:2;44037:1;44030:5;44026:13;44019:25;44083:2;44079:1;44072:5;44068:13;44061:25;44103:41;44140:2;44133:5;44129:14;44103:41;:::i;:::-;44184:2;44179;44172:5;44168:14;44161:26;43853:2;43846:5;43842:14;43833:23;;43809:392;;;43813:3;;;;43325:886;-1:-1:-1;2771:1:78;2764:14;;;2808:4;2795:18;;44234:5;;44341:318;44355:3;44352:1;44349:10;44341:318;;;44401:162;44486:76;44555:6;44548:5;44486:76;:::i;:::-;44473:11;44401:162;:::i;:::-;44598:2;44586:15;;;;;44646:2;44629:20;;;;;44374:1;44367:9;44341:318;;;44345:3;;;43059:1606;;;:::o;44670:446::-;44765:5;44759:12;44790:1;44814:2;44807:5;44800:17;44843:6;44836:14;44826:284;;44885:5;44881:2;44874:17;44930:4;44926:2;44916:19;44968:6;44962:4;44958:17;45018:82;45036:2;45029:5;45026:13;45018:82;;;45095:2;45088:5;45081:17;45062:1;45055:5;45051:13;45042:22;;45018:82;;45121:532;-1:-1:-1;;;45204:6:78;45201:32;45198:58;;;45236:18;;:::i;:::-;45285:5;45279:12;45314:6;45307:5;45300:21;45344:6;45336;45333:18;45330:317;;;45384:1;45398:17;;;45454:4;45440:19;;45525:17;;;;45482;;45555:82;45573:2;45566:5;45563:13;45555:82;;;45632:2;45625:5;45618:17;45599:1;45592:5;45588:13;45579:22;;45555:82;;45658:1869;45780:75;45849:5;45842;45780:75;:::i;:::-;45892:2;45879:16;45904:32;45928:7;45904:32;:::i;:::-;31043:11;;-1:-1:-1;;;;;;31039:41:78;-1:-1:-1;;;;;31082:30:78;;31036:77;31023:91;;45945:60;46024:1;46062:2;46056:4;46052:13;46084:2;46129:103;46228:2;46224;46220:11;46216:2;46129:103;:::i;:::-;46095:137;;-1:-1:-1;;;;;46299:2:78;46284:13;46281:21;46278:47;;;46305:18;;:::i;:::-;46334:65;46385:13;46373:10;46334:65;:::i;:::-;46452:1;46462:22;;;46505:17;;;;46452:1;46551:281;46565:13;46562:1;46559:20;46551:281;;;46650:6;46637:20;46670:33;46695:7;46670:33;:::i;:::-;46798:12;;;46791:31;46763:15;;;;46587:10;;46551:281;;;46555:3;46871:1;46865:4;46861:12;46841:32;;46918:109;47023:2;47016:5;47012:14;47005:5;46918:109;:::i;:::-;46882:145;;;;47057:2;47042:13;47039:21;47036:47;;;47063:18;;:::i;:::-;47092:67;47145:13;47131:12;47092:67;:::i;:::-;47206:24;;;-1:-1:-1;47253:17:78;;;;47301:220;47317:13;47312:3;47309:22;47301:220;;;47397:22;;47481:16;;;47474:37;47444:17;;;;47341:12;;47301:220;;47532:1406;-1:-1:-1;;;47684:3:78;47681:29;47678:55;;;47713:18;;:::i;:::-;47762:4;47756:11;47789:3;47783:4;47776:17;47813:6;47808:3;47805:15;47802:679;;;47853:1;47890:6;47886:2;47882:15;47944:2;47935:7;47931:16;47923:6;47920:28;47910:62;;47952:18;;:::i;:::-;48010:3;48006:2;48002:12;48060:2;48049:9;48045:18;48040:3;48037:27;48027:61;;48068:18;;:::i;:::-;48108:1;48101:15;;;48154:4;48141:18;;48182;;;;48226:20;48259:212;48277:2;48270:5;48267:13;48259:212;;;48339:42;48375:5;48339:42;:::i;:::-;48398:59;48454:1;48447:5;48443:13;48398:59;:::i;:::-;48292:14;;48259:212;;;48263:3;;;47802:679;-1:-1:-1;2771:1:78;2764:14;;;2808:4;2795:18;;48504:5;;48611:321;48625:3;48622:1;48619:10;48611:321;;;48671:166;48760:76;48829:6;48822:5;48760:76;:::i;:::-;48747:11;48671:166;:::i;:::-;48872:2;48860:15;;;;;48920:1;48903:19;;;;;48644:1;48637:9;48611:321;;48943:2208;49114:75;49183:5;49176;49114:75;:::i;:::-;49226:2;49213:16;49238:32;49262:7;49238:32;:::i;:::-;31043:11;;-1:-1:-1;;;;;;31039:41:78;-1:-1:-1;;;;;31082:30:78;;31036:77;31023:91;;49279:60;49358:1;49396:2;49390:4;49386:13;49418:2;49463:103;49562:2;49558;49554:11;49550:2;49463:103;:::i;:::-;49429:137;;-1:-1:-1;;;;;49581:13:78;49578:37;49575:63;;;49618:18;;:::i;:::-;49647:65;49698:13;49686:10;49647:65;:::i;:::-;49762:1;49755:21;;;49797:16;;;;49841:242;49855:13;49852:1;49849:20;49841:242;;;49940:6;49927:20;49960:33;49985:7;49960:33;:::i;:::-;50051:12;;;50044:29;50016:15;;;;49877:10;;49841:242;;;49845:3;;50092:103;50152:42;50190:2;50183:5;50179:14;50152:42;:::i;:::-;50148:1;50142:4;50138:12;-1:-1:-1;;;;;31086:5:78;31082:30;-1:-1:-1;;;;;31056:23:78;31049:4;31043:11;31039:41;31036:77;31030:4;31023:91;;;30941:179;50092:103;;;;;50249:2;50242:5;50238:14;50225:28;50221:1;50215:4;50211:12;50204:50;50299:109;50404:2;50397:5;50393:14;50386:5;50299:109;:::i;:::-;50417:144;50547:13;50532;50528:1;50522:4;50518:12;50417:144;:::i;:::-;;;50606:110;50711:3;50704:5;50700:15;50693:5;50606:110;:::i;:::-;50725:148;50859:13;50844;50840:1;50834:4;50830:12;50725:148;:::i;:::-;;;50927:3;50920:5;50916:15;50903:29;50899:1;50893:4;50889:12;50882:51;50978:59;51032:3;51025:5;51021:15;51014:5;50978:59;:::i;:::-;51046:99;51131:13;51116;51112:1;51106:4;51102:12;51046:99;:::i;51156:792::-;51243:5;51272:64;51288:47;51328:6;51288:47;:::i;51272:64::-;51370:21;;;51263:73;-1:-1:-1;51410:4:78;51430:14;;;;51483:1;51479:14;;;51467:27;;51506:15;;;51503:35;;;51534:1;51531;51524:12;51503:35;51558:6;51573:369;51589:6;51584:3;51581:15;51573:369;;;51675:3;51662:17;-1:-1:-1;;;;;51698:11:78;51695:35;51692:125;;;51771:1;51800:2;51796;51789:14;51692:125;51842:57;51895:3;51881:11;51873:6;51869:24;51842:57;:::i;:::-;51830:70;;-1:-1:-1;51920:12:78;;;;51606;;51573:369;;;51577:3;;;;51156:792;;;;;:::o;51953:299::-;52125:9;52162:84;52231:14;52223:6;52216:5;52162:84;:::i;52257:491::-;52533:2;52522:9;52515:21;52496:4;52559:57;52612:2;52601:9;52597:18;52589:6;52559:57;:::i;52753:276::-;52839:6;52892:2;52880:9;52871:7;52867:23;52863:32;52860:52;;;52908:1;52905;52898:12;52860:52;52940:9;52934:16;52979:1;52972:5;52969:12;52959:40;;52995:1;52992;52985:12;53034:477;53307:2;53296:9;53289:21;53270:4;53333:54;53383:2;53372:9;53368:18;53360:6;53333:54;:::i;:::-;53435:9;53427:6;53423:22;53418:2;53407:9;53403:18;53396:50;53463:42;53498:6;53490;53463:42;:::i;53516:209::-;53554:3;-1:-1:-1;;;;;53635:2:78;53628:5;53624:14;53662:2;53653:7;53650:15;53647:41;;53668:18;;:::i;:::-;53717:1;53704:15;;53516:209;-1:-1:-1;;;53516:209:78:o;54156:757::-;54280:9;54339:4;54331:5;54315:14;54311:26;54307:37;54304:57;;;54357:1;54354;54347:12;54304:57;54385:23;;:::i;:::-;54445:5;54432:19;54460:32;54484:7;54460:32;:::i;:::-;54501:24;;54572:2;54561:14;;54548:28;-1:-1:-1;;;;;54588:30:78;;54585:50;;;54631:1;54628;54621:12;54585:50;54654:18;;54710:14;54703:4;54695:13;;54691:34;54681:62;;54739:1;54736;54729:12;54681:62;54777:100;54862:14;54857:2;54844:16;54839:2;54835;54831:11;54777:100;:::i;:::-;54772:2;54759:16;;54752:126;-1:-1:-1;54763:7:78;54156:757;-1:-1:-1;;54156:757:78:o;54918:474::-;55127:2;55116:9;55109:21;-1:-1:-1;;;;;55176:6:78;55170:13;55166:38;55161:2;55150:9;55146:18;55139:66;55090:4;55252:2;55244:6;55240:15;55234:22;55294:4;55287;55276:9;55272:20;55265:34;55316:70;55382:2;55371:9;55367:18;55353:12;55316:70;:::i;55397:2104::-;55584:5;55571:19;55599:32;55623:7;55599:32;:::i;:::-;31043:11;;-1:-1:-1;;;;;;31039:41:78;-1:-1:-1;;;;;31082:30:78;;31036:77;31023:91;;55640:60;55719:1;55757:2;55751:4;55747:13;55779:2;55824:109;55929:2;55922:5;55918:14;55911:5;55824:109;:::i;:::-;-1:-1:-1;;;55948:13:78;55945:39;55942:65;;;55987:18;;:::i;:::-;56036:10;56030:17;56075:13;56063:10;56056:33;56119:6;56104:13;56101:25;56098:920;;;56159:2;56197:6;56193:2;56189:15;56251:2;56242:7;56238:16;56230:6;56227:28;56217:62;;56259:18;;:::i;:::-;56317:13;56313:2;56309:22;56387:2;56376:9;56372:18;56357:13;56354:37;56344:71;;56395:18;;:::i;:::-;56438:1;56452:22;;;56499:17;;;56539:18;;;;56583:20;;;;;56616:392;56634:2;56627:5;56624:13;56616:392;;;56696:44;56734:5;56696:44;:::i;:::-;56757:52;56806:1;56799:5;56795:13;56757:52;:::i;:::-;56848:2;56844:1;56837:5;56833:13;56826:25;56890:2;56886:1;56879:5;56875:13;56868:25;56910:41;56947:2;56940:5;56936:14;56910:41;:::i;:::-;56991:2;56986;56979:5;56975:14;56968:26;56660:2;56653:5;56649:14;56640:23;;56616:392;;;56620:3;;;;56098:920;-1:-1:-1;2771:1:78;2764:14;;;2808:4;2795:18;;;57041:11;;57160:335;57174:13;57171:1;57168:20;57160:335;;;57231:168;57316:82;57391:6;57378:11;57316:82;:::i;:::-;57303:11;57231:168;:::i;:::-;57482:2;57465:20;;;;;57422:15;;;;57196:10;;57160:335;;;57164:3;;;;;;;55397:2104;;:::o;57506:368::-;57725:2;57714:9;57707:21;57688:4;57745:54;57795:2;57784:9;57780:18;57772:6;57745:54;:::i;:::-;57737:62;;57864:1;57860;57855:3;57851:11;57847:19;57839:6;57835:32;57830:2;57819:9;57815:18;57808:60;57506:368;;;;;:::o;58061:1360::-;58185:3;58179:10;-1:-1:-1;;;;;58204:6:78;58201:30;58198:56;;;58234:18;;:::i;:::-;58263:96;58352:6;58312:38;58344:4;58338:11;58312:38;:::i;:::-;58306:4;58263:96;:::i;:::-;58414:4;;58478:2;58467:14;;58495:1;58490:674;;;;59208:1;59225:6;59222:89;;;-1:-1:-1;59277:19:78;;;59271:26;59222:89;59337:67;59397:6;59390:5;59337:67;:::i;:::-;59331:4;59324:81;;58460:955;;58490:674;2771:1;2764:14;;;2808:4;2795:18;;-1:-1:-1;;58526:20:78;;;58655:236;58669:7;58666:1;58663:14;58655:236;;;58758:19;;;58752:26;58737:42;;58850:27;;;;58818:1;58806:14;;;;58685:19;;58655:236;;;58659:3;58919:6;58910:7;58907:19;58904:201;;;58980:19;;;58974:26;-1:-1:-1;;59063:1:78;59059:14;;;59075:3;59055:24;59051:37;59047:42;59032:58;59017:74;;58904:201;-1:-1:-1;;;;;59151:1:78;59135:14;;;59131:22;59118:36;;-1:-1:-1;58061:1360:78:o;59426:180::-;-1:-1:-1;;;;;59531:10:78;;;59543;;;59527:27;;59566:11;;;59563:37;;;59580:18;;:::i;:::-;59563:37;59426:180;;;;:::o;59611:183::-;-1:-1:-1;;;;;59730:10:78;;;59718;;;59714:27;;59753:12;;;59750:38;;;59768:18;;:::i;59799:127::-;59860:10;59855:3;59851:20;59848:1;59841:31;59891:4;59888:1;59881:15;59915:4;59912:1;59905:15;59931:191;59962:1;-1:-1:-1;;;;;60033:2:78;60030:1;60026:10;60055:3;60045:37;;60062:18;;:::i;:::-;60100:10;;60096:20;;;;;59931:191;-1:-1:-1;;59931:191:78:o;60675:271::-;60866:2;60855:9;60848:21;60829:4;60886:54;60936:2;60925:9;60921:18;60913:6;60886:54;:::i;60951:647::-;61030:6;61083:2;61071:9;61062:7;61058:23;61054:32;61051:52;;;61099:1;61096;61089:12;61051:52;61132:9;61126:16;-1:-1:-1;;;;;61157:6:78;61154:30;61151:50;;;61197:1;61194;61187:12;61151:50;61220:22;;61273:4;61265:13;;61261:27;-1:-1:-1;61251:55:78;;61302:1;61299;61292:12;61251:55;61331:2;61325:9;61356:48;61372:31;61400:2;61372:31;:::i;61356:48::-;61427:2;61420:5;61413:17;61467:7;61462:2;61457;61453;61449:11;61445:20;61442:33;61439:53;;;61488:1;61485;61478:12;61439:53;61501:67;61565:2;61560;61553:5;61549:14;61544:2;61540;61536:11;61501:67;:::i;61603:199::-;61642:1;-1:-1:-1;;;;;61713:2:78;61710:1;61706:10;61735:3;61725:37;;61742:18;;:::i;:::-;61780:10;;61776:20;;;;;61603:199;-1:-1:-1;;61603:199:78:o;61807:257::-;-1:-1:-1;;;;;61928:10:78;;;61940;;;61924:27;61971:20;;;;61878:18;62010:24;;;62000:58;;62038:18;;:::i;:::-;62000:58;;61807:257;;;;:::o;62069:120::-;62109:1;62135;62125:35;;62140:18;;:::i;:::-;-1:-1:-1;62174:9:78;;62069:120::o;62383:1097::-;62485:12;;62518:4;62506:17;;;62593:19;;-1:-1:-1;;;;;62589:44:78;62573:14;;;62566:68;62653:4;62694:21;;;62688:28;62741:2;62732:12;;62725:26;;;;62800:21;;62553:3;62544:13;;62830:20;;;62447:3;;62904:23;;;;62447:3;;62877;62868:13;;;62955:201;62969:6;62966:1;62963:13;62955:201;;;63036:13;;-1:-1:-1;;;;;63032:39:78;63018:54;;63131:15;;;;63068:1;62984:9;;;;;63094:14;;;;62955:201;;;62959:3;63204:2;63197:5;63193:14;63187:21;63165:43;;63249:3;63242:5;63238:15;63233:2;63228:3;63224:12;63217:37;63304:4;63287:14;63281:21;63277:32;63270:5;63263:47;63367:2;63351:14;63347:23;63341:30;63319:52;;63403:4;63398:2;63391:5;63387:14;63380:28;63424:50;63468:4;63461:5;63457:16;63441:14;63424:50;:::i;63485:1283::-;63668:2;63657:9;63650:21;63631:4;63706:6;63700:13;63749:4;63744:2;63733:9;63729:18;63722:32;63791:12;63785:19;63840:4;63835:2;63824:9;63820:18;63813:32;63868:76;63939:3;63928:9;63924:19;63908:14;63868:76;:::i;:::-;63854:90;;63999:2;63985:12;63981:21;63975:28;64026:2;64022:7;64094:2;64082:9;64074:6;64070:22;64066:31;64060:3;64049:9;64045:19;64038:60;64121:63;64177:6;64161:14;64121:63;:::i;:::-;64107:77;;64245:4;64231:12;64227:23;64221:30;64215:3;64204:9;64200:19;64193:59;-1:-1:-1;;;;;64318:2:78;64304:12;64300:21;64294:28;64290:53;64283:4;64272:9;64268:20;64261:83;64425:10;64420:3;64416:20;64409:3;64395:12;64391:22;64385:29;64381:56;64375:3;64364:9;64360:19;64353:85;64493:3;64479:12;64475:22;64469:29;64447:51;;64563:2;64551:9;64543:6;64539:22;64535:31;64529:3;64518:9;64514:19;64507:60;;;64587:40;64620:6;64604:14;64587:40;:::i;:::-;64576:51;;;64676:2;64668:6;64664:15;64658:22;64689:53;64736:4;64725:9;64721:20;64705:14;17687:13;17680:21;17668:34;;17617:91;64689:53;-1:-1:-1;64759:3:78;63485:1283;-1:-1:-1;;;63485:1283:78:o;64981:287::-;65110:3;65148:6;65142:13;65164:66;65223:6;65218:3;65211:4;65203:6;65199:17;65164:66;:::i", "linkReferences": { "src/lib/AccountHelper.sol": { "AccountHelper": [ { - "start": 8448, + "start": 8479, "length": 20 } ] @@ -801,19 +801,19 @@ "src/lib/CheckpointHelper.sol": { "CheckpointHelper": [ { - "start": 6548, + "start": 6578, "length": 20 }, { - "start": 6809, + "start": 6840, "length": 20 }, { - "start": 8610, + "start": 8641, "length": 20 }, { - "start": 9770, + "start": 9801, "length": 20 } ] @@ -821,11 +821,11 @@ "src/lib/CrossMsgHelper.sol": { "CrossMsgHelper": [ { - "start": 2228, + "start": 2241, "length": 20 }, { - "start": 14357, + "start": 14423, "length": 20 } ] @@ -833,11 +833,11 @@ "src/lib/EpochVoteSubmissionHelper.sol": { "EpochVoteSubmissionHelper": [ { - "start": 12856, + "start": 12916, "length": 20 }, { - "start": 15595, + "start": 15685, "length": 20 } ] @@ -845,15 +845,15 @@ "src/lib/ExecutableQueueHelper.sol": { "ExecutableQueueHelper": [ { - "start": 12727, + "start": 12787, "length": 20 }, { - "start": 13020, + "start": 13080, "length": 20 }, { - "start": 13192, + "start": 13252, "length": 20 } ] @@ -861,11 +861,11 @@ "src/lib/StorableMsgHelper.sol": { "StorableMsgHelper": [ { - "start": 7575, + "start": 7605, "length": 20 }, { - "start": 13613, + "start": 13673, "length": 20 } ] @@ -873,71 +873,71 @@ "src/lib/SubnetIDHelper.sol": { "SubnetIDHelper": [ { - "start": 1254, + "start": 1253, "length": 20 }, { - "start": 1741, + "start": 1747, "length": 20 }, { - "start": 1977, + "start": 1983, "length": 20 }, { - "start": 4595, + "start": 4615, "length": 20 }, { - "start": 7262, + "start": 7292, "length": 20 }, { - "start": 7412, + "start": 7442, "length": 20 }, { - "start": 7725, + "start": 7756, "length": 20 }, { - "start": 7851, + "start": 7882, "length": 20 }, { - "start": 8159, + "start": 8190, "length": 20 }, { - "start": 10359, + "start": 10393, "length": 20 }, { - "start": 10688, + "start": 10722, "length": 20 }, { - "start": 11484, + "start": 11518, "length": 20 }, { - "start": 13401, + "start": 13461, "length": 20 }, { - "start": 13743, + "start": 13804, "length": 20 }, { - "start": 13894, + "start": 13955, "length": 20 }, { - "start": 15075, + "start": 15139, "length": 20 }, { - "start": 15338, + "start": 15403, "length": 20 } ] @@ -950,7 +950,7 @@ "sendCrossMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool))": "2f757dd1", "submitTopDownCheckpoint((uint64,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[]))": "986acf38" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotSendCrossMsgToItself\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EpochAlreadyExecuted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EpochNotVotable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InconsistentPrevCheckpoint\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidActorAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCheckpointEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCheckpointSource\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgDestinationSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgFromSubnetId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MessagesNotSorted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFee\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughSubnetCircSupply\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSignableAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetNotActive\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorAlreadyVoted\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"checks\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ChildCheck[]\",\"name\":\"children\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"commit\",\"type\":\"tuple\"}],\"name\":\"commitChildCheck\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"msgCid\",\"type\":\"bytes32\"}],\"name\":\"propagate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg\",\"name\":\"crossMsg\",\"type\":\"tuple\"}],\"name\":\"sendCrossMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"topDownMsgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct TopDownCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"}],\"name\":\"submitTopDownCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"kind\":\"dev\",\"methods\":{\"propagate(bytes32)\":{\"params\":{\"msgCid\":\"- the cid of the cross-net message\"}},\"sendCrossMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool))\":{\"params\":{\"crossMsg\":\"- message to send\"}},\"submitTopDownCheckpoint((uint64,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[]))\":{\"params\":{\"checkpoint\":\"- top-down checkpoint\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"commitChildCheck(((uint64,address[]),uint64,uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[],((uint64,address[]),bytes32[])[],bytes32,bytes))\":{\"notice\":\"submit a checkpoint in the gateway. Called from a subnet once the checkpoint is voted for and reaches majority\"},\"propagate(bytes32)\":{\"notice\":\"propagates the populated cross net message for the given cid\"},\"sendCrossMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool))\":{\"notice\":\"sends an arbitrary cross message from the current subnet to the destination subnet\"},\"submitTopDownCheckpoint((uint64,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[]))\":{\"notice\":\"allows a validator to submit a batch of messages in a top-down commitment\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/GatewayRouterFacet.sol\":\"GatewayRouterFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xb8d40721965efd93b5369d55083181226d3c7e1be4a968c04de35d44ba44f29a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5c4b0089788aa7112cce88602212c3895999f464e00d1c40d7f27ac9288798b\",\"dweb:/ipfs/Qmd69EuGeoCYPfPkGA4hayH4s2upmAe3XaoDf4ggYNEoZ4\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x31f34a3baec77c087d2bdbc5c277f169e505b905aeb43cfcea1734175140f621\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5a3bc8093b31b685ef879e8ffaaab614594cb6f98ddac4f18c411f7bbf99d0d\",\"dweb:/ipfs/QmSFfA9pH3xo8hnWKCFKTwGi8kz68YXuAwyLXsYe6KjC3Z\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xdb6d7e26320438bdd421598eb64e6fe2b03867a4dd07c9c820994b7bec26f7b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2adf1566393ddf260fb2064dd0c67be00123b8978be8b62cc45ac97aff859949\",\"dweb:/ipfs/QmaDLzQpnitEJDAJo4squpKumr5x4D2QYetPdT3jZd8hYm\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x8a925dea568a61a38de9615aae7bb462d9eb6f8eb2c6ca409f1e740519077ab8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b7e2f836581694867c09bb9c80ff2ab6ae039ece2ff3bbf4d1bc2026449fa551\",\"dweb:/ipfs/QmVMvaQSCRBHZudSV8AzimYre76tJVm4UrHYnrT89zcjho\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x2bf6521d3fc6d484d27e8cbae0b577ff4f310979fdf95ed4366d73c4701f9acc\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e01f6417e82d8791aa19694939d0e425adc8670bad777383ddd238c1ffc6d122\",\"dweb:/ipfs/QmeUmaBpkvaYtaTaxEwLaaXPQizZNz6nsMxKvscTf1X49f\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0xf29c18f694b5acc919b7cada2875ca3bd2c52ddd7ef86ee747aab0faeb50ac8b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d8fb92f533cc119c578da73b06efe76b0efaa612af7c77178eb903952fcf53df\",\"dweb:/ipfs/QmdosRgUmvwXRnxq5TmoJoFMs7TULduTFpMUNyYXQNGfQD\"]},\"src/enums/VoteExecutionStatus.sol\":{\"keccak256\":\"0x56d1db8abf83feb0f1d69f1919fbd5bd79c6f3c5bf3c149950d307b9d62b6455\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb2ec0f87a9091eab463ac6a776d5737189e0239f412b36b975bb0be1fcb4ad8\",\"dweb:/ipfs/QmWiXwab54Ag2f1kyGjqT3brh5JrV5Lc7cqod9VPaS5ey6\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xab09aee88feca01f5c23baa475aa02bb8c1b189e60a7b81848a07e00b9ab708c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1f5d874688d7316a0eb382b6fb1e7ea6648b15aaaab95acc51f18bfcab851d61\",\"dweb:/ipfs/QmdZRRmWrkrn5MmEX3n5yWEREtoCvXNxzoVkPWSH64ENpd\"]},\"src/gateway/GatewayRouterFacet.sol\":{\"keccak256\":\"0x4f72594dbf7fbf522e90cbf299ab1cc854b46f744e0de07647531e7af95c8293\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6f3c66b19e829f75f283cb0581a1110cb690414bc5de95478357d667545906c3\",\"dweb:/ipfs/QmXGPjz4EHuM28Y4PP3AjxGsmdNTpb7i1wx3AfVXdQobZL\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x57865785239b076bc429cd989bc5cb2a2e68050c7293a5a537d8cdeded170294\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://28285703560a0bbfa247c894c9f14f2a14e02e430e7dedb0a05b58c53aed3763\",\"dweb:/ipfs/QmcrNx18jZYJ7dRduWu1do3th74cHy7zn9Zx8x13WsCLj5\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0xe3f7371c7c7af8dfa71daa6c4171f6853c9ab1fdd619c09eb12c11ff18d17d91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6a09ea45ed335eada22e7cf3643c17d1c59750ed2156cc29c0960a8e8b53e394\",\"dweb:/ipfs/QmSYTNGqP9wEJnPDXmvghfL8zL8BrHGnixhbsimA9oydLG\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x86bf44c7e35907c1b0ed2fd55a6a8a277b46e6ee52b6933610504bc1d2de3b12\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb47357cd7342f951e5d08b1960e9ab7d458463e71ce08ff61b900bbb04118f0\",\"dweb:/ipfs/QmTKHhnYs1xKZUwCmSRPmSi5utfGrosYV57fSoGF7bGnJs\"]},\"src/lib/CheckpointHelper.sol\":{\"keccak256\":\"0x25d67ccc67b6b537df920c92dc3c704dc097e000c444149d3732e1d20848a269\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5823e88c38b5c4e90ee5700cee5a5fd8d982015dab7ea1cbe2f26d62a359ae76\",\"dweb:/ipfs/QmT9Ves86HoEqQciunzEwvDsyv2dgQwF8uPUjNuGsycHuF\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0xe7aacc0bc5eb10763685d6766524f6db05b151b37de4ccbd2b04649e54b9af36\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d6fae33fe9dc258efc3e0c484c6e69ff8314af266c78fd9b3d20c5bf8f251865\",\"dweb:/ipfs/QmYYpC6GnJNRvAg3MCSHKHk47cas888N3HzmMrmiRT4bnJ\"]},\"src/lib/EpochVoteSubmissionHelper.sol\":{\"keccak256\":\"0x1eaf867ddfc3e83d5a2ca50a81809e1529ea2436a8d2697d868bc8653b8c6c9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://65eb6a69fdb0fd8bfc1cd3d5044791225ff9fa8887dda49fd530e7c46e6e5366\",\"dweb:/ipfs/QmepF17eiqGqiNJRfeCohdeVw2aJxgkFS1AyFSM78v16nC\"]},\"src/lib/ExecutableQueueHelper.sol\":{\"keccak256\":\"0x66b7ba58bb9ba987789f22dcc5e44f1720876a79a52a9630d886490d48f80ece\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8b388b9f63b4f86ac03f24089a1f110e482ae89b1eb628fc78aeead1d6f50869\",\"dweb:/ipfs/QmVGVh9r2GBgXRn7Z13sMKmnn3xjfHm9tM3mnLUH1UwjQX\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x80d7d30532305664e31ad114d702904287e6f93954b420315f660ddf30791ac6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0b108070a13f76614f36e46f0af85d12aa53209ff9bb9c32ee1945be3e0a1fe1\",\"dweb:/ipfs/QmcyMuCZB4Z3qFUUjvcoVeSePJXU5F9hN4Zhy94U2qqcPq\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0x3cf0150c6f1e19b48ca307604973f583aba8d2192a6d39572e2e780991a9c916\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://64d570ab21b83384e044296b02c63e195a5eb53a68ea527aaa62862e47edd627\",\"dweb:/ipfs/QmUwdSq1J5LzUxAHjKk395BWsobnYSh9fsJBQeiUbz2NJe\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3404decb343fa34603a0dce10d00ce0c97da50951792ef500d080e5167136fcb\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2bc38db8ab67aa48356a397f866cc54deac21f861d1349f80cd21103d893718f\",\"dweb:/ipfs/QmajCZg8ZpT9Kh35gXnxPkjCLCzRYFtYsNXTVGTvSugUZf\"]},\"src/lib/LibVoting.sol\":{\"keccak256\":\"0x3e5c9359758e7a7200c3a1e7c3a8edfbe6912e8c0a2edde1d2a9e4907b89cb91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://589fa228fdc537a56839520408ec06fc34658ef7a3ca7481b089f9d966f8ed39\",\"dweb:/ipfs/QmNQ4kPeGN5JAhFQyfEnYmmvp83dPQ6QhQKQfZhqgWKjDK\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0x6d8042388daad40be71d0ceaddeab0dee54ccc70d921ca177fe57ce9b575959f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9a5f2660c29fb44ca2278e5e5ce75adcf01fcb3521f62d2bd624c3fe53c60875\",\"dweb:/ipfs/QmeNEQZM8QdvALJmt8V8nfqYE6xVMs8m2YAF2yT589mm6L\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0xf82021571aa9a7b021b2d24b2c0eb80c5796b9f28ebb6a1c239146c0c0168817\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b546fc429093a558b9382e28886d1f09e7f308e55f6398989583bc420a630326\",\"dweb:/ipfs/QmSmQPQbMBX8N8r8nGboBWdzJjUaK7ACaFUf8XosZVZPT8\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0xcddaa4630a6f68c59a819bafee579a8979cc9fd7b00d5b49f99eeefb9ce0c02c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9713f988a5709dea3ee0fb204a2d0b64b0dc115912ed9eb128f479156d97a949\",\"dweb:/ipfs/QmUjTAvd2eAYQFqgfZUf5R67daeC7eUKrL6WrFb8oEWB9j\"]},\"src/structs/EpochVoteSubmission.sol\":{\"keccak256\":\"0x4cc52a36cac1a063bf1f996b91ea81ce118b7ce8923e62cec6e5bf08b689e96a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb33236d8c7a40e17c416a21e9f0df268d6a7f4d6ba1df86ab0c2dbf444702e9\",\"dweb:/ipfs/QmXEbdkweqL1f4Q71YPiuxwhQooh1oim9oBybAbr9Jd3A2\"]},\"src/structs/ExecutableQueue.sol\":{\"keccak256\":\"0xfacfd91786edac0462f4bba34d3a3766c8785925ae96301b68b76fba78c5cab4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb421106bc9158e8a12dd7054d265113dd890337937e73acb03f03e33a13eb18\",\"dweb:/ipfs/Qmdxs4akDWuzwf5nYsCaNuYNZ5sTrMCzdgVMuSpKCjFyaP\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xbaae3da91048d76b5bab0404eebf7dc41ed273a8cd1f4143ea1b3403d89f77c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5a69d76f5022d2e19f69ef0d70d4c5e3a3e7ae8e02fcfdb2682c901ac2f3a707\",\"dweb:/ipfs/QmYEWyPz9UqVssUpU42VTv6DhzRNAfaHKt9ZsNCAvtLjTr\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0xb37b12df0c9ff47c2e88f9612b624bb44e6de5dfb8030dfd83582997dcd6aa83\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a321a05abf7b3b461e3d6c4ac27b18d3e14dffad9e2bf9a0ceb68538a02ab1e4\",\"dweb:/ipfs/QmPo878trP8pv9yXXpwUHSnP7Xt6uz9eWuB25pz2JGiCot\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotSendCrossMsgToItself\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EpochAlreadyExecuted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EpochNotVotable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InconsistentPrevCheckpoint\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidActorAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCheckpointEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCheckpointSource\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgDestinationSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgFromSubnetId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MessagesNotSorted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFee\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughSubnetCircSupply\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSignableAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetNotActive\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorAlreadyVoted\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"checks\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ChildCheck[]\",\"name\":\"children\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"commit\",\"type\":\"tuple\"}],\"name\":\"commitChildCheck\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"msgCid\",\"type\":\"bytes32\"}],\"name\":\"propagate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg\",\"name\":\"crossMsg\",\"type\":\"tuple\"}],\"name\":\"sendCrossMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"topDownMsgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct TopDownCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"}],\"name\":\"submitTopDownCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"kind\":\"dev\",\"methods\":{\"propagate(bytes32)\":{\"params\":{\"msgCid\":\"- the cid of the cross-net message\"}},\"sendCrossMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool))\":{\"params\":{\"crossMsg\":\"- message to send\"}},\"submitTopDownCheckpoint((uint64,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[]))\":{\"params\":{\"checkpoint\":\"- top-down checkpoint\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"commitChildCheck(((uint64,address[]),uint64,uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[],((uint64,address[]),bytes32[])[],bytes32,bytes))\":{\"notice\":\"submit a checkpoint in the gateway. Called from a subnet once the checkpoint is voted for and reaches majority\"},\"propagate(bytes32)\":{\"notice\":\"propagates the populated cross net message for the given cid\"},\"sendCrossMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool))\":{\"notice\":\"sends an arbitrary cross message from the current subnet to the destination subnet\"},\"submitTopDownCheckpoint((uint64,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[]))\":{\"notice\":\"allows a validator to submit a batch of messages in a top-down commitment\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/GatewayRouterFacet.sol\":\"GatewayRouterFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x8a925dea568a61a38de9615aae7bb462d9eb6f8eb2c6ca409f1e740519077ab8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b7e2f836581694867c09bb9c80ff2ab6ae039ece2ff3bbf4d1bc2026449fa551\",\"dweb:/ipfs/QmVMvaQSCRBHZudSV8AzimYre76tJVm4UrHYnrT89zcjho\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x2bf6521d3fc6d484d27e8cbae0b577ff4f310979fdf95ed4366d73c4701f9acc\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e01f6417e82d8791aa19694939d0e425adc8670bad777383ddd238c1ffc6d122\",\"dweb:/ipfs/QmeUmaBpkvaYtaTaxEwLaaXPQizZNz6nsMxKvscTf1X49f\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0xf29c18f694b5acc919b7cada2875ca3bd2c52ddd7ef86ee747aab0faeb50ac8b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d8fb92f533cc119c578da73b06efe76b0efaa612af7c77178eb903952fcf53df\",\"dweb:/ipfs/QmdosRgUmvwXRnxq5TmoJoFMs7TULduTFpMUNyYXQNGfQD\"]},\"src/enums/VoteExecutionStatus.sol\":{\"keccak256\":\"0x56d1db8abf83feb0f1d69f1919fbd5bd79c6f3c5bf3c149950d307b9d62b6455\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb2ec0f87a9091eab463ac6a776d5737189e0239f412b36b975bb0be1fcb4ad8\",\"dweb:/ipfs/QmWiXwab54Ag2f1kyGjqT3brh5JrV5Lc7cqod9VPaS5ey6\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xab09aee88feca01f5c23baa475aa02bb8c1b189e60a7b81848a07e00b9ab708c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1f5d874688d7316a0eb382b6fb1e7ea6648b15aaaab95acc51f18bfcab851d61\",\"dweb:/ipfs/QmdZRRmWrkrn5MmEX3n5yWEREtoCvXNxzoVkPWSH64ENpd\"]},\"src/gateway/GatewayRouterFacet.sol\":{\"keccak256\":\"0x4f72594dbf7fbf522e90cbf299ab1cc854b46f744e0de07647531e7af95c8293\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6f3c66b19e829f75f283cb0581a1110cb690414bc5de95478357d667545906c3\",\"dweb:/ipfs/QmXGPjz4EHuM28Y4PP3AjxGsmdNTpb7i1wx3AfVXdQobZL\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x57865785239b076bc429cd989bc5cb2a2e68050c7293a5a537d8cdeded170294\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://28285703560a0bbfa247c894c9f14f2a14e02e430e7dedb0a05b58c53aed3763\",\"dweb:/ipfs/QmcrNx18jZYJ7dRduWu1do3th74cHy7zn9Zx8x13WsCLj5\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0xe3f7371c7c7af8dfa71daa6c4171f6853c9ab1fdd619c09eb12c11ff18d17d91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6a09ea45ed335eada22e7cf3643c17d1c59750ed2156cc29c0960a8e8b53e394\",\"dweb:/ipfs/QmSYTNGqP9wEJnPDXmvghfL8zL8BrHGnixhbsimA9oydLG\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x86bf44c7e35907c1b0ed2fd55a6a8a277b46e6ee52b6933610504bc1d2de3b12\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb47357cd7342f951e5d08b1960e9ab7d458463e71ce08ff61b900bbb04118f0\",\"dweb:/ipfs/QmTKHhnYs1xKZUwCmSRPmSi5utfGrosYV57fSoGF7bGnJs\"]},\"src/lib/CheckpointHelper.sol\":{\"keccak256\":\"0x25d67ccc67b6b537df920c92dc3c704dc097e000c444149d3732e1d20848a269\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5823e88c38b5c4e90ee5700cee5a5fd8d982015dab7ea1cbe2f26d62a359ae76\",\"dweb:/ipfs/QmT9Ves86HoEqQciunzEwvDsyv2dgQwF8uPUjNuGsycHuF\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0xe7aacc0bc5eb10763685d6766524f6db05b151b37de4ccbd2b04649e54b9af36\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d6fae33fe9dc258efc3e0c484c6e69ff8314af266c78fd9b3d20c5bf8f251865\",\"dweb:/ipfs/QmYYpC6GnJNRvAg3MCSHKHk47cas888N3HzmMrmiRT4bnJ\"]},\"src/lib/EpochVoteSubmissionHelper.sol\":{\"keccak256\":\"0x1eaf867ddfc3e83d5a2ca50a81809e1529ea2436a8d2697d868bc8653b8c6c9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://65eb6a69fdb0fd8bfc1cd3d5044791225ff9fa8887dda49fd530e7c46e6e5366\",\"dweb:/ipfs/QmepF17eiqGqiNJRfeCohdeVw2aJxgkFS1AyFSM78v16nC\"]},\"src/lib/ExecutableQueueHelper.sol\":{\"keccak256\":\"0x64569fd85dac9617c7cf0e2991bf3bc2f1678b9b4f87945290606d1f821ce826\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8fb7927c7ca76f45f68b2552c4a59047597ccae0c9010c847e75f203f49820bc\",\"dweb:/ipfs/Qmcsg1b1GNBRAzz2CBDufdL3TspdZqx9wUoZ1uVcy3H8EN\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x80d7d30532305664e31ad114d702904287e6f93954b420315f660ddf30791ac6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0b108070a13f76614f36e46f0af85d12aa53209ff9bb9c32ee1945be3e0a1fe1\",\"dweb:/ipfs/QmcyMuCZB4Z3qFUUjvcoVeSePJXU5F9hN4Zhy94U2qqcPq\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0x3cf0150c6f1e19b48ca307604973f583aba8d2192a6d39572e2e780991a9c916\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://64d570ab21b83384e044296b02c63e195a5eb53a68ea527aaa62862e47edd627\",\"dweb:/ipfs/QmUwdSq1J5LzUxAHjKk395BWsobnYSh9fsJBQeiUbz2NJe\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x7adf56c4f8e2504dbbdac2f81d892cb912a1be2f9f629e16d7c796c958032f5b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://438d31911f5ac80ab0d2137506fd411b82a8117ca8d78707598ca2cf61068357\",\"dweb:/ipfs/QmeujmuXKY2uDdDkcipWwfiHDixEaEgaCkQ9YN5nbDhsuF\"]},\"src/lib/LibVoting.sol\":{\"keccak256\":\"0x6f020ef598ce576688275e5b4b8910beb31afb3427ac3d0896d6b62d71ab3050\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f1dd4f3411e3d01b60fb263120355e34f467fade66bd4076688bd046434df400\",\"dweb:/ipfs/QmWH7F7B44PjwB9eV65JiqQbQdkfSc2yrEsQH9KesU9Lhd\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0x6d8042388daad40be71d0ceaddeab0dee54ccc70d921ca177fe57ce9b575959f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9a5f2660c29fb44ca2278e5e5ce75adcf01fcb3521f62d2bd624c3fe53c60875\",\"dweb:/ipfs/QmeNEQZM8QdvALJmt8V8nfqYE6xVMs8m2YAF2yT589mm6L\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0xf82021571aa9a7b021b2d24b2c0eb80c5796b9f28ebb6a1c239146c0c0168817\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b546fc429093a558b9382e28886d1f09e7f308e55f6398989583bc420a630326\",\"dweb:/ipfs/QmSmQPQbMBX8N8r8nGboBWdzJjUaK7ACaFUf8XosZVZPT8\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0xcddaa4630a6f68c59a819bafee579a8979cc9fd7b00d5b49f99eeefb9ce0c02c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9713f988a5709dea3ee0fb204a2d0b64b0dc115912ed9eb128f479156d97a949\",\"dweb:/ipfs/QmUjTAvd2eAYQFqgfZUf5R67daeC7eUKrL6WrFb8oEWB9j\"]},\"src/structs/EpochVoteSubmission.sol\":{\"keccak256\":\"0x4cc52a36cac1a063bf1f996b91ea81ce118b7ce8923e62cec6e5bf08b689e96a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb33236d8c7a40e17c416a21e9f0df268d6a7f4d6ba1df86ab0c2dbf444702e9\",\"dweb:/ipfs/QmXEbdkweqL1f4Q71YPiuxwhQooh1oim9oBybAbr9Jd3A2\"]},\"src/structs/ExecutableQueue.sol\":{\"keccak256\":\"0x89580931bf354ed3586ca69483307e4f0a6a626bd7798657faf303281f514e8a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://16f79b68d393fe338e0f5e47e1de4615f45ea754cd98b6f8fe87ba6efc513fcd\",\"dweb:/ipfs/QmVymcARk7QY8d9ZB6omv5kNn6kFB6v249WXP5ULAVvEDi\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xbaae3da91048d76b5bab0404eebf7dc41ed273a8cd1f4143ea1b3403d89f77c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5a69d76f5022d2e19f69ef0d70d4c5e3a3e7ae8e02fcfdb2682c901ac2f3a707\",\"dweb:/ipfs/QmYEWyPz9UqVssUpU42VTv6DhzRNAfaHKt9ZsNCAvtLjTr\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0xf707af307e7f2654d44d3fbd6eb0c44c837da7c0941ad0b826e990198d96f67d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://79cd51a4ea33be35dd774b314ec44df5b8b0c112b06dd8f155c80dc4c2e6e0d0\",\"dweb:/ipfs/QmRyAF4prSLXGuz2Q9PzdcTb8EkC67qdfhgKPtb36997Pm\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.19+commit.7dd6d404" @@ -1656,26 +1656,26 @@ "license": "MIT" }, "lib/openzeppelin-contracts/contracts/utils/Address.sol": { - "keccak256": "0xb8d40721965efd93b5369d55083181226d3c7e1be4a968c04de35d44ba44f29a", + "keccak256": "0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1", "urls": [ - "bzz-raw://e5c4b0089788aa7112cce88602212c3895999f464e00d1c40d7f27ac9288798b", - "dweb:/ipfs/Qmd69EuGeoCYPfPkGA4hayH4s2upmAe3XaoDf4ggYNEoZ4" + "bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5", + "dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo" ], "license": "MIT" }, "lib/openzeppelin-contracts/contracts/utils/Strings.sol": { - "keccak256": "0x31f34a3baec77c087d2bdbc5c277f169e505b905aeb43cfcea1734175140f621", + "keccak256": "0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da", "urls": [ - "bzz-raw://b5a3bc8093b31b685ef879e8ffaaab614594cb6f98ddac4f18c411f7bbf99d0d", - "dweb:/ipfs/QmSFfA9pH3xo8hnWKCFKTwGi8kz68YXuAwyLXsYe6KjC3Z" + "bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a", + "dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB" ], "license": "MIT" }, "lib/openzeppelin-contracts/contracts/utils/math/Math.sol": { - "keccak256": "0xdb6d7e26320438bdd421598eb64e6fe2b03867a4dd07c9c820994b7bec26f7b0", + "keccak256": "0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c", "urls": [ - "bzz-raw://2adf1566393ddf260fb2064dd0c67be00123b8978be8b62cc45ac97aff859949", - "dweb:/ipfs/QmaDLzQpnitEJDAJo4squpKumr5x4D2QYetPdT3jZd8hYm" + "bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81", + "dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k" ], "license": "MIT" }, @@ -1784,10 +1784,10 @@ "license": "UNLICENSED" }, "src/lib/ExecutableQueueHelper.sol": { - "keccak256": "0x66b7ba58bb9ba987789f22dcc5e44f1720876a79a52a9630d886490d48f80ece", + "keccak256": "0x64569fd85dac9617c7cf0e2991bf3bc2f1678b9b4f87945290606d1f821ce826", "urls": [ - "bzz-raw://8b388b9f63b4f86ac03f24089a1f110e482ae89b1eb628fc78aeead1d6f50869", - "dweb:/ipfs/QmVGVh9r2GBgXRn7Z13sMKmnn3xjfHm9tM3mnLUH1UwjQX" + "bzz-raw://8fb7927c7ca76f45f68b2552c4a59047597ccae0c9010c847e75f203f49820bc", + "dweb:/ipfs/Qmcsg1b1GNBRAzz2CBDufdL3TspdZqx9wUoZ1uVcy3H8EN" ], "license": "UNLICENSED" }, @@ -1808,18 +1808,18 @@ "license": "UNLICENSED" }, "src/lib/LibGatewayActorStorage.sol": { - "keccak256": "0x3404decb343fa34603a0dce10d00ce0c97da50951792ef500d080e5167136fcb", + "keccak256": "0x7adf56c4f8e2504dbbdac2f81d892cb912a1be2f9f629e16d7c796c958032f5b", "urls": [ - "bzz-raw://2bc38db8ab67aa48356a397f866cc54deac21f861d1349f80cd21103d893718f", - "dweb:/ipfs/QmajCZg8ZpT9Kh35gXnxPkjCLCzRYFtYsNXTVGTvSugUZf" + "bzz-raw://438d31911f5ac80ab0d2137506fd411b82a8117ca8d78707598ca2cf61068357", + "dweb:/ipfs/QmeujmuXKY2uDdDkcipWwfiHDixEaEgaCkQ9YN5nbDhsuF" ], "license": "UNLICENSED" }, "src/lib/LibVoting.sol": { - "keccak256": "0x3e5c9359758e7a7200c3a1e7c3a8edfbe6912e8c0a2edde1d2a9e4907b89cb91", + "keccak256": "0x6f020ef598ce576688275e5b4b8910beb31afb3427ac3d0896d6b62d71ab3050", "urls": [ - "bzz-raw://589fa228fdc537a56839520408ec06fc34658ef7a3ca7481b089f9d966f8ed39", - "dweb:/ipfs/QmNQ4kPeGN5JAhFQyfEnYmmvp83dPQ6QhQKQfZhqgWKjDK" + "bzz-raw://f1dd4f3411e3d01b60fb263120355e34f467fade66bd4076688bd046434df400", + "dweb:/ipfs/QmWH7F7B44PjwB9eV65JiqQbQdkfSc2yrEsQH9KesU9Lhd" ], "license": "UNLICENSED" }, @@ -1856,10 +1856,10 @@ "license": "UNLICENSED" }, "src/structs/ExecutableQueue.sol": { - "keccak256": "0xfacfd91786edac0462f4bba34d3a3766c8785925ae96301b68b76fba78c5cab4", + "keccak256": "0x89580931bf354ed3586ca69483307e4f0a6a626bd7798657faf303281f514e8a", "urls": [ - "bzz-raw://bb421106bc9158e8a12dd7054d265113dd890337937e73acb03f03e33a13eb18", - "dweb:/ipfs/Qmdxs4akDWuzwf5nYsCaNuYNZ5sTrMCzdgVMuSpKCjFyaP" + "bzz-raw://16f79b68d393fe338e0f5e47e1de4615f45ea754cd98b6f8fe87ba6efc513fcd", + "dweb:/ipfs/QmVymcARk7QY8d9ZB6omv5kNn6kFB6v249WXP5ULAVvEDi" ], "license": "UNLICENSED" }, @@ -1872,10 +1872,10 @@ "license": "UNLICENSED" }, "src/structs/Subnet.sol": { - "keccak256": "0xb37b12df0c9ff47c2e88f9612b624bb44e6de5dfb8030dfd83582997dcd6aa83", + "keccak256": "0xf707af307e7f2654d44d3fbd6eb0c44c837da7c0941ad0b826e990198d96f67d", "urls": [ - "bzz-raw://a321a05abf7b3b461e3d6c4ac27b18d3e14dffad9e2bf9a0ceb68538a02ab1e4", - "dweb:/ipfs/QmPo878trP8pv9yXXpwUHSnP7Xt6uz9eWuB25pz2JGiCot" + "bzz-raw://79cd51a4ea33be35dd774b314ec44df5b8b0c112b06dd8f155c80dc4c2e6e0d0", + "dweb:/ipfs/QmRyAF4prSLXGuz2Q9PzdcTb8EkC67qdfhgKPtb36997Pm" ], "license": "UNLICENSED" } @@ -1884,130 +1884,130 @@ }, "ast": { "absolutePath": "src/gateway/GatewayRouterFacet.sol", - "id": 40238, + "id": 35394, "exportedSymbols": { "Address": [ 29869 ], "BURNT_FUNDS_ACTOR": [ - 37660 + 32676 ], "BottomUpCheckpoint": [ - 44156 + 39332 ], "CannotSendCrossMsgToItself": [ - 38156 + 33172 ], "CheckpointHelper": [ - 40776 + 35932 ], "CrossMsg": [ - 44176 + 39352 ], "CrossMsgHelper": [ - 41103 + 36259 ], "EMPTY_HASH": [ - 37666 + 32682 ], "EpochVoteTopDownSubmission": [ - 44224 + 39400 ], "FilAddress": [ 298 ], "GatewayActorModifiers": [ - 42504 + 37666 ], "GatewayRouterFacet": [ - 40237 + 35393 ], "IPCMsgType": [ - 38128 + 33144 ], "InconsistentPrevCheckpoint": [ - 38170 + 33186 ], "InvalidCheckpointEpoch": [ - 38174 + 33190 ], "InvalidCheckpointSource": [ - 38176 + 33192 ], "InvalidCrossMsgDestinationSubnet": [ - 38178 + 33194 ], "InvalidCrossMsgFromSubnetId": [ - 38180 + 33196 ], "InvalidCrossMsgNonce": [ - 38182 + 33198 ], "LibGateway": [ - 42262 + 37421 ], "LibVoting": [ - 43438 + 38614 ], "METHOD_SEND": [ - 37681 + 32697 ], "MessagesNotSorted": [ - 38188 + 33204 ], "NotEnoughBalance": [ - 38200 + 33216 ], "NotEnoughFunds": [ - 38206 + 33222 ], "NotEnoughSubnetCircSupply": [ - 38210 + 33226 ], "NotInitialized": [ - 38214 + 33230 ], "NotRegisteredSubnet": [ - 38220 + 33236 ], "NotValidator": [ - 38222 + 33238 ], "PostboxNotExist": [ - 38224 + 33240 ], "Status": [ - 38137 + 33153 ], "StorableMsg": [ - 44191 + 39367 ], "StorableMsgHelper": [ - 43537 + 38713 ], "Subnet": [ - 44303 + 39481 ], "SubnetID": [ - 44279 + 39457 ], "SubnetIDHelper": [ - 44131 + 39307 ], "SubnetNotActive": [ - 38228 + 33244 ], "TopDownCheckpoint": [ - 44163 + 39339 ] }, "nodeType": "SourceUnit", - "src": "39:15317:40", + "src": "39:15317:36", "nodes": [ { - "id": 39254, + "id": 34410, "nodeType": "PragmaDirective", - "src": "39:23:40", + "src": "39:23:36", "nodes": [], "literals": [ "solidity", @@ -2016,24 +2016,24 @@ ] }, { - "id": 39256, + "id": 34412, "nodeType": "ImportDirective", - "src": "64:72:40", + "src": "64:72:36", "nodes": [], "absolutePath": "src/lib/LibGatewayActorStorage.sol", "file": "../lib/LibGatewayActorStorage.sol", "nameLocation": "-1:-1:-1", - "scope": 40238, - "sourceUnit": 42505, + "scope": 35394, + "sourceUnit": 37667, "symbolAliases": [ { "foreign": { - "id": 39255, + "id": 34411, "name": "GatewayActorModifiers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42504, - "src": "72:21:40", + "referencedDeclaration": 37666, + "src": "72:21:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2042,48 +2042,48 @@ "unitAlias": "" }, { - "id": 39260, + "id": 34416, "nodeType": "ImportDirective", - "src": "137:86:40", + "src": "137:86:36", "nodes": [], "absolutePath": "src/constants/Constants.sol", "file": "../constants/Constants.sol", "nameLocation": "-1:-1:-1", - "scope": 40238, - "sourceUnit": 37682, + "scope": 35394, + "sourceUnit": 32698, "symbolAliases": [ { "foreign": { - "id": 39257, + "id": 34413, "name": "EMPTY_HASH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 37666, - "src": "145:10:40", + "referencedDeclaration": 32682, + "src": "145:10:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 39258, + "id": 34414, "name": "BURNT_FUNDS_ACTOR", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 37660, - "src": "157:17:40", + "referencedDeclaration": 32676, + "src": "157:17:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 39259, + "id": 34415, "name": "METHOD_SEND", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 37681, - "src": "176:11:40", + "referencedDeclaration": 32697, + "src": "176:11:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2092,60 +2092,60 @@ "unitAlias": "" }, { - "id": 39265, + "id": 34421, "nodeType": "ImportDirective", - "src": "224:103:40", + "src": "224:103:36", "nodes": [], "absolutePath": "src/structs/Checkpoint.sol", "file": "../structs/Checkpoint.sol", "nameLocation": "-1:-1:-1", - "scope": 40238, - "sourceUnit": 44192, + "scope": 35394, + "sourceUnit": 39368, "symbolAliases": [ { "foreign": { - "id": 39261, + "id": 34417, "name": "CrossMsg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44176, - "src": "232:8:40", + "referencedDeclaration": 39352, + "src": "232:8:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 39262, + "id": 34418, "name": "BottomUpCheckpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44156, - "src": "242:18:40", + "referencedDeclaration": 39332, + "src": "242:18:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 39263, + "id": 34419, "name": "TopDownCheckpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44163, - "src": "262:17:40", + "referencedDeclaration": 39339, + "src": "262:17:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 39264, + "id": 34420, "name": "StorableMsg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44191, - "src": "281:11:40", + "referencedDeclaration": 39367, + "src": "281:11:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2154,24 +2154,24 @@ "unitAlias": "" }, { - "id": 39267, + "id": 34423, "nodeType": "ImportDirective", - "src": "328:78:40", + "src": "328:78:36", "nodes": [], "absolutePath": "src/structs/EpochVoteSubmission.sol", "file": "../structs/EpochVoteSubmission.sol", "nameLocation": "-1:-1:-1", - "scope": 40238, - "sourceUnit": 44234, + "scope": 35394, + "sourceUnit": 39410, "symbolAliases": [ { "foreign": { - "id": 39266, + "id": 34422, "name": "EpochVoteTopDownSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44224, - "src": "336:26:40", + "referencedDeclaration": 39400, + "src": "336:26:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2180,24 +2180,24 @@ "unitAlias": "" }, { - "id": 39269, + "id": 34425, "nodeType": "ImportDirective", - "src": "407:43:40", + "src": "407:43:36", "nodes": [], "absolutePath": "src/enums/Status.sol", "file": "../enums/Status.sol", "nameLocation": "-1:-1:-1", - "scope": 40238, - "sourceUnit": 38138, + "scope": 35394, + "sourceUnit": 33154, "symbolAliases": [ { "foreign": { - "id": 39268, + "id": 34424, "name": "Status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38137, - "src": "415:6:40", + "referencedDeclaration": 33153, + "src": "415:6:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2206,24 +2206,24 @@ "unitAlias": "" }, { - "id": 39271, + "id": 34427, "nodeType": "ImportDirective", - "src": "451:51:40", + "src": "451:51:36", "nodes": [], "absolutePath": "src/enums/IPCMsgType.sol", "file": "../enums/IPCMsgType.sol", "nameLocation": "-1:-1:-1", - "scope": 40238, - "sourceUnit": 38129, + "scope": 35394, + "sourceUnit": 33145, "symbolAliases": [ { "foreign": { - "id": 39270, + "id": 34426, "name": "IPCMsgType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38128, - "src": "459:10:40", + "referencedDeclaration": 33144, + "src": "459:10:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2232,36 +2232,36 @@ "unitAlias": "" }, { - "id": 39274, + "id": 34430, "nodeType": "ImportDirective", - "src": "503:55:40", + "src": "503:55:36", "nodes": [], "absolutePath": "src/structs/Subnet.sol", "file": "../structs/Subnet.sol", "nameLocation": "-1:-1:-1", - "scope": 40238, - "sourceUnit": 44311, + "scope": 35394, + "sourceUnit": 39489, "symbolAliases": [ { "foreign": { - "id": 39272, + "id": 34428, "name": "SubnetID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44279, - "src": "511:8:40", + "referencedDeclaration": 39457, + "src": "511:8:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 39273, + "id": 34429, "name": "Subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44303, - "src": "521:6:40", + "referencedDeclaration": 39481, + "src": "521:6:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2270,96 +2270,96 @@ "unitAlias": "" }, { - "id": 39282, + "id": 34438, "nodeType": "ImportDirective", - "src": "559:227:40", + "src": "559:227:36", "nodes": [], "absolutePath": "src/errors/IPCErrors.sol", "file": "../errors/IPCErrors.sol", "nameLocation": "-1:-1:-1", - "scope": 40238, - "sourceUnit": 38239, + "scope": 35394, + "sourceUnit": 33255, "symbolAliases": [ { "foreign": { - "id": 39275, + "id": 34431, "name": "InconsistentPrevCheckpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38170, - "src": "567:26:40", + "referencedDeclaration": 33186, + "src": "567:26:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 39276, + "id": 34432, "name": "CannotSendCrossMsgToItself", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38156, - "src": "595:26:40", + "referencedDeclaration": 33172, + "src": "595:26:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 39277, + "id": 34433, "name": "NotEnoughSubnetCircSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38210, - "src": "623:25:40", + "referencedDeclaration": 33226, + "src": "623:25:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 39278, + "id": 34434, "name": "InvalidCheckpointEpoch", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38174, - "src": "650:22:40", + "referencedDeclaration": 33190, + "src": "650:22:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 39279, + "id": 34435, "name": "InvalidCheckpointSource", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38176, - "src": "674:23:40", + "referencedDeclaration": 33192, + "src": "674:23:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 39280, + "id": 34436, "name": "InvalidCrossMsgNonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38182, - "src": "699:20:40", + "referencedDeclaration": 33198, + "src": "699:20:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 39281, + "id": 34437, "name": "InvalidCrossMsgDestinationSubnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38178, - "src": "721:32:40", + "referencedDeclaration": 33194, + "src": "721:32:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2368,120 +2368,120 @@ "unitAlias": "" }, { - "id": 39292, + "id": 34448, "nodeType": "ImportDirective", - "src": "787:206:40", + "src": "787:206:36", "nodes": [], "absolutePath": "src/errors/IPCErrors.sol", "file": "../errors/IPCErrors.sol", "nameLocation": "-1:-1:-1", - "scope": 40238, - "sourceUnit": 38239, + "scope": 35394, + "sourceUnit": 33255, "symbolAliases": [ { "foreign": { - "id": 39283, + "id": 34439, "name": "InvalidCrossMsgFromSubnetId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38180, - "src": "795:27:40", + "referencedDeclaration": 33196, + "src": "795:27:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 39284, + "id": 34440, "name": "MessagesNotSorted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38188, - "src": "824:17:40", + "referencedDeclaration": 33204, + "src": "824:17:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 39285, + "id": 34441, "name": "NotInitialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38214, - "src": "843:14:40", + "referencedDeclaration": 33230, + "src": "843:14:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 39286, + "id": 34442, "name": "NotEnoughBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38200, - "src": "859:16:40", + "referencedDeclaration": 33216, + "src": "859:16:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 39287, + "id": 34443, "name": "NotEnoughFunds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38206, - "src": "877:14:40", + "referencedDeclaration": 33222, + "src": "877:14:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 39288, + "id": 34444, "name": "NotRegisteredSubnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38220, - "src": "893:19:40", + "referencedDeclaration": 33236, + "src": "893:19:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 39289, + "id": 34445, "name": "NotValidator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38222, - "src": "914:12:40", + "referencedDeclaration": 33238, + "src": "914:12:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 39290, + "id": 34446, "name": "PostboxNotExist", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38224, - "src": "928:15:40", + "referencedDeclaration": 33240, + "src": "928:15:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 39291, + "id": 34447, "name": "SubnetNotActive", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38228, - "src": "945:15:40", + "referencedDeclaration": 33244, + "src": "945:15:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2490,24 +2490,24 @@ "unitAlias": "" }, { - "id": 39294, + "id": 34450, "nodeType": "ImportDirective", - "src": "994:57:40", + "src": "994:57:36", "nodes": [], "absolutePath": "src/lib/SubnetIDHelper.sol", "file": "../lib/SubnetIDHelper.sol", "nameLocation": "-1:-1:-1", - "scope": 40238, - "sourceUnit": 44132, + "scope": 35394, + "sourceUnit": 39308, "symbolAliases": [ { "foreign": { - "id": 39293, + "id": 34449, "name": "SubnetIDHelper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44131, - "src": "1002:14:40", + "referencedDeclaration": 39307, + "src": "1002:14:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2516,24 +2516,24 @@ "unitAlias": "" }, { - "id": 39296, + "id": 34452, "nodeType": "ImportDirective", - "src": "1052:61:40", + "src": "1052:61:36", "nodes": [], "absolutePath": "src/lib/CheckpointHelper.sol", "file": "../lib/CheckpointHelper.sol", "nameLocation": "-1:-1:-1", - "scope": 40238, - "sourceUnit": 40777, + "scope": 35394, + "sourceUnit": 35933, "symbolAliases": [ { "foreign": { - "id": 39295, + "id": 34451, "name": "CheckpointHelper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40776, - "src": "1060:16:40", + "referencedDeclaration": 35932, + "src": "1060:16:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2542,24 +2542,24 @@ "unitAlias": "" }, { - "id": 39298, + "id": 34454, "nodeType": "ImportDirective", - "src": "1114:47:40", + "src": "1114:47:36", "nodes": [], "absolutePath": "src/lib/LibVoting.sol", "file": "../lib/LibVoting.sol", "nameLocation": "-1:-1:-1", - "scope": 40238, - "sourceUnit": 43439, + "scope": 35394, + "sourceUnit": 38615, "symbolAliases": [ { "foreign": { - "id": 39297, + "id": 34453, "name": "LibVoting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 43438, - "src": "1122:9:40", + "referencedDeclaration": 38614, + "src": "1122:9:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2568,24 +2568,24 @@ "unitAlias": "" }, { - "id": 39300, + "id": 34456, "nodeType": "ImportDirective", - "src": "1162:57:40", + "src": "1162:57:36", "nodes": [], "absolutePath": "src/lib/CrossMsgHelper.sol", "file": "../lib/CrossMsgHelper.sol", "nameLocation": "-1:-1:-1", - "scope": 40238, - "sourceUnit": 41104, + "scope": 35394, + "sourceUnit": 36260, "symbolAliases": [ { "foreign": { - "id": 39299, + "id": 34455, "name": "CrossMsgHelper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 41103, - "src": "1170:14:40", + "referencedDeclaration": 36259, + "src": "1170:14:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2594,24 +2594,24 @@ "unitAlias": "" }, { - "id": 39302, + "id": 34458, "nodeType": "ImportDirective", - "src": "1220:49:40", + "src": "1220:49:36", "nodes": [], "absolutePath": "src/lib/LibGateway.sol", "file": "../lib/LibGateway.sol", "nameLocation": "-1:-1:-1", - "scope": 40238, - "sourceUnit": 42263, + "scope": 35394, + "sourceUnit": 37422, "symbolAliases": [ { "foreign": { - "id": 39301, + "id": 34457, "name": "LibGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42262, - "src": "1228:10:40", + "referencedDeclaration": 37421, + "src": "1228:10:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2620,24 +2620,24 @@ "unitAlias": "" }, { - "id": 39304, + "id": 34460, "nodeType": "ImportDirective", - "src": "1270:63:40", + "src": "1270:63:36", "nodes": [], "absolutePath": "src/lib/StorableMsgHelper.sol", "file": "../lib/StorableMsgHelper.sol", "nameLocation": "-1:-1:-1", - "scope": 40238, - "sourceUnit": 43538, + "scope": 35394, + "sourceUnit": 38714, "symbolAliases": [ { "foreign": { - "id": 39303, + "id": 34459, "name": "StorableMsgHelper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 43537, - "src": "1278:17:40", + "referencedDeclaration": 38713, + "src": "1278:17:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2646,24 +2646,24 @@ "unitAlias": "" }, { - "id": 39306, + "id": 34462, "nodeType": "ImportDirective", - "src": "1334:56:40", + "src": "1334:56:36", "nodes": [], "absolutePath": "lib/fevmate/contracts/utils/FilAddress.sol", "file": "fevmate/utils/FilAddress.sol", "nameLocation": "-1:-1:-1", - "scope": 40238, + "scope": 35394, "sourceUnit": 299, "symbolAliases": [ { "foreign": { - "id": 39305, + "id": 34461, "name": "FilAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 298, - "src": "1342:10:40", + "src": "1342:10:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2672,24 +2672,24 @@ "unitAlias": "" }, { - "id": 39308, + "id": 34464, "nodeType": "ImportDirective", - "src": "1391:65:40", + "src": "1391:65:36", "nodes": [], "absolutePath": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "file": "openzeppelin-contracts/utils/Address.sol", "nameLocation": "-1:-1:-1", - "scope": 40238, + "scope": 35394, "sourceUnit": 29870, "symbolAliases": [ { "foreign": { - "id": 39307, + "id": 34463, "name": "Address", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 29869, - "src": "1399:7:40", + "src": "1399:7:36", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2698,31 +2698,31 @@ "unitAlias": "" }, { - "id": 40237, + "id": 35393, "nodeType": "ContractDefinition", - "src": "1458:13897:40", + "src": "1458:13897:36", "nodes": [ { - "id": 39313, + "id": 34469, "nodeType": "UsingForDirective", - "src": "1517:29:40", + "src": "1517:29:36", "nodes": [], "global": false, "libraryName": { - "id": 39311, + "id": 34467, "name": "FilAddress", "nameLocations": [ - "1523:10:40" + "1523:10:36" ], "nodeType": "IdentifierPath", "referencedDeclaration": 298, - "src": "1523:10:40" + "src": "1523:10:36" }, "typeName": { - "id": 39312, + "id": 34468, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1538:7:40", + "src": "1538:7:36", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2731,26 +2731,26 @@ } }, { - "id": 39316, + "id": 34472, "nodeType": "UsingForDirective", - "src": "1551:37:40", + "src": "1551:37:36", "nodes": [], "global": false, "libraryName": { - "id": 39314, + "id": 34470, "name": "FilAddress", "nameLocations": [ - "1557:10:40" + "1557:10:36" ], "nodeType": "IdentifierPath", "referencedDeclaration": 298, - "src": "1557:10:40" + "src": "1557:10:36" }, "typeName": { - "id": 39315, + "id": 34471, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1572:15:40", + "src": "1572:15:36", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -2759,204 +2759,204 @@ } }, { - "id": 39320, + "id": 34476, "nodeType": "UsingForDirective", - "src": "1593:34:40", + "src": "1593:34:36", "nodes": [], "global": false, "libraryName": { - "id": 39317, + "id": 34473, "name": "SubnetIDHelper", "nameLocations": [ - "1599:14:40" + "1599:14:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44131, - "src": "1599:14:40" + "referencedDeclaration": 39307, + "src": "1599:14:36" }, "typeName": { - "id": 39319, + "id": 34475, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39318, + "id": 34474, "name": "SubnetID", "nameLocations": [ - "1618:8:40" + "1618:8:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44279, - "src": "1618:8:40" + "referencedDeclaration": 39457, + "src": "1618:8:36" }, - "referencedDeclaration": 44279, - "src": "1618:8:40", + "referencedDeclaration": 39457, + "src": "1618:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage_ptr", "typeString": "struct SubnetID" } } }, { - "id": 39324, + "id": 34480, "nodeType": "UsingForDirective", - "src": "1632:34:40", + "src": "1632:34:36", "nodes": [], "global": false, "libraryName": { - "id": 39321, + "id": 34477, "name": "CrossMsgHelper", "nameLocations": [ - "1638:14:40" + "1638:14:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 41103, - "src": "1638:14:40" + "referencedDeclaration": 36259, + "src": "1638:14:36" }, "typeName": { - "id": 39323, + "id": 34479, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39322, + "id": 34478, "name": "CrossMsg", "nameLocations": [ - "1657:8:40" + "1657:8:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44176, - "src": "1657:8:40" + "referencedDeclaration": 39352, + "src": "1657:8:36" }, - "referencedDeclaration": 44176, - "src": "1657:8:40", + "referencedDeclaration": 39352, + "src": "1657:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_storage_ptr", "typeString": "struct CrossMsg" } } }, { - "id": 39328, + "id": 34484, "nodeType": "UsingForDirective", - "src": "1671:46:40", + "src": "1671:46:36", "nodes": [], "global": false, "libraryName": { - "id": 39325, + "id": 34481, "name": "CheckpointHelper", "nameLocations": [ - "1677:16:40" + "1677:16:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 40776, - "src": "1677:16:40" + "referencedDeclaration": 35932, + "src": "1677:16:36" }, "typeName": { - "id": 39327, + "id": 34483, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39326, + "id": 34482, "name": "BottomUpCheckpoint", "nameLocations": [ - "1698:18:40" + "1698:18:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44156, - "src": "1698:18:40" + "referencedDeclaration": 39332, + "src": "1698:18:36" }, - "referencedDeclaration": 44156, - "src": "1698:18:40", + "referencedDeclaration": 39332, + "src": "1698:18:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage_ptr", "typeString": "struct BottomUpCheckpoint" } } }, { - "id": 39332, + "id": 34488, "nodeType": "UsingForDirective", - "src": "1722:45:40", + "src": "1722:45:36", "nodes": [], "global": false, "libraryName": { - "id": 39329, + "id": 34485, "name": "CheckpointHelper", "nameLocations": [ - "1728:16:40" + "1728:16:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 40776, - "src": "1728:16:40" + "referencedDeclaration": 35932, + "src": "1728:16:36" }, "typeName": { - "id": 39331, + "id": 34487, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39330, + "id": 34486, "name": "TopDownCheckpoint", "nameLocations": [ - "1749:17:40" + "1749:17:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44163, - "src": "1749:17:40" + "referencedDeclaration": 39339, + "src": "1749:17:36" }, - "referencedDeclaration": 44163, - "src": "1749:17:40", + "referencedDeclaration": 39339, + "src": "1749:17:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_storage_ptr", + "typeIdentifier": "t_struct$_TopDownCheckpoint_$39339_storage_ptr", "typeString": "struct TopDownCheckpoint" } } }, { - "id": 39336, + "id": 34492, "nodeType": "UsingForDirective", - "src": "1772:40:40", + "src": "1772:40:36", "nodes": [], "global": false, "libraryName": { - "id": 39333, + "id": 34489, "name": "StorableMsgHelper", "nameLocations": [ - "1778:17:40" + "1778:17:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 43537, - "src": "1778:17:40" + "referencedDeclaration": 38713, + "src": "1778:17:36" }, "typeName": { - "id": 39335, + "id": 34491, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39334, + "id": 34490, "name": "StorableMsg", "nameLocations": [ - "1800:11:40" + "1800:11:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44191, - "src": "1800:11:40" + "referencedDeclaration": 39367, + "src": "1800:11:36" }, - "referencedDeclaration": 44191, - "src": "1800:11:40", + "referencedDeclaration": 39367, + "src": "1800:11:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$44191_storage_ptr", + "typeIdentifier": "t_struct$_StorableMsg_$39367_storage_ptr", "typeString": "struct StorableMsg" } } }, { - "id": 39530, + "id": 34686, "nodeType": "FunctionDefinition", - "src": "1945:2052:40", + "src": "1945:2052:36", "nodes": [], "body": { - "id": 39529, + "id": 34685, "nodeType": "Block", - "src": "2016:1981:40", + "src": "2016:1981:36", "nodes": [], "statements": [ { "condition": { - "id": 39345, + "id": 34501, "isConstant": false, "isLValue": false, "isPure": false, @@ -2964,30 +2964,30 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2030:14:40", + "src": "2030:14:36", "subExpression": { "expression": { - "id": 39343, + "id": 34499, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "2031:1:40", + "referencedDeclaration": 37561, + "src": "2031:1:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 39344, + "id": 34500, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2033:11:40", + "memberLocation": "2033:11:36", "memberName": "initialized", "nodeType": "MemberAccess", - "referencedDeclaration": 42380, - "src": "2031:13:40", + "referencedDeclaration": 37548, + "src": "2031:13:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2998,31 +2998,31 @@ "typeString": "bool" } }, - "id": 39350, + "id": 34506, "nodeType": "IfStatement", - "src": "2026:68:40", + "src": "2026:68:36", "trueBody": { - "id": 39349, + "id": 34505, "nodeType": "Block", - "src": "2046:48:40", + "src": "2046:48:36", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 39346, + "id": 34502, "name": "NotInitialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38214, - "src": "2067:14:40", + "referencedDeclaration": 33230, + "src": "2067:14:36", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 39347, + "id": 34503, "isConstant": false, "isLValue": false, "isPure": false, @@ -3031,16 +3031,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2067:16:40", + "src": "2067:16:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39348, + "id": 34504, "nodeType": "RevertStatement", - "src": "2060:23:40" + "src": "2060:23:36" } ] } @@ -3051,7 +3051,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 39359, + "id": 34515, "isConstant": false, "isLValue": false, "isPure": false, @@ -3066,48 +3066,48 @@ "argumentTypes": [], "expression": { "expression": { - "id": 39351, + "id": 34507, "name": "commit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39340, - "src": "2107:6:40", + "referencedDeclaration": 34496, + "src": "2107:6:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_calldata_ptr", "typeString": "struct BottomUpCheckpoint calldata" } }, - "id": 39352, + "id": 34508, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2114:6:40", + "memberLocation": "2114:6:36", "memberName": "source", "nodeType": "MemberAccess", - "referencedDeclaration": 44139, - "src": "2107:13:40", + "referencedDeclaration": 39315, + "src": "2107:13:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_calldata_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_calldata_ptr", "typeString": "struct SubnetID calldata" } }, - "id": 39353, + "id": 34509, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2121:8:40", + "memberLocation": "2121:8:36", "memberName": "getActor", "nodeType": "MemberAccess", - "referencedDeclaration": 43808, - "src": "2107:22:40", + "referencedDeclaration": 38984, + "src": "2107:22:36", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39457_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$39457_memory_ptr_$", "typeString": "function (struct SubnetID memory) pure returns (address)" } }, - "id": 39354, + "id": 34510, "isConstant": false, "isLValue": false, "isPure": false, @@ -3116,29 +3116,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2107:24:40", + "src": "2107:24:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 39355, + "id": 34511, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2132:9:40", + "memberLocation": "2132:9:36", "memberName": "normalize", "nodeType": "MemberAccess", "referencedDeclaration": 90, - "src": "2107:34:40", + "src": "2107:34:36", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_address_$attached_to$_t_address_$", "typeString": "function (address) view returns (address)" } }, - "id": 39356, + "id": 34512, "isConstant": false, "isLValue": false, "isPure": false, @@ -3147,7 +3147,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2107:36:40", + "src": "2107:36:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -3158,62 +3158,62 @@ "operator": "!=", "rightExpression": { "expression": { - "id": 39357, + "id": 34513, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "2147:3:40", + "src": "2147:3:36", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 39358, + "id": 34514, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2151:6:40", + "memberLocation": "2151:6:36", "memberName": "sender", "nodeType": "MemberAccess", - "src": "2147:10:40", + "src": "2147:10:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2107:50:40", + "src": "2107:50:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 39364, + "id": 34520, "nodeType": "IfStatement", - "src": "2103:113:40", + "src": "2103:113:36", "trueBody": { - "id": 39363, + "id": 34519, "nodeType": "Block", - "src": "2159:57:40", + "src": "2159:57:36", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 39360, + "id": 34516, "name": "InvalidCheckpointSource", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38176, - "src": "2180:23:40", + "referencedDeclaration": 33192, + "src": "2180:23:36", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 39361, + "id": 34517, "isConstant": false, "isLValue": false, "isPure": false, @@ -3222,16 +3222,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2180:25:40", + "src": "2180:25:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39362, + "id": 34518, "nodeType": "RevertStatement", - "src": "2173:32:40" + "src": "2173:32:36" } ] } @@ -3239,73 +3239,73 @@ { "assignments": [ null, - 39367 + 34523 ], "declarations": [ null, { "constant": false, - "id": 39367, + "id": 34523, "mutability": "mutable", "name": "subnet", - "nameLocation": "2295:6:40", + "nameLocation": "2295:6:36", "nodeType": "VariableDeclaration", - "scope": 39529, - "src": "2280:21:40", + "scope": 34685, + "src": "2280:21:36", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet" }, "typeName": { - "id": 39366, + "id": 34522, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39365, + "id": 34521, "name": "Subnet", "nameLocations": [ - "2280:6:40" + "2280:6:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44303, - "src": "2280:6:40" + "referencedDeclaration": 39481, + "src": "2280:6:36" }, - "referencedDeclaration": 44303, - "src": "2280:6:40", + "referencedDeclaration": 39481, + "src": "2280:6:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet" } }, "visibility": "internal" } ], - "id": 39373, + "id": 34529, "initialValue": { "arguments": [ { "expression": { - "id": 39370, + "id": 34526, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "2326:3:40", + "src": "2326:3:36", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 39371, + "id": 34527, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2330:6:40", + "memberLocation": "2330:6:36", "memberName": "sender", "nodeType": "MemberAccess", - "src": "2326:10:40", + "src": "2326:10:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3320,33 +3320,33 @@ } ], "expression": { - "id": 39368, + "id": 34524, "name": "LibGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42262, - "src": "2305:10:40", + "referencedDeclaration": 37421, + "src": "2305:10:36", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeIdentifier": "t_type$_t_contract$_LibGateway_$37421_$", "typeString": "type(library LibGateway)" } }, - "id": 39369, + "id": 34525, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2316:9:40", + "memberLocation": "2316:9:36", "memberName": "getSubnet", "nodeType": "MemberAccess", - "referencedDeclaration": 42224, - "src": "2305:20:40", + "referencedDeclaration": 37383, + "src": "2305:20:36", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$39481_storage_ptr_$", "typeString": "function (address) view returns (bool,struct Subnet storage pointer)" } }, - "id": 39372, + "id": 34528, "isConstant": false, "isLValue": false, "isPure": false, @@ -3355,52 +3355,52 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2305:32:40", + "src": "2305:32:36", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$39481_storage_ptr_$", "typeString": "tuple(bool,struct Subnet storage pointer)" } }, "nodeType": "VariableDeclarationStatement", - "src": "2277:60:40" + "src": "2277:60:36" }, { "condition": { "commonType": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" }, - "id": 39378, + "id": 34534, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 39374, + "id": 34530, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39367, - "src": "2351:6:40", + "referencedDeclaration": 34523, + "src": "2351:6:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet storage pointer" } }, - "id": 39375, + "id": 34531, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2358:6:40", + "memberLocation": "2358:6:36", "memberName": "status", "nodeType": "MemberAccess", - "referencedDeclaration": 44282, - "src": "2351:13:40", + "referencedDeclaration": 39470, + "src": "2351:13:36", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, @@ -3408,63 +3408,63 @@ "operator": "!=", "rightExpression": { "expression": { - "id": 39376, + "id": 34532, "name": "Status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38137, - "src": "2368:6:40", + "referencedDeclaration": 33153, + "src": "2368:6:36", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Status_$38137_$", + "typeIdentifier": "t_type$_t_enum$_Status_$33153_$", "typeString": "type(enum Status)" } }, - "id": 39377, + "id": 34533, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "2375:6:40", + "memberLocation": "2375:6:36", "memberName": "Active", "nodeType": "MemberAccess", - "referencedDeclaration": 38132, - "src": "2368:13:40", + "referencedDeclaration": 33148, + "src": "2368:13:36", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, - "src": "2351:30:40", + "src": "2351:30:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 39383, + "id": 34539, "nodeType": "IfStatement", - "src": "2347:85:40", + "src": "2347:85:36", "trueBody": { - "id": 39382, + "id": 34538, "nodeType": "Block", - "src": "2383:49:40", + "src": "2383:49:36", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 39379, + "id": 34535, "name": "SubnetNotActive", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38228, - "src": "2404:15:40", + "referencedDeclaration": 33244, + "src": "2404:15:36", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 39380, + "id": 34536, "isConstant": false, "isLValue": false, "isPure": false, @@ -3473,16 +3473,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2404:17:40", + "src": "2404:17:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39381, + "id": 34537, "nodeType": "RevertStatement", - "src": "2397:24:40" + "src": "2397:24:36" } ] } @@ -3493,7 +3493,7 @@ "typeIdentifier": "t_uint64", "typeString": "uint64" }, - "id": 39389, + "id": 34545, "isConstant": false, "isLValue": false, "isPure": false, @@ -3501,42 +3501,42 @@ "leftExpression": { "expression": { "expression": { - "id": 39384, + "id": 34540, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39367, - "src": "2445:6:40", + "referencedDeclaration": 34523, + "src": "2445:6:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet storage pointer" } }, - "id": 39385, + "id": 34541, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2452:14:40", + "memberLocation": "2452:14:36", "memberName": "prevCheckpoint", "nodeType": "MemberAccess", - "referencedDeclaration": 44298, - "src": "2445:21:40", + "referencedDeclaration": 39476, + "src": "2445:21:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage", "typeString": "struct BottomUpCheckpoint storage ref" } }, - "id": 39386, + "id": 34542, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2467:5:40", + "memberLocation": "2467:5:36", "memberName": "epoch", "nodeType": "MemberAccess", - "referencedDeclaration": 44141, - "src": "2445:27:40", + "referencedDeclaration": 39317, + "src": "2445:27:36", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -3546,63 +3546,63 @@ "operator": ">=", "rightExpression": { "expression": { - "id": 39387, + "id": 34543, "name": "commit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39340, - "src": "2476:6:40", + "referencedDeclaration": 34496, + "src": "2476:6:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_calldata_ptr", "typeString": "struct BottomUpCheckpoint calldata" } }, - "id": 39388, + "id": 34544, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2483:5:40", + "memberLocation": "2483:5:36", "memberName": "epoch", "nodeType": "MemberAccess", - "referencedDeclaration": 44141, - "src": "2476:12:40", + "referencedDeclaration": 39317, + "src": "2476:12:36", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "src": "2445:43:40", + "src": "2445:43:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 39394, + "id": 34550, "nodeType": "IfStatement", - "src": "2441:105:40", + "src": "2441:105:36", "trueBody": { - "id": 39393, + "id": 34549, "nodeType": "Block", - "src": "2490:56:40", + "src": "2490:56:36", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 39390, + "id": 34546, "name": "InvalidCheckpointEpoch", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38174, - "src": "2511:22:40", + "referencedDeclaration": 33190, + "src": "2511:22:36", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 39391, + "id": 34547, "isConstant": false, "isLValue": false, "isPure": false, @@ -3611,16 +3611,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2511:24:40", + "src": "2511:24:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39392, + "id": 34548, "nodeType": "RevertStatement", - "src": "2504:31:40" + "src": "2504:31:36" } ] } @@ -3631,34 +3631,34 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 39398, + "id": 34554, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 39395, + "id": 34551, "name": "commit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39340, - "src": "2559:6:40", + "referencedDeclaration": 34496, + "src": "2559:6:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_calldata_ptr", "typeString": "struct BottomUpCheckpoint calldata" } }, - "id": 39396, + "id": 34552, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2566:8:40", + "memberLocation": "2566:8:36", "memberName": "prevHash", "nodeType": "MemberAccess", - "referencedDeclaration": 44153, - "src": "2559:15:40", + "referencedDeclaration": 39329, + "src": "2559:15:36", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3667,30 +3667,30 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 39397, + "id": 34553, "name": "EMPTY_HASH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 37666, - "src": "2578:10:40", + "referencedDeclaration": 32682, + "src": "2578:10:36", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "2559:29:40", + "src": "2559:29:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 39412, + "id": 34568, "nodeType": "IfStatement", - "src": "2555:182:40", + "src": "2555:182:36", "trueBody": { - "id": 39411, + "id": 34567, "nodeType": "Block", - "src": "2590:147:40", + "src": "2590:147:36", "statements": [ { "condition": { @@ -3698,34 +3698,34 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 39405, + "id": 34561, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 39399, + "id": 34555, "name": "commit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39340, - "src": "2608:6:40", + "referencedDeclaration": 34496, + "src": "2608:6:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_calldata_ptr", "typeString": "struct BottomUpCheckpoint calldata" } }, - "id": 39400, + "id": 34556, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2615:8:40", + "memberLocation": "2615:8:36", "memberName": "prevHash", "nodeType": "MemberAccess", - "referencedDeclaration": 44153, - "src": "2608:15:40", + "referencedDeclaration": 39329, + "src": "2608:15:36", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3739,48 +3739,48 @@ "argumentTypes": [], "expression": { "expression": { - "id": 39401, + "id": 34557, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39367, - "src": "2627:6:40", + "referencedDeclaration": 34523, + "src": "2627:6:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet storage pointer" } }, - "id": 39402, + "id": 34558, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2634:14:40", + "memberLocation": "2634:14:36", "memberName": "prevCheckpoint", "nodeType": "MemberAccess", - "referencedDeclaration": 44298, - "src": "2627:21:40", + "referencedDeclaration": 39476, + "src": "2627:21:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage", "typeString": "struct BottomUpCheckpoint storage ref" } }, - "id": 39403, + "id": 34559, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2649:6:40", + "memberLocation": "2649:6:36", "memberName": "toHash", "nodeType": "MemberAccess", - "referencedDeclaration": 40594, - "src": "2627:28:40", + "referencedDeclaration": 35750, + "src": "2627:28:36", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_BottomUpCheckpoint_$44156_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_BottomUpCheckpoint_$44156_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_BottomUpCheckpoint_$39332_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_BottomUpCheckpoint_$39332_memory_ptr_$", "typeString": "function (struct BottomUpCheckpoint memory) pure returns (bytes32)" } }, - "id": 39404, + "id": 34560, "isConstant": false, "isLValue": false, "isPure": false, @@ -3789,44 +3789,44 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2627:30:40", + "src": "2627:30:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "2608:49:40", + "src": "2608:49:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 39410, + "id": 34566, "nodeType": "IfStatement", - "src": "2604:123:40", + "src": "2604:123:36", "trueBody": { - "id": 39409, + "id": 34565, "nodeType": "Block", - "src": "2659:68:40", + "src": "2659:68:36", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 39406, + "id": 34562, "name": "InconsistentPrevCheckpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38170, - "src": "2684:26:40", + "referencedDeclaration": 33186, + "src": "2684:26:36", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 39407, + "id": 34563, "isConstant": false, "isLValue": false, "isPure": false, @@ -3835,16 +3835,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2684:28:40", + "src": "2684:28:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39408, + "id": 34564, "nodeType": "RevertStatement", - "src": "2677:35:40" + "src": "2677:35:36" } ] } @@ -3854,20 +3854,20 @@ }, { "assignments": [ - 39414, - 39416, - 39419 + 34570, + 34572, + 34575 ], "declarations": [ { "constant": false, - "id": 39414, + "id": 34570, "mutability": "mutable", "name": "checkpointExists", - "nameLocation": "2820:16:40", + "nameLocation": "2820:16:36", "nodeType": "VariableDeclaration", - "scope": 39529, - "src": "2815:21:40", + "scope": 34685, + "src": "2815:21:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3875,10 +3875,10 @@ "typeString": "bool" }, "typeName": { - "id": 39413, + "id": 34569, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2815:4:40", + "src": "2815:4:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3888,13 +3888,13 @@ }, { "constant": false, - "id": 39416, + "id": 34572, "mutability": "mutable", "name": "nextCheckEpoch", - "nameLocation": "2845:14:40", + "nameLocation": "2845:14:36", "nodeType": "VariableDeclaration", - "scope": 39529, - "src": "2838:21:40", + "scope": 34685, + "src": "2838:21:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3902,10 +3902,10 @@ "typeString": "uint64" }, "typeName": { - "id": 39415, + "id": 34571, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "2838:6:40", + "src": "2838:6:36", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -3915,75 +3915,75 @@ }, { "constant": false, - "id": 39419, + "id": 34575, "mutability": "mutable", "name": "checkpoint", - "nameLocation": "2888:10:40", + "nameLocation": "2888:10:36", "nodeType": "VariableDeclaration", - "scope": 39529, - "src": "2861:37:40", + "scope": 34685, + "src": "2861:37:36", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage_ptr", "typeString": "struct BottomUpCheckpoint" }, "typeName": { - "id": 39418, + "id": 34574, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39417, + "id": 34573, "name": "BottomUpCheckpoint", "nameLocations": [ - "2861:18:40" + "2861:18:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44156, - "src": "2861:18:40" + "referencedDeclaration": 39332, + "src": "2861:18:36" }, - "referencedDeclaration": 44156, - "src": "2861:18:40", + "referencedDeclaration": 39332, + "src": "2861:18:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage_ptr", "typeString": "struct BottomUpCheckpoint" } }, "visibility": "internal" } ], - "id": 39423, + "id": 34579, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 39420, + "id": 34576, "name": "LibGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42262, - "src": "2902:10:40", + "referencedDeclaration": 37421, + "src": "2902:10:36", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeIdentifier": "t_type$_t_contract$_LibGateway_$37421_$", "typeString": "type(library LibGateway)" } }, - "id": 39421, + "id": 34577, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2926:28:40", + "memberLocation": "2926:28:36", "memberName": "getCurrentBottomUpCheckpoint", "nodeType": "MemberAccess", - "referencedDeclaration": 42026, - "src": "2902:52:40", + "referencedDeclaration": 37185, + "src": "2902:52:36", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$_t_uint64_$_t_struct$_BottomUpCheckpoint_$44156_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$_t_uint64_$_t_struct$_BottomUpCheckpoint_$39332_storage_ptr_$", "typeString": "function () view returns (bool,uint64,struct BottomUpCheckpoint storage pointer)" } }, - "id": 39422, + "id": 34578, "isConstant": false, "isLValue": false, "isPure": false, @@ -3992,19 +3992,19 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2902:54:40", + "src": "2902:54:36", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint64_$_t_struct$_BottomUpCheckpoint_$44156_storage_ptr_$", + "typeIdentifier": "t_tuple$_t_bool_$_t_uint64_$_t_struct$_BottomUpCheckpoint_$39332_storage_ptr_$", "typeString": "tuple(bool,uint64,struct BottomUpCheckpoint storage pointer)" } }, "nodeType": "VariableDeclarationStatement", - "src": "2814:142:40" + "src": "2814:142:36" }, { "condition": { - "id": 39425, + "id": 34581, "isConstant": false, "isLValue": false, "isPure": false, @@ -4012,14 +4012,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "3032:17:40", + "src": "3032:17:36", "subExpression": { - "id": 39424, + "id": 34580, "name": "checkpointExists", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39414, - "src": "3033:16:40", + "referencedDeclaration": 34570, + "src": "3033:16:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4030,46 +4030,46 @@ "typeString": "bool" } }, - "id": 39440, + "id": 34596, "nodeType": "IfStatement", - "src": "3028:128:40", + "src": "3028:128:36", "trueBody": { - "id": 39439, + "id": 34595, "nodeType": "Block", - "src": "3051:105:40", + "src": "3051:105:36", "statements": [ { "expression": { - "id": 39431, + "id": 34587, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 39426, + "id": 34582, "name": "checkpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39419, - "src": "3065:10:40", + "referencedDeclaration": 34575, + "src": "3065:10:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage_ptr", "typeString": "struct BottomUpCheckpoint storage pointer" } }, - "id": 39428, + "id": 34584, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3076:6:40", + "memberLocation": "3076:6:36", "memberName": "source", "nodeType": "MemberAccess", - "referencedDeclaration": 44139, - "src": "3065:17:40", + "referencedDeclaration": 39315, + "src": "3065:17:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage", "typeString": "struct SubnetID storage ref" } }, @@ -4077,72 +4077,72 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 39429, + "id": 34585, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "3085:1:40", + "referencedDeclaration": 37561, + "src": "3085:1:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 39430, + "id": 34586, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3087:11:40", + "memberLocation": "3087:11:36", "memberName": "networkName", "nodeType": "MemberAccess", - "referencedDeclaration": 42307, - "src": "3085:13:40", + "referencedDeclaration": 37519, + "src": "3085:13:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage", "typeString": "struct SubnetID storage ref" } }, - "src": "3065:33:40", + "src": "3065:33:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage", "typeString": "struct SubnetID storage ref" } }, - "id": 39432, + "id": 34588, "nodeType": "ExpressionStatement", - "src": "3065:33:40" + "src": "3065:33:36" }, { "expression": { - "id": 39437, + "id": 34593, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 39433, + "id": 34589, "name": "checkpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39419, - "src": "3112:10:40", + "referencedDeclaration": 34575, + "src": "3112:10:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage_ptr", "typeString": "struct BottomUpCheckpoint storage pointer" } }, - "id": 39435, + "id": 34591, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3123:5:40", + "memberLocation": "3123:5:36", "memberName": "epoch", "nodeType": "MemberAccess", - "referencedDeclaration": 44141, - "src": "3112:16:40", + "referencedDeclaration": 39317, + "src": "3112:16:36", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -4151,26 +4151,26 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 39436, + "id": 34592, "name": "nextCheckEpoch", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39416, - "src": "3131:14:40", + "referencedDeclaration": 34572, + "src": "3131:14:36", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "src": "3112:33:40", + "src": "3112:33:36", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "id": 39438, + "id": 34594, "nodeType": "ExpressionStatement", - "src": "3112:33:40" + "src": "3112:33:36" } ] } @@ -4179,40 +4179,40 @@ "expression": { "arguments": [ { - "id": 39444, + "id": 34600, "name": "commit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39340, - "src": "3191:6:40", + "referencedDeclaration": 34496, + "src": "3191:6:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_calldata_ptr", "typeString": "struct BottomUpCheckpoint calldata" } }, { "expression": { - "id": 39445, + "id": 34601, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "3199:1:40", + "referencedDeclaration": 37561, + "src": "3199:1:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 39446, + "id": 34602, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3201:8:40", + "memberLocation": "3201:8:36", "memberName": "children", "nodeType": "MemberAccess", - "referencedDeclaration": 42368, - "src": "3199:10:40", + "referencedDeclaration": 37496, + "src": "3199:10:36", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_bytes32_$_t_array$_t_uint256_$2_storage_$_$", "typeString": "mapping(uint64 => mapping(bytes32 => uint256[2] storage ref))" @@ -4220,39 +4220,39 @@ }, { "expression": { - "id": 39447, + "id": 34603, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "3211:1:40", + "referencedDeclaration": 37561, + "src": "3211:1:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 39448, + "id": 34604, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3213:6:40", + "memberLocation": "3213:6:36", "memberName": "checks", "nodeType": "MemberAccess", - "referencedDeclaration": 42377, - "src": "3211:8:40", + "referencedDeclaration": 37505, + "src": "3211:8:36", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_bool_$_$_$", "typeString": "mapping(uint64 => mapping(bytes32 => mapping(bytes32 => bool)))" } }, { - "id": 39449, + "id": 34605, "name": "nextCheckEpoch", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39416, - "src": "3221:14:40", + "referencedDeclaration": 34572, + "src": "3221:14:36", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -4262,7 +4262,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_calldata_ptr", "typeString": "struct BottomUpCheckpoint calldata" }, { @@ -4279,33 +4279,33 @@ } ], "expression": { - "id": 39441, + "id": 34597, "name": "checkpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39419, - "src": "3166:10:40", + "referencedDeclaration": 34575, + "src": "3166:10:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage_ptr", "typeString": "struct BottomUpCheckpoint storage pointer" } }, - "id": 39443, + "id": 34599, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3177:13:40", + "memberLocation": "3177:13:36", "memberName": "setChildCheck", "nodeType": "MemberAccess", - "referencedDeclaration": 40775, - "src": "3166:24:40", + "referencedDeclaration": 35931, + "src": "3166:24:36", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_BottomUpCheckpoint_$44156_storage_ptr_$_t_struct$_BottomUpCheckpoint_$44156_memory_ptr_$_t_mapping$_t_uint64_$_t_mapping$_t_bytes32_$_t_array$_t_uint256_$2_storage_$_$_$_t_mapping$_t_uint64_$_t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_bool_$_$_$_$_t_uint64_$returns$__$attached_to$_t_struct$_BottomUpCheckpoint_$44156_storage_ptr_$", + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_BottomUpCheckpoint_$39332_storage_ptr_$_t_struct$_BottomUpCheckpoint_$39332_memory_ptr_$_t_mapping$_t_uint64_$_t_mapping$_t_bytes32_$_t_array$_t_uint256_$2_storage_$_$_$_t_mapping$_t_uint64_$_t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_bool_$_$_$_$_t_uint64_$returns$__$attached_to$_t_struct$_BottomUpCheckpoint_$39332_storage_ptr_$", "typeString": "function (struct BottomUpCheckpoint storage pointer,struct BottomUpCheckpoint memory,mapping(uint64 => mapping(bytes32 => uint256[2] storage ref)),mapping(uint64 => mapping(bytes32 => mapping(bytes32 => bool))),uint64)" } }, - "id": 39450, + "id": 34606, "isConstant": false, "isLValue": false, "isPure": false, @@ -4314,31 +4314,31 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3166:70:40", + "src": "3166:70:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39451, + "id": 34607, "nodeType": "ExpressionStatement", - "src": "3166:70:40" + "src": "3166:70:36" }, { "assignments": [ - 39453 + 34609 ], "declarations": [ { "constant": false, - "id": 39453, + "id": 34609, "mutability": "mutable", "name": "totalValue", - "nameLocation": "3255:10:40", + "nameLocation": "3255:10:36", "nodeType": "VariableDeclaration", - "scope": 39529, - "src": "3247:18:40", + "scope": 34685, + "src": "3247:18:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4346,10 +4346,10 @@ "typeString": "uint256" }, "typeName": { - "id": 39452, + "id": 34608, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3247:7:40", + "src": "3247:7:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4358,17 +4358,17 @@ "visibility": "internal" } ], - "id": 39455, + "id": 34611, "initialValue": { "hexValue": "30", - "id": 39454, + "id": 34610, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3268:1:40", + "src": "3268:1:36", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -4376,22 +4376,22 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "3247:22:40" + "src": "3247:22:36" }, { "assignments": [ - 39457 + 34613 ], "declarations": [ { "constant": false, - "id": 39457, + "id": 34613, "mutability": "mutable", "name": "crossMsgLength", - "nameLocation": "3287:14:40", + "nameLocation": "3287:14:36", "nodeType": "VariableDeclaration", - "scope": 39529, - "src": "3279:22:40", + "scope": 34685, + "src": "3279:22:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4399,10 +4399,10 @@ "typeString": "uint256" }, "typeName": { - "id": 39456, + "id": 34612, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3279:7:40", + "src": "3279:7:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4411,73 +4411,73 @@ "visibility": "internal" } ], - "id": 39461, + "id": 34617, "initialValue": { "expression": { "expression": { - "id": 39458, + "id": 34614, "name": "commit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39340, - "src": "3304:6:40", + "referencedDeclaration": 34496, + "src": "3304:6:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_calldata_ptr", "typeString": "struct BottomUpCheckpoint calldata" } }, - "id": 39459, + "id": 34615, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3311:9:40", + "memberLocation": "3311:9:36", "memberName": "crossMsgs", "nodeType": "MemberAccess", - "referencedDeclaration": 44147, - "src": "3304:16:40", + "referencedDeclaration": 39323, + "src": "3304:16:36", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_calldata_ptr_$dyn_calldata_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_calldata_ptr_$dyn_calldata_ptr", "typeString": "struct CrossMsg calldata[] calldata" } }, - "id": 39460, + "id": 34616, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3321:6:40", + "memberLocation": "3321:6:36", "memberName": "length", "nodeType": "MemberAccess", - "src": "3304:23:40", + "src": "3304:23:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "3279:48:40" + "src": "3279:48:36" }, { "body": { - "id": 39482, + "id": 34638, "nodeType": "Block", - "src": "3379:131:40", + "src": "3379:131:36", "statements": [ { "expression": { - "id": 39476, + "id": 34632, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 39469, + "id": 34625, "name": "totalValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39453, - "src": "3393:10:40", + "referencedDeclaration": 34609, + "src": "3393:10:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4490,40 +4490,40 @@ "expression": { "baseExpression": { "expression": { - "id": 39470, + "id": 34626, "name": "commit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39340, - "src": "3407:6:40", + "referencedDeclaration": 34496, + "src": "3407:6:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_calldata_ptr", "typeString": "struct BottomUpCheckpoint calldata" } }, - "id": 39471, + "id": 34627, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3414:9:40", + "memberLocation": "3414:9:36", "memberName": "crossMsgs", "nodeType": "MemberAccess", - "referencedDeclaration": 44147, - "src": "3407:16:40", + "referencedDeclaration": 39323, + "src": "3407:16:36", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_calldata_ptr_$dyn_calldata_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_calldata_ptr_$dyn_calldata_ptr", "typeString": "struct CrossMsg calldata[] calldata" } }, - "id": 39473, + "id": 34629, "indexExpression": { - "id": 39472, + "id": 34628, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39463, - "src": "3424:1:40", + "referencedDeclaration": 34619, + "src": "3424:1:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4534,60 +4534,60 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3407:19:40", + "src": "3407:19:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_calldata_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_calldata_ptr", "typeString": "struct CrossMsg calldata" } }, - "id": 39474, + "id": 34630, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3427:7:40", + "memberLocation": "3427:7:36", "memberName": "message", "nodeType": "MemberAccess", - "referencedDeclaration": 44173, - "src": "3407:27:40", + "referencedDeclaration": 39349, + "src": "3407:27:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$44191_calldata_ptr", + "typeIdentifier": "t_struct$_StorableMsg_$39367_calldata_ptr", "typeString": "struct StorableMsg calldata" } }, - "id": 39475, + "id": 34631, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3435:5:40", + "memberLocation": "3435:5:36", "memberName": "value", "nodeType": "MemberAccess", - "referencedDeclaration": 44184, - "src": "3407:33:40", + "referencedDeclaration": 39360, + "src": "3407:33:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3393:47:40", + "src": "3393:47:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 39477, + "id": 34633, "nodeType": "ExpressionStatement", - "src": "3393:47:40" + "src": "3393:47:36" }, { - "id": 39481, + "id": 34637, "nodeType": "UncheckedBlock", - "src": "3454:46:40", + "src": "3454:46:36", "statements": [ { "expression": { - "id": 39479, + "id": 34635, "isConstant": false, "isLValue": false, "isPure": false, @@ -4595,14 +4595,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": true, - "src": "3482:3:40", + "src": "3482:3:36", "subExpression": { - "id": 39478, + "id": 34634, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39463, - "src": "3484:1:40", + "referencedDeclaration": 34619, + "src": "3484:1:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4613,9 +4613,9 @@ "typeString": "uint256" } }, - "id": 39480, + "id": 34636, "nodeType": "ExpressionStatement", - "src": "3482:3:40" + "src": "3482:3:36" } ] } @@ -4626,18 +4626,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 39468, + "id": 34624, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 39466, + "id": 34622, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39463, - "src": "3357:1:40", + "referencedDeclaration": 34619, + "src": "3357:1:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4646,38 +4646,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 39467, + "id": 34623, "name": "crossMsgLength", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39457, - "src": "3361:14:40", + "referencedDeclaration": 34613, + "src": "3361:14:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3357:18:40", + "src": "3357:18:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 39483, + "id": 34639, "initializationExpression": { "assignments": [ - 39463 + 34619 ], "declarations": [ { "constant": false, - "id": 39463, + "id": 34619, "mutability": "mutable", "name": "i", - "nameLocation": "3350:1:40", + "nameLocation": "3350:1:36", "nodeType": "VariableDeclaration", - "scope": 39483, - "src": "3342:9:40", + "scope": 34639, + "src": "3342:9:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4685,10 +4685,10 @@ "typeString": "uint256" }, "typeName": { - "id": 39462, + "id": 34618, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3342:7:40", + "src": "3342:7:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4697,17 +4697,17 @@ "visibility": "internal" } ], - "id": 39465, + "id": 34621, "initialValue": { "hexValue": "30", - "id": 39464, + "id": 34620, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3354:1:40", + "src": "3354:1:36", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -4715,25 +4715,25 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "3342:13:40" + "src": "3342:13:36" }, "nodeType": "ForStatement", - "src": "3337:173:40" + "src": "3337:173:36" }, { "expression": { - "id": 39490, + "id": 34646, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 39484, + "id": 34640, "name": "totalValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39453, - "src": "3520:10:40", + "referencedDeclaration": 34609, + "src": "3520:10:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4746,34 +4746,34 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 39489, + "id": 34645, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 39485, + "id": 34641, "name": "commit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39340, - "src": "3534:6:40", + "referencedDeclaration": 34496, + "src": "3534:6:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_calldata_ptr", "typeString": "struct BottomUpCheckpoint calldata" } }, - "id": 39486, + "id": 34642, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3541:3:40", + "memberLocation": "3541:3:36", "memberName": "fee", "nodeType": "MemberAccess", - "referencedDeclaration": 44143, - "src": "3534:10:40", + "referencedDeclaration": 39319, + "src": "3534:10:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4783,47 +4783,47 @@ "operator": "+", "rightExpression": { "expression": { - "id": 39487, + "id": 34643, "name": "checkpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39419, - "src": "3547:10:40", + "referencedDeclaration": 34575, + "src": "3547:10:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage_ptr", "typeString": "struct BottomUpCheckpoint storage pointer" } }, - "id": 39488, + "id": 34644, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3558:3:40", + "memberLocation": "3558:3:36", "memberName": "fee", "nodeType": "MemberAccess", - "referencedDeclaration": 44143, - "src": "3547:14:40", + "referencedDeclaration": 39319, + "src": "3547:14:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3534:27:40", + "src": "3534:27:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3520:41:40", + "src": "3520:41:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 39491, + "id": 34647, "nodeType": "ExpressionStatement", - "src": "3520:41:40" + "src": "3520:41:36" }, { "condition": { @@ -4831,34 +4831,34 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 39495, + "id": 34651, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 39492, + "id": 34648, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39367, - "src": "3696:6:40", + "referencedDeclaration": 34523, + "src": "3696:6:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet storage pointer" } }, - "id": 39493, + "id": 34649, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3703:10:40", + "memberLocation": "3703:10:36", "memberName": "circSupply", "nodeType": "MemberAccess", - "referencedDeclaration": 44292, - "src": "3696:17:40", + "referencedDeclaration": 39463, + "src": "3696:17:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4867,48 +4867,48 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 39494, + "id": 34650, "name": "totalValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39453, - "src": "3716:10:40", + "referencedDeclaration": 34609, + "src": "3716:10:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3696:30:40", + "src": "3696:30:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 39500, + "id": 34656, "nodeType": "IfStatement", - "src": "3692:95:40", + "src": "3692:95:36", "trueBody": { - "id": 39499, + "id": 34655, "nodeType": "Block", - "src": "3728:59:40", + "src": "3728:59:36", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 39496, + "id": 34652, "name": "NotEnoughSubnetCircSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38210, - "src": "3749:25:40", + "referencedDeclaration": 33226, + "src": "3749:25:36", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 39497, + "id": 34653, "isConstant": false, "isLValue": false, "isPure": false, @@ -4917,50 +4917,50 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3749:27:40", + "src": "3749:27:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39498, + "id": 34654, "nodeType": "RevertStatement", - "src": "3742:34:40" + "src": "3742:34:36" } ] } }, { "expression": { - "id": 39505, + "id": 34661, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 39501, + "id": 34657, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39367, - "src": "3797:6:40", + "referencedDeclaration": 34523, + "src": "3797:6:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet storage pointer" } }, - "id": 39503, + "id": 34659, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3804:10:40", + "memberLocation": "3804:10:36", "memberName": "circSupply", "nodeType": "MemberAccess", - "referencedDeclaration": 44292, - "src": "3797:17:40", + "referencedDeclaration": 39463, + "src": "3797:17:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4969,142 +4969,142 @@ "nodeType": "Assignment", "operator": "-=", "rightHandSide": { - "id": 39504, + "id": 34660, "name": "totalValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39453, - "src": "3818:10:40", + "referencedDeclaration": 34609, + "src": "3818:10:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3797:31:40", + "src": "3797:31:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 39506, + "id": 34662, "nodeType": "ExpressionStatement", - "src": "3797:31:40" + "src": "3797:31:36" }, { "expression": { - "id": 39511, + "id": 34667, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 39507, + "id": 34663, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39367, - "src": "3839:6:40", + "referencedDeclaration": 34523, + "src": "3839:6:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet storage pointer" } }, - "id": 39509, + "id": 34665, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3846:14:40", + "memberLocation": "3846:14:36", "memberName": "prevCheckpoint", "nodeType": "MemberAccess", - "referencedDeclaration": 44298, - "src": "3839:21:40", + "referencedDeclaration": 39476, + "src": "3839:21:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage", "typeString": "struct BottomUpCheckpoint storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 39510, + "id": 34666, "name": "commit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39340, - "src": "3863:6:40", + "referencedDeclaration": 34496, + "src": "3863:6:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_calldata_ptr", "typeString": "struct BottomUpCheckpoint calldata" } }, - "src": "3839:30:40", + "src": "3839:30:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage", "typeString": "struct BottomUpCheckpoint storage ref" } }, - "id": 39512, + "id": 34668, "nodeType": "ExpressionStatement", - "src": "3839:30:40" + "src": "3839:30:36" }, { "expression": { "arguments": [ { "expression": { - "id": 39514, + "id": 34670, "name": "commit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39340, - "src": "3895:6:40", + "referencedDeclaration": 34496, + "src": "3895:6:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_calldata_ptr", "typeString": "struct BottomUpCheckpoint calldata" } }, - "id": 39515, + "id": 34671, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3902:6:40", + "memberLocation": "3902:6:36", "memberName": "source", "nodeType": "MemberAccess", - "referencedDeclaration": 44139, - "src": "3895:13:40", + "referencedDeclaration": 39315, + "src": "3895:13:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_calldata_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_calldata_ptr", "typeString": "struct SubnetID calldata" } }, { "expression": { - "id": 39516, + "id": 34672, "name": "commit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39340, - "src": "3910:6:40", + "referencedDeclaration": 34496, + "src": "3910:6:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_calldata_ptr", "typeString": "struct BottomUpCheckpoint calldata" } }, - "id": 39517, + "id": 34673, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3917:9:40", + "memberLocation": "3917:9:36", "memberName": "crossMsgs", "nodeType": "MemberAccess", - "referencedDeclaration": 44147, - "src": "3910:16:40", + "referencedDeclaration": 39323, + "src": "3910:16:36", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_calldata_ptr_$dyn_calldata_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_calldata_ptr_$dyn_calldata_ptr", "typeString": "struct CrossMsg calldata[] calldata" } } @@ -5112,26 +5112,26 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_SubnetID_$44279_calldata_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_calldata_ptr", "typeString": "struct SubnetID calldata" }, { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_calldata_ptr_$dyn_calldata_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_calldata_ptr_$dyn_calldata_ptr", "typeString": "struct CrossMsg calldata[] calldata" } ], - "id": 39513, + "id": 34669, "name": "_applyMessages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40236, - "src": "3880:14:40", + "referencedDeclaration": 35392, + "src": "3880:14:36", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_SubnetID_$44279_memory_ptr_$_t_array$_t_struct$_CrossMsg_$44176_memory_ptr_$dyn_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_SubnetID_$39457_memory_ptr_$_t_array$_t_struct$_CrossMsg_$39352_memory_ptr_$dyn_memory_ptr_$returns$__$", "typeString": "function (struct SubnetID memory,struct CrossMsg memory[] memory)" } }, - "id": 39518, + "id": 34674, "isConstant": false, "isLValue": false, "isPure": false, @@ -5140,42 +5140,42 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3880:47:40", + "src": "3880:47:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39519, + "id": 34675, "nodeType": "ExpressionStatement", - "src": "3880:47:40" + "src": "3880:47:36" }, { "expression": { "arguments": [ { "expression": { - "id": 39523, + "id": 34679, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "3967:3:40", + "src": "3967:3:36", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 39524, + "id": 34680, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3971:6:40", + "memberLocation": "3971:6:36", "memberName": "sender", "nodeType": "MemberAccess", - "src": "3967:10:40", + "src": "3967:10:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5183,27 +5183,27 @@ }, { "expression": { - "id": 39525, + "id": 34681, "name": "commit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39340, - "src": "3979:6:40", + "referencedDeclaration": 34496, + "src": "3979:6:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_calldata_ptr", "typeString": "struct BottomUpCheckpoint calldata" } }, - "id": 39526, + "id": 34682, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3986:3:40", + "memberLocation": "3986:3:36", "memberName": "fee", "nodeType": "MemberAccess", - "referencedDeclaration": 44143, - "src": "3979:10:40", + "referencedDeclaration": 39319, + "src": "3979:10:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5222,33 +5222,33 @@ } ], "expression": { - "id": 39520, + "id": 34676, "name": "LibGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42262, - "src": "3938:10:40", + "referencedDeclaration": 37421, + "src": "3938:10:36", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeIdentifier": "t_type$_t_contract$_LibGateway_$37421_$", "typeString": "type(library LibGateway)" } }, - "id": 39522, + "id": 34678, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3949:17:40", + "memberLocation": "3949:17:36", "memberName": "distributeRewards", "nodeType": "MemberAccess", - "referencedDeclaration": 42181, - "src": "3938:28:40", + "referencedDeclaration": 37340, + "src": "3938:28:36", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 39527, + "id": 34683, "isConstant": false, "isLValue": false, "isPure": false, @@ -5257,23 +5257,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3938:52:40", + "src": "3938:52:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39528, + "id": 34684, "nodeType": "ExpressionStatement", - "src": "3938:52:40" + "src": "3938:52:36" } ] }, "documentation": { - "id": 39337, + "id": 34493, "nodeType": "StructuredDocumentation", - "src": "1818:122:40", + "src": "1818:122:36", "text": "@notice submit a checkpoint in the gateway. Called from a subnet once the checkpoint is voted for and reaches majority" }, "functionSelector": "d4e149a8", @@ -5281,71 +5281,71 @@ "kind": "function", "modifiers": [], "name": "commitChildCheck", - "nameLocation": "1954:16:40", + "nameLocation": "1954:16:36", "parameters": { - "id": 39341, + "id": 34497, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39340, + "id": 34496, "mutability": "mutable", "name": "commit", - "nameLocation": "1999:6:40", + "nameLocation": "1999:6:36", "nodeType": "VariableDeclaration", - "scope": 39530, - "src": "1971:34:40", + "scope": 34686, + "src": "1971:34:36", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_calldata_ptr", "typeString": "struct BottomUpCheckpoint" }, "typeName": { - "id": 39339, + "id": 34495, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39338, + "id": 34494, "name": "BottomUpCheckpoint", "nameLocations": [ - "1971:18:40" + "1971:18:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44156, - "src": "1971:18:40" + "referencedDeclaration": 39332, + "src": "1971:18:36" }, - "referencedDeclaration": 44156, - "src": "1971:18:40", + "referencedDeclaration": 39332, + "src": "1971:18:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage_ptr", "typeString": "struct BottomUpCheckpoint" } }, "visibility": "internal" } ], - "src": "1970:36:40" + "src": "1970:36:36" }, "returnParameters": { - "id": 39342, + "id": 34498, "nodeType": "ParameterList", "parameters": [], - "src": "2016:0:40" + "src": "2016:0:36" }, - "scope": 40237, + "scope": 35393, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 39662, + "id": 34818, "nodeType": "FunctionDefinition", - "src": "4141:1750:40", + "src": "4141:1750:36", "nodes": [], "body": { - "id": 39661, + "id": 34817, "nodeType": "Block", - "src": "4235:1656:40", + "src": "4235:1656:36", "nodes": [], "statements": [ { @@ -5353,27 +5353,27 @@ "arguments": [ { "expression": { - "id": 39542, + "id": 34698, "name": "checkpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39534, - "src": "4334:10:40", + "referencedDeclaration": 34690, + "src": "4334:10:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_calldata_ptr", + "typeIdentifier": "t_struct$_TopDownCheckpoint_$39339_calldata_ptr", "typeString": "struct TopDownCheckpoint calldata" } }, - "id": 39543, + "id": 34699, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4345:5:40", + "memberLocation": "4345:5:36", "memberName": "epoch", "nodeType": "MemberAccess", - "referencedDeclaration": 44158, - "src": "4334:16:40", + "referencedDeclaration": 39334, + "src": "4334:16:36", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -5388,33 +5388,33 @@ } ], "expression": { - "id": 39539, + "id": 34695, "name": "LibVoting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 43438, - "src": "4304:9:40", + "referencedDeclaration": 38614, + "src": "4304:9:36", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibVoting_$43438_$", + "typeIdentifier": "t_type$_t_contract$_LibVoting_$38614_$", "typeString": "type(library LibVoting)" } }, - "id": 39541, + "id": 34697, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4314:19:40", + "memberLocation": "4314:19:36", "memberName": "applyValidEpochOnly", "nodeType": "MemberAccess", - "referencedDeclaration": 42889, - "src": "4304:29:40", + "referencedDeclaration": 38054, + "src": "4304:29:36", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint64_$returns$__$", "typeString": "function (uint64) view" } }, - "id": 39544, + "id": 34700, "isConstant": false, "isLValue": false, "isPure": false, @@ -5423,31 +5423,31 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4304:47:40", + "src": "4304:47:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39545, + "id": 34701, "nodeType": "ExpressionStatement", - "src": "4304:47:40" + "src": "4304:47:36" }, { "assignments": [ - 39547 + 34703 ], "declarations": [ { "constant": false, - "id": 39547, + "id": 34703, "mutability": "mutable", "name": "validatorWeight", - "nameLocation": "4370:15:40", + "nameLocation": "4370:15:36", "nodeType": "VariableDeclaration", - "scope": 39661, - "src": "4362:23:40", + "scope": 34817, + "src": "4362:23:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5455,10 +5455,10 @@ "typeString": "uint256" }, "typeName": { - "id": 39546, + "id": 34702, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4362:7:40", + "src": "4362:7:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5467,61 +5467,61 @@ "visibility": "internal" } ], - "id": 39556, + "id": 34712, "initialValue": { "baseExpression": { "baseExpression": { "expression": { - "id": 39548, + "id": 34704, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "4388:1:40", + "referencedDeclaration": 37561, + "src": "4388:1:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 39549, + "id": 34705, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4390:12:40", + "memberLocation": "4390:12:36", "memberName": "validatorSet", "nodeType": "MemberAccess", - "referencedDeclaration": 42356, - "src": "4388:14:40", + "referencedDeclaration": 37487, + "src": "4388:14:36", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(uint256 => mapping(address => uint256))" } }, - "id": 39552, + "id": 34708, "indexExpression": { "expression": { - "id": 39550, + "id": 34706, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "4403:1:40", + "referencedDeclaration": 37561, + "src": "4403:1:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 39551, + "id": 34707, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4405:14:40", + "memberLocation": "4405:14:36", "memberName": "validatorNonce", "nodeType": "MemberAccess", - "referencedDeclaration": 42359, - "src": "4403:16:40", + "referencedDeclaration": 37525, + "src": "4403:16:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5532,35 +5532,35 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4388:32:40", + "src": "4388:32:36", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 39555, + "id": 34711, "indexExpression": { "expression": { - "id": 39553, + "id": 34709, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4421:3:40", + "src": "4421:3:36", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 39554, + "id": 34710, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4425:6:40", + "memberLocation": "4425:6:36", "memberName": "sender", "nodeType": "MemberAccess", - "src": "4421:10:40", + "src": "4421:10:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5571,18 +5571,18 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4388:44:40", + "src": "4388:44:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "4362:70:40" + "src": "4362:70:36" }, { "condition": { - "id": 39559, + "id": 34715, "isConstant": false, "isLValue": false, "isPure": false, @@ -5590,30 +5590,30 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4447:14:40", + "src": "4447:14:36", "subExpression": { "expression": { - "id": 39557, + "id": 34713, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "4448:1:40", + "referencedDeclaration": 37561, + "src": "4448:1:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 39558, + "id": 34714, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4450:11:40", + "memberLocation": "4450:11:36", "memberName": "initialized", "nodeType": "MemberAccess", - "referencedDeclaration": 42380, - "src": "4448:13:40", + "referencedDeclaration": 37548, + "src": "4448:13:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5624,31 +5624,31 @@ "typeString": "bool" } }, - "id": 39564, + "id": 34720, "nodeType": "IfStatement", - "src": "4443:68:40", + "src": "4443:68:36", "trueBody": { - "id": 39563, + "id": 34719, "nodeType": "Block", - "src": "4463:48:40", + "src": "4463:48:36", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 39560, + "id": 34716, "name": "NotInitialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38214, - "src": "4484:14:40", + "referencedDeclaration": 33230, + "src": "4484:14:36", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 39561, + "id": 34717, "isConstant": false, "isLValue": false, "isPure": false, @@ -5657,16 +5657,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4484:16:40", + "src": "4484:16:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39562, + "id": 34718, "nodeType": "RevertStatement", - "src": "4477:23:40" + "src": "4477:23:36" } ] } @@ -5677,18 +5677,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 39567, + "id": 34723, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 39565, + "id": 34721, "name": "validatorWeight", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39547, - "src": "4524:15:40", + "referencedDeclaration": 34703, + "src": "4524:15:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5698,51 +5698,51 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 39566, + "id": 34722, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4543:1:40", + "src": "4543:1:36", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "4524:20:40", + "src": "4524:20:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 39572, + "id": 34728, "nodeType": "IfStatement", - "src": "4520:72:40", + "src": "4520:72:36", "trueBody": { - "id": 39571, + "id": 34727, "nodeType": "Block", - "src": "4546:46:40", + "src": "4546:46:36", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 39568, + "id": 34724, "name": "NotValidator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38222, - "src": "4567:12:40", + "referencedDeclaration": 33238, + "src": "4567:12:36", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 39569, + "id": 34725, "isConstant": false, "isLValue": false, "isPure": false, @@ -5751,23 +5751,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4567:14:40", + "src": "4567:14:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39570, + "id": 34726, "nodeType": "RevertStatement", - "src": "4560:21:40" + "src": "4560:21:36" } ] } }, { "condition": { - "id": 39578, + "id": 34734, "isConstant": false, "isLValue": false, "isPure": false, @@ -5775,34 +5775,34 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4605:48:40", + "src": "4605:48:36", "subExpression": { "arguments": [ { "expression": { - "id": 39575, + "id": 34731, "name": "checkpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39534, - "src": "4630:10:40", + "referencedDeclaration": 34690, + "src": "4630:10:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_calldata_ptr", + "typeIdentifier": "t_struct$_TopDownCheckpoint_$39339_calldata_ptr", "typeString": "struct TopDownCheckpoint calldata" } }, - "id": 39576, + "id": 34732, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4641:11:40", + "memberLocation": "4641:11:36", "memberName": "topDownMsgs", "nodeType": "MemberAccess", - "referencedDeclaration": 44162, - "src": "4630:22:40", + "referencedDeclaration": 39338, + "src": "4630:22:36", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_calldata_ptr_$dyn_calldata_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_calldata_ptr_$dyn_calldata_ptr", "typeString": "struct CrossMsg calldata[] calldata" } } @@ -5810,38 +5810,38 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_calldata_ptr_$dyn_calldata_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_calldata_ptr_$dyn_calldata_ptr", "typeString": "struct CrossMsg calldata[] calldata" } ], "expression": { - "id": 39573, + "id": 34729, "name": "CrossMsgHelper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 41103, - "src": "4606:14:40", + "referencedDeclaration": 36259, + "src": "4606:14:36", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_CrossMsgHelper_$41103_$", + "typeIdentifier": "t_type$_t_contract$_CrossMsgHelper_$36259_$", "typeString": "type(library CrossMsgHelper)" } }, - "id": 39574, + "id": 34730, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4621:8:40", + "memberLocation": "4621:8:36", "memberName": "isSorted", "nodeType": "MemberAccess", - "referencedDeclaration": 41102, - "src": "4606:23:40", + "referencedDeclaration": 36258, + "src": "4606:23:36", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_struct$_CrossMsg_$44176_memory_ptr_$dyn_memory_ptr_$returns$_t_bool_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_struct$_CrossMsg_$39352_memory_ptr_$dyn_memory_ptr_$returns$_t_bool_$", "typeString": "function (struct CrossMsg memory[] memory) pure returns (bool)" } }, - "id": 39577, + "id": 34733, "isConstant": false, "isLValue": false, "isPure": false, @@ -5850,7 +5850,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4606:47:40", + "src": "4606:47:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5862,31 +5862,31 @@ "typeString": "bool" } }, - "id": 39583, + "id": 34739, "nodeType": "IfStatement", - "src": "4601:105:40", + "src": "4601:105:36", "trueBody": { - "id": 39582, + "id": 34738, "nodeType": "Block", - "src": "4655:51:40", + "src": "4655:51:36", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 39579, + "id": 34735, "name": "MessagesNotSorted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38188, - "src": "4676:17:40", + "referencedDeclaration": 33204, + "src": "4676:17:36", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 39580, + "id": 34736, "isConstant": false, "isLValue": false, "isPure": false, @@ -5895,117 +5895,117 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4676:19:40", + "src": "4676:19:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39581, + "id": 34737, "nodeType": "RevertStatement", - "src": "4669:26:40" + "src": "4669:26:36" } ] } }, { "assignments": [ - 39586 + 34742 ], "declarations": [ { "constant": false, - "id": 39586, + "id": 34742, "mutability": "mutable", "name": "voteSubmission", - "nameLocation": "4751:14:40", + "nameLocation": "4751:14:36", "nodeType": "VariableDeclaration", - "scope": 39661, - "src": "4716:49:40", + "scope": 34817, + "src": "4716:49:36", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39400_storage_ptr", "typeString": "struct EpochVoteTopDownSubmission" }, "typeName": { - "id": 39585, + "id": 34741, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39584, + "id": 34740, "name": "EpochVoteTopDownSubmission", "nameLocations": [ - "4716:26:40" + "4716:26:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44224, - "src": "4716:26:40" + "referencedDeclaration": 39400, + "src": "4716:26:36" }, - "referencedDeclaration": 44224, - "src": "4716:26:40", + "referencedDeclaration": 39400, + "src": "4716:26:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39400_storage_ptr", "typeString": "struct EpochVoteTopDownSubmission" } }, "visibility": "internal" } ], - "id": 39592, + "id": 34748, "initialValue": { "baseExpression": { "expression": { - "id": 39587, + "id": 34743, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "4768:1:40", + "referencedDeclaration": 37561, + "src": "4768:1:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 39588, + "id": 34744, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4770:20:40", + "memberLocation": "4770:20:36", "memberName": "epochVoteSubmissions", "nodeType": "MemberAccess", - "referencedDeclaration": 42386, - "src": "4768:22:40", + "referencedDeclaration": 37511, + "src": "4768:22:36", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_EpochVoteTopDownSubmission_$44224_storage_$", + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_EpochVoteTopDownSubmission_$39400_storage_$", "typeString": "mapping(uint64 => struct EpochVoteTopDownSubmission storage ref)" } }, - "id": 39591, + "id": 34747, "indexExpression": { "expression": { - "id": 39589, + "id": 34745, "name": "checkpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39534, - "src": "4791:10:40", + "referencedDeclaration": 34690, + "src": "4791:10:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_calldata_ptr", + "typeIdentifier": "t_struct$_TopDownCheckpoint_$39339_calldata_ptr", "typeString": "struct TopDownCheckpoint calldata" } }, - "id": 39590, + "id": 34746, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4802:5:40", + "memberLocation": "4802:5:36", "memberName": "epoch", "nodeType": "MemberAccess", - "referencedDeclaration": 44158, - "src": "4791:16:40", + "referencedDeclaration": 39334, + "src": "4791:16:36", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -6016,29 +6016,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4768:40:40", + "src": "4768:40:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage", + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39400_storage", "typeString": "struct EpochVoteTopDownSubmission storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "4716:92:40" + "src": "4716:92:36" }, { "assignments": [ - 39594 + 34750 ], "declarations": [ { "constant": false, - "id": 39594, + "id": 34750, "mutability": "mutable", "name": "shouldExecuteVote", - "nameLocation": "4851:17:40", + "nameLocation": "4851:17:36", "nodeType": "VariableDeclaration", - "scope": 39661, - "src": "4846:22:40", + "scope": 34817, + "src": "4846:22:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6046,10 +6046,10 @@ "typeString": "bool" }, "typeName": { - "id": 39593, + "id": 34749, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4846:4:40", + "src": "4846:4:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6058,67 +6058,67 @@ "visibility": "internal" } ], - "id": 39602, + "id": 34758, "initialValue": { "arguments": [ { - "id": 39596, + "id": 34752, "name": "voteSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39586, - "src": "4890:14:40", + "referencedDeclaration": 34742, + "src": "4890:14:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39400_storage_ptr", "typeString": "struct EpochVoteTopDownSubmission storage pointer" } }, { - "id": 39597, + "id": 34753, "name": "checkpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39534, - "src": "4906:10:40", + "referencedDeclaration": 34690, + "src": "4906:10:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_calldata_ptr", + "typeIdentifier": "t_struct$_TopDownCheckpoint_$39339_calldata_ptr", "typeString": "struct TopDownCheckpoint calldata" } }, { "expression": { - "id": 39598, + "id": 34754, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4918:3:40", + "src": "4918:3:36", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 39599, + "id": 34755, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4922:6:40", + "memberLocation": "4922:6:36", "memberName": "sender", "nodeType": "MemberAccess", - "src": "4918:10:40", + "src": "4918:10:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 39600, + "id": 34756, "name": "validatorWeight", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39547, - "src": "4930:15:40", + "referencedDeclaration": 34703, + "src": "4930:15:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6128,11 +6128,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39400_storage_ptr", "typeString": "struct EpochVoteTopDownSubmission storage pointer" }, { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_calldata_ptr", + "typeIdentifier": "t_struct$_TopDownCheckpoint_$39339_calldata_ptr", "typeString": "struct TopDownCheckpoint calldata" }, { @@ -6144,18 +6144,18 @@ "typeString": "uint256" } ], - "id": 39595, + "id": 34751, "name": "_submitTopDownVote", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39887, - "src": "4871:18:40", + "referencedDeclaration": 35043, + "src": "4871:18:36", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr_$_t_struct$_TopDownCheckpoint_$44163_calldata_ptr_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_EpochVoteTopDownSubmission_$39400_storage_ptr_$_t_struct$_TopDownCheckpoint_$39339_calldata_ptr_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (struct EpochVoteTopDownSubmission storage pointer,struct TopDownCheckpoint calldata,address,uint256) returns (bool)" } }, - "id": 39601, + "id": 34757, "isConstant": false, "isLValue": false, "isPure": false, @@ -6164,7 +6164,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4871:75:40", + "src": "4871:75:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6172,101 +6172,101 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4846:100:40" + "src": "4846:100:36" }, { "assignments": [ - 39607 + 34763 ], "declarations": [ { "constant": false, - "id": 39607, + "id": 34763, "mutability": "mutable", "name": "topDownMsgs", - "nameLocation": "5032:11:40", + "nameLocation": "5032:11:36", "nodeType": "VariableDeclaration", - "scope": 39661, - "src": "5014:29:40", + "scope": 34817, + "src": "5014:29:36", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_memory_ptr_$dyn_memory_ptr", "typeString": "struct CrossMsg[]" }, "typeName": { "baseType": { - "id": 39605, + "id": 34761, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39604, + "id": 34760, "name": "CrossMsg", "nameLocations": [ - "5014:8:40" + "5014:8:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44176, - "src": "5014:8:40" + "referencedDeclaration": 39352, + "src": "5014:8:36" }, - "referencedDeclaration": 44176, - "src": "5014:8:40", + "referencedDeclaration": 39352, + "src": "5014:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_storage_ptr", "typeString": "struct CrossMsg" } }, - "id": 39606, + "id": 34762, "nodeType": "ArrayTypeName", - "src": "5014:10:40", + "src": "5014:10:36", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_storage_$dyn_storage_ptr", "typeString": "struct CrossMsg[]" } }, "visibility": "internal" } ], - "id": 39608, + "id": 34764, "nodeType": "VariableDeclarationStatement", - "src": "5014:29:40" + "src": "5014:29:36" }, { "condition": { - "id": 39609, + "id": 34765, "name": "shouldExecuteVote", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39594, - "src": "5058:17:40", + "referencedDeclaration": 34750, + "src": "5058:17:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 39617, + "id": 34773, "nodeType": "IfStatement", - "src": "5054:110:40", + "src": "5054:110:36", "trueBody": { - "id": 39616, + "id": 34772, "nodeType": "Block", - "src": "5077:87:40", + "src": "5077:87:36", "statements": [ { "expression": { - "id": 39614, + "id": 34770, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 39610, + "id": 34766, "name": "topDownMsgs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39607, - "src": "5091:11:40", + "referencedDeclaration": 34763, + "src": "5091:11:36", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_memory_ptr_$dyn_memory_ptr", "typeString": "struct CrossMsg memory[] memory" } }, @@ -6275,14 +6275,14 @@ "rightHandSide": { "arguments": [ { - "id": 39612, + "id": 34768, "name": "voteSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39586, - "src": "5138:14:40", + "referencedDeclaration": 34742, + "src": "5138:14:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39400_storage_ptr", "typeString": "struct EpochVoteTopDownSubmission storage pointer" } } @@ -6290,22 +6290,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39400_storage_ptr", "typeString": "struct EpochVoteTopDownSubmission storage pointer" } ], - "id": 39611, + "id": 34767, "name": "_markMostVotedSubmissionExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39833, - "src": "5105:32:40", + "referencedDeclaration": 34989, + "src": "5105:32:36", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr_$returns$_t_array$_t_struct$_CrossMsg_$44176_storage_$dyn_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_EpochVoteTopDownSubmission_$39400_storage_ptr_$returns$_t_array$_t_struct$_CrossMsg_$39352_storage_$dyn_storage_ptr_$", "typeString": "function (struct EpochVoteTopDownSubmission storage pointer) returns (struct CrossMsg storage ref[] storage pointer)" } }, - "id": 39613, + "id": 34769, "isConstant": false, "isLValue": false, "isPure": false, @@ -6314,22 +6314,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5105:48:40", + "src": "5105:48:36", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_storage_$dyn_storage_ptr", "typeString": "struct CrossMsg storage ref[] storage pointer" } }, - "src": "5091:62:40", + "src": "5091:62:36", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_memory_ptr_$dyn_memory_ptr", "typeString": "struct CrossMsg memory[] memory" } }, - "id": 39615, + "id": 34771, "nodeType": "ExpressionStatement", - "src": "5091:62:40" + "src": "5091:62:36" } ] } @@ -6340,33 +6340,33 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 39621, + "id": 34777, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 39618, + "id": 34774, "name": "topDownMsgs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39607, - "src": "5325:11:40", + "referencedDeclaration": 34763, + "src": "5325:11:36", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_memory_ptr_$dyn_memory_ptr", "typeString": "struct CrossMsg memory[] memory" } }, - "id": 39619, + "id": 34775, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5337:6:40", + "memberLocation": "5337:6:36", "memberName": "length", "nodeType": "MemberAccess", - "src": "5325:18:40", + "src": "5325:18:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6376,49 +6376,49 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 39620, + "id": 34776, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5347:1:40", + "src": "5347:1:36", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "5325:23:40", + "src": "5325:23:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 39648, + "id": 34804, "nodeType": "IfStatement", - "src": "5321:397:40", + "src": "5321:397:36", "trueBody": { - "id": 39647, + "id": 34803, "nodeType": "Block", - "src": "5350:368:40", + "src": "5350:368:36", "statements": [ { "assignments": [ - 39623, - 39625 + 34779, + 34781 ], "declarations": [ { "constant": false, - "id": 39623, + "id": 34779, "mutability": "mutable", "name": "nextExecutableEpoch", - "nameLocation": "5372:19:40", + "nameLocation": "5372:19:36", "nodeType": "VariableDeclaration", - "scope": 39647, - "src": "5365:26:40", + "scope": 34803, + "src": "5365:26:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6426,10 +6426,10 @@ "typeString": "uint64" }, "typeName": { - "id": 39622, + "id": 34778, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "5365:6:40", + "src": "5365:6:36", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -6439,13 +6439,13 @@ }, { "constant": false, - "id": 39625, + "id": 34781, "mutability": "mutable", "name": "isExecutableEpoch", - "nameLocation": "5398:17:40", + "nameLocation": "5398:17:36", "nodeType": "VariableDeclaration", - "scope": 39647, - "src": "5393:22:40", + "scope": 34803, + "src": "5393:22:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6453,10 +6453,10 @@ "typeString": "bool" }, "typeName": { - "id": 39624, + "id": 34780, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5393:4:40", + "src": "5393:4:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6465,39 +6465,39 @@ "visibility": "internal" } ], - "id": 39629, + "id": 34785, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 39626, + "id": 34782, "name": "LibVoting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 43438, - "src": "5419:9:40", + "referencedDeclaration": 38614, + "src": "5419:9:36", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibVoting_$43438_$", + "typeIdentifier": "t_type$_t_contract$_LibVoting_$38614_$", "typeString": "type(library LibVoting)" } }, - "id": 39627, + "id": 34783, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5429:22:40", + "memberLocation": "5429:22:36", "memberName": "getNextExecutableEpoch", "nodeType": "MemberAccess", - "referencedDeclaration": 43219, - "src": "5419:32:40", + "referencedDeclaration": 38395, + "src": "5419:32:36", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint64_$_t_bool_$", "typeString": "function () view returns (uint64,bool)" } }, - "id": 39628, + "id": 34784, "isConstant": false, "isLValue": false, "isPure": false, @@ -6506,7 +6506,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5419:34:40", + "src": "5419:34:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint64_$_t_bool_$", @@ -6514,110 +6514,110 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5364:89:40" + "src": "5364:89:36" }, { "condition": { - "id": 39630, + "id": 34786, "name": "isExecutableEpoch", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39625, - "src": "5472:17:40", + "referencedDeclaration": 34781, + "src": "5472:17:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 39646, + "id": 34802, "nodeType": "IfStatement", - "src": "5468:240:40", + "src": "5468:240:36", "trueBody": { - "id": 39645, + "id": 34801, "nodeType": "Block", - "src": "5491:217:40", + "src": "5491:217:36", "statements": [ { "assignments": [ - 39633 + 34789 ], "declarations": [ { "constant": false, - "id": 39633, + "id": 34789, "mutability": "mutable", "name": "nextVoteSubmission", - "nameLocation": "5544:18:40", + "nameLocation": "5544:18:36", "nodeType": "VariableDeclaration", - "scope": 39645, - "src": "5509:53:40", + "scope": 34801, + "src": "5509:53:36", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39400_storage_ptr", "typeString": "struct EpochVoteTopDownSubmission" }, "typeName": { - "id": 39632, + "id": 34788, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39631, + "id": 34787, "name": "EpochVoteTopDownSubmission", "nameLocations": [ - "5509:26:40" + "5509:26:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44224, - "src": "5509:26:40" + "referencedDeclaration": 39400, + "src": "5509:26:36" }, - "referencedDeclaration": 44224, - "src": "5509:26:40", + "referencedDeclaration": 39400, + "src": "5509:26:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39400_storage_ptr", "typeString": "struct EpochVoteTopDownSubmission" } }, "visibility": "internal" } ], - "id": 39638, + "id": 34794, "initialValue": { "baseExpression": { "expression": { - "id": 39634, + "id": 34790, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "5565:1:40", + "referencedDeclaration": 37561, + "src": "5565:1:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 39635, + "id": 34791, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5567:20:40", + "memberLocation": "5567:20:36", "memberName": "epochVoteSubmissions", "nodeType": "MemberAccess", - "referencedDeclaration": 42386, - "src": "5565:22:40", + "referencedDeclaration": 37511, + "src": "5565:22:36", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_EpochVoteTopDownSubmission_$44224_storage_$", + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_EpochVoteTopDownSubmission_$39400_storage_$", "typeString": "mapping(uint64 => struct EpochVoteTopDownSubmission storage ref)" } }, - "id": 39637, + "id": 34793, "indexExpression": { - "id": 39636, + "id": 34792, "name": "nextExecutableEpoch", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39623, - "src": "5588:19:40", + "referencedDeclaration": 34779, + "src": "5588:19:36", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -6628,31 +6628,31 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5565:43:40", + "src": "5565:43:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage", + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39400_storage", "typeString": "struct EpochVoteTopDownSubmission storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "5509:99:40" + "src": "5509:99:36" }, { "expression": { - "id": 39643, + "id": 34799, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 39639, + "id": 34795, "name": "topDownMsgs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39607, - "src": "5627:11:40", + "referencedDeclaration": 34763, + "src": "5627:11:36", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_memory_ptr_$dyn_memory_ptr", "typeString": "struct CrossMsg memory[] memory" } }, @@ -6661,14 +6661,14 @@ "rightHandSide": { "arguments": [ { - "id": 39641, + "id": 34797, "name": "nextVoteSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39633, - "src": "5674:18:40", + "referencedDeclaration": 34789, + "src": "5674:18:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39400_storage_ptr", "typeString": "struct EpochVoteTopDownSubmission storage pointer" } } @@ -6676,22 +6676,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39400_storage_ptr", "typeString": "struct EpochVoteTopDownSubmission storage pointer" } ], - "id": 39640, + "id": 34796, "name": "_markMostVotedSubmissionExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39833, - "src": "5641:32:40", + "referencedDeclaration": 34989, + "src": "5641:32:36", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr_$returns$_t_array$_t_struct$_CrossMsg_$44176_storage_$dyn_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_EpochVoteTopDownSubmission_$39400_storage_ptr_$returns$_t_array$_t_struct$_CrossMsg_$39352_storage_$dyn_storage_ptr_$", "typeString": "function (struct EpochVoteTopDownSubmission storage pointer) returns (struct CrossMsg storage ref[] storage pointer)" } }, - "id": 39642, + "id": 34798, "isConstant": false, "isLValue": false, "isPure": false, @@ -6700,22 +6700,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5641:52:40", + "src": "5641:52:36", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_storage_$dyn_storage_ptr", "typeString": "struct CrossMsg storage ref[] storage pointer" } }, - "src": "5627:66:40", + "src": "5627:66:36", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_memory_ptr_$dyn_memory_ptr", "typeString": "struct CrossMsg memory[] memory" } }, - "id": 39644, + "id": 34800, "nodeType": "ExpressionStatement", - "src": "5627:66:40" + "src": "5627:66:36" } ] } @@ -6730,14 +6730,14 @@ "arguments": [ { "hexValue": "30", - "id": 39651, + "id": 34807, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5850:1:40", + "src": "5850:1:36", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -6748,14 +6748,14 @@ "arguments": [ { "hexValue": "30", - "id": 39655, + "id": 34811, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5867:1:40", + "src": "5867:1:36", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -6770,39 +6770,39 @@ "typeString": "int_const 0" } ], - "id": 39654, + "id": 34810, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "5853:13:40", + "src": "5853:13:36", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (address[] memory)" }, "typeName": { "baseType": { - "id": 39652, + "id": 34808, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5857:7:40", + "src": "5857:7:36", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 39653, + "id": 34809, "nodeType": "ArrayTypeName", - "src": "5857:9:40", + "src": "5857:9:36", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, - "id": 39656, + "id": 34812, "isConstant": false, "isLValue": false, "isPure": true, @@ -6811,7 +6811,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5853:16:40", + "src": "5853:16:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", @@ -6830,18 +6830,18 @@ "typeString": "address[] memory" } ], - "id": 39650, + "id": 34806, "name": "SubnetID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44279, - "src": "5841:8:40", + "referencedDeclaration": 39457, + "src": "5841:8:36", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_SubnetID_$44279_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_SubnetID_$39457_storage_ptr_$", "typeString": "type(struct SubnetID storage pointer)" } }, - "id": 39657, + "id": 34813, "isConstant": false, "isLValue": false, "isPure": true, @@ -6850,22 +6850,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5841:29:40", + "src": "5841:29:36", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" } }, { - "id": 39658, + "id": 34814, "name": "topDownMsgs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39607, - "src": "5872:11:40", + "referencedDeclaration": 34763, + "src": "5872:11:36", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_memory_ptr_$dyn_memory_ptr", "typeString": "struct CrossMsg memory[] memory" } } @@ -6873,26 +6873,26 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" }, { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_memory_ptr_$dyn_memory_ptr", "typeString": "struct CrossMsg memory[] memory" } ], - "id": 39649, + "id": 34805, "name": "_applyMessages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40236, - "src": "5826:14:40", + "referencedDeclaration": 35392, + "src": "5826:14:36", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_SubnetID_$44279_memory_ptr_$_t_array$_t_struct$_CrossMsg_$44176_memory_ptr_$dyn_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_SubnetID_$39457_memory_ptr_$_t_array$_t_struct$_CrossMsg_$39352_memory_ptr_$dyn_memory_ptr_$returns$__$", "typeString": "function (struct SubnetID memory,struct CrossMsg memory[] memory)" } }, - "id": 39659, + "id": 34815, "isConstant": false, "isLValue": false, "isPure": false, @@ -6901,23 +6901,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5826:58:40", + "src": "5826:58:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39660, + "id": 34816, "nodeType": "ExpressionStatement", - "src": "5826:58:40" + "src": "5826:58:36" } ] }, "documentation": { - "id": 39531, + "id": 34687, "nodeType": "StructuredDocumentation", - "src": "4003:133:40", + "src": "4003:133:36", "text": "@notice allows a validator to submit a batch of messages in a top-down commitment\n @param checkpoint - top-down checkpoint" }, "functionSelector": "986acf38", @@ -6925,88 +6925,88 @@ "kind": "function", "modifiers": [ { - "id": 39537, + "id": 34693, "kind": "modifierInvocation", "modifierName": { - "id": 39536, + "id": 34692, "name": "signableOnly", "nameLocations": [ - "4222:12:40" + "4222:12:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 42489, - "src": "4222:12:40" + "referencedDeclaration": 37651, + "src": "4222:12:36" }, "nodeType": "ModifierInvocation", - "src": "4222:12:40" + "src": "4222:12:36" } ], "name": "submitTopDownCheckpoint", - "nameLocation": "4150:23:40", + "nameLocation": "4150:23:36", "parameters": { - "id": 39535, + "id": 34691, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39534, + "id": 34690, "mutability": "mutable", "name": "checkpoint", - "nameLocation": "4201:10:40", + "nameLocation": "4201:10:36", "nodeType": "VariableDeclaration", - "scope": 39662, - "src": "4174:37:40", + "scope": 34818, + "src": "4174:37:36", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_calldata_ptr", + "typeIdentifier": "t_struct$_TopDownCheckpoint_$39339_calldata_ptr", "typeString": "struct TopDownCheckpoint" }, "typeName": { - "id": 39533, + "id": 34689, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39532, + "id": 34688, "name": "TopDownCheckpoint", "nameLocations": [ - "4174:17:40" + "4174:17:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44163, - "src": "4174:17:40" + "referencedDeclaration": 39339, + "src": "4174:17:36" }, - "referencedDeclaration": 44163, - "src": "4174:17:40", + "referencedDeclaration": 39339, + "src": "4174:17:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_storage_ptr", + "typeIdentifier": "t_struct$_TopDownCheckpoint_$39339_storage_ptr", "typeString": "struct TopDownCheckpoint" } }, "visibility": "internal" } ], - "src": "4173:39:40" + "src": "4173:39:36" }, "returnParameters": { - "id": 39538, + "id": 34694, "nodeType": "ParameterList", "parameters": [], - "src": "4235:0:40" + "src": "4235:0:36" }, - "scope": 40237, + "scope": 35393, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 39723, + "id": 34879, "nodeType": "FunctionDefinition", - "src": "6038:1264:40", + "src": "6038:1264:36", "nodes": [], "body": { - "id": 39722, + "id": 34878, "nodeType": "Block", - "src": "6129:1173:40", + "src": "6129:1173:36", "nodes": [], "statements": [ { @@ -7015,7 +7015,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 39678, + "id": 34834, "isConstant": false, "isLValue": false, "isPure": false, @@ -7023,42 +7023,42 @@ "leftExpression": { "expression": { "expression": { - "id": 39673, + "id": 34829, "name": "crossMsg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39666, - "src": "6577:8:40", + "referencedDeclaration": 34822, + "src": "6577:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_calldata_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_calldata_ptr", "typeString": "struct CrossMsg calldata" } }, - "id": 39674, + "id": 34830, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6586:7:40", + "memberLocation": "6586:7:36", "memberName": "message", "nodeType": "MemberAccess", - "referencedDeclaration": 44173, - "src": "6577:16:40", + "referencedDeclaration": 39349, + "src": "6577:16:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$44191_calldata_ptr", + "typeIdentifier": "t_struct$_StorableMsg_$39367_calldata_ptr", "typeString": "struct StorableMsg calldata" } }, - "id": 39675, + "id": 34831, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6594:5:40", + "memberLocation": "6594:5:36", "memberName": "value", "nodeType": "MemberAccess", - "referencedDeclaration": 44184, - "src": "6577:22:40", + "referencedDeclaration": 39360, + "src": "6577:22:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7068,62 +7068,62 @@ "operator": "!=", "rightExpression": { "expression": { - "id": 39676, + "id": 34832, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "6603:3:40", + "src": "6603:3:36", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 39677, + "id": 34833, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6607:5:40", + "memberLocation": "6607:5:36", "memberName": "value", "nodeType": "MemberAccess", - "src": "6603:9:40", + "src": "6603:9:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6577:35:40", + "src": "6577:35:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 39683, + "id": 34839, "nodeType": "IfStatement", - "src": "6573:89:40", + "src": "6573:89:36", "trueBody": { - "id": 39682, + "id": 34838, "nodeType": "Block", - "src": "6614:48:40", + "src": "6614:48:36", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 39679, + "id": 34835, "name": "NotEnoughFunds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38206, - "src": "6635:14:40", + "referencedDeclaration": 33222, + "src": "6635:14:36", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 39680, + "id": 34836, "isConstant": false, "isLValue": false, "isPure": false, @@ -7132,23 +7132,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6635:16:40", + "src": "6635:16:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39681, + "id": 34837, "nodeType": "RevertStatement", - "src": "6628:23:40" + "src": "6628:23:36" } ] } }, { "condition": { - "id": 39692, + "id": 34848, "isConstant": false, "isLValue": false, "isPure": false, @@ -7156,34 +7156,34 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "6842:53:40", + "src": "6842:53:36", "subExpression": { "arguments": [ { "expression": { - "id": 39689, + "id": 34845, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "6881:1:40", + "referencedDeclaration": 37561, + "src": "6881:1:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 39690, + "id": 34846, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6883:11:40", + "memberLocation": "6883:11:36", "memberName": "networkName", "nodeType": "MemberAccess", - "referencedDeclaration": 42307, - "src": "6881:13:40", + "referencedDeclaration": 37519, + "src": "6881:13:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage", "typeString": "struct SubnetID storage ref" } } @@ -7191,7 +7191,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage", "typeString": "struct SubnetID storage ref" } ], @@ -7199,78 +7199,78 @@ "expression": { "expression": { "expression": { - "id": 39684, + "id": 34840, "name": "crossMsg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39666, - "src": "6843:8:40", + "referencedDeclaration": 34822, + "src": "6843:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_calldata_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_calldata_ptr", "typeString": "struct CrossMsg calldata" } }, - "id": 39685, + "id": 34841, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6852:7:40", + "memberLocation": "6852:7:36", "memberName": "message", "nodeType": "MemberAccess", - "referencedDeclaration": 44173, - "src": "6843:16:40", + "referencedDeclaration": 39349, + "src": "6843:16:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$44191_calldata_ptr", + "typeIdentifier": "t_struct$_StorableMsg_$39367_calldata_ptr", "typeString": "struct StorableMsg calldata" } }, - "id": 39686, + "id": 34842, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6860:4:40", + "memberLocation": "6860:4:36", "memberName": "from", "nodeType": "MemberAccess", - "referencedDeclaration": 44179, - "src": "6843:21:40", + "referencedDeclaration": 39355, + "src": "6843:21:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_IPCAddress_$44310_calldata_ptr", + "typeIdentifier": "t_struct$_IPCAddress_$39488_calldata_ptr", "typeString": "struct IPCAddress calldata" } }, - "id": 39687, + "id": 34843, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6865:8:40", + "memberLocation": "6865:8:36", "memberName": "subnetId", "nodeType": "MemberAccess", - "referencedDeclaration": 44306, - "src": "6843:30:40", + "referencedDeclaration": 39484, + "src": "6843:30:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_calldata_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_calldata_ptr", "typeString": "struct SubnetID calldata" } }, - "id": 39688, + "id": 34844, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6874:6:40", + "memberLocation": "6874:6:36", "memberName": "equals", "nodeType": "MemberAccess", - "referencedDeclaration": 43868, - "src": "6843:37:40", + "referencedDeclaration": 39044, + "src": "6843:37:36", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39457_memory_ptr_$_t_struct$_SubnetID_$39457_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$39457_memory_ptr_$", "typeString": "function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)" } }, - "id": 39691, + "id": 34847, "isConstant": false, "isLValue": false, "isPure": false, @@ -7279,7 +7279,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6843:52:40", + "src": "6843:52:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -7291,31 +7291,31 @@ "typeString": "bool" } }, - "id": 39697, + "id": 34853, "nodeType": "IfStatement", - "src": "6838:120:40", + "src": "6838:120:36", "trueBody": { - "id": 39696, + "id": 34852, "nodeType": "Block", - "src": "6897:61:40", + "src": "6897:61:36", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 39693, + "id": 34849, "name": "InvalidCrossMsgFromSubnetId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38180, - "src": "6918:27:40", + "referencedDeclaration": 33196, + "src": "6918:27:36", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 39694, + "id": 34850, "isConstant": false, "isLValue": false, "isPure": false, @@ -7324,35 +7324,35 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6918:29:40", + "src": "6918:29:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39695, + "id": 34851, "nodeType": "RevertStatement", - "src": "6911:36:40" + "src": "6911:36:36" } ] } }, { "assignments": [ - 39699, - 39701 + 34855, + 34857 ], "declarations": [ { "constant": false, - "id": 39699, + "id": 34855, "mutability": "mutable", "name": "shouldBurn", - "nameLocation": "7022:10:40", + "nameLocation": "7022:10:36", "nodeType": "VariableDeclaration", - "scope": 39722, - "src": "7017:15:40", + "scope": 34878, + "src": "7017:15:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7360,10 +7360,10 @@ "typeString": "bool" }, "typeName": { - "id": 39698, + "id": 34854, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7017:4:40", + "src": "7017:4:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7373,13 +7373,13 @@ }, { "constant": false, - "id": 39701, + "id": 34857, "mutability": "mutable", "name": "shouldDistributeRewards", - "nameLocation": "7039:23:40", + "nameLocation": "7039:23:36", "nodeType": "VariableDeclaration", - "scope": 39722, - "src": "7034:28:40", + "scope": 34878, + "src": "7034:28:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7387,10 +7387,10 @@ "typeString": "bool" }, "typeName": { - "id": 39700, + "id": 34856, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7034:4:40", + "src": "7034:4:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7399,18 +7399,18 @@ "visibility": "internal" } ], - "id": 39705, + "id": 34861, "initialValue": { "arguments": [ { - "id": 39703, + "id": 34859, "name": "crossMsg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39666, - "src": "7086:8:40", + "referencedDeclaration": 34822, + "src": "7086:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_calldata_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_calldata_ptr", "typeString": "struct CrossMsg calldata" } } @@ -7418,22 +7418,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_CrossMsg_$44176_calldata_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_calldata_ptr", "typeString": "struct CrossMsg calldata" } ], - "id": 39702, + "id": 34858, "name": "_commitCrossMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40009, - "src": "7066:19:40", + "referencedDeclaration": 35165, + "src": "7066:19:36", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_CrossMsg_$44176_memory_ptr_$returns$_t_bool_$_t_bool_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_CrossMsg_$39352_memory_ptr_$returns$_t_bool_$_t_bool_$", "typeString": "function (struct CrossMsg memory) returns (bool,bool)" } }, - "id": 39704, + "id": 34860, "isConstant": false, "isLValue": false, "isPure": false, @@ -7442,7 +7442,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7066:29:40", + "src": "7066:29:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$", @@ -7450,7 +7450,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7016:79:40" + "src": "7016:79:36" }, { "expression": { @@ -7458,42 +7458,42 @@ { "expression": { "expression": { - "id": 39707, + "id": 34863, "name": "crossMsg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39666, - "src": "7140:8:40", + "referencedDeclaration": 34822, + "src": "7140:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_calldata_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_calldata_ptr", "typeString": "struct CrossMsg calldata" } }, - "id": 39708, + "id": 34864, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7149:7:40", + "memberLocation": "7149:7:36", "memberName": "message", "nodeType": "MemberAccess", - "referencedDeclaration": 44173, - "src": "7140:16:40", + "referencedDeclaration": 39349, + "src": "7140:16:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$44191_calldata_ptr", + "typeIdentifier": "t_struct$_StorableMsg_$39367_calldata_ptr", "typeString": "struct StorableMsg calldata" } }, - "id": 39709, + "id": 34865, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7157:5:40", + "memberLocation": "7157:5:36", "memberName": "value", "nodeType": "MemberAccess", - "referencedDeclaration": 44184, - "src": "7140:22:40", + "referencedDeclaration": 39360, + "src": "7140:22:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7503,29 +7503,29 @@ "arguments": [ { "expression": { - "id": 39715, + "id": 34871, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "7210:1:40", + "referencedDeclaration": 37561, + "src": "7210:1:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 39716, + "id": 34872, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7212:11:40", + "memberLocation": "7212:11:36", "memberName": "networkName", "nodeType": "MemberAccess", - "referencedDeclaration": 42307, - "src": "7210:13:40", + "referencedDeclaration": 37519, + "src": "7210:13:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage", "typeString": "struct SubnetID storage ref" } } @@ -7533,7 +7533,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage", "typeString": "struct SubnetID storage ref" } ], @@ -7541,78 +7541,78 @@ "expression": { "expression": { "expression": { - "id": 39710, + "id": 34866, "name": "crossMsg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39666, - "src": "7176:8:40", + "referencedDeclaration": 34822, + "src": "7176:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_calldata_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_calldata_ptr", "typeString": "struct CrossMsg calldata" } }, - "id": 39711, + "id": 34867, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7185:7:40", + "memberLocation": "7185:7:36", "memberName": "message", "nodeType": "MemberAccess", - "referencedDeclaration": 44173, - "src": "7176:16:40", + "referencedDeclaration": 39349, + "src": "7176:16:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$44191_calldata_ptr", + "typeIdentifier": "t_struct$_StorableMsg_$39367_calldata_ptr", "typeString": "struct StorableMsg calldata" } }, - "id": 39712, + "id": 34868, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7193:2:40", + "memberLocation": "7193:2:36", "memberName": "to", "nodeType": "MemberAccess", - "referencedDeclaration": 44182, - "src": "7176:19:40", + "referencedDeclaration": 39358, + "src": "7176:19:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_IPCAddress_$44310_calldata_ptr", + "typeIdentifier": "t_struct$_IPCAddress_$39488_calldata_ptr", "typeString": "struct IPCAddress calldata" } }, - "id": 39713, + "id": 34869, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7196:8:40", + "memberLocation": "7196:8:36", "memberName": "subnetId", "nodeType": "MemberAccess", - "referencedDeclaration": 44306, - "src": "7176:28:40", + "referencedDeclaration": 39484, + "src": "7176:28:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_calldata_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_calldata_ptr", "typeString": "struct SubnetID calldata" } }, - "id": 39714, + "id": 34870, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7205:4:40", + "memberLocation": "7205:4:36", "memberName": "down", "nodeType": "MemberAccess", - "referencedDeclaration": 44110, - "src": "7176:33:40", + "referencedDeclaration": 39286, + "src": "7176:33:36", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_struct$_SubnetID_$44279_memory_ptr_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39457_memory_ptr_$_t_struct$_SubnetID_$39457_memory_ptr_$returns$_t_struct$_SubnetID_$39457_memory_ptr_$attached_to$_t_struct$_SubnetID_$39457_memory_ptr_$", "typeString": "function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)" } }, - "id": 39717, + "id": 34873, "isConstant": false, "isLValue": false, "isPure": false, @@ -7621,32 +7621,32 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7176:48:40", + "src": "7176:48:36", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" } }, { - "id": 39718, + "id": 34874, "name": "shouldBurn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39699, - "src": "7238:10:40", + "referencedDeclaration": 34855, + "src": "7238:10:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "id": 39719, + "id": 34875, "name": "shouldDistributeRewards", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39701, - "src": "7262:23:40", + "referencedDeclaration": 34857, + "src": "7262:23:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7660,7 +7660,7 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" }, { @@ -7672,18 +7672,18 @@ "typeString": "bool" } ], - "id": 39706, + "id": 34862, "name": "_crossMsgSideEffects", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40047, - "src": "7106:20:40", + "referencedDeclaration": 35203, + "src": "7106:20:36", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_struct$_SubnetID_$44279_memory_ptr_$_t_bool_$_t_bool_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_struct$_SubnetID_$39457_memory_ptr_$_t_bool_$_t_bool_$returns$__$", "typeString": "function (uint256,struct SubnetID memory,bool,bool)" } }, - "id": 39720, + "id": 34876, "isConstant": false, "isLValue": false, "isPure": false, @@ -7692,23 +7692,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7106:189:40", + "src": "7106:189:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39721, + "id": 34877, "nodeType": "ExpressionStatement", - "src": "7106:189:40" + "src": "7106:189:36" } ] }, "documentation": { - "id": 39663, + "id": 34819, "nodeType": "StructuredDocumentation", - "src": "5897:136:40", + "src": "5897:136:36", "text": "@notice sends an arbitrary cross message from the current subnet to the destination subnet\n @param crossMsg - message to send" }, "functionSelector": "2f757dd1", @@ -7716,187 +7716,187 @@ "kind": "function", "modifiers": [ { - "id": 39669, + "id": 34825, "kind": "modifierInvocation", "modifierName": { - "id": 39668, + "id": 34824, "name": "signableOnly", "nameLocations": [ - "6109:12:40" + "6109:12:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 42489, - "src": "6109:12:40" + "referencedDeclaration": 37651, + "src": "6109:12:36" }, "nodeType": "ModifierInvocation", - "src": "6109:12:40" + "src": "6109:12:36" }, { - "id": 39671, + "id": 34827, "kind": "modifierInvocation", "modifierName": { - "id": 39670, + "id": 34826, "name": "hasFee", "nameLocations": [ - "6122:6:40" + "6122:6:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 42503, - "src": "6122:6:40" + "referencedDeclaration": 37665, + "src": "6122:6:36" }, "nodeType": "ModifierInvocation", - "src": "6122:6:40" + "src": "6122:6:36" } ], "name": "sendCrossMessage", - "nameLocation": "6047:16:40", + "nameLocation": "6047:16:36", "parameters": { - "id": 39667, + "id": 34823, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39666, + "id": 34822, "mutability": "mutable", "name": "crossMsg", - "nameLocation": "6082:8:40", + "nameLocation": "6082:8:36", "nodeType": "VariableDeclaration", - "scope": 39723, - "src": "6064:26:40", + "scope": 34879, + "src": "6064:26:36", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_calldata_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_calldata_ptr", "typeString": "struct CrossMsg" }, "typeName": { - "id": 39665, + "id": 34821, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39664, + "id": 34820, "name": "CrossMsg", "nameLocations": [ - "6064:8:40" + "6064:8:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44176, - "src": "6064:8:40" + "referencedDeclaration": 39352, + "src": "6064:8:36" }, - "referencedDeclaration": 44176, - "src": "6064:8:40", + "referencedDeclaration": 39352, + "src": "6064:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_storage_ptr", "typeString": "struct CrossMsg" } }, "visibility": "internal" } ], - "src": "6063:28:40" + "src": "6063:28:36" }, "returnParameters": { - "id": 39672, + "id": 34828, "nodeType": "ParameterList", "parameters": [], - "src": "6129:0:40" + "src": "6129:0:36" }, - "scope": 40237, + "scope": 35393, "stateMutability": "payable", "virtual": false, "visibility": "external" }, { - "id": 39801, + "id": 34957, "nodeType": "FunctionDefinition", - "src": "7442:874:40", + "src": "7442:874:36", "nodes": [], "body": { - "id": 39800, + "id": 34956, "nodeType": "Block", - "src": "7501:815:40", + "src": "7501:815:36", "nodes": [], "statements": [ { "assignments": [ - 39733 + 34889 ], "declarations": [ { "constant": false, - "id": 39733, + "id": 34889, "mutability": "mutable", "name": "crossMsg", - "nameLocation": "7528:8:40", + "nameLocation": "7528:8:36", "nodeType": "VariableDeclaration", - "scope": 39800, - "src": "7511:25:40", + "scope": 34956, + "src": "7511:25:36", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_storage_ptr", "typeString": "struct CrossMsg" }, "typeName": { - "id": 39732, + "id": 34888, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39731, + "id": 34887, "name": "CrossMsg", "nameLocations": [ - "7511:8:40" + "7511:8:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44176, - "src": "7511:8:40" + "referencedDeclaration": 39352, + "src": "7511:8:36" }, - "referencedDeclaration": 44176, - "src": "7511:8:40", + "referencedDeclaration": 39352, + "src": "7511:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_storage_ptr", "typeString": "struct CrossMsg" } }, "visibility": "internal" } ], - "id": 39738, + "id": 34894, "initialValue": { "baseExpression": { "expression": { - "id": 39734, + "id": 34890, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "7539:1:40", + "referencedDeclaration": 37561, + "src": "7539:1:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 39735, + "id": 34891, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7541:7:40", + "memberLocation": "7541:7:36", "memberName": "postbox", "nodeType": "MemberAccess", - "referencedDeclaration": 42328, - "src": "7539:9:40", + "referencedDeclaration": 37474, + "src": "7539:9:36", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$44176_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$39352_storage_$", "typeString": "mapping(bytes32 => struct CrossMsg storage ref)" } }, - "id": 39737, + "id": 34893, "indexExpression": { - "id": 39736, + "id": 34892, "name": "msgCid", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39726, - "src": "7549:6:40", + "referencedDeclaration": 34882, + "src": "7549:6:36", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7907,30 +7907,30 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7539:17:40", + "src": "7539:17:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_storage", + "typeIdentifier": "t_struct$_CrossMsg_$39352_storage", "typeString": "struct CrossMsg storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "7511:45:40" + "src": "7511:45:36" }, { "assignments": [ - 39740, - 39742 + 34896, + 34898 ], "declarations": [ { "constant": false, - "id": 39740, + "id": 34896, "mutability": "mutable", "name": "shouldBurn", - "nameLocation": "7573:10:40", + "nameLocation": "7573:10:36", "nodeType": "VariableDeclaration", - "scope": 39800, - "src": "7568:15:40", + "scope": 34956, + "src": "7568:15:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7938,10 +7938,10 @@ "typeString": "bool" }, "typeName": { - "id": 39739, + "id": 34895, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7568:4:40", + "src": "7568:4:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7951,13 +7951,13 @@ }, { "constant": false, - "id": 39742, + "id": 34898, "mutability": "mutable", "name": "shouldDistributeRewards", - "nameLocation": "7590:23:40", + "nameLocation": "7590:23:36", "nodeType": "VariableDeclaration", - "scope": 39800, - "src": "7585:28:40", + "scope": 34956, + "src": "7585:28:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7965,10 +7965,10 @@ "typeString": "bool" }, "typeName": { - "id": 39741, + "id": 34897, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7585:4:40", + "src": "7585:4:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7977,18 +7977,18 @@ "visibility": "internal" } ], - "id": 39746, + "id": 34902, "initialValue": { "arguments": [ { - "id": 39744, + "id": 34900, "name": "crossMsg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39733, - "src": "7637:8:40", + "referencedDeclaration": 34889, + "src": "7637:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_storage_ptr", "typeString": "struct CrossMsg storage pointer" } } @@ -7996,22 +7996,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_storage_ptr", "typeString": "struct CrossMsg storage pointer" } ], - "id": 39743, + "id": 34899, "name": "_commitCrossMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40009, - "src": "7617:19:40", + "referencedDeclaration": 35165, + "src": "7617:19:36", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_CrossMsg_$44176_memory_ptr_$returns$_t_bool_$_t_bool_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_CrossMsg_$39352_memory_ptr_$returns$_t_bool_$_t_bool_$", "typeString": "function (struct CrossMsg memory) returns (bool,bool)" } }, - "id": 39745, + "id": 34901, "isConstant": false, "isLValue": false, "isPure": false, @@ -8020,7 +8020,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7617:29:40", + "src": "7617:29:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$", @@ -8028,22 +8028,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7567:79:40" + "src": "7567:79:36" }, { "assignments": [ - 39748 + 34904 ], "declarations": [ { "constant": false, - "id": 39748, + "id": 34904, "mutability": "mutable", "name": "v", - "nameLocation": "7920:1:40", + "nameLocation": "7920:1:36", "nodeType": "VariableDeclaration", - "scope": 39800, - "src": "7912:9:40", + "scope": 34956, + "src": "7912:9:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8051,10 +8051,10 @@ "typeString": "uint256" }, "typeName": { - "id": 39747, + "id": 34903, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7912:7:40", + "src": "7912:7:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8063,125 +8063,125 @@ "visibility": "internal" } ], - "id": 39752, + "id": 34908, "initialValue": { "expression": { "expression": { - "id": 39749, + "id": 34905, "name": "crossMsg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39733, - "src": "7924:8:40", + "referencedDeclaration": 34889, + "src": "7924:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_storage_ptr", "typeString": "struct CrossMsg storage pointer" } }, - "id": 39750, + "id": 34906, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7933:7:40", + "memberLocation": "7933:7:36", "memberName": "message", "nodeType": "MemberAccess", - "referencedDeclaration": 44173, - "src": "7924:16:40", + "referencedDeclaration": 39349, + "src": "7924:16:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$44191_storage", + "typeIdentifier": "t_struct$_StorableMsg_$39367_storage", "typeString": "struct StorableMsg storage ref" } }, - "id": 39751, + "id": 34907, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7941:5:40", + "memberLocation": "7941:5:36", "memberName": "value", "nodeType": "MemberAccess", - "referencedDeclaration": 44184, - "src": "7924:22:40", + "referencedDeclaration": 39360, + "src": "7924:22:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "7912:34:40" + "src": "7912:34:36" }, { "assignments": [ - 39755 + 34911 ], "declarations": [ { "constant": false, - "id": 39755, + "id": 34911, "mutability": "mutable", "name": "toSubnetId", - "nameLocation": "7972:10:40", + "nameLocation": "7972:10:36", "nodeType": "VariableDeclaration", - "scope": 39800, - "src": "7956:26:40", + "scope": 34956, + "src": "7956:26:36", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID" }, "typeName": { - "id": 39754, + "id": 34910, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39753, + "id": 34909, "name": "SubnetID", "nameLocations": [ - "7956:8:40" + "7956:8:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44279, - "src": "7956:8:40" + "referencedDeclaration": 39457, + "src": "7956:8:36" }, - "referencedDeclaration": 44279, - "src": "7956:8:40", + "referencedDeclaration": 39457, + "src": "7956:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage_ptr", "typeString": "struct SubnetID" } }, "visibility": "internal" } ], - "id": 39764, + "id": 34920, "initialValue": { "arguments": [ { "expression": { - "id": 39761, + "id": 34917, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "8019:1:40", + "referencedDeclaration": 37561, + "src": "8019:1:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 39762, + "id": 34918, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8021:11:40", + "memberLocation": "8021:11:36", "memberName": "networkName", "nodeType": "MemberAccess", - "referencedDeclaration": 42307, - "src": "8019:13:40", + "referencedDeclaration": 37519, + "src": "8019:13:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage", "typeString": "struct SubnetID storage ref" } } @@ -8189,7 +8189,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage", "typeString": "struct SubnetID storage ref" } ], @@ -8197,78 +8197,78 @@ "expression": { "expression": { "expression": { - "id": 39756, + "id": 34912, "name": "crossMsg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39733, - "src": "7985:8:40", + "referencedDeclaration": 34889, + "src": "7985:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_storage_ptr", "typeString": "struct CrossMsg storage pointer" } }, - "id": 39757, + "id": 34913, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7994:7:40", + "memberLocation": "7994:7:36", "memberName": "message", "nodeType": "MemberAccess", - "referencedDeclaration": 44173, - "src": "7985:16:40", + "referencedDeclaration": 39349, + "src": "7985:16:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$44191_storage", + "typeIdentifier": "t_struct$_StorableMsg_$39367_storage", "typeString": "struct StorableMsg storage ref" } }, - "id": 39758, + "id": 34914, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8002:2:40", + "memberLocation": "8002:2:36", "memberName": "to", "nodeType": "MemberAccess", - "referencedDeclaration": 44182, - "src": "7985:19:40", + "referencedDeclaration": 39358, + "src": "7985:19:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_IPCAddress_$44310_storage", + "typeIdentifier": "t_struct$_IPCAddress_$39488_storage", "typeString": "struct IPCAddress storage ref" } }, - "id": 39759, + "id": 34915, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8005:8:40", + "memberLocation": "8005:8:36", "memberName": "subnetId", "nodeType": "MemberAccess", - "referencedDeclaration": 44306, - "src": "7985:28:40", + "referencedDeclaration": 39484, + "src": "7985:28:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage", "typeString": "struct SubnetID storage ref" } }, - "id": 39760, + "id": 34916, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8014:4:40", + "memberLocation": "8014:4:36", "memberName": "down", "nodeType": "MemberAccess", - "referencedDeclaration": 44110, - "src": "7985:33:40", + "referencedDeclaration": 39286, + "src": "7985:33:36", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_struct$_SubnetID_$44279_memory_ptr_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39457_memory_ptr_$_t_struct$_SubnetID_$39457_memory_ptr_$returns$_t_struct$_SubnetID_$39457_memory_ptr_$attached_to$_t_struct$_SubnetID_$39457_memory_ptr_$", "typeString": "function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)" } }, - "id": 39763, + "id": 34919, "isConstant": false, "isLValue": false, "isPure": false, @@ -8277,19 +8277,19 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7985:48:40", + "src": "7985:48:36", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "7956:77:40" + "src": "7956:77:36" }, { "expression": { - "id": 39769, + "id": 34925, "isConstant": false, "isLValue": false, "isPure": false, @@ -8297,44 +8297,44 @@ "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, - "src": "8043:24:40", + "src": "8043:24:36", "subExpression": { "baseExpression": { "expression": { - "id": 39765, + "id": 34921, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "8050:1:40", + "referencedDeclaration": 37561, + "src": "8050:1:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 39766, + "id": 34922, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8052:7:40", + "memberLocation": "8052:7:36", "memberName": "postbox", "nodeType": "MemberAccess", - "referencedDeclaration": 42328, - "src": "8050:9:40", + "referencedDeclaration": 37474, + "src": "8050:9:36", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$44176_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$39352_storage_$", "typeString": "mapping(bytes32 => struct CrossMsg storage ref)" } }, - "id": 39768, + "id": 34924, "indexExpression": { - "id": 39767, + "id": 34923, "name": "msgCid", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39726, - "src": "8060:6:40", + "referencedDeclaration": 34882, + "src": "8060:6:36", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -8345,9 +8345,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8050:17:40", + "src": "8050:17:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_storage", + "typeIdentifier": "t_struct$_CrossMsg_$39352_storage", "typeString": "struct CrossMsg storage ref" } }, @@ -8356,56 +8356,56 @@ "typeString": "tuple()" } }, - "id": 39770, + "id": 34926, "nodeType": "ExpressionStatement", - "src": "8043:24:40" + "src": "8043:24:36" }, { "expression": { "arguments": [ { - "id": 39772, + "id": 34928, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39748, - "src": "8099:1:40", + "referencedDeclaration": 34904, + "src": "8099:1:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 39773, + "id": 34929, "name": "toSubnetId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39755, - "src": "8102:10:40", + "referencedDeclaration": 34911, + "src": "8102:10:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" } }, { - "id": 39774, + "id": 34930, "name": "shouldBurn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39740, - "src": "8114:10:40", + "referencedDeclaration": 34896, + "src": "8114:10:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "id": 39775, + "id": 34931, "name": "shouldDistributeRewards", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39742, - "src": "8126:23:40", + "referencedDeclaration": 34898, + "src": "8126:23:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8419,7 +8419,7 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" }, { @@ -8431,18 +8431,18 @@ "typeString": "bool" } ], - "id": 39771, + "id": 34927, "name": "_crossMsgSideEffects", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40047, - "src": "8078:20:40", + "referencedDeclaration": 35203, + "src": "8078:20:36", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_struct$_SubnetID_$44279_memory_ptr_$_t_bool_$_t_bool_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_struct$_SubnetID_$39457_memory_ptr_$_t_bool_$_t_bool_$returns$__$", "typeString": "function (uint256,struct SubnetID memory,bool,bool)" } }, - "id": 39776, + "id": 34932, "isConstant": false, "isLValue": false, "isPure": false, @@ -8451,31 +8451,31 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8078:72:40", + "src": "8078:72:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39777, + "id": 34933, "nodeType": "ExpressionStatement", - "src": "8078:72:40" + "src": "8078:72:36" }, { "assignments": [ - 39779 + 34935 ], "declarations": [ { "constant": false, - "id": 39779, + "id": 34935, "mutability": "mutable", "name": "feeRemainder", - "nameLocation": "8169:12:40", + "nameLocation": "8169:12:36", "nodeType": "VariableDeclaration", - "scope": 39800, - "src": "8161:20:40", + "scope": 34956, + "src": "8161:20:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8483,10 +8483,10 @@ "typeString": "uint256" }, "typeName": { - "id": 39778, + "id": 34934, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8161:7:40", + "src": "8161:7:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8495,39 +8495,39 @@ "visibility": "internal" } ], - "id": 39785, + "id": 34941, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 39784, + "id": 34940, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 39780, + "id": 34936, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "8184:3:40", + "src": "8184:3:36", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 39781, + "id": 34937, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "8188:5:40", + "memberLocation": "8188:5:36", "memberName": "value", "nodeType": "MemberAccess", - "src": "8184:9:40", + "src": "8184:9:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8537,40 +8537,40 @@ "operator": "-", "rightExpression": { "expression": { - "id": 39782, + "id": 34938, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "8196:1:40", + "referencedDeclaration": 37561, + "src": "8196:1:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 39783, + "id": 34939, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8198:11:40", + "memberLocation": "8198:11:36", "memberName": "crossMsgFee", "nodeType": "MemberAccess", - "referencedDeclaration": 42346, - "src": "8196:13:40", + "referencedDeclaration": 37528, + "src": "8196:13:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8184:25:40", + "src": "8184:25:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "8161:48:40" + "src": "8161:48:36" }, { "condition": { @@ -8578,18 +8578,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 39788, + "id": 34944, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 39786, + "id": 34942, "name": "feeRemainder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39779, - "src": "8224:12:40", + "referencedDeclaration": 34935, + "src": "8224:12:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8599,44 +8599,44 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 39787, + "id": 34943, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8239:1:40", + "src": "8239:1:36", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "8224:16:40", + "src": "8224:16:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 39799, + "id": 34955, "nodeType": "IfStatement", - "src": "8220:90:40", + "src": "8220:90:36", "trueBody": { - "id": 39798, + "id": 34954, "nodeType": "Block", - "src": "8242:68:40", + "src": "8242:68:36", "statements": [ { "expression": { "arguments": [ { - "id": 39795, + "id": 34951, "name": "feeRemainder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39779, - "src": "8286:12:40", + "referencedDeclaration": 34935, + "src": "8286:12:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8654,26 +8654,26 @@ "arguments": [ { "expression": { - "id": 39791, + "id": 34947, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "8264:3:40", + "src": "8264:3:36", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 39792, + "id": 34948, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "8268:6:40", + "memberLocation": "8268:6:36", "memberName": "sender", "nodeType": "MemberAccess", - "src": "8264:10:40", + "src": "8264:10:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8687,27 +8687,27 @@ "typeString": "address" } ], - "id": 39790, + "id": 34946, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8256:8:40", + "src": "8256:8:36", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_payable_$", "typeString": "type(address payable)" }, "typeName": { - "id": 39789, + "id": 34945, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8256:8:40", + "src": "8256:8:36", "stateMutability": "payable", "typeDescriptions": {} } }, - "id": 39793, + "id": 34949, "isConstant": false, "isLValue": false, "isPure": false, @@ -8716,29 +8716,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8256:19:40", + "src": "8256:19:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 39794, + "id": 34950, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "8276:9:40", + "memberLocation": "8276:9:36", "memberName": "sendValue", "nodeType": "MemberAccess", "referencedDeclaration": 290, - "src": "8256:29:40", + "src": "8256:29:36", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$", "typeString": "function (address payable,uint256)" } }, - "id": 39796, + "id": 34952, "isConstant": false, "isLValue": false, "isPure": false, @@ -8747,16 +8747,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8256:43:40", + "src": "8256:43:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39797, + "id": 34953, "nodeType": "ExpressionStatement", - "src": "8256:43:40" + "src": "8256:43:36" } ] } @@ -8764,9 +8764,9 @@ ] }, "documentation": { - "id": 39724, + "id": 34880, "nodeType": "StructuredDocumentation", - "src": "7308:129:40", + "src": "7308:129:36", "text": "@notice propagates the populated cross net message for the given cid\n @param msgCid - the cid of the cross-net message" }, "functionSelector": "25bf0db6", @@ -8774,37 +8774,37 @@ "kind": "function", "modifiers": [ { - "id": 39729, + "id": 34885, "kind": "modifierInvocation", "modifierName": { - "id": 39728, + "id": 34884, "name": "hasFee", "nameLocations": [ - "7494:6:40" + "7494:6:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 42503, - "src": "7494:6:40" + "referencedDeclaration": 37665, + "src": "7494:6:36" }, "nodeType": "ModifierInvocation", - "src": "7494:6:40" + "src": "7494:6:36" } ], "name": "propagate", - "nameLocation": "7451:9:40", + "nameLocation": "7451:9:36", "parameters": { - "id": 39727, + "id": 34883, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39726, + "id": 34882, "mutability": "mutable", "name": "msgCid", - "nameLocation": "7469:6:40", + "nameLocation": "7469:6:36", "nodeType": "VariableDeclaration", - "scope": 39801, - "src": "7461:14:40", + "scope": 34957, + "src": "7461:14:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8812,10 +8812,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 39725, + "id": 34881, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7461:7:40", + "src": "7461:7:36", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -8824,143 +8824,143 @@ "visibility": "internal" } ], - "src": "7460:16:40" + "src": "7460:16:36" }, "returnParameters": { - "id": 39730, + "id": 34886, "nodeType": "ParameterList", "parameters": [], - "src": "7501:0:40" + "src": "7501:0:36" }, - "scope": 40237, + "scope": 35393, "stateMutability": "payable", "virtual": false, "visibility": "external" }, { - "id": 39833, + "id": 34989, "nodeType": "FunctionDefinition", - "src": "8531:418:40", + "src": "8531:418:36", "nodes": [], "body": { - "id": 39832, + "id": 34988, "nodeType": "Block", - "src": "8676:273:40", + "src": "8676:273:36", "nodes": [], "statements": [ { "assignments": [ - 39814 + 34970 ], "declarations": [ { "constant": false, - "id": 39814, + "id": 34970, "mutability": "mutable", "name": "mostVotedSubmission", - "nameLocation": "8712:19:40", + "nameLocation": "8712:19:36", "nodeType": "VariableDeclaration", - "scope": 39832, - "src": "8686:45:40", + "scope": 34988, + "src": "8686:45:36", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_storage_ptr", + "typeIdentifier": "t_struct$_TopDownCheckpoint_$39339_storage_ptr", "typeString": "struct TopDownCheckpoint" }, "typeName": { - "id": 39813, + "id": 34969, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39812, + "id": 34968, "name": "TopDownCheckpoint", "nameLocations": [ - "8686:17:40" + "8686:17:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44163, - "src": "8686:17:40" + "referencedDeclaration": 39339, + "src": "8686:17:36" }, - "referencedDeclaration": 44163, - "src": "8686:17:40", + "referencedDeclaration": 39339, + "src": "8686:17:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_storage_ptr", + "typeIdentifier": "t_struct$_TopDownCheckpoint_$39339_storage_ptr", "typeString": "struct TopDownCheckpoint" } }, "visibility": "internal" } ], - "id": 39821, + "id": 34977, "initialValue": { "baseExpression": { "expression": { - "id": 39815, + "id": 34971, "name": "voteSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39805, - "src": "8734:14:40", + "referencedDeclaration": 34961, + "src": "8734:14:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39400_storage_ptr", "typeString": "struct EpochVoteTopDownSubmission storage pointer" } }, - "id": 39816, + "id": 34972, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8749:11:40", + "memberLocation": "8749:11:36", "memberName": "submissions", "nodeType": "MemberAccess", - "referencedDeclaration": 44223, - "src": "8734:26:40", + "referencedDeclaration": 39399, + "src": "8734:26:36", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_TopDownCheckpoint_$44163_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_TopDownCheckpoint_$39339_storage_$", "typeString": "mapping(bytes32 => struct TopDownCheckpoint storage ref)" } }, - "id": 39820, + "id": 34976, "indexExpression": { "expression": { "expression": { - "id": 39817, + "id": 34973, "name": "voteSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39805, - "src": "8774:14:40", + "referencedDeclaration": 34961, + "src": "8774:14:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39400_storage_ptr", "typeString": "struct EpochVoteTopDownSubmission storage pointer" } }, - "id": 39818, + "id": 34974, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8789:4:40", + "memberLocation": "8789:4:36", "memberName": "vote", "nodeType": "MemberAccess", - "referencedDeclaration": 44218, - "src": "8774:19:40", + "referencedDeclaration": 39394, + "src": "8774:19:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteSubmission_$44215_storage", + "typeIdentifier": "t_struct$_EpochVoteSubmission_$39391_storage", "typeString": "struct EpochVoteSubmission storage ref" } }, - "id": 39819, + "id": 34975, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8794:19:40", + "memberLocation": "8794:19:36", "memberName": "mostVotedSubmission", "nodeType": "MemberAccess", - "referencedDeclaration": 44202, - "src": "8774:39:40", + "referencedDeclaration": 39378, + "src": "8774:39:36", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -8971,41 +8971,41 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8734:89:40", + "src": "8734:89:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_storage", + "typeIdentifier": "t_struct$_TopDownCheckpoint_$39339_storage", "typeString": "struct TopDownCheckpoint storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "8686:137:40" + "src": "8686:137:36" }, { "expression": { "arguments": [ { "expression": { - "id": 39825, + "id": 34981, "name": "mostVotedSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39814, - "src": "8867:19:40", + "referencedDeclaration": 34970, + "src": "8867:19:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_storage_ptr", + "typeIdentifier": "t_struct$_TopDownCheckpoint_$39339_storage_ptr", "typeString": "struct TopDownCheckpoint storage pointer" } }, - "id": 39826, + "id": 34982, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8887:5:40", + "memberLocation": "8887:5:36", "memberName": "epoch", "nodeType": "MemberAccess", - "referencedDeclaration": 44158, - "src": "8867:25:40", + "referencedDeclaration": 39334, + "src": "8867:25:36", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -9020,33 +9020,33 @@ } ], "expression": { - "id": 39822, + "id": 34978, "name": "LibVoting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 43438, - "src": "8834:9:40", + "referencedDeclaration": 38614, + "src": "8834:9:36", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibVoting_$43438_$", + "typeIdentifier": "t_type$_t_contract$_LibVoting_$38614_$", "typeString": "type(library LibVoting)" } }, - "id": 39824, + "id": 34980, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "8844:22:40", + "memberLocation": "8844:22:36", "memberName": "markSubmissionExecuted", "nodeType": "MemberAccess", - "referencedDeclaration": 43169, - "src": "8834:32:40", + "referencedDeclaration": 38345, + "src": "8834:32:36", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint64_$returns$__$", "typeString": "function (uint64)" } }, - "id": 39827, + "id": 34983, "isConstant": false, "isLValue": false, "isPure": false, @@ -9055,191 +9055,191 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8834:59:40", + "src": "8834:59:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39828, + "id": 34984, "nodeType": "ExpressionStatement", - "src": "8834:59:40" + "src": "8834:59:36" }, { "expression": { "expression": { - "id": 39829, + "id": 34985, "name": "mostVotedSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39814, - "src": "8911:19:40", + "referencedDeclaration": 34970, + "src": "8911:19:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_storage_ptr", + "typeIdentifier": "t_struct$_TopDownCheckpoint_$39339_storage_ptr", "typeString": "struct TopDownCheckpoint storage pointer" } }, - "id": 39830, + "id": 34986, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8931:11:40", + "memberLocation": "8931:11:36", "memberName": "topDownMsgs", "nodeType": "MemberAccess", - "referencedDeclaration": 44162, - "src": "8911:31:40", + "referencedDeclaration": 39338, + "src": "8911:31:36", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_storage_$dyn_storage", "typeString": "struct CrossMsg storage ref[] storage ref" } }, - "functionReturnParameters": 39811, - "id": 39831, + "functionReturnParameters": 34967, + "id": 34987, "nodeType": "Return", - "src": "8904:38:40" + "src": "8904:38:36" } ] }, "documentation": { - "id": 39802, + "id": 34958, "nodeType": "StructuredDocumentation", - "src": "8322:204:40", + "src": "8322:204:36", "text": "@notice marks a checkpoint as executed based on the last vote that reached majority\n @notice voteSubmission - the vote submission data\n @return the cross messages that should be executed" }, "implemented": true, "kind": "function", "modifiers": [], "name": "_markMostVotedSubmissionExecuted", - "nameLocation": "8540:32:40", + "nameLocation": "8540:32:36", "parameters": { - "id": 39806, + "id": 34962, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39805, + "id": 34961, "mutability": "mutable", "name": "voteSubmission", - "nameLocation": "8617:14:40", + "nameLocation": "8617:14:36", "nodeType": "VariableDeclaration", - "scope": 39833, - "src": "8582:49:40", + "scope": 34989, + "src": "8582:49:36", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39400_storage_ptr", "typeString": "struct EpochVoteTopDownSubmission" }, "typeName": { - "id": 39804, + "id": 34960, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39803, + "id": 34959, "name": "EpochVoteTopDownSubmission", "nameLocations": [ - "8582:26:40" + "8582:26:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44224, - "src": "8582:26:40" + "referencedDeclaration": 39400, + "src": "8582:26:36" }, - "referencedDeclaration": 44224, - "src": "8582:26:40", + "referencedDeclaration": 39400, + "src": "8582:26:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39400_storage_ptr", "typeString": "struct EpochVoteTopDownSubmission" } }, "visibility": "internal" } ], - "src": "8572:65:40" + "src": "8572:65:36" }, "returnParameters": { - "id": 39811, + "id": 34967, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39810, + "id": 34966, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 39833, - "src": "8656:18:40", + "scope": 34989, + "src": "8656:18:36", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_storage_$dyn_storage_ptr", "typeString": "struct CrossMsg[]" }, "typeName": { "baseType": { - "id": 39808, + "id": 34964, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39807, + "id": 34963, "name": "CrossMsg", "nameLocations": [ - "8656:8:40" + "8656:8:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44176, - "src": "8656:8:40" + "referencedDeclaration": 39352, + "src": "8656:8:36" }, - "referencedDeclaration": 44176, - "src": "8656:8:40", + "referencedDeclaration": 39352, + "src": "8656:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_storage_ptr", "typeString": "struct CrossMsg" } }, - "id": 39809, + "id": 34965, "nodeType": "ArrayTypeName", - "src": "8656:10:40", + "src": "8656:10:36", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_storage_$dyn_storage_ptr", "typeString": "struct CrossMsg[]" } }, "visibility": "internal" } ], - "src": "8655:20:40" + "src": "8655:20:36" }, - "scope": 40237, + "scope": 35393, "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { - "id": 39887, + "id": 35043, "nodeType": "FunctionDefinition", - "src": "9287:748:40", + "src": "9287:748:36", "nodes": [], "body": { - "id": 39886, + "id": 35042, "nodeType": "Block", - "src": "9536:499:40", + "src": "9536:499:36", "nodes": [], "statements": [ { "assignments": [ - 39850 + 35006 ], "declarations": [ { "constant": false, - "id": 39850, + "id": 35006, "mutability": "mutable", "name": "submissionHash", - "nameLocation": "9554:14:40", + "nameLocation": "9554:14:36", "nodeType": "VariableDeclaration", - "scope": 39886, - "src": "9546:22:40", + "scope": 35042, + "src": "9546:22:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9247,10 +9247,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 39849, + "id": 35005, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "9546:7:40", + "src": "9546:7:36", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9259,39 +9259,39 @@ "visibility": "internal" } ], - "id": 39854, + "id": 35010, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 39851, + "id": 35007, "name": "submission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39840, - "src": "9571:10:40", + "referencedDeclaration": 34996, + "src": "9571:10:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_calldata_ptr", + "typeIdentifier": "t_struct$_TopDownCheckpoint_$39339_calldata_ptr", "typeString": "struct TopDownCheckpoint calldata" } }, - "id": 39852, + "id": 35008, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "9582:6:40", + "memberLocation": "9582:6:36", "memberName": "toHash", "nodeType": "MemberAccess", - "referencedDeclaration": 40610, - "src": "9571:17:40", + "referencedDeclaration": 35766, + "src": "9571:17:36", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_TopDownCheckpoint_$44163_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_TopDownCheckpoint_$44163_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_TopDownCheckpoint_$39339_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_TopDownCheckpoint_$39339_memory_ptr_$", "typeString": "function (struct TopDownCheckpoint memory) pure returns (bytes32)" } }, - "id": 39853, + "id": 35009, "isConstant": false, "isLValue": false, "isPure": false, @@ -9300,7 +9300,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9571:19:40", + "src": "9571:19:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -9308,22 +9308,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "9546:44:40" + "src": "9546:44:36" }, { "expression": { - "id": 39868, + "id": 35024, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 39855, + "id": 35011, "name": "shouldExecuteVote", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39847, - "src": "9601:17:40", + "referencedDeclaration": 35003, + "src": "9601:17:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9335,63 +9335,63 @@ "arguments": [ { "expression": { - "id": 39858, + "id": 35014, "name": "voteSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39837, - "src": "9655:14:40", + "referencedDeclaration": 34993, + "src": "9655:14:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39400_storage_ptr", "typeString": "struct EpochVoteTopDownSubmission storage pointer" } }, - "id": 39859, + "id": 35015, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9670:4:40", + "memberLocation": "9670:4:36", "memberName": "vote", "nodeType": "MemberAccess", - "referencedDeclaration": 44218, - "src": "9655:19:40", + "referencedDeclaration": 39394, + "src": "9655:19:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteSubmission_$44215_storage", + "typeIdentifier": "t_struct$_EpochVoteSubmission_$39391_storage", "typeString": "struct EpochVoteSubmission storage ref" } }, { - "id": 39860, + "id": 35016, "name": "submissionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39850, - "src": "9688:14:40", + "referencedDeclaration": 35006, + "src": "9688:14:36", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 39861, + "id": 35017, "name": "submitterAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39842, - "src": "9716:16:40", + "referencedDeclaration": 34998, + "src": "9716:16:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 39862, + "id": 35018, "name": "submitterWeight", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39844, - "src": "9746:15:40", + "referencedDeclaration": 35000, + "src": "9746:15:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9399,27 +9399,27 @@ }, { "expression": { - "id": 39863, + "id": 35019, "name": "submission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39840, - "src": "9775:10:40", + "referencedDeclaration": 34996, + "src": "9775:10:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_calldata_ptr", + "typeIdentifier": "t_struct$_TopDownCheckpoint_$39339_calldata_ptr", "typeString": "struct TopDownCheckpoint calldata" } }, - "id": 39864, + "id": 35020, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "9786:5:40", + "memberLocation": "9786:5:36", "memberName": "epoch", "nodeType": "MemberAccess", - "referencedDeclaration": 44158, - "src": "9775:16:40", + "referencedDeclaration": 39334, + "src": "9775:16:36", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -9427,27 +9427,27 @@ }, { "expression": { - "id": 39865, + "id": 35021, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "9805:1:40", + "referencedDeclaration": 37561, + "src": "9805:1:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 39866, + "id": 35022, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9807:11:40", + "memberLocation": "9807:11:36", "memberName": "totalWeight", "nodeType": "MemberAccess", - "referencedDeclaration": 42349, - "src": "9805:13:40", + "referencedDeclaration": 37531, + "src": "9805:13:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9457,7 +9457,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_EpochVoteSubmission_$44215_storage", + "typeIdentifier": "t_struct$_EpochVoteSubmission_$39391_storage", "typeString": "struct EpochVoteSubmission storage ref" }, { @@ -9482,33 +9482,33 @@ } ], "expression": { - "id": 39856, + "id": 35012, "name": "LibVoting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 43438, - "src": "9621:9:40", + "referencedDeclaration": 38614, + "src": "9621:9:36", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibVoting_$43438_$", + "typeIdentifier": "t_type$_t_contract$_LibVoting_$38614_$", "typeString": "type(library LibVoting)" } }, - "id": 39857, + "id": 35013, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "9631:10:40", + "memberLocation": "9631:10:36", "memberName": "submitVote", "nodeType": "MemberAccess", - "referencedDeclaration": 43360, - "src": "9621:20:40", + "referencedDeclaration": 38536, + "src": "9621:20:36", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_EpochVoteSubmission_$44215_storage_ptr_$_t_bytes32_$_t_address_$_t_uint256_$_t_uint64_$_t_uint256_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_EpochVoteSubmission_$39391_storage_ptr_$_t_bytes32_$_t_address_$_t_uint256_$_t_uint64_$_t_uint256_$returns$_t_bool_$", "typeString": "function (struct EpochVoteSubmission storage pointer,bytes32,address,uint256,uint64,uint256) returns (bool)" } }, - "id": 39867, + "id": 35023, "isConstant": false, "isLValue": false, "isPure": false, @@ -9517,22 +9517,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9621:207:40", + "src": "9621:207:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "9601:227:40", + "src": "9601:227:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 39869, + "id": 35025, "nodeType": "ExpressionStatement", - "src": "9601:227:40" + "src": "9601:227:36" }, { "condition": { @@ -9542,40 +9542,40 @@ "expression": { "baseExpression": { "expression": { - "id": 39870, + "id": 35026, "name": "voteSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39837, - "src": "9895:14:40", + "referencedDeclaration": 34993, + "src": "9895:14:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39400_storage_ptr", "typeString": "struct EpochVoteTopDownSubmission storage pointer" } }, - "id": 39871, + "id": 35027, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9910:11:40", + "memberLocation": "9910:11:36", "memberName": "submissions", "nodeType": "MemberAccess", - "referencedDeclaration": 44223, - "src": "9895:26:40", + "referencedDeclaration": 39399, + "src": "9895:26:36", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_TopDownCheckpoint_$44163_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_TopDownCheckpoint_$39339_storage_$", "typeString": "mapping(bytes32 => struct TopDownCheckpoint storage ref)" } }, - "id": 39873, + "id": 35029, "indexExpression": { - "id": 39872, + "id": 35028, "name": "submissionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39850, - "src": "9922:14:40", + "referencedDeclaration": 35006, + "src": "9922:14:36", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9586,28 +9586,28 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9895:42:40", + "src": "9895:42:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_storage", + "typeIdentifier": "t_struct$_TopDownCheckpoint_$39339_storage", "typeString": "struct TopDownCheckpoint storage ref" } }, - "id": 39874, + "id": 35030, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9938:7:40", + "memberLocation": "9938:7:36", "memberName": "isEmpty", "nodeType": "MemberAccess", - "referencedDeclaration": 40625, - "src": "9895:50:40", + "referencedDeclaration": 35781, + "src": "9895:50:36", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_TopDownCheckpoint_$44163_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_TopDownCheckpoint_$44163_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_TopDownCheckpoint_$39339_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_TopDownCheckpoint_$39339_memory_ptr_$", "typeString": "function (struct TopDownCheckpoint memory) pure returns (bool)" } }, - "id": 39875, + "id": 35031, "isConstant": false, "isLValue": false, "isPure": false, @@ -9616,24 +9616,24 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9895:52:40", + "src": "9895:52:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 39885, + "id": 35041, "nodeType": "IfStatement", - "src": "9891:138:40", + "src": "9891:138:36", "trueBody": { - "id": 39884, + "id": 35040, "nodeType": "Block", - "src": "9949:80:40", + "src": "9949:80:36", "statements": [ { "expression": { - "id": 39882, + "id": 35038, "isConstant": false, "isLValue": false, "isPure": false, @@ -9641,40 +9641,40 @@ "leftHandSide": { "baseExpression": { "expression": { - "id": 39876, + "id": 35032, "name": "voteSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39837, - "src": "9963:14:40", + "referencedDeclaration": 34993, + "src": "9963:14:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39400_storage_ptr", "typeString": "struct EpochVoteTopDownSubmission storage pointer" } }, - "id": 39879, + "id": 35035, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9978:11:40", + "memberLocation": "9978:11:36", "memberName": "submissions", "nodeType": "MemberAccess", - "referencedDeclaration": 44223, - "src": "9963:26:40", + "referencedDeclaration": 39399, + "src": "9963:26:36", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_TopDownCheckpoint_$44163_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_TopDownCheckpoint_$39339_storage_$", "typeString": "mapping(bytes32 => struct TopDownCheckpoint storage ref)" } }, - "id": 39880, + "id": 35036, "indexExpression": { - "id": 39878, + "id": 35034, "name": "submissionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39850, - "src": "9990:14:40", + "referencedDeclaration": 35006, + "src": "9990:14:36", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9685,35 +9685,35 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9963:42:40", + "src": "9963:42:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_storage", + "typeIdentifier": "t_struct$_TopDownCheckpoint_$39339_storage", "typeString": "struct TopDownCheckpoint storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 39881, + "id": 35037, "name": "submission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39840, - "src": "10008:10:40", + "referencedDeclaration": 34996, + "src": "10008:10:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_calldata_ptr", + "typeIdentifier": "t_struct$_TopDownCheckpoint_$39339_calldata_ptr", "typeString": "struct TopDownCheckpoint calldata" } }, - "src": "9963:55:40", + "src": "9963:55:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_storage", + "typeIdentifier": "t_struct$_TopDownCheckpoint_$39339_storage", "typeString": "struct TopDownCheckpoint storage ref" } }, - "id": 39883, + "id": 35039, "nodeType": "ExpressionStatement", - "src": "9963:55:40" + "src": "9963:55:36" } ] } @@ -9721,52 +9721,52 @@ ] }, "documentation": { - "id": 39834, + "id": 34990, "nodeType": "StructuredDocumentation", - "src": "8955:327:40", + "src": "8955:327:36", "text": "@notice submits a vote for a checkpoint\n @param voteSubmission - the vote submission data\n @param submitterAddress - the validator that submits the vote\n @param submitterWeight - the weight of the validator\n @return shouldExecuteVote - flag if the checkpoint should be executed based on the vote" }, "implemented": true, "kind": "function", "modifiers": [], "name": "_submitTopDownVote", - "nameLocation": "9296:18:40", + "nameLocation": "9296:18:36", "parameters": { - "id": 39845, + "id": 35001, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39837, + "id": 34993, "mutability": "mutable", "name": "voteSubmission", - "nameLocation": "9359:14:40", + "nameLocation": "9359:14:36", "nodeType": "VariableDeclaration", - "scope": 39887, - "src": "9324:49:40", + "scope": 35043, + "src": "9324:49:36", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39400_storage_ptr", "typeString": "struct EpochVoteTopDownSubmission" }, "typeName": { - "id": 39836, + "id": 34992, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39835, + "id": 34991, "name": "EpochVoteTopDownSubmission", "nameLocations": [ - "9324:26:40" + "9324:26:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44224, - "src": "9324:26:40" + "referencedDeclaration": 39400, + "src": "9324:26:36" }, - "referencedDeclaration": 44224, - "src": "9324:26:40", + "referencedDeclaration": 39400, + "src": "9324:26:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$44224_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteTopDownSubmission_$39400_storage_ptr", "typeString": "struct EpochVoteTopDownSubmission" } }, @@ -9774,36 +9774,36 @@ }, { "constant": false, - "id": 39840, + "id": 34996, "mutability": "mutable", "name": "submission", - "nameLocation": "9410:10:40", + "nameLocation": "9410:10:36", "nodeType": "VariableDeclaration", - "scope": 39887, - "src": "9383:37:40", + "scope": 35043, + "src": "9383:37:36", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_calldata_ptr", + "typeIdentifier": "t_struct$_TopDownCheckpoint_$39339_calldata_ptr", "typeString": "struct TopDownCheckpoint" }, "typeName": { - "id": 39839, + "id": 34995, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39838, + "id": 34994, "name": "TopDownCheckpoint", "nameLocations": [ - "9383:17:40" + "9383:17:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44163, - "src": "9383:17:40" + "referencedDeclaration": 39339, + "src": "9383:17:36" }, - "referencedDeclaration": 44163, - "src": "9383:17:40", + "referencedDeclaration": 39339, + "src": "9383:17:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_TopDownCheckpoint_$44163_storage_ptr", + "typeIdentifier": "t_struct$_TopDownCheckpoint_$39339_storage_ptr", "typeString": "struct TopDownCheckpoint" } }, @@ -9811,13 +9811,13 @@ }, { "constant": false, - "id": 39842, + "id": 34998, "mutability": "mutable", "name": "submitterAddress", - "nameLocation": "9438:16:40", + "nameLocation": "9438:16:36", "nodeType": "VariableDeclaration", - "scope": 39887, - "src": "9430:24:40", + "scope": 35043, + "src": "9430:24:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9825,10 +9825,10 @@ "typeString": "address" }, "typeName": { - "id": 39841, + "id": 34997, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9430:7:40", + "src": "9430:7:36", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9839,13 +9839,13 @@ }, { "constant": false, - "id": 39844, + "id": 35000, "mutability": "mutable", "name": "submitterWeight", - "nameLocation": "9472:15:40", + "nameLocation": "9472:15:36", "nodeType": "VariableDeclaration", - "scope": 39887, - "src": "9464:23:40", + "scope": 35043, + "src": "9464:23:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9853,10 +9853,10 @@ "typeString": "uint256" }, "typeName": { - "id": 39843, + "id": 34999, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9464:7:40", + "src": "9464:7:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9865,21 +9865,21 @@ "visibility": "internal" } ], - "src": "9314:179:40" + "src": "9314:179:36" }, "returnParameters": { - "id": 39848, + "id": 35004, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39847, + "id": 35003, "mutability": "mutable", "name": "shouldExecuteVote", - "nameLocation": "9517:17:40", + "nameLocation": "9517:17:36", "nodeType": "VariableDeclaration", - "scope": 39887, - "src": "9512:22:40", + "scope": 35043, + "src": "9512:22:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9887,10 +9887,10 @@ "typeString": "bool" }, "typeName": { - "id": 39846, + "id": 35002, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "9512:4:40", + "src": "9512:4:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9899,130 +9899,130 @@ "visibility": "internal" } ], - "src": "9511:24:40" + "src": "9511:24:36" }, - "scope": 40237, + "scope": 35393, "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { - "id": 40009, + "id": 35165, "nodeType": "FunctionDefinition", - "src": "10384:1306:40", + "src": "10384:1306:36", "nodes": [], "body": { - "id": 40008, + "id": 35164, "nodeType": "Block", - "src": "10522:1168:40", + "src": "10522:1168:36", "nodes": [], "statements": [ { "assignments": [ - 39900 + 35056 ], "declarations": [ { "constant": false, - "id": 39900, + "id": 35056, "mutability": "mutable", "name": "to", - "nameLocation": "10548:2:40", + "nameLocation": "10548:2:36", "nodeType": "VariableDeclaration", - "scope": 40008, - "src": "10532:18:40", + "scope": 35164, + "src": "10532:18:36", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID" }, "typeName": { - "id": 39899, + "id": 35055, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39898, + "id": 35054, "name": "SubnetID", "nameLocations": [ - "10532:8:40" + "10532:8:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44279, - "src": "10532:8:40" + "referencedDeclaration": 39457, + "src": "10532:8:36" }, - "referencedDeclaration": 44279, - "src": "10532:8:40", + "referencedDeclaration": 39457, + "src": "10532:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage_ptr", "typeString": "struct SubnetID" } }, "visibility": "internal" } ], - "id": 39905, + "id": 35061, "initialValue": { "expression": { "expression": { "expression": { - "id": 39901, + "id": 35057, "name": "crossMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39891, - "src": "10553:12:40", + "referencedDeclaration": 35047, + "src": "10553:12:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg memory" } }, - "id": 39902, + "id": 35058, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10566:7:40", + "memberLocation": "10566:7:36", "memberName": "message", "nodeType": "MemberAccess", - "referencedDeclaration": 44173, - "src": "10553:20:40", + "referencedDeclaration": 39349, + "src": "10553:20:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$44191_memory_ptr", + "typeIdentifier": "t_struct$_StorableMsg_$39367_memory_ptr", "typeString": "struct StorableMsg memory" } }, - "id": 39903, + "id": 35059, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10574:2:40", + "memberLocation": "10574:2:36", "memberName": "to", "nodeType": "MemberAccess", - "referencedDeclaration": 44182, - "src": "10553:23:40", + "referencedDeclaration": 39358, + "src": "10553:23:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_IPCAddress_$44310_memory_ptr", + "typeIdentifier": "t_struct$_IPCAddress_$39488_memory_ptr", "typeString": "struct IPCAddress memory" } }, - "id": 39904, + "id": 35060, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10577:8:40", + "memberLocation": "10577:8:36", "memberName": "subnetId", "nodeType": "MemberAccess", - "referencedDeclaration": 44306, - "src": "10553:32:40", + "referencedDeclaration": 39484, + "src": "10553:32:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "10532:53:40" + "src": "10532:53:36" }, { "condition": { @@ -10030,33 +10030,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 39906, + "id": 35062, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39900, - "src": "10599:2:40", + "referencedDeclaration": 35056, + "src": "10599:2:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" } }, - "id": 39907, + "id": 35063, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10602:7:40", + "memberLocation": "10602:7:36", "memberName": "isEmpty", "nodeType": "MemberAccess", - "referencedDeclaration": 44130, - "src": "10599:10:40", + "referencedDeclaration": 39306, + "src": "10599:10:36", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39457_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$39457_memory_ptr_$", "typeString": "function (struct SubnetID memory) pure returns (bool)" } }, - "id": 39908, + "id": 35064, "isConstant": false, "isLValue": false, "isPure": false, @@ -10065,38 +10065,38 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10599:12:40", + "src": "10599:12:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 39913, + "id": 35069, "nodeType": "IfStatement", - "src": "10595:84:40", + "src": "10595:84:36", "trueBody": { - "id": 39912, + "id": 35068, "nodeType": "Block", - "src": "10613:66:40", + "src": "10613:66:36", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 39909, + "id": 35065, "name": "InvalidCrossMsgDestinationSubnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38178, - "src": "10634:32:40", + "referencedDeclaration": 33194, + "src": "10634:32:36", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 39910, + "id": 35066, "isConstant": false, "isLValue": false, "isPure": false, @@ -10105,16 +10105,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10634:34:40", + "src": "10634:34:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39911, + "id": 35067, "nodeType": "RevertStatement", - "src": "10627:41:40" + "src": "10627:41:36" } ] } @@ -10124,29 +10124,29 @@ "arguments": [ { "expression": { - "id": 39916, + "id": 35072, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "10809:1:40", + "referencedDeclaration": 37561, + "src": "10809:1:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 39917, + "id": 35073, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10811:11:40", + "memberLocation": "10811:11:36", "memberName": "networkName", "nodeType": "MemberAccess", - "referencedDeclaration": 42307, - "src": "10809:13:40", + "referencedDeclaration": 37519, + "src": "10809:13:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage", "typeString": "struct SubnetID storage ref" } } @@ -10154,38 +10154,38 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage", "typeString": "struct SubnetID storage ref" } ], "expression": { - "id": 39914, + "id": 35070, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39900, - "src": "10799:2:40", + "referencedDeclaration": 35056, + "src": "10799:2:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" } }, - "id": 39915, + "id": 35071, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10802:6:40", + "memberLocation": "10802:6:36", "memberName": "equals", "nodeType": "MemberAccess", - "referencedDeclaration": 43868, - "src": "10799:9:40", + "referencedDeclaration": 39044, + "src": "10799:9:36", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39457_memory_ptr_$_t_struct$_SubnetID_$39457_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$39457_memory_ptr_$", "typeString": "function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)" } }, - "id": 39918, + "id": 35074, "isConstant": false, "isLValue": false, "isPure": false, @@ -10194,38 +10194,38 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10799:24:40", + "src": "10799:24:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 39923, + "id": 35079, "nodeType": "IfStatement", - "src": "10795:90:40", + "src": "10795:90:36", "trueBody": { - "id": 39922, + "id": 35078, "nodeType": "Block", - "src": "10825:60:40", + "src": "10825:60:36", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 39919, + "id": 35075, "name": "CannotSendCrossMsgToItself", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38156, - "src": "10846:26:40", + "referencedDeclaration": 33172, + "src": "10846:26:36", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 39920, + "id": 35076, "isConstant": false, "isLValue": false, "isPure": false, @@ -10234,198 +10234,198 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10846:28:40", + "src": "10846:28:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39921, + "id": 35077, "nodeType": "RevertStatement", - "src": "10839:35:40" + "src": "10839:35:36" } ] } }, { "assignments": [ - 39926 + 35082 ], "declarations": [ { "constant": false, - "id": 39926, + "id": 35082, "mutability": "mutable", "name": "from", - "nameLocation": "10911:4:40", + "nameLocation": "10911:4:36", "nodeType": "VariableDeclaration", - "scope": 40008, - "src": "10895:20:40", + "scope": 35164, + "src": "10895:20:36", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID" }, "typeName": { - "id": 39925, + "id": 35081, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39924, + "id": 35080, "name": "SubnetID", "nameLocations": [ - "10895:8:40" + "10895:8:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44279, - "src": "10895:8:40" + "referencedDeclaration": 39457, + "src": "10895:8:36" }, - "referencedDeclaration": 44279, - "src": "10895:8:40", + "referencedDeclaration": 39457, + "src": "10895:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage_ptr", "typeString": "struct SubnetID" } }, "visibility": "internal" } ], - "id": 39931, + "id": 35087, "initialValue": { "expression": { "expression": { "expression": { - "id": 39927, + "id": 35083, "name": "crossMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39891, - "src": "10918:12:40", + "referencedDeclaration": 35047, + "src": "10918:12:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg memory" } }, - "id": 39928, + "id": 35084, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10931:7:40", + "memberLocation": "10931:7:36", "memberName": "message", "nodeType": "MemberAccess", - "referencedDeclaration": 44173, - "src": "10918:20:40", + "referencedDeclaration": 39349, + "src": "10918:20:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$44191_memory_ptr", + "typeIdentifier": "t_struct$_StorableMsg_$39367_memory_ptr", "typeString": "struct StorableMsg memory" } }, - "id": 39929, + "id": 35085, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10939:4:40", + "memberLocation": "10939:4:36", "memberName": "from", "nodeType": "MemberAccess", - "referencedDeclaration": 44179, - "src": "10918:25:40", + "referencedDeclaration": 39355, + "src": "10918:25:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_IPCAddress_$44310_memory_ptr", + "typeIdentifier": "t_struct$_IPCAddress_$39488_memory_ptr", "typeString": "struct IPCAddress memory" } }, - "id": 39930, + "id": 35086, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10944:8:40", + "memberLocation": "10944:8:36", "memberName": "subnetId", "nodeType": "MemberAccess", - "referencedDeclaration": 44306, - "src": "10918:34:40", + "referencedDeclaration": 39484, + "src": "10918:34:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "10895:57:40" + "src": "10895:57:36" }, { "assignments": [ - 39934 + 35090 ], "declarations": [ { "constant": false, - "id": 39934, + "id": 35090, "mutability": "mutable", "name": "applyType", - "nameLocation": "10973:9:40", + "nameLocation": "10973:9:36", "nodeType": "VariableDeclaration", - "scope": 40008, - "src": "10962:20:40", + "scope": 35164, + "src": "10962:20:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeIdentifier": "t_enum$_IPCMsgType_$33144", "typeString": "enum IPCMsgType" }, "typeName": { - "id": 39933, + "id": 35089, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39932, + "id": 35088, "name": "IPCMsgType", "nameLocations": [ - "10962:10:40" + "10962:10:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 38128, - "src": "10962:10:40" + "referencedDeclaration": 33144, + "src": "10962:10:36" }, - "referencedDeclaration": 38128, - "src": "10962:10:40", + "referencedDeclaration": 33144, + "src": "10962:10:36", "typeDescriptions": { - "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeIdentifier": "t_enum$_IPCMsgType_$33144", "typeString": "enum IPCMsgType" } }, "visibility": "internal" } ], - "id": 39941, + "id": 35097, "initialValue": { "arguments": [ { "expression": { - "id": 39938, + "id": 35094, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "11016:1:40", + "referencedDeclaration": 37561, + "src": "11016:1:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 39939, + "id": 35095, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11018:11:40", + "memberLocation": "11018:11:36", "memberName": "networkName", "nodeType": "MemberAccess", - "referencedDeclaration": 42307, - "src": "11016:13:40", + "referencedDeclaration": 37519, + "src": "11016:13:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage", "typeString": "struct SubnetID storage ref" } } @@ -10433,54 +10433,54 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage", "typeString": "struct SubnetID storage ref" } ], "expression": { "expression": { - "id": 39935, + "id": 35091, "name": "crossMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39891, - "src": "10985:12:40", + "referencedDeclaration": 35047, + "src": "10985:12:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg memory" } }, - "id": 39936, + "id": 35092, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10998:7:40", + "memberLocation": "10998:7:36", "memberName": "message", "nodeType": "MemberAccess", - "referencedDeclaration": 44173, - "src": "10985:20:40", + "referencedDeclaration": 39349, + "src": "10985:20:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$44191_memory_ptr", + "typeIdentifier": "t_struct$_StorableMsg_$39367_memory_ptr", "typeString": "struct StorableMsg memory" } }, - "id": 39937, + "id": 35093, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11006:9:40", + "memberLocation": "11006:9:36", "memberName": "applyType", "nodeType": "MemberAccess", - "referencedDeclaration": 43520, - "src": "10985:30:40", + "referencedDeclaration": 38696, + "src": "10985:30:36", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_StorableMsg_$44191_memory_ptr_$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_enum$_IPCMsgType_$38128_$attached_to$_t_struct$_StorableMsg_$44191_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_StorableMsg_$39367_memory_ptr_$_t_struct$_SubnetID_$39457_memory_ptr_$returns$_t_enum$_IPCMsgType_$33144_$attached_to$_t_struct$_StorableMsg_$39367_memory_ptr_$", "typeString": "function (struct StorableMsg memory,struct SubnetID memory) pure returns (enum IPCMsgType)" } }, - "id": 39940, + "id": 35096, "isConstant": false, "isLValue": false, "isPure": false, @@ -10489,30 +10489,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10985:45:40", + "src": "10985:45:36", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeIdentifier": "t_enum$_IPCMsgType_$33144", "typeString": "enum IPCMsgType" } }, "nodeType": "VariableDeclarationStatement", - "src": "10962:68:40" + "src": "10962:68:36" }, { "assignments": [ - 39943 + 35099 ], "declarations": [ { "constant": false, - "id": 39943, + "id": 35099, "mutability": "mutable", "name": "shouldCommitBottomUp", - "nameLocation": "11103:20:40", + "nameLocation": "11103:20:36", "nodeType": "VariableDeclaration", - "scope": 40008, - "src": "11098:25:40", + "scope": 35164, + "src": "11098:25:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10520,10 +10520,10 @@ "typeString": "bool" }, "typeName": { - "id": 39942, + "id": 35098, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "11098:4:40", + "src": "11098:4:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10532,30 +10532,30 @@ "visibility": "internal" } ], - "id": 39944, + "id": 35100, "nodeType": "VariableDeclarationStatement", - "src": "11098:25:40" + "src": "11098:25:36" }, { "condition": { "commonType": { - "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeIdentifier": "t_enum$_IPCMsgType_$33144", "typeString": "enum IPCMsgType" }, - "id": 39948, + "id": 35104, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 39945, + "id": 35101, "name": "applyType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39934, - "src": "11138:9:40", + "referencedDeclaration": 35090, + "src": "11138:9:36", "typeDescriptions": { - "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeIdentifier": "t_enum$_IPCMsgType_$33144", "typeString": "enum IPCMsgType" } }, @@ -10563,60 +10563,60 @@ "operator": "==", "rightExpression": { "expression": { - "id": 39946, + "id": 35102, "name": "IPCMsgType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38128, - "src": "11151:10:40", + "referencedDeclaration": 33144, + "src": "11151:10:36", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_IPCMsgType_$38128_$", + "typeIdentifier": "t_type$_t_enum$_IPCMsgType_$33144_$", "typeString": "type(enum IPCMsgType)" } }, - "id": 39947, + "id": 35103, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "11162:8:40", + "memberLocation": "11162:8:36", "memberName": "BottomUp", "nodeType": "MemberAccess", - "referencedDeclaration": 38127, - "src": "11151:19:40", + "referencedDeclaration": 33143, + "src": "11151:19:36", "typeDescriptions": { - "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeIdentifier": "t_enum$_IPCMsgType_$33144", "typeString": "enum IPCMsgType" } }, - "src": "11138:32:40", + "src": "11138:32:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 39962, + "id": 35118, "nodeType": "IfStatement", - "src": "11134:130:40", + "src": "11134:130:36", "trueBody": { - "id": 39961, + "id": 35117, "nodeType": "Block", - "src": "11172:92:40", + "src": "11172:92:36", "statements": [ { "expression": { - "id": 39959, + "id": 35115, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 39949, + "id": 35105, "name": "shouldCommitBottomUp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39943, - "src": "11186:20:40", + "referencedDeclaration": 35099, + "src": "11186:20:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10625,7 +10625,7 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 39958, + "id": 35114, "isConstant": false, "isLValue": false, "isPure": false, @@ -10633,34 +10633,34 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "11209:44:40", + "src": "11209:44:36", "subExpression": { "arguments": [ { "expression": { - "id": 39955, + "id": 35111, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "11239:1:40", + "referencedDeclaration": 37561, + "src": "11239:1:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 39956, + "id": 35112, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11241:11:40", + "memberLocation": "11241:11:36", "memberName": "networkName", "nodeType": "MemberAccess", - "referencedDeclaration": 42307, - "src": "11239:13:40", + "referencedDeclaration": 37519, + "src": "11239:13:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage", "typeString": "struct SubnetID storage ref" } } @@ -10668,21 +10668,21 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage", "typeString": "struct SubnetID storage ref" } ], "expression": { "arguments": [ { - "id": 39952, + "id": 35108, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39926, - "src": "11226:4:40", + "referencedDeclaration": 35082, + "src": "11226:4:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" } } @@ -10690,38 +10690,38 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" } ], "expression": { - "id": 39950, + "id": 35106, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39900, - "src": "11210:2:40", + "referencedDeclaration": 35056, + "src": "11210:2:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" } }, - "id": 39951, + "id": 35107, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11213:12:40", + "memberLocation": "11213:12:36", "memberName": "commonParent", "nodeType": "MemberAccess", - "referencedDeclaration": 43991, - "src": "11210:15:40", + "referencedDeclaration": 39167, + "src": "11210:15:36", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_struct$_SubnetID_$44279_memory_ptr_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39457_memory_ptr_$_t_struct$_SubnetID_$39457_memory_ptr_$returns$_t_struct$_SubnetID_$39457_memory_ptr_$attached_to$_t_struct$_SubnetID_$39457_memory_ptr_$", "typeString": "function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)" } }, - "id": 39953, + "id": 35109, "isConstant": false, "isLValue": false, "isPure": false, @@ -10730,29 +10730,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11210:21:40", + "src": "11210:21:36", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" } }, - "id": 39954, + "id": 35110, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11232:6:40", + "memberLocation": "11232:6:36", "memberName": "equals", "nodeType": "MemberAccess", - "referencedDeclaration": 43868, - "src": "11210:28:40", + "referencedDeclaration": 39044, + "src": "11210:28:36", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39457_memory_ptr_$_t_struct$_SubnetID_$39457_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$39457_memory_ptr_$", "typeString": "function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)" } }, - "id": 39957, + "id": 35113, "isConstant": false, "isLValue": false, "isPure": false, @@ -10761,7 +10761,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11210:43:40", + "src": "11210:43:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -10773,52 +10773,52 @@ "typeString": "bool" } }, - "src": "11186:67:40", + "src": "11186:67:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 39960, + "id": 35116, "nodeType": "ExpressionStatement", - "src": "11186:67:40" + "src": "11186:67:36" } ] } }, { "condition": { - "id": 39963, + "id": 35119, "name": "shouldCommitBottomUp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39943, - "src": "11278:20:40", + "referencedDeclaration": 35099, + "src": "11278:20:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 39983, + "id": 35139, "nodeType": "IfStatement", - "src": "11274:193:40", + "src": "11274:193:36", "trueBody": { - "id": 39982, + "id": 35138, "nodeType": "Block", - "src": "11300:167:40", + "src": "11300:167:36", "statements": [ { "expression": { "arguments": [ { - "id": 39967, + "id": 35123, "name": "crossMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39891, - "src": "11343:12:40", + "referencedDeclaration": 35047, + "src": "11343:12:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg memory" } } @@ -10826,38 +10826,38 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg memory" } ], "expression": { - "id": 39964, + "id": 35120, "name": "LibGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42262, - "src": "11314:10:40", + "referencedDeclaration": 37421, + "src": "11314:10:36", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeIdentifier": "t_type$_t_contract$_LibGateway_$37421_$", "typeString": "type(library LibGateway)" } }, - "id": 39966, + "id": 35122, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "11325:17:40", + "memberLocation": "11325:17:36", "memberName": "commitBottomUpMsg", "nodeType": "MemberAccess", - "referencedDeclaration": 42151, - "src": "11314:28:40", + "referencedDeclaration": 37310, + "src": "11314:28:36", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_CrossMsg_$44176_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_CrossMsg_$39352_memory_ptr_$returns$__$", "typeString": "function (struct CrossMsg memory)" } }, - "id": 39968, + "id": 35124, "isConstant": false, "isLValue": false, "isPure": false, @@ -10866,33 +10866,33 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11314:42:40", + "src": "11314:42:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39969, + "id": 35125, "nodeType": "ExpressionStatement", - "src": "11314:42:40" + "src": "11314:42:36" }, { "expression": { "components": [ { - "id": 39976, + "id": 35132, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 39970, + "id": 35126, "name": "shouldBurn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39894, - "src": "11379:10:40", + "referencedDeclaration": 35050, + "src": "11379:10:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10905,7 +10905,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 39975, + "id": 35131, "isConstant": false, "isLValue": false, "isPure": false, @@ -10913,42 +10913,42 @@ "leftExpression": { "expression": { "expression": { - "id": 39971, + "id": 35127, "name": "crossMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39891, - "src": "11392:12:40", + "referencedDeclaration": 35047, + "src": "11392:12:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg memory" } }, - "id": 39972, + "id": 35128, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11405:7:40", + "memberLocation": "11405:7:36", "memberName": "message", "nodeType": "MemberAccess", - "referencedDeclaration": 44173, - "src": "11392:20:40", + "referencedDeclaration": 39349, + "src": "11392:20:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$44191_memory_ptr", + "typeIdentifier": "t_struct$_StorableMsg_$39367_memory_ptr", "typeString": "struct StorableMsg memory" } }, - "id": 39973, + "id": 35129, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11413:5:40", + "memberLocation": "11413:5:36", "memberName": "value", "nodeType": "MemberAccess", - "referencedDeclaration": 44184, - "src": "11392:26:40", + "referencedDeclaration": 39360, + "src": "11392:26:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10958,45 +10958,45 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 39974, + "id": 35130, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11421:1:40", + "src": "11421:1:36", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "11392:30:40", + "src": "11392:30:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "11379:43:40", + "src": "11379:43:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "id": 39979, + "id": 35135, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 39977, + "id": 35133, "name": "shouldDistributeRewards", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39896, - "src": "11424:23:40", + "referencedDeclaration": 35052, + "src": "11424:23:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11006,44 +11006,44 @@ "operator": "=", "rightHandSide": { "hexValue": "66616c7365", - "id": 39978, + "id": 35134, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "11450:5:40", + "src": "11450:5:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "11424:31:40", + "src": "11424:31:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 39980, + "id": 35136, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "11378:78:40", + "src": "11378:78:36", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$", "typeString": "tuple(bool,bool)" } }, - "functionReturnParameters": 39897, - "id": 39981, + "functionReturnParameters": 35053, + "id": 35137, "nodeType": "Return", - "src": "11371:85:40" + "src": "11371:85:36" } ] } @@ -11051,23 +11051,23 @@ { "condition": { "commonType": { - "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeIdentifier": "t_enum$_IPCMsgType_$33144", "typeString": "enum IPCMsgType" }, - "id": 39987, + "id": 35143, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 39984, + "id": 35140, "name": "applyType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39934, - "src": "11481:9:40", + "referencedDeclaration": 35090, + "src": "11481:9:36", "typeDescriptions": { - "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeIdentifier": "t_enum$_IPCMsgType_$33144", "typeString": "enum IPCMsgType" } }, @@ -11075,49 +11075,49 @@ "operator": "==", "rightExpression": { "expression": { - "id": 39985, + "id": 35141, "name": "IPCMsgType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38128, - "src": "11494:10:40", + "referencedDeclaration": 33144, + "src": "11494:10:36", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_IPCMsgType_$38128_$", + "typeIdentifier": "t_type$_t_enum$_IPCMsgType_$33144_$", "typeString": "type(enum IPCMsgType)" } }, - "id": 39986, + "id": 35142, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "11505:7:40", + "memberLocation": "11505:7:36", "memberName": "TopDown", "nodeType": "MemberAccess", - "referencedDeclaration": 38126, - "src": "11494:18:40", + "referencedDeclaration": 33142, + "src": "11494:18:36", "typeDescriptions": { - "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeIdentifier": "t_enum$_IPCMsgType_$33144", "typeString": "enum IPCMsgType" } }, - "src": "11481:31:40", + "src": "11481:31:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 39993, + "id": 35149, "nodeType": "IfStatement", - "src": "11477:85:40", + "src": "11477:85:36", "trueBody": { - "id": 39992, + "id": 35148, "nodeType": "Block", - "src": "11514:48:40", + "src": "11514:48:36", "statements": [ { "expression": { - "id": 39990, + "id": 35146, "isConstant": false, "isLValue": false, "isPure": false, @@ -11125,30 +11125,30 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": true, - "src": "11528:23:40", + "src": "11528:23:36", "subExpression": { "expression": { - "id": 39988, + "id": 35144, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "11530:1:40", + "referencedDeclaration": 37561, + "src": "11530:1:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 39989, + "id": 35145, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "11532:19:40", + "memberLocation": "11532:19:36", "memberName": "appliedTopDownNonce", "nodeType": "MemberAccess", - "referencedDeclaration": 42343, - "src": "11530:21:40", + "referencedDeclaration": 37537, + "src": "11530:21:36", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -11159,9 +11159,9 @@ "typeString": "uint64" } }, - "id": 39991, + "id": 35147, "nodeType": "ExpressionStatement", - "src": "11528:23:40" + "src": "11528:23:36" } ] } @@ -11170,14 +11170,14 @@ "expression": { "arguments": [ { - "id": 39997, + "id": 35153, "name": "crossMessage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39891, - "src": "11600:12:40", + "referencedDeclaration": 35047, + "src": "11600:12:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg memory" } } @@ -11185,38 +11185,38 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg memory" } ], "expression": { - "id": 39994, + "id": 35150, "name": "LibGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42262, - "src": "11572:10:40", + "referencedDeclaration": 37421, + "src": "11572:10:36", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeIdentifier": "t_type$_t_contract$_LibGateway_$37421_$", "typeString": "type(library LibGateway)" } }, - "id": 39996, + "id": 35152, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "11583:16:40", + "memberLocation": "11583:16:36", "memberName": "commitTopDownMsg", "nodeType": "MemberAccess", - "referencedDeclaration": 42100, - "src": "11572:27:40", + "referencedDeclaration": 37259, + "src": "11572:27:36", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_CrossMsg_$44176_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_CrossMsg_$39352_memory_ptr_$returns$__$", "typeString": "function (struct CrossMsg memory)" } }, - "id": 39998, + "id": 35154, "isConstant": false, "isLValue": false, "isPure": false, @@ -11225,33 +11225,33 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11572:41:40", + "src": "11572:41:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 39999, + "id": 35155, "nodeType": "ExpressionStatement", - "src": "11572:41:40" + "src": "11572:41:36" }, { "expression": { "components": [ { - "id": 40002, + "id": 35158, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 40000, + "id": 35156, "name": "shouldBurn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39894, - "src": "11632:10:40", + "referencedDeclaration": 35050, + "src": "11632:10:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11261,39 +11261,39 @@ "operator": "=", "rightHandSide": { "hexValue": "66616c7365", - "id": 40001, + "id": 35157, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "11645:5:40", + "src": "11645:5:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "11632:18:40", + "src": "11632:18:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "id": 40005, + "id": 35161, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 40003, + "id": 35159, "name": "shouldDistributeRewards", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 39896, - "src": "11652:23:40", + "referencedDeclaration": 35052, + "src": "11652:23:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11303,115 +11303,115 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 40004, + "id": 35160, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "11678:4:40", + "src": "11678:4:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "11652:30:40", + "src": "11652:30:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 40006, + "id": 35162, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "11631:52:40", + "src": "11631:52:36", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$", "typeString": "tuple(bool,bool)" } }, - "functionReturnParameters": 39897, - "id": 40007, + "functionReturnParameters": 35053, + "id": 35163, "nodeType": "Return", - "src": "11624:59:40" + "src": "11624:59:36" } ] }, "documentation": { - "id": 39888, + "id": 35044, "nodeType": "StructuredDocumentation", - "src": "10041:338:40", + "src": "10041:338:36", "text": "@notice Commit the cross message to storage. It outputs a flag signaling\n if the committed messages was bottom-up and some funds need to be\n burnt or if a top-down message fee needs to be distributed.\n It also validates that destination subnet ID is not empty\n and not equal to the current network." }, "implemented": true, "kind": "function", "modifiers": [], "name": "_commitCrossMessage", - "nameLocation": "10393:19:40", + "nameLocation": "10393:19:36", "parameters": { - "id": 39892, + "id": 35048, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39891, + "id": 35047, "mutability": "mutable", "name": "crossMessage", - "nameLocation": "10438:12:40", + "nameLocation": "10438:12:36", "nodeType": "VariableDeclaration", - "scope": 40009, - "src": "10422:28:40", + "scope": 35165, + "src": "10422:28:36", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg" }, "typeName": { - "id": 39890, + "id": 35046, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 39889, + "id": 35045, "name": "CrossMsg", "nameLocations": [ - "10422:8:40" + "10422:8:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44176, - "src": "10422:8:40" + "referencedDeclaration": 39352, + "src": "10422:8:36" }, - "referencedDeclaration": 44176, - "src": "10422:8:40", + "referencedDeclaration": 39352, + "src": "10422:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_storage_ptr", "typeString": "struct CrossMsg" } }, "visibility": "internal" } ], - "src": "10412:44:40" + "src": "10412:44:36" }, "returnParameters": { - "id": 39897, + "id": 35053, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 39894, + "id": 35050, "mutability": "mutable", "name": "shouldBurn", - "nameLocation": "10480:10:40", + "nameLocation": "10480:10:36", "nodeType": "VariableDeclaration", - "scope": 40009, - "src": "10475:15:40", + "scope": 35165, + "src": "10475:15:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11419,10 +11419,10 @@ "typeString": "bool" }, "typeName": { - "id": 39893, + "id": 35049, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "10475:4:40", + "src": "10475:4:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11432,13 +11432,13 @@ }, { "constant": false, - "id": 39896, + "id": 35052, "mutability": "mutable", "name": "shouldDistributeRewards", - "nameLocation": "10497:23:40", + "nameLocation": "10497:23:36", "nodeType": "VariableDeclaration", - "scope": 40009, - "src": "10492:28:40", + "scope": 35165, + "src": "10492:28:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11446,10 +11446,10 @@ "typeString": "bool" }, "typeName": { - "id": 39895, + "id": 35051, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "10492:4:40", + "src": "10492:4:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11458,55 +11458,55 @@ "visibility": "internal" } ], - "src": "10474:47:40" + "src": "10474:47:36" }, - "scope": 40237, + "scope": 35393, "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { - "id": 40047, + "id": 35203, "nodeType": "FunctionDefinition", - "src": "12149:389:40", + "src": "12149:389:36", "nodes": [], "body": { - "id": 40046, + "id": 35202, "nodeType": "Block", - "src": "12312:226:40", + "src": "12312:226:36", "nodes": [], "statements": [ { "condition": { - "id": 40022, + "id": 35178, "name": "shouldBurn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40017, - "src": "12326:10:40", + "referencedDeclaration": 35173, + "src": "12326:10:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 40032, + "id": 35188, "nodeType": "IfStatement", - "src": "12322:80:40", + "src": "12322:80:36", "trueBody": { - "id": 40031, + "id": 35187, "nodeType": "Block", - "src": "12338:64:40", + "src": "12338:64:36", "statements": [ { "expression": { "arguments": [ { - "id": 40028, + "id": 35184, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40012, - "src": "12389:1:40", + "referencedDeclaration": 35168, + "src": "12389:1:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11523,12 +11523,12 @@ "expression": { "arguments": [ { - "id": 40025, + "id": 35181, "name": "BURNT_FUNDS_ACTOR", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 37660, - "src": "12360:17:40", + "referencedDeclaration": 32676, + "src": "12360:17:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11542,27 +11542,27 @@ "typeString": "address" } ], - "id": 40024, + "id": 35180, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "12352:8:40", + "src": "12352:8:36", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_payable_$", "typeString": "type(address payable)" }, "typeName": { - "id": 40023, + "id": 35179, "name": "address", "nodeType": "ElementaryTypeName", - "src": "12352:8:40", + "src": "12352:8:36", "stateMutability": "payable", "typeDescriptions": {} } }, - "id": 40026, + "id": 35182, "isConstant": false, "isLValue": false, "isPure": true, @@ -11571,29 +11571,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "12352:26:40", + "src": "12352:26:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 40027, + "id": 35183, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "12379:9:40", + "memberLocation": "12379:9:36", "memberName": "sendValue", "nodeType": "MemberAccess", "referencedDeclaration": 290, - "src": "12352:36:40", + "src": "12352:36:36", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$", "typeString": "function (address payable,uint256)" } }, - "id": 40029, + "id": 35185, "isConstant": false, "isLValue": false, "isPure": false, @@ -11602,40 +11602,40 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "12352:39:40", + "src": "12352:39:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 40030, + "id": 35186, "nodeType": "ExpressionStatement", - "src": "12352:39:40" + "src": "12352:39:36" } ] } }, { "condition": { - "id": 40033, + "id": 35189, "name": "shouldDistributeRewards", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40019, - "src": "12416:23:40", + "referencedDeclaration": 35175, + "src": "12416:23:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 40045, + "id": 35201, "nodeType": "IfStatement", - "src": "12412:120:40", + "src": "12412:120:36", "trueBody": { - "id": 40044, + "id": 35200, "nodeType": "Block", - "src": "12441:91:40", + "src": "12441:91:36", "statements": [ { "expression": { @@ -11645,33 +11645,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 40037, + "id": 35193, "name": "toSubnetId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40015, - "src": "12484:10:40", + "referencedDeclaration": 35171, + "src": "12484:10:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" } }, - "id": 40038, + "id": 35194, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "12495:8:40", + "memberLocation": "12495:8:36", "memberName": "getActor", "nodeType": "MemberAccess", - "referencedDeclaration": 43808, - "src": "12484:19:40", + "referencedDeclaration": 38984, + "src": "12484:19:36", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39457_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$39457_memory_ptr_$", "typeString": "function (struct SubnetID memory) pure returns (address)" } }, - "id": 40039, + "id": 35195, "isConstant": false, "isLValue": false, "isPure": false, @@ -11680,7 +11680,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "12484:21:40", + "src": "12484:21:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -11689,27 +11689,27 @@ }, { "expression": { - "id": 40040, + "id": 35196, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "12507:1:40", + "referencedDeclaration": 37561, + "src": "12507:1:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 40041, + "id": 35197, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "12509:11:40", + "memberLocation": "12509:11:36", "memberName": "crossMsgFee", "nodeType": "MemberAccess", - "referencedDeclaration": 42346, - "src": "12507:13:40", + "referencedDeclaration": 37528, + "src": "12507:13:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11728,33 +11728,33 @@ } ], "expression": { - "id": 40034, + "id": 35190, "name": "LibGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42262, - "src": "12455:10:40", + "referencedDeclaration": 37421, + "src": "12455:10:36", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeIdentifier": "t_type$_t_contract$_LibGateway_$37421_$", "typeString": "type(library LibGateway)" } }, - "id": 40036, + "id": 35192, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "12466:17:40", + "memberLocation": "12466:17:36", "memberName": "distributeRewards", "nodeType": "MemberAccess", - "referencedDeclaration": 42181, - "src": "12455:28:40", + "referencedDeclaration": 37340, + "src": "12455:28:36", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 40042, + "id": 35198, "isConstant": false, "isLValue": false, "isPure": false, @@ -11763,16 +11763,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "12455:66:40", + "src": "12455:66:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 40043, + "id": 35199, "nodeType": "ExpressionStatement", - "src": "12455:66:40" + "src": "12455:66:36" } ] } @@ -11780,29 +11780,29 @@ ] }, "documentation": { - "id": 40010, + "id": 35166, "nodeType": "StructuredDocumentation", - "src": "11696:448:40", + "src": "11696:448:36", "text": "@notice transaction side-effects from the commitment of a cross-net message. It burns funds\n and propagates the corresponding rewards.\n @param v - the value of the committed cross-net message\n @param toSubnetId - the destination subnet of the committed cross-net message\n @param shouldBurn - flag if the message should burn funds\n @param shouldDistributeRewards - flag if the message should distribute rewards" }, "implemented": true, "kind": "function", "modifiers": [], "name": "_crossMsgSideEffects", - "nameLocation": "12158:20:40", + "nameLocation": "12158:20:36", "parameters": { - "id": 40020, + "id": 35176, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 40012, + "id": 35168, "mutability": "mutable", "name": "v", - "nameLocation": "12196:1:40", + "nameLocation": "12196:1:36", "nodeType": "VariableDeclaration", - "scope": 40047, - "src": "12188:9:40", + "scope": 35203, + "src": "12188:9:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11810,10 +11810,10 @@ "typeString": "uint256" }, "typeName": { - "id": 40011, + "id": 35167, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "12188:7:40", + "src": "12188:7:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11823,36 +11823,36 @@ }, { "constant": false, - "id": 40015, + "id": 35171, "mutability": "mutable", "name": "toSubnetId", - "nameLocation": "12223:10:40", + "nameLocation": "12223:10:36", "nodeType": "VariableDeclaration", - "scope": 40047, - "src": "12207:26:40", + "scope": 35203, + "src": "12207:26:36", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID" }, "typeName": { - "id": 40014, + "id": 35170, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 40013, + "id": 35169, "name": "SubnetID", "nameLocations": [ - "12207:8:40" + "12207:8:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44279, - "src": "12207:8:40" + "referencedDeclaration": 39457, + "src": "12207:8:36" }, - "referencedDeclaration": 44279, - "src": "12207:8:40", + "referencedDeclaration": 39457, + "src": "12207:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage_ptr", "typeString": "struct SubnetID" } }, @@ -11860,13 +11860,13 @@ }, { "constant": false, - "id": 40017, + "id": 35173, "mutability": "mutable", "name": "shouldBurn", - "nameLocation": "12248:10:40", + "nameLocation": "12248:10:36", "nodeType": "VariableDeclaration", - "scope": 40047, - "src": "12243:15:40", + "scope": 35203, + "src": "12243:15:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11874,10 +11874,10 @@ "typeString": "bool" }, "typeName": { - "id": 40016, + "id": 35172, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "12243:4:40", + "src": "12243:4:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11887,13 +11887,13 @@ }, { "constant": false, - "id": 40019, + "id": 35175, "mutability": "mutable", "name": "shouldDistributeRewards", - "nameLocation": "12273:23:40", + "nameLocation": "12273:23:36", "nodeType": "VariableDeclaration", - "scope": 40047, - "src": "12268:28:40", + "scope": 35203, + "src": "12268:28:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11901,10 +11901,10 @@ "typeString": "bool" }, "typeName": { - "id": 40018, + "id": 35174, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "12268:4:40", + "src": "12268:4:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11913,28 +11913,28 @@ "visibility": "internal" } ], - "src": "12178:124:40" + "src": "12178:124:36" }, "returnParameters": { - "id": 40021, + "id": 35177, "nodeType": "ParameterList", "parameters": [], - "src": "12312:0:40" + "src": "12312:0:36" }, - "scope": 40237, + "scope": 35393, "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { - "id": 40199, + "id": 35355, "nodeType": "FunctionDefinition", - "src": "12814:1880:40", + "src": "12814:1880:36", "nodes": [], "body": { - "id": 40198, + "id": 35354, "nodeType": "Block", - "src": "12895:1799:40", + "src": "12895:1799:36", "nodes": [], "statements": [ { @@ -11946,78 +11946,78 @@ "expression": { "expression": { "expression": { - "id": 40057, + "id": 35213, "name": "crossMsg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40054, - "src": "12909:8:40", + "referencedDeclaration": 35210, + "src": "12909:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg memory" } }, - "id": 40058, + "id": 35214, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "12918:7:40", + "memberLocation": "12918:7:36", "memberName": "message", "nodeType": "MemberAccess", - "referencedDeclaration": 44173, - "src": "12909:16:40", + "referencedDeclaration": 39349, + "src": "12909:16:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$44191_memory_ptr", + "typeIdentifier": "t_struct$_StorableMsg_$39367_memory_ptr", "typeString": "struct StorableMsg memory" } }, - "id": 40059, + "id": 35215, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "12926:2:40", + "memberLocation": "12926:2:36", "memberName": "to", "nodeType": "MemberAccess", - "referencedDeclaration": 44182, - "src": "12909:19:40", + "referencedDeclaration": 39358, + "src": "12909:19:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_IPCAddress_$44310_memory_ptr", + "typeIdentifier": "t_struct$_IPCAddress_$39488_memory_ptr", "typeString": "struct IPCAddress memory" } }, - "id": 40060, + "id": 35216, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "12929:8:40", + "memberLocation": "12929:8:36", "memberName": "subnetId", "nodeType": "MemberAccess", - "referencedDeclaration": 44306, - "src": "12909:28:40", + "referencedDeclaration": 39484, + "src": "12909:28:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" } }, - "id": 40061, + "id": 35217, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "12938:7:40", + "memberLocation": "12938:7:36", "memberName": "isEmpty", "nodeType": "MemberAccess", - "referencedDeclaration": 44130, - "src": "12909:36:40", + "referencedDeclaration": 39306, + "src": "12909:36:36", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39457_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$39457_memory_ptr_$", "typeString": "function (struct SubnetID memory) pure returns (bool)" } }, - "id": 40062, + "id": 35218, "isConstant": false, "isLValue": false, "isPure": false, @@ -12026,38 +12026,38 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "12909:38:40", + "src": "12909:38:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 40067, + "id": 35223, "nodeType": "IfStatement", - "src": "12905:110:40", + "src": "12905:110:36", "trueBody": { - "id": 40066, + "id": 35222, "nodeType": "Block", - "src": "12949:66:40", + "src": "12949:66:36", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 40063, + "id": 35219, "name": "InvalidCrossMsgDestinationSubnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38178, - "src": "12970:32:40", + "referencedDeclaration": 33194, + "src": "12970:32:36", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 40064, + "id": 35220, "isConstant": false, "isLValue": false, "isPure": false, @@ -12066,16 +12066,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "12970:34:40", + "src": "12970:34:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 40065, + "id": 35221, "nodeType": "RevertStatement", - "src": "12963:41:40" + "src": "12963:41:36" } ] } @@ -12086,7 +12086,7 @@ "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, - "id": 40072, + "id": 35228, "isConstant": false, "isLValue": false, "isPure": false, @@ -12094,42 +12094,42 @@ "leftExpression": { "expression": { "expression": { - "id": 40068, + "id": 35224, "name": "crossMsg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40054, - "src": "13028:8:40", + "referencedDeclaration": 35210, + "src": "13028:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg memory" } }, - "id": 40069, + "id": 35225, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "13037:7:40", + "memberLocation": "13037:7:36", "memberName": "message", "nodeType": "MemberAccess", - "referencedDeclaration": 44173, - "src": "13028:16:40", + "referencedDeclaration": 39349, + "src": "13028:16:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$44191_memory_ptr", + "typeIdentifier": "t_struct$_StorableMsg_$39367_memory_ptr", "typeString": "struct StorableMsg memory" } }, - "id": 40070, + "id": 35226, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "13045:6:40", + "memberLocation": "13045:6:36", "memberName": "method", "nodeType": "MemberAccess", - "referencedDeclaration": 44188, - "src": "13028:23:40", + "referencedDeclaration": 39364, + "src": "13028:23:36", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -12138,30 +12138,30 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "id": 40071, + "id": 35227, "name": "METHOD_SEND", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 37681, - "src": "13055:11:40", + "referencedDeclaration": 32697, + "src": "13055:11:36", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "src": "13028:38:40", + "src": "13028:38:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 40088, + "id": 35244, "nodeType": "IfStatement", - "src": "13024:178:40", + "src": "13024:178:36", "trueBody": { - "id": 40087, + "id": 35243, "nodeType": "Block", - "src": "13068:134:40", + "src": "13068:134:36", "statements": [ { "condition": { @@ -12169,7 +12169,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 40081, + "id": 35237, "isConstant": false, "isLValue": false, "isPure": false, @@ -12177,42 +12177,42 @@ "leftExpression": { "expression": { "expression": { - "id": 40073, + "id": 35229, "name": "crossMsg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40054, - "src": "13086:8:40", + "referencedDeclaration": 35210, + "src": "13086:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg memory" } }, - "id": 40074, + "id": 35230, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "13095:7:40", + "memberLocation": "13095:7:36", "memberName": "message", "nodeType": "MemberAccess", - "referencedDeclaration": 44173, - "src": "13086:16:40", + "referencedDeclaration": 39349, + "src": "13086:16:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$44191_memory_ptr", + "typeIdentifier": "t_struct$_StorableMsg_$39367_memory_ptr", "typeString": "struct StorableMsg memory" } }, - "id": 40075, + "id": 35231, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "13103:5:40", + "memberLocation": "13103:5:36", "memberName": "value", "nodeType": "MemberAccess", - "referencedDeclaration": 44184, - "src": "13086:22:40", + "referencedDeclaration": 39360, + "src": "13086:22:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12224,14 +12224,14 @@ "expression": { "arguments": [ { - "id": 40078, + "id": 35234, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, - "src": "13119:4:40", + "src": "13119:4:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_GatewayRouterFacet_$40237", + "typeIdentifier": "t_contract$_GatewayRouterFacet_$35393", "typeString": "contract GatewayRouterFacet" } } @@ -12239,30 +12239,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_GatewayRouterFacet_$40237", + "typeIdentifier": "t_contract$_GatewayRouterFacet_$35393", "typeString": "contract GatewayRouterFacet" } ], - "id": 40077, + "id": 35233, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13111:7:40", + "src": "13111:7:36", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 40076, + "id": 35232, "name": "address", "nodeType": "ElementaryTypeName", - "src": "13111:7:40", + "src": "13111:7:36", "typeDescriptions": {} } }, - "id": 40079, + "id": 35235, "isConstant": false, "isLValue": false, "isPure": false, @@ -12271,58 +12271,58 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13111:13:40", + "src": "13111:13:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 40080, + "id": 35236, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "13125:7:40", + "memberLocation": "13125:7:36", "memberName": "balance", "nodeType": "MemberAccess", - "src": "13111:21:40", + "src": "13111:21:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "13086:46:40", + "src": "13086:46:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 40086, + "id": 35242, "nodeType": "IfStatement", - "src": "13082:110:40", + "src": "13082:110:36", "trueBody": { - "id": 40085, + "id": 35241, "nodeType": "Block", - "src": "13134:58:40", + "src": "13134:58:36", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 40082, + "id": 35238, "name": "NotEnoughBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38200, - "src": "13159:16:40", + "referencedDeclaration": 33216, + "src": "13159:16:36", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 40083, + "id": 35239, "isConstant": false, "isLValue": false, "isPure": false, @@ -12331,16 +12331,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13159:18:40", + "src": "13159:18:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 40084, + "id": 35240, "nodeType": "RevertStatement", - "src": "13152:25:40" + "src": "13152:25:36" } ] } @@ -12350,75 +12350,75 @@ }, { "assignments": [ - 40091 + 35247 ], "declarations": [ { "constant": false, - "id": 40091, + "id": 35247, "mutability": "mutable", "name": "applyType", - "nameLocation": "13223:9:40", + "nameLocation": "13223:9:36", "nodeType": "VariableDeclaration", - "scope": 40198, - "src": "13212:20:40", + "scope": 35354, + "src": "13212:20:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeIdentifier": "t_enum$_IPCMsgType_$33144", "typeString": "enum IPCMsgType" }, "typeName": { - "id": 40090, + "id": 35246, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 40089, + "id": 35245, "name": "IPCMsgType", "nameLocations": [ - "13212:10:40" + "13212:10:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 38128, - "src": "13212:10:40" + "referencedDeclaration": 33144, + "src": "13212:10:36" }, - "referencedDeclaration": 38128, - "src": "13212:10:40", + "referencedDeclaration": 33144, + "src": "13212:10:36", "typeDescriptions": { - "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeIdentifier": "t_enum$_IPCMsgType_$33144", "typeString": "enum IPCMsgType" } }, "visibility": "internal" } ], - "id": 40098, + "id": 35254, "initialValue": { "arguments": [ { "expression": { - "id": 40095, + "id": 35251, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "13262:1:40", + "referencedDeclaration": 37561, + "src": "13262:1:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 40096, + "id": 35252, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "13264:11:40", + "memberLocation": "13264:11:36", "memberName": "networkName", "nodeType": "MemberAccess", - "referencedDeclaration": 42307, - "src": "13262:13:40", + "referencedDeclaration": 37519, + "src": "13262:13:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage", "typeString": "struct SubnetID storage ref" } } @@ -12426,54 +12426,54 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage", "typeString": "struct SubnetID storage ref" } ], "expression": { "expression": { - "id": 40092, + "id": 35248, "name": "crossMsg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40054, - "src": "13235:8:40", + "referencedDeclaration": 35210, + "src": "13235:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg memory" } }, - "id": 40093, + "id": 35249, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "13244:7:40", + "memberLocation": "13244:7:36", "memberName": "message", "nodeType": "MemberAccess", - "referencedDeclaration": 44173, - "src": "13235:16:40", + "referencedDeclaration": 39349, + "src": "13235:16:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$44191_memory_ptr", + "typeIdentifier": "t_struct$_StorableMsg_$39367_memory_ptr", "typeString": "struct StorableMsg memory" } }, - "id": 40094, + "id": 35250, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "13252:9:40", + "memberLocation": "13252:9:36", "memberName": "applyType", "nodeType": "MemberAccess", - "referencedDeclaration": 43520, - "src": "13235:26:40", + "referencedDeclaration": 38696, + "src": "13235:26:36", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_StorableMsg_$44191_memory_ptr_$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_enum$_IPCMsgType_$38128_$attached_to$_t_struct$_StorableMsg_$44191_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_StorableMsg_$39367_memory_ptr_$_t_struct$_SubnetID_$39457_memory_ptr_$returns$_t_enum$_IPCMsgType_$33144_$attached_to$_t_struct$_StorableMsg_$39367_memory_ptr_$", "typeString": "function (struct StorableMsg memory,struct SubnetID memory) pure returns (enum IPCMsgType)" } }, - "id": 40097, + "id": 35253, "isConstant": false, "isLValue": false, "isPure": false, @@ -12482,44 +12482,44 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13235:41:40", + "src": "13235:41:36", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeIdentifier": "t_enum$_IPCMsgType_$33144", "typeString": "enum IPCMsgType" } }, "nodeType": "VariableDeclarationStatement", - "src": "13212:64:40" + "src": "13212:64:36" }, { "condition": { "arguments": [ { "expression": { - "id": 40104, + "id": 35260, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "13395:1:40", + "referencedDeclaration": 37561, + "src": "13395:1:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 40105, + "id": 35261, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "13397:11:40", + "memberLocation": "13397:11:36", "memberName": "networkName", "nodeType": "MemberAccess", - "referencedDeclaration": 42307, - "src": "13395:13:40", + "referencedDeclaration": 37519, + "src": "13395:13:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage", "typeString": "struct SubnetID storage ref" } } @@ -12527,7 +12527,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage", "typeString": "struct SubnetID storage ref" } ], @@ -12535,78 +12535,78 @@ "expression": { "expression": { "expression": { - "id": 40099, + "id": 35255, "name": "crossMsg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40054, - "src": "13359:8:40", + "referencedDeclaration": 35210, + "src": "13359:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg memory" } }, - "id": 40100, + "id": 35256, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "13368:7:40", + "memberLocation": "13368:7:36", "memberName": "message", "nodeType": "MemberAccess", - "referencedDeclaration": 44173, - "src": "13359:16:40", + "referencedDeclaration": 39349, + "src": "13359:16:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$44191_memory_ptr", + "typeIdentifier": "t_struct$_StorableMsg_$39367_memory_ptr", "typeString": "struct StorableMsg memory" } }, - "id": 40101, + "id": 35257, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "13376:2:40", + "memberLocation": "13376:2:36", "memberName": "to", "nodeType": "MemberAccess", - "referencedDeclaration": 44182, - "src": "13359:19:40", + "referencedDeclaration": 39358, + "src": "13359:19:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_IPCAddress_$44310_memory_ptr", + "typeIdentifier": "t_struct$_IPCAddress_$39488_memory_ptr", "typeString": "struct IPCAddress memory" } }, - "id": 40102, + "id": 35258, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "13379:8:40", + "memberLocation": "13379:8:36", "memberName": "subnetId", "nodeType": "MemberAccess", - "referencedDeclaration": 44306, - "src": "13359:28:40", + "referencedDeclaration": 39484, + "src": "13359:28:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" } }, - "id": 40103, + "id": 35259, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "13388:6:40", + "memberLocation": "13388:6:36", "memberName": "equals", "nodeType": "MemberAccess", - "referencedDeclaration": 43868, - "src": "13359:35:40", + "referencedDeclaration": 39044, + "src": "13359:35:36", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39457_memory_ptr_$_t_struct$_SubnetID_$39457_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$39457_memory_ptr_$", "typeString": "function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)" } }, - "id": 40106, + "id": 35262, "isConstant": false, "isLValue": false, "isPure": false, @@ -12615,41 +12615,41 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13359:50:40", + "src": "13359:50:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 40183, + "id": 35339, "nodeType": "IfStatement", - "src": "13355:1147:40", + "src": "13355:1147:36", "trueBody": { - "id": 40182, + "id": 35338, "nodeType": "Block", - "src": "13411:1091:40", + "src": "13411:1091:36", "statements": [ { "condition": { "commonType": { - "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeIdentifier": "t_enum$_IPCMsgType_$33144", "typeString": "enum IPCMsgType" }, - "id": 40110, + "id": 35266, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 40107, + "id": 35263, "name": "applyType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40091, - "src": "13599:9:40", + "referencedDeclaration": 35247, + "src": "13599:9:36", "typeDescriptions": { - "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeIdentifier": "t_enum$_IPCMsgType_$33144", "typeString": "enum IPCMsgType" } }, @@ -12657,49 +12657,49 @@ "operator": "==", "rightExpression": { "expression": { - "id": 40108, + "id": 35264, "name": "IPCMsgType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38128, - "src": "13612:10:40", + "referencedDeclaration": 33144, + "src": "13612:10:36", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_IPCMsgType_$38128_$", + "typeIdentifier": "t_type$_t_enum$_IPCMsgType_$33144_$", "typeString": "type(enum IPCMsgType)" } }, - "id": 40109, + "id": 35265, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "13623:8:40", + "memberLocation": "13623:8:36", "memberName": "BottomUp", "nodeType": "MemberAccess", - "referencedDeclaration": 38127, - "src": "13612:19:40", + "referencedDeclaration": 33143, + "src": "13612:19:36", "typeDescriptions": { - "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeIdentifier": "t_enum$_IPCMsgType_$33144", "typeString": "enum IPCMsgType" } }, - "src": "13599:32:40", + "src": "13599:32:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 40152, + "id": 35308, "nodeType": "IfStatement", - "src": "13595:539:40", + "src": "13595:539:36", "trueBody": { - "id": 40151, + "id": 35307, "nodeType": "Block", - "src": "13633:501:40", + "src": "13633:501:36", "statements": [ { "condition": { - "id": 40114, + "id": 35270, "isConstant": false, "isLValue": false, "isPure": false, @@ -12707,39 +12707,39 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "13655:20:40", + "src": "13655:20:36", "subExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 40111, + "id": 35267, "name": "forwarder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40051, - "src": "13656:9:40", + "referencedDeclaration": 35207, + "src": "13656:9:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" } }, - "id": 40112, + "id": 35268, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "13666:7:40", + "memberLocation": "13666:7:36", "memberName": "isEmpty", "nodeType": "MemberAccess", - "referencedDeclaration": 44130, - "src": "13656:17:40", + "referencedDeclaration": 39306, + "src": "13656:17:36", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39457_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$39457_memory_ptr_$", "typeString": "function (struct SubnetID memory) pure returns (bool)" } }, - "id": 40113, + "id": 35269, "isConstant": false, "isLValue": false, "isPure": false, @@ -12748,7 +12748,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13656:19:40", + "src": "13656:19:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -12760,29 +12760,29 @@ "typeString": "bool" } }, - "id": 40150, + "id": 35306, "nodeType": "IfStatement", - "src": "13651:469:40", + "src": "13651:469:36", "trueBody": { - "id": 40149, + "id": 35305, "nodeType": "Block", - "src": "13677:443:40", + "src": "13677:443:36", "statements": [ { "assignments": [ - 40116, - 40119 + 35272, + 35275 ], "declarations": [ { "constant": false, - "id": 40116, + "id": 35272, "mutability": "mutable", "name": "registered", - "nameLocation": "13705:10:40", + "nameLocation": "13705:10:36", "nodeType": "VariableDeclaration", - "scope": 40149, - "src": "13700:15:40", + "scope": 35305, + "src": "13700:15:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12790,10 +12790,10 @@ "typeString": "bool" }, "typeName": { - "id": 40115, + "id": 35271, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "13700:4:40", + "src": "13700:4:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12803,54 +12803,54 @@ }, { "constant": false, - "id": 40119, + "id": 35275, "mutability": "mutable", "name": "subnet", - "nameLocation": "13732:6:40", + "nameLocation": "13732:6:36", "nodeType": "VariableDeclaration", - "scope": 40149, - "src": "13717:21:40", + "scope": 35305, + "src": "13717:21:36", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet" }, "typeName": { - "id": 40118, + "id": 35274, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 40117, + "id": 35273, "name": "Subnet", "nameLocations": [ - "13717:6:40" + "13717:6:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44303, - "src": "13717:6:40" + "referencedDeclaration": 39481, + "src": "13717:6:36" }, - "referencedDeclaration": 44303, - "src": "13717:6:40", + "referencedDeclaration": 39481, + "src": "13717:6:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet" } }, "visibility": "internal" } ], - "id": 40124, + "id": 35280, "initialValue": { "arguments": [ { - "id": 40122, + "id": 35278, "name": "forwarder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40051, - "src": "13763:9:40", + "referencedDeclaration": 35207, + "src": "13763:9:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" } } @@ -12858,38 +12858,38 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" } ], "expression": { - "id": 40120, + "id": 35276, "name": "LibGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42262, - "src": "13742:10:40", + "referencedDeclaration": 37421, + "src": "13742:10:36", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibGateway_$42262_$", + "typeIdentifier": "t_type$_t_contract$_LibGateway_$37421_$", "typeString": "type(library LibGateway)" } }, - "id": 40121, + "id": 35277, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "13753:9:40", + "memberLocation": "13753:9:36", "memberName": "getSubnet", "nodeType": "MemberAccess", - "referencedDeclaration": 42261, - "src": "13742:20:40", + "referencedDeclaration": 37420, + "src": "13742:20:36", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_SubnetID_$39457_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$39481_storage_ptr_$", "typeString": "function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)" } }, - "id": 40123, + "id": 35279, "isConstant": false, "isLValue": false, "isPure": false, @@ -12898,19 +12898,19 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13742:31:40", + "src": "13742:31:36", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$44303_storage_ptr_$", + "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_Subnet_$39481_storage_ptr_$", "typeString": "tuple(bool,struct Subnet storage pointer)" } }, "nodeType": "VariableDeclarationStatement", - "src": "13699:74:40" + "src": "13699:74:36" }, { "condition": { - "id": 40126, + "id": 35282, "isConstant": false, "isLValue": false, "isPure": false, @@ -12918,14 +12918,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "13799:11:40", + "src": "13799:11:36", "subExpression": { - "id": 40125, + "id": 35281, "name": "registered", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40116, - "src": "13800:10:40", + "referencedDeclaration": 35272, + "src": "13800:10:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12936,31 +12936,31 @@ "typeString": "bool" } }, - "id": 40131, + "id": 35287, "nodeType": "IfStatement", - "src": "13795:94:40", + "src": "13795:94:36", "trueBody": { - "id": 40130, + "id": 35286, "nodeType": "Block", - "src": "13812:77:40", + "src": "13812:77:36", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 40127, + "id": 35283, "name": "NotRegisteredSubnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38220, - "src": "13845:19:40", + "referencedDeclaration": 33236, + "src": "13845:19:36", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 40128, + "id": 35284, "isConstant": false, "isLValue": false, "isPure": false, @@ -12969,16 +12969,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13845:21:40", + "src": "13845:21:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 40129, + "id": 35285, "nodeType": "RevertStatement", - "src": "13838:28:40" + "src": "13838:28:36" } ] } @@ -12989,34 +12989,34 @@ "typeIdentifier": "t_uint64", "typeString": "uint64" }, - "id": 40137, + "id": 35293, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 40132, + "id": 35288, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40119, - "src": "13914:6:40", + "referencedDeclaration": 35275, + "src": "13914:6:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet storage pointer" } }, - "id": 40133, + "id": 35289, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "13921:20:40", + "memberLocation": "13921:20:36", "memberName": "appliedBottomUpNonce", "nodeType": "MemberAccess", - "referencedDeclaration": 44286, - "src": "13914:27:40", + "referencedDeclaration": 39467, + "src": "13914:27:36", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -13027,78 +13027,78 @@ "rightExpression": { "expression": { "expression": { - "id": 40134, + "id": 35290, "name": "crossMsg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40054, - "src": "13945:8:40", + "referencedDeclaration": 35210, + "src": "13945:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg memory" } }, - "id": 40135, + "id": 35291, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "13954:7:40", + "memberLocation": "13954:7:36", "memberName": "message", "nodeType": "MemberAccess", - "referencedDeclaration": 44173, - "src": "13945:16:40", + "referencedDeclaration": 39349, + "src": "13945:16:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$44191_memory_ptr", + "typeIdentifier": "t_struct$_StorableMsg_$39367_memory_ptr", "typeString": "struct StorableMsg memory" } }, - "id": 40136, + "id": 35292, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "13962:5:40", + "memberLocation": "13962:5:36", "memberName": "nonce", "nodeType": "MemberAccess", - "referencedDeclaration": 44186, - "src": "13945:22:40", + "referencedDeclaration": 39362, + "src": "13945:22:36", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "src": "13914:53:40", + "src": "13914:53:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 40142, + "id": 35298, "nodeType": "IfStatement", - "src": "13910:137:40", + "src": "13910:137:36", "trueBody": { - "id": 40141, + "id": 35297, "nodeType": "Block", - "src": "13969:78:40", + "src": "13969:78:36", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 40138, + "id": 35294, "name": "InvalidCrossMsgNonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38182, - "src": "14002:20:40", + "referencedDeclaration": 33198, + "src": "14002:20:36", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 40139, + "id": 35295, "isConstant": false, "isLValue": false, "isPure": false, @@ -13107,50 +13107,50 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14002:22:40", + "src": "14002:22:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 40140, + "id": 35296, "nodeType": "RevertStatement", - "src": "13995:29:40" + "src": "13995:29:36" } ] } }, { "expression": { - "id": 40147, + "id": 35303, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 40143, + "id": 35299, "name": "subnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40119, - "src": "14069:6:40", + "referencedDeclaration": 35275, + "src": "14069:6:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_Subnet_$44303_storage_ptr", + "typeIdentifier": "t_struct$_Subnet_$39481_storage_ptr", "typeString": "struct Subnet storage pointer" } }, - "id": 40145, + "id": 35301, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "14076:20:40", + "memberLocation": "14076:20:36", "memberName": "appliedBottomUpNonce", "nodeType": "MemberAccess", - "referencedDeclaration": 44286, - "src": "14069:27:40", + "referencedDeclaration": 39467, + "src": "14069:27:36", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -13160,29 +13160,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "31", - "id": 40146, + "id": 35302, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14100:1:40", + "src": "14100:1:36", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "14069:32:40", + "src": "14069:32:36", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "id": 40148, + "id": 35304, "nodeType": "ExpressionStatement", - "src": "14069:32:40" + "src": "14069:32:36" } ] } @@ -13193,23 +13193,23 @@ { "condition": { "commonType": { - "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeIdentifier": "t_enum$_IPCMsgType_$33144", "typeString": "enum IPCMsgType" }, - "id": 40156, + "id": 35312, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 40153, + "id": 35309, "name": "applyType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40091, - "src": "14152:9:40", + "referencedDeclaration": 35247, + "src": "14152:9:36", "typeDescriptions": { - "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeIdentifier": "t_enum$_IPCMsgType_$33144", "typeString": "enum IPCMsgType" } }, @@ -13217,45 +13217,45 @@ "operator": "==", "rightExpression": { "expression": { - "id": 40154, + "id": 35310, "name": "IPCMsgType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38128, - "src": "14165:10:40", + "referencedDeclaration": 33144, + "src": "14165:10:36", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_IPCMsgType_$38128_$", + "typeIdentifier": "t_type$_t_enum$_IPCMsgType_$33144_$", "typeString": "type(enum IPCMsgType)" } }, - "id": 40155, + "id": 35311, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "14176:7:40", + "memberLocation": "14176:7:36", "memberName": "TopDown", "nodeType": "MemberAccess", - "referencedDeclaration": 38126, - "src": "14165:18:40", + "referencedDeclaration": 33142, + "src": "14165:18:36", "typeDescriptions": { - "typeIdentifier": "t_enum$_IPCMsgType_$38128", + "typeIdentifier": "t_enum$_IPCMsgType_$33144", "typeString": "enum IPCMsgType" } }, - "src": "14152:31:40", + "src": "14152:31:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 40175, + "id": 35331, "nodeType": "IfStatement", - "src": "14148:236:40", + "src": "14148:236:36", "trueBody": { - "id": 40174, + "id": 35330, "nodeType": "Block", - "src": "14185:199:40", + "src": "14185:199:36", "statements": [ { "condition": { @@ -13263,34 +13263,34 @@ "typeIdentifier": "t_uint64", "typeString": "uint64" }, - "id": 40162, + "id": 35318, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 40157, + "id": 35313, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "14207:1:40", + "referencedDeclaration": 37561, + "src": "14207:1:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 40158, + "id": 35314, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "14209:19:40", + "memberLocation": "14209:19:36", "memberName": "appliedTopDownNonce", "nodeType": "MemberAccess", - "referencedDeclaration": 42343, - "src": "14207:21:40", + "referencedDeclaration": 37537, + "src": "14207:21:36", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -13301,78 +13301,78 @@ "rightExpression": { "expression": { "expression": { - "id": 40159, + "id": 35315, "name": "crossMsg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40054, - "src": "14232:8:40", + "referencedDeclaration": 35210, + "src": "14232:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg memory" } }, - "id": 40160, + "id": 35316, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "14241:7:40", + "memberLocation": "14241:7:36", "memberName": "message", "nodeType": "MemberAccess", - "referencedDeclaration": 44173, - "src": "14232:16:40", + "referencedDeclaration": 39349, + "src": "14232:16:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_StorableMsg_$44191_memory_ptr", + "typeIdentifier": "t_struct$_StorableMsg_$39367_memory_ptr", "typeString": "struct StorableMsg memory" } }, - "id": 40161, + "id": 35317, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "14249:5:40", + "memberLocation": "14249:5:36", "memberName": "nonce", "nodeType": "MemberAccess", - "referencedDeclaration": 44186, - "src": "14232:22:40", + "referencedDeclaration": 39362, + "src": "14232:22:36", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "src": "14207:47:40", + "src": "14207:47:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 40167, + "id": 35323, "nodeType": "IfStatement", - "src": "14203:123:40", + "src": "14203:123:36", "trueBody": { - "id": 40166, + "id": 35322, "nodeType": "Block", - "src": "14256:70:40", + "src": "14256:70:36", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 40163, + "id": 35319, "name": "InvalidCrossMsgNonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38182, - "src": "14285:20:40", + "referencedDeclaration": 33198, + "src": "14285:20:36", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 40164, + "id": 35320, "isConstant": false, "isLValue": false, "isPure": false, @@ -13381,50 +13381,50 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14285:22:40", + "src": "14285:22:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 40165, + "id": 35321, "nodeType": "RevertStatement", - "src": "14278:29:40" + "src": "14278:29:36" } ] } }, { "expression": { - "id": 40172, + "id": 35328, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 40168, + "id": 35324, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "14343:1:40", + "referencedDeclaration": 37561, + "src": "14343:1:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 40170, + "id": 35326, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "14345:19:40", + "memberLocation": "14345:19:36", "memberName": "appliedTopDownNonce", "nodeType": "MemberAccess", - "referencedDeclaration": 42343, - "src": "14343:21:40", + "referencedDeclaration": 37537, + "src": "14343:21:36", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -13434,29 +13434,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "31", - "id": 40171, + "id": 35327, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14368:1:40", + "src": "14368:1:36", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "14343:26:40", + "src": "14343:26:36", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "id": 40173, + "id": 35329, "nodeType": "ExpressionStatement", - "src": "14343:26:40" + "src": "14343:26:36" } ] } @@ -13467,33 +13467,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 40176, + "id": 35332, "name": "crossMsg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40054, - "src": "14453:8:40", + "referencedDeclaration": 35210, + "src": "14453:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg memory" } }, - "id": 40178, + "id": 35334, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "14462:7:40", + "memberLocation": "14462:7:36", "memberName": "execute", "nodeType": "MemberAccess", - "referencedDeclaration": 41044, - "src": "14453:16:40", + "referencedDeclaration": 36200, + "src": "14453:16:36", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_CrossMsg_$44176_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_struct$_CrossMsg_$44176_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_CrossMsg_$39352_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_struct$_CrossMsg_$39352_memory_ptr_$", "typeString": "function (struct CrossMsg memory) returns (bytes memory)" } }, - "id": 40179, + "id": 35335, "isConstant": false, "isLValue": false, "isPure": false, @@ -13502,40 +13502,40 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14453:18:40", + "src": "14453:18:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 40180, + "id": 35336, "nodeType": "ExpressionStatement", - "src": "14453:18:40" + "src": "14453:18:36" }, { - "functionReturnParameters": 40056, - "id": 40181, + "functionReturnParameters": 35212, + "id": 35337, "nodeType": "Return", - "src": "14485:7:40" + "src": "14485:7:36" } ] } }, { "assignments": [ - 40185 + 35341 ], "declarations": [ { "constant": false, - "id": 40185, + "id": 35341, "mutability": "mutable", "name": "cid", - "nameLocation": "14628:3:40", + "nameLocation": "14628:3:36", "nodeType": "VariableDeclaration", - "scope": 40198, - "src": "14620:11:40", + "scope": 35354, + "src": "14620:11:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13543,10 +13543,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 40184, + "id": 35340, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "14620:7:40", + "src": "14620:7:36", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -13555,39 +13555,39 @@ "visibility": "internal" } ], - "id": 40189, + "id": 35345, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 40186, + "id": 35342, "name": "crossMsg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40054, - "src": "14634:8:40", + "referencedDeclaration": 35210, + "src": "14634:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg memory" } }, - "id": 40187, + "id": 35343, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "14643:6:40", + "memberLocation": "14643:6:36", "memberName": "toHash", "nodeType": "MemberAccess", - "referencedDeclaration": 40906, - "src": "14634:15:40", + "referencedDeclaration": 36062, + "src": "14634:15:36", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_CrossMsg_$44176_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_CrossMsg_$44176_memory_ptr_$", + "typeIdentifier": "t_function_internal_pure$_t_struct$_CrossMsg_$39352_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_CrossMsg_$39352_memory_ptr_$", "typeString": "function (struct CrossMsg memory) pure returns (bytes32)" } }, - "id": 40188, + "id": 35344, "isConstant": false, "isLValue": false, "isPure": false, @@ -13596,7 +13596,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14634:17:40", + "src": "14634:17:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -13604,11 +13604,11 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "14620:31:40" + "src": "14620:31:36" }, { "expression": { - "id": 40196, + "id": 35352, "isConstant": false, "isLValue": false, "isPure": false, @@ -13616,40 +13616,40 @@ "leftHandSide": { "baseExpression": { "expression": { - "id": 40190, + "id": 35346, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42399, - "src": "14662:1:40", + "referencedDeclaration": 37561, + "src": "14662:1:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_GatewayActorStorage_$42387_storage", + "typeIdentifier": "t_struct$_GatewayActorStorage_$37549_storage", "typeString": "struct GatewayActorStorage storage ref" } }, - "id": 40193, + "id": 35349, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "14664:7:40", + "memberLocation": "14664:7:36", "memberName": "postbox", "nodeType": "MemberAccess", - "referencedDeclaration": 42328, - "src": "14662:9:40", + "referencedDeclaration": 37474, + "src": "14662:9:36", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$44176_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$39352_storage_$", "typeString": "mapping(bytes32 => struct CrossMsg storage ref)" } }, - "id": 40194, + "id": 35350, "indexExpression": { - "id": 40192, + "id": 35348, "name": "cid", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40185, - "src": "14672:3:40", + "referencedDeclaration": 35341, + "src": "14672:3:36", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -13660,85 +13660,85 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "14662:14:40", + "src": "14662:14:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_storage", + "typeIdentifier": "t_struct$_CrossMsg_$39352_storage", "typeString": "struct CrossMsg storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 40195, + "id": 35351, "name": "crossMsg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40054, - "src": "14679:8:40", + "referencedDeclaration": 35210, + "src": "14679:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg memory" } }, - "src": "14662:25:40", + "src": "14662:25:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_storage", + "typeIdentifier": "t_struct$_CrossMsg_$39352_storage", "typeString": "struct CrossMsg storage ref" } }, - "id": 40197, + "id": 35353, "nodeType": "ExpressionStatement", - "src": "14662:25:40" + "src": "14662:25:36" } ] }, "documentation": { - "id": 40048, + "id": 35204, "nodeType": "StructuredDocumentation", - "src": "12544:265:40", + "src": "12544:265:36", "text": "@notice executes a cross message if its destination is the current network, otherwise adds it to the postbox to be propagated further\n @param forwarder - the subnet that handles the cross message\n @param crossMsg - the cross message to be executed" }, "implemented": true, "kind": "function", "modifiers": [], "name": "_applyMsg", - "nameLocation": "12823:9:40", + "nameLocation": "12823:9:36", "parameters": { - "id": 40055, + "id": 35211, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 40051, + "id": 35207, "mutability": "mutable", "name": "forwarder", - "nameLocation": "12849:9:40", + "nameLocation": "12849:9:36", "nodeType": "VariableDeclaration", - "scope": 40199, - "src": "12833:25:40", + "scope": 35355, + "src": "12833:25:36", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID" }, "typeName": { - "id": 40050, + "id": 35206, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 40049, + "id": 35205, "name": "SubnetID", "nameLocations": [ - "12833:8:40" + "12833:8:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44279, - "src": "12833:8:40" + "referencedDeclaration": 39457, + "src": "12833:8:36" }, - "referencedDeclaration": 44279, - "src": "12833:8:40", + "referencedDeclaration": 39457, + "src": "12833:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage_ptr", "typeString": "struct SubnetID" } }, @@ -13746,80 +13746,80 @@ }, { "constant": false, - "id": 40054, + "id": 35210, "mutability": "mutable", "name": "crossMsg", - "nameLocation": "12876:8:40", + "nameLocation": "12876:8:36", "nodeType": "VariableDeclaration", - "scope": 40199, - "src": "12860:24:40", + "scope": 35355, + "src": "12860:24:36", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg" }, "typeName": { - "id": 40053, + "id": 35209, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 40052, + "id": 35208, "name": "CrossMsg", "nameLocations": [ - "12860:8:40" + "12860:8:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44176, - "src": "12860:8:40" + "referencedDeclaration": 39352, + "src": "12860:8:36" }, - "referencedDeclaration": 44176, - "src": "12860:8:40", + "referencedDeclaration": 39352, + "src": "12860:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_storage_ptr", "typeString": "struct CrossMsg" } }, "visibility": "internal" } ], - "src": "12832:53:40" + "src": "12832:53:36" }, "returnParameters": { - "id": 40056, + "id": 35212, "nodeType": "ParameterList", "parameters": [], - "src": "12895:0:40" + "src": "12895:0:36" }, - "scope": 40237, + "scope": 35393, "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { - "id": 40236, + "id": 35392, "nodeType": "FunctionDefinition", - "src": "15035:318:40", + "src": "15035:318:36", "nodes": [], "body": { - "id": 40235, + "id": 35391, "nodeType": "Block", - "src": "15124:229:40", + "src": "15124:229:36", "nodes": [], "statements": [ { "assignments": [ - 40211 + 35367 ], "declarations": [ { "constant": false, - "id": 40211, + "id": 35367, "mutability": "mutable", "name": "crossMsgsLength", - "nameLocation": "15142:15:40", + "nameLocation": "15142:15:36", "nodeType": "VariableDeclaration", - "scope": 40235, - "src": "15134:23:40", + "scope": 35391, + "src": "15134:23:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13827,10 +13827,10 @@ "typeString": "uint256" }, "typeName": { - "id": 40210, + "id": 35366, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "15134:7:40", + "src": "15134:7:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13839,79 +13839,79 @@ "visibility": "internal" } ], - "id": 40214, + "id": 35370, "initialValue": { "expression": { - "id": 40212, + "id": 35368, "name": "crossMsgs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40207, - "src": "15160:9:40", + "referencedDeclaration": 35363, + "src": "15160:9:36", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_memory_ptr_$dyn_memory_ptr", "typeString": "struct CrossMsg memory[] memory" } }, - "id": 40213, + "id": 35369, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "15170:6:40", + "memberLocation": "15170:6:36", "memberName": "length", "nodeType": "MemberAccess", - "src": "15160:16:40", + "src": "15160:16:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "15134:42:40" + "src": "15134:42:36" }, { "body": { - "id": 40233, + "id": 35389, "nodeType": "Block", - "src": "15229:118:40", + "src": "15229:118:36", "statements": [ { "expression": { "arguments": [ { - "id": 40223, + "id": 35379, "name": "forwarder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40203, - "src": "15253:9:40", + "referencedDeclaration": 35359, + "src": "15253:9:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" } }, { "baseExpression": { - "id": 40224, + "id": 35380, "name": "crossMsgs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40207, - "src": "15264:9:40", + "referencedDeclaration": 35363, + "src": "15264:9:36", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_memory_ptr_$dyn_memory_ptr", "typeString": "struct CrossMsg memory[] memory" } }, - "id": 40226, + "id": 35382, "indexExpression": { - "id": 40225, + "id": 35381, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40216, - "src": "15274:1:40", + "referencedDeclaration": 35372, + "src": "15274:1:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13922,9 +13922,9 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "15264:12:40", + "src": "15264:12:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg memory" } } @@ -13932,26 +13932,26 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" }, { - "typeIdentifier": "t_struct$_CrossMsg_$44176_memory_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_memory_ptr", "typeString": "struct CrossMsg memory" } ], - "id": 40222, + "id": 35378, "name": "_applyMsg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40199, - "src": "15243:9:40", + "referencedDeclaration": 35355, + "src": "15243:9:36", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_SubnetID_$44279_memory_ptr_$_t_struct$_CrossMsg_$44176_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_SubnetID_$39457_memory_ptr_$_t_struct$_CrossMsg_$39352_memory_ptr_$returns$__$", "typeString": "function (struct SubnetID memory,struct CrossMsg memory)" } }, - "id": 40227, + "id": 35383, "isConstant": false, "isLValue": false, "isPure": false, @@ -13960,25 +13960,25 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15243:34:40", + "src": "15243:34:36", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 40228, + "id": 35384, "nodeType": "ExpressionStatement", - "src": "15243:34:40" + "src": "15243:34:36" }, { - "id": 40232, + "id": 35388, "nodeType": "UncheckedBlock", - "src": "15291:46:40", + "src": "15291:46:36", "statements": [ { "expression": { - "id": 40230, + "id": 35386, "isConstant": false, "isLValue": false, "isPure": false, @@ -13986,14 +13986,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": true, - "src": "15319:3:40", + "src": "15319:3:36", "subExpression": { - "id": 40229, + "id": 35385, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40216, - "src": "15321:1:40", + "referencedDeclaration": 35372, + "src": "15321:1:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14004,9 +14004,9 @@ "typeString": "uint256" } }, - "id": 40231, + "id": 35387, "nodeType": "ExpressionStatement", - "src": "15319:3:40" + "src": "15319:3:36" } ] } @@ -14017,18 +14017,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 40221, + "id": 35377, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 40219, + "id": 35375, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40216, - "src": "15206:1:40", + "referencedDeclaration": 35372, + "src": "15206:1:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14037,38 +14037,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 40220, + "id": 35376, "name": "crossMsgsLength", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40211, - "src": "15210:15:40", + "referencedDeclaration": 35367, + "src": "15210:15:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "15206:19:40", + "src": "15206:19:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 40234, + "id": 35390, "initializationExpression": { "assignments": [ - 40216 + 35372 ], "declarations": [ { "constant": false, - "id": 40216, + "id": 35372, "mutability": "mutable", "name": "i", - "nameLocation": "15199:1:40", + "nameLocation": "15199:1:36", "nodeType": "VariableDeclaration", - "scope": 40234, - "src": "15191:9:40", + "scope": 35390, + "src": "15191:9:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14076,10 +14076,10 @@ "typeString": "uint256" }, "typeName": { - "id": 40215, + "id": 35371, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "15191:7:40", + "src": "15191:7:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14088,17 +14088,17 @@ "visibility": "internal" } ], - "id": 40218, + "id": 35374, "initialValue": { "hexValue": "30", - "id": 40217, + "id": 35373, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "15203:1:40", + "src": "15203:1:36", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -14106,60 +14106,60 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "15191:13:40" + "src": "15191:13:36" }, "nodeType": "ForStatement", - "src": "15186:161:40" + "src": "15186:161:36" } ] }, "documentation": { - "id": 40200, + "id": 35356, "nodeType": "StructuredDocumentation", - "src": "14700:330:40", + "src": "14700:330:36", "text": "@notice applies a cross-net messages coming from some other subnet.\n The forwarder argument determines the previous subnet that submitted the checkpoint triggering the cross-net message execution.\n @param forwarder - the subnet that handles the messages\n @param crossMsgs - the cross-net messages to apply" }, "implemented": true, "kind": "function", "modifiers": [], "name": "_applyMessages", - "nameLocation": "15044:14:40", + "nameLocation": "15044:14:36", "parameters": { - "id": 40208, + "id": 35364, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 40203, + "id": 35359, "mutability": "mutable", "name": "forwarder", - "nameLocation": "15075:9:40", + "nameLocation": "15075:9:36", "nodeType": "VariableDeclaration", - "scope": 40236, - "src": "15059:25:40", + "scope": 35392, + "src": "15059:25:36", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID" }, "typeName": { - "id": 40202, + "id": 35358, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 40201, + "id": 35357, "name": "SubnetID", "nameLocations": [ - "15059:8:40" + "15059:8:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44279, - "src": "15059:8:40" + "referencedDeclaration": 39457, + "src": "15059:8:36" }, - "referencedDeclaration": 44279, - "src": "15059:8:40", + "referencedDeclaration": 39457, + "src": "15059:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage_ptr", "typeString": "struct SubnetID" } }, @@ -14167,60 +14167,60 @@ }, { "constant": false, - "id": 40207, + "id": 35363, "mutability": "mutable", "name": "crossMsgs", - "nameLocation": "15104:9:40", + "nameLocation": "15104:9:36", "nodeType": "VariableDeclaration", - "scope": 40236, - "src": "15086:27:40", + "scope": 35392, + "src": "15086:27:36", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_memory_ptr_$dyn_memory_ptr", "typeString": "struct CrossMsg[]" }, "typeName": { "baseType": { - "id": 40205, + "id": 35361, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 40204, + "id": 35360, "name": "CrossMsg", "nameLocations": [ - "15086:8:40" + "15086:8:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44176, - "src": "15086:8:40" + "referencedDeclaration": 39352, + "src": "15086:8:36" }, - "referencedDeclaration": 44176, - "src": "15086:8:40", + "referencedDeclaration": 39352, + "src": "15086:8:36", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_storage_ptr", "typeString": "struct CrossMsg" } }, - "id": 40206, + "id": 35362, "nodeType": "ArrayTypeName", - "src": "15086:10:40", + "src": "15086:10:36", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_storage_$dyn_storage_ptr", "typeString": "struct CrossMsg[]" } }, "visibility": "internal" } ], - "src": "15058:56:40" + "src": "15058:56:36" }, "returnParameters": { - "id": 40209, + "id": 35365, "nodeType": "ParameterList", "parameters": [], - "src": "15124:0:40" + "src": "15124:0:36" }, - "scope": 40237, + "scope": 35393, "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" @@ -14230,18 +14230,18 @@ "baseContracts": [ { "baseName": { - "id": 39309, + "id": 34465, "name": "GatewayActorModifiers", "nameLocations": [ - "1489:21:40" + "1489:21:36" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 42504, - "src": "1489:21:40" + "referencedDeclaration": 37666, + "src": "1489:21:36" }, - "id": 39310, + "id": 34466, "nodeType": "InheritanceSpecifier", - "src": "1489:21:40" + "src": "1489:21:36" } ], "canonicalName": "GatewayRouterFacet", @@ -14249,43 +14249,43 @@ "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ - 40237, - 42504 + 35393, + 37666 ], "name": "GatewayRouterFacet", - "nameLocation": "1467:18:40", - "scope": 40238, + "nameLocation": "1467:18:36", + "scope": 35394, "usedErrors": [ 4, 8, 29492, 29497, 29500, - 38156, - 38164, - 38166, - 38170, - 38172, - 38174, - 38176, - 38178, - 38180, - 38182, - 38188, - 38200, - 38204, - 38206, - 38210, - 38214, - 38216, - 38220, - 38222, - 38228, - 38230 + 33172, + 33180, + 33182, + 33186, + 33188, + 33190, + 33192, + 33194, + 33196, + 33198, + 33204, + 33216, + 33220, + 33222, + 33226, + 33230, + 33232, + 33236, + 33238, + 33244, + 33246 ] } ], "license": "UNLICENSED" }, - "id": 40 + "id": 36 } \ No newline at end of file diff --git a/contracts/SubnetActorGetterFacet.json b/contracts/SubnetActorGetterFacet.json index f2640520..f63ce6a2 100644 --- a/contracts/SubnetActorGetterFacet.json +++ b/contracts/SubnetActorGetterFacet.json @@ -580,7 +580,7 @@ }, "deployedBytecode": { "object": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c806380f76021116100b8578063ac9c2a6f1161007c578063ac9c2a6f146102d0578063ad81e244146102f0578063b7ab4db5146102f8578063c5ab22411461030d578063cf33125014610325578063cfca28241461033a57600080fd5b806380f76021146102835780638b0e9f3f146102985780638ef3f761146102a05780639e33bd02146102b3578063a7f0b3de146102bb57600080fd5b8063264762041161010a57806326476204146101de57806332e0aa1f14610207578063599c7bd1146102325780635f832dbf1461023a57806373f273fc146102425780637d9740f41461026b57600080fd5b806306c468531461014757806306fdde03146101785780630f43a6771461018a57806310d500e114610192578063200d2ed2146101c4575b600080fd5b600954600160801b90046001600160401b03165b6040516001600160401b0390911681526020015b60405180910390f35b600a545b60405190815260200161016f565b61017c61034b565b61019a61035c565b604080516001600160401b039485168152928416602084015292169181019190915260600161016f565b600d54600160a01b900460ff1660405161016f91906110d0565b61017c6101ec3660046110ea565b6001600160a01b031660009081526001602052604090205490565b61021a610215366004611113565b6103bb565b6040516001600160a01b03909116815260200161016f565b61015b6103ce565b600c5461017c565b61017c6102503660046110ea565b6001600160a01b031660009081526002602052604090205490565b600954600160401b90046001600160401b031661015b565b61028b6103fb565b60405161016f9190611195565b60075461017c565b60125460ff1660405161016f91906111a8565b60085461017c565b6102c3610490565b60405161016f9190611202565b6102e36102de366004611231565b610525565b60405161016f9190611459565b61015b610cad565b610300610ce0565b60405161016f919061153f565b600954600160c01b90046001600160401b031661015b565b61032d610d85565b60405161016f919061158c565b600d546001600160a01b031661021a565b6000610357600e611073565b905090565b60008060006103b07f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27154600160401b81046001600160401b0390811692600160801b8304821692600160c01b900490911690565b925092509250909192565b60006103c8600e8361107d565b92915050565b60006103577f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e2735460ff1690565b604080518082019091526000815260606020820152604080518082018252601080546001600160401b0316825260118054845160208281028201810190965281815293949293838601939092919083018282801561048257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610464575b505050505081525050905090565b6060600060060180546104a29061164c565b80601f01602080910402602001604051908101604052809291908181526020018280546104ce9061164c565b801561051b5780601f106104f05761010080835404028352916020019161051b565b820191906000526020600020905b8154815290600101906020018083116104fe57829003601f168201915b5050505050905090565b60606000610533848461169c565b90506000816001600160401b03166001600160401b03811115610558576105586116bc565b6040519080825280602002602001820160405280156105d157816020015b6040805161012081018252600060e0820181815260606101008401819052908352602083018290529282018190528282018390526080820183905260a082015260c08101919091528152602001906001900390816105765790505b50905060005b826001600160401b0316816001600160401b03161015610ca457600560006105ff83896116d2565b6001600160401b0390811682526020808301939093526040918201600020825161012081018452815490921660e08301908152600182018054855181880281018801909652808652939592948694929386936101008701939183018282801561069157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610673575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015610a9b5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d019390918301828280156107a257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610784575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906107dc9061164c565b80601f01602080910402602001604051908101604052809291908181526020018280546108089061164c565b80156108555780601f1061082a57610100808354040283529160200191610855565b820191906000526020600020905b81548152906001019060200180831161083857829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b03168284019081526005860180548551602082810282018101909752818152968601969495939486948693606087019390918301828280156108e657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116108c8575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906109209061164c565b80601f016020809104026020016040519081016040528092919081815260200182805461094c9061164c565b80156109995780601f1061096e57610100808354040283529160200191610999565b820191906000526020600020905b81548152906001019060200180831161097c57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a820180546080909201916109f49061164c565b80601f0160208091040260200160405190810160405280929190818152602001828054610a209061164c565b8015610a6d5780601f10610a4257610100808354040283529160200191610a6d565b820191906000526020600020905b815481529060010190602001808311610a5057829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016106fc565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015610bd2576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015610b5e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b40575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610bba57602002820191906000526020600020905b815481526020019060010190808311610ba6575b50505050508152505081526020019060010190610ac8565b50505050815260200160068201548152602001600782018054610bf49061164c565b80601f0160208091040260200160405190810160405280929190818152602001828054610c209061164c565b8015610c6d5780601f10610c4257610100808354040283529160200191610c6d565b820191906000526020600020905b815481529060010190602001808311610c5057829003601f168201915b50505050508152505082826001600160401b031681518110610c9157610c916116f2565b60209081029190910101526001016105d7565b50949350505050565b60006103577f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e270546001600160401b031690565b60606000610cee600e611073565b90506000816001600160401b03811115610d0a57610d0a6116bc565b604051908082528060200260200182016040528015610d33578160200160208202803683370190505b50905060005b82811015610d7e57610d4c600e8261107d565b828281518110610d5e57610d5e6116f2565b6001600160a01b0390921660209283029190910190910152600101610d39565b5092915050565b6040805180820190915260608152600060208201526000610da6600e611073565b90506000816001600160401b03811115610dc257610dc26116bc565b604051908082528060200260200182016040528015610e2757816020015b60408051608081018252600080825260208083018290528351808501855291825260609082018190529282015281810191909152815260200190600190039081610de05790505b50905060005b8281101561104e57604080516080810190915280610e4c600e8461107d565b6001600160a01b0316815260200160016000610e69600e8661107d565b6001600160a01b031681526020808201929092526040016000908120548352910190600490610e99600e8661107d565b6001600160a01b0316815260208082019290925260409081016000208151808301909252805460ff1682526001810180549293919291840191610edb9061164c565b80601f0160208091040260200160405190810160405280929190818152602001828054610f079061164c565b8015610f545780601f10610f2957610100808354040283529160200191610f54565b820191906000526020600020905b815481529060010190602001808311610f3757829003601f168201915b50505091909252505050815260200160036000610f72600e8661107d565b6001600160a01b03166001600160a01b031681526020019081526020016000208054610f9d9061164c565b80601f0160208091040260200160405190810160405280929190818152602001828054610fc99061164c565b80156110165780601f10610feb57610100808354040283529160200191611016565b820191906000526020600020905b815481529060010190602001808311610ff957829003601f168201915b5050505050815250828281518110611030576110306116f2565b6020026020010181905250808061104690611708565b915050610e2d565b50604080518082019091529081526009546001600160401b0316602082015292915050565b60006103c8825490565b60006110898383611090565b9392505050565b60008260000182815481106110a7576110a76116f2565b9060005260206000200154905092915050565b634e487b7160e01b600052602160045260246000fd5b60208101600683106110e4576110e46110ba565b91905290565b6000602082840312156110fc57600080fd5b81356001600160a01b038116811461108957600080fd5b60006020828403121561112557600080fd5b5035919050565b6000604083016001600160401b0383511684526020808401516040828701528281518085526060880191508383019450600092505b8083101561118a5784516001600160a01b03168252938301936001929092019190830190611161565b509695505050505050565b602081526000611089602083018461112c565b60208101600183106110e4576110e46110ba565b6000815180845260005b818110156111e2576020818501810151868301820152016111c6565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600061108960208301846111bc565b80356001600160401b038116811461122c57600080fd5b919050565b6000806040838503121561124457600080fd5b61124d83611215565b915061125b60208401611215565b90509250929050565b60ff8151168252600060208201516040602085015261128660408501826111bc565b949350505050565b60008151604084526112a3604085018261112c565b9050602083015184820360208601526112bc8282611264565b95945050505050565b600081518084526020808501808196508360051b8101915082860160005b858110156113ac578284038952815160408151818752805160c080848a01526113106101008a018361128e565b915089830151603f196060818c860301818d015261132e858461128e565b9686015160808d810191909152908601516001600160401b031660a0808e0191909152908601516001600160e01b031916938c0193909352918401518a860390920160e08b01525092905061138381846111bc565b93890151801515898b0152939250611399915050565b99860199945050908401906001016112e3565b5091979650505050505050565b600081518084526020808501808196508360051b810191508286016000805b8681101561144b578385038a528251604081518188526113fa8289018261112c565b92890151888403898b01528051808552908a01938693508a0191505b808310156114365783518252928901926001929092019190890190611416565b509b88019b96505050918501916001016113d8565b509298975050505050505050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b8381101561153157603f19898403018552815160e081518186526114a68287018261112c565b9150506001600160401b038983015116898601528782015188860152606080830151868303828801526114d983826112c5565b92505050608080830151868303828801526114f483826113b9565b9250505060a080830151818701525060c0808301519250858203818701525061151d81836111bc565b968901969450505090860190600101611480565b509098975050505050505050565b6020808252825182820181905260009190848201906040850190845b818110156115805783516001600160a01b03168352928401929184019160010161155b565b50909695505050505050565b600060208083526060808401855160408085880152828251808552608094508489019150848160051b8a0101878501945060005b8281101561162a578a8203607f19018452855180516001600160a01b03168352898101518a840152858101518684018990526115fe89850182611264565b918a0151848303858c015291905061161681836111bc565b978b0197958b0195935050506001016115c0565b50968a01516001600160401b038116848b0152969a9950505050505050505050565b600181811c9082168061166057607f821691505b60208210810361168057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160401b03828116828216039080821115610d7e57610d7e611686565b634e487b7160e01b600052604160045260246000fd5b6001600160401b03818116838216019080821115610d7e57610d7e611686565b634e487b7160e01b600052603260045260246000fd5b60006001820161171a5761171a611686565b506001019056fea2646970667358221220c2b2f9a32af319879dee4b360c43b39be9d447bced8a03f418758260337519ae64736f6c63430008130033", - "sourceMap": "1527:4685:63:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3494:107;3573:21;;-1:-1:-1;;;3573:21:63;;-1:-1:-1;;;;;3573:21:63;3494:107;;;-1:-1:-1;;;;;283:31:75;;;265:50;;253:2;238:18;3494:107:63;;;;;;;;4045:78;4110:6;;4045:78;;;472:25:75;;;460:2;445:18;4045:78:63;326:177:75;4165:103:63;;;:::i;2774:176::-;;;:::i;:::-;;;;-1:-1:-1;;;;;941:15:75;;;923:34;;993:15;;;988:2;973:18;;966:43;1045:15;;1025:18;;;1018:43;;;;874:2;859:18;2774:176:63;690:377:75;2296:81:63;2362:8;;-1:-1:-1;;;2362:8:63;;;;2296:81;;;;;;:::i;3080:92::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3155:10:63;3129:7;3155:10;;;:7;:10;;;;;;;3080:92;4367:114;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2092:32:75;;;2074:51;;2062:2;2047:18;4367:114:63;1928:203:75;3702:115:63;;;:::i;2515:122::-;2602:28;;2515:122;;2956:118;;;;;;:::i;:::-;-1:-1:-1;;;;;3044:23:63;3018:7;3044:23;;;:20;:23;;;;;;;2956:118;3383:105;3461:20;;-1:-1:-1;;;3461:20:63;;-1:-1:-1;;;;;3461:20:63;3383:105;;2156:95;;;:::i;:::-;;;;;;;:::i;2419:90::-;2490:12;;2419:90;;3823:94;3899:11;;;;3823:94;;;;;;:::i;3923:116::-;4007:25;;3923:116;;3607:89;;;:::i;:::-;;;;;;;:::i;5753:457::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2643:125::-;;;:::i;4583:360::-;;;:::i;:::-;;;;;;;:::i;3282:95::-;3355:15;;-1:-1:-1;;;3355:15:63;;-1:-1:-1;;;;;3355:15:63;3282:95;;5031:654;;;:::i;:::-;;;;;;;:::i;3178:98::-;3253:16;;-1:-1:-1;;;;;3253:16:63;3178:98;;4165:103;4214:7;4240:21;:12;:19;:21::i;:::-;4233:28;;4165:103;:::o;2774:176::-;2824:6;2832;2840;2916:27;9676:17:54;:24;-1:-1:-1;;;9676:24:54;;-1:-1:-1;;;;;9676:24:54;;;;-1:-1:-1;;;9702:23:54;;;;;-1:-1:-1;;;9727:22:54;;;;;;9533:224;2916:27:63;2909:34;;;;;;2774:176;;;:::o;4367:114::-;4426:7;4452:22;:12;4468:5;4452:15;:22::i;:::-;4445:29;4367:114;-1:-1:-1;;4367:114:63:o;3702:115::-;3755:6;3780:30;10064:20:54;;;;;9935:156;2156:95:63;-1:-1:-1;;;;;;;;;;;;;;;;;2227:17:63;;;;;;;;2234:10;2227:17;;-1:-1:-1;;;;;2227:17:63;;;;;;;;;;;;;;;;;;;;;;;;2234:10;;2227:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2227:17:63;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:95;:::o;3607:89::-;3649:12;3680:1;:9;;3673:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3607:89;:::o;5753:457::-;5865:27;5904:11;5918:19;5928:9;5918:7;:19;:::i;:::-;5904:33;;5947:31;6006:4;-1:-1:-1;;;;;5981:30:63;-1:-1:-1;;;;;5981:30:63;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5981:30:63;;;;;;;;;;;;;;;;5947:64;;6027:8;6022:161;6045:4;-1:-1:-1;;;;;6041:8:63;:1;-1:-1:-1;;;;;6041:8:63;;6022:161;;;6076:22;:1;6099:13;6111:1;6099:9;:13;:::i;:::-;-1:-1:-1;;;;;6076:37:63;;;;;;;;;;;;;;;;;-1:-1:-1;6076:37:63;6067:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6076:37;;6067:46;;;;6076:37;;6067:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6067:46:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6067:46:63;-1:-1:-1;;;;;6067:46:63;-1:-1:-1;;;;;6067:46:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6067:46:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6067:46:63;;;;;;;;;;;;;;;;-1:-1:-1;;;6067:46:63;;;;-1:-1:-1;;;6067:46:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6067:46:63;;;;-1:-1:-1;;;6067:46:63;;-1:-1:-1;6067:46:63;;;;;;;;;;;;;;;-1:-1:-1;;;;;6067:46:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6067:46:63;;;;;;;;;;;;;;;;-1:-1:-1;;;6067:46:63;;;;-1:-1:-1;;;6067:46:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6067:46:63;;;;-1:-1:-1;;;6067:46:63;;-1:-1:-1;6067:46:63;;;;;;;;;;;;;;-1:-1:-1;;;;;6067:46:63;;;;;;-1:-1:-1;;;6067:46:63;;;;-1:-1:-1;;;;;;6067:46:63;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6067:46:63;;;;-1:-1:-1;;;6067:46:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6067:46:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6067:46:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:3;6071:1;-1:-1:-1;;;;;6067:6:63;;;;;;;;;:::i;:::-;;;;;;;;;;:46;6155:3;;6022:161;;;-1:-1:-1;6200:3:63;5753:457;-1:-1:-1;;;;5753:457:63:o;2643:125::-;2701:6;2726:35;1522:42:54;9897:25;-1:-1:-1;;;;;9897:25:54;;9763:166;4583:360:63;4631:16;4659:14;4676:21;:12;:19;:21::i;:::-;4659:38;;4707:23;4747:6;-1:-1:-1;;;;;4733:21:63;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4733:21:63;;4707:47;;4770:9;4765:148;4789:6;4785:1;:10;4765:148;;;4825:18;:12;4841:1;4825:15;:18::i;:::-;4813:6;4820:1;4813:9;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4813:30:63;;;:9;;;;;;;;;;;:30;4885:3;;4765:148;;;-1:-1:-1;4930:6:63;4583:360;-1:-1:-1;;4583:360:63:o;5031:654::-;-1:-1:-1;;;;;;;;;;;;;;;;;5112:14:63;5129:21;:12;:19;:21::i;:::-;5112:38;;5161:30;5214:6;-1:-1:-1;;;;;5194:27:63;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5194:27:63;;;;;;;;;;;;;;;;5161:60;;5237:9;5232:350;5256:6;5252:1;:10;5232:350;;;5296:275;;;;;;;;;;5334:18;:12;5350:1;5334:15;:18::i;:::-;-1:-1:-1;;;;;5296:275:63;;;;;5378:7;:1;5386:18;:12;5402:1;5386:15;:18::i;:::-;-1:-1:-1;;;;;5378:27:63;;;;;;;;;;;;;-1:-1:-1;5378:27:63;;;;5296:275;;;;;5435:26;;5462:18;:12;5478:1;5462:15;:18::i;:::-;-1:-1:-1;;;;;5435:46:63;;;;;;;;;;;;;;;-1:-1:-1;5435:46:63;5296:275;;;;;;;;;;;;;;;;;;;;;5435:46;;5296:275;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5296:275:63;;;;-1:-1:-1;;;5296:275:63;;;;5513:23;:1;5537:18;:12;5553:1;5537:15;:18::i;:::-;-1:-1:-1;;;;;5513:43:63;-1:-1:-1;;;;;5513:43:63;;;;;;;;;;;;5296:275;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5283:7;5291:1;5283:10;;;;;;;;:::i;:::-;;;;;;:288;;;;5264:3;;;;;:::i;:::-;;;;5232:350;;;-1:-1:-1;5599:79:63;;;;;;;;;;;;5655:21;;-1:-1:-1;;;;;5655:21:63;5599:79;;;;;5031:654;-1:-1:-1;;5031:654:63:o;9107:115:23:-;9170:7;9196:19;9204:3;4546:18;;4464:107;9564:156;9638:7;9688:22;9692:3;9704:5;9688:3;:22::i;:::-;9680:31;9564:156;-1:-1:-1;;;9564:156:23:o;4913:118::-;4980:7;5006:3;:11;;5018:5;5006:18;;;;;;;;:::i;:::-;;;;;;;;;4999:25;;4913:118;;;;:::o;1072:127:75:-;1133:10;1128:3;1124:20;1121:1;1114:31;1164:4;1161:1;1154:15;1188:4;1185:1;1178:15;1204:243;1348:2;1333:18;;1381:1;1370:13;;1360:47;;1387:18;;:::i;:::-;1416:25;;;1204:243;:::o;1452:286::-;1511:6;1564:2;1552:9;1543:7;1539:23;1535:32;1532:52;;;1580:1;1577;1570:12;1532:52;1606:23;;-1:-1:-1;;;;;1658:31:75;;1648:42;;1638:70;;1704:1;1701;1694:12;1743:180;1802:6;1855:2;1843:9;1834:7;1830:23;1826:32;1823:52;;;1871:1;1868;1861:12;1823:52;-1:-1:-1;1894:23:75;;1743:180;-1:-1:-1;1743:180:75:o;2136:689::-;2187:3;2226:4;2221:3;2217:14;-1:-1:-1;;;;;2262:5:75;2256:12;2252:37;2247:3;2240:50;2309:4;2359:2;2352:5;2348:14;2342:21;2393:4;2388:2;2383:3;2379:12;2372:26;2420:4;2453:12;2447:19;2488:6;2482:4;2475:20;2522:2;2517:3;2513:12;2504:21;;2566:2;2552:12;2548:21;2534:35;;2587:1;2578:10;;2597:201;2611:6;2608:1;2605:13;2597:201;;;2678:13;;-1:-1:-1;;;;;2674:39:75;2660:54;;2773:15;;;;2710:1;2626:9;;;;;2736:14;;;;2597:201;;;-1:-1:-1;2814:5:75;2136:689;-1:-1:-1;;;;;;2136:689:75:o;2830:263::-;3013:2;3002:9;2995:21;2976:4;3033:54;3083:2;3072:9;3068:18;3060:6;3033:54;:::i;3098:250::-;3249:2;3234:18;;3282:1;3271:13;;3261:47;;3288:18;;:::i;3353:422::-;3394:3;3432:5;3426:12;3459:6;3454:3;3447:19;3484:1;3494:162;3508:6;3505:1;3502:13;3494:162;;;3570:4;3626:13;;;3622:22;;3616:29;3598:11;;;3594:20;;3587:59;3523:12;3494:162;;;3498:3;3701:1;3694:4;3685:6;3680:3;3676:16;3672:27;3665:38;3764:4;3757:2;3753:7;3748:2;3740:6;3736:15;3732:29;3727:3;3723:39;3719:50;3712:57;;;3353:422;;;;:::o;3780:217::-;3927:2;3916:9;3909:21;3890:4;3947:44;3987:2;3976:9;3972:18;3964:6;3947:44;:::i;4002:171::-;4069:20;;-1:-1:-1;;;;;4118:30:75;;4108:41;;4098:69;;4163:1;4160;4153:12;4098:69;4002:171;;;:::o;4178:256::-;4244:6;4252;4305:2;4293:9;4284:7;4280:23;4276:32;4273:52;;;4321:1;4318;4311:12;4273:52;4344:28;4362:9;4344:28;:::i;:::-;4334:38;;4391:37;4424:2;4413:9;4409:18;4391:37;:::i;:::-;4381:47;;4178:256;;;;;:::o;4439:264::-;4540:4;4532:5;4526:12;4522:23;4517:3;4510:36;4492:3;4592:4;4585:5;4581:16;4575:23;4630:4;4623;4618:3;4614:14;4607:28;4651:46;4691:4;4686:3;4682:14;4668:12;4651:46;:::i;:::-;4644:53;4439:264;-1:-1:-1;;;;4439:264:75:o;4708:379::-;4761:3;4805:5;4799:12;4832:4;4827:3;4820:17;4858:56;4908:4;4903:3;4899:14;4885:12;4858:56;:::i;:::-;4846:68;;4962:4;4955:5;4951:16;4945:23;5010:3;5004:4;5000:14;4993:4;4988:3;4984:14;4977:38;5031:50;5076:4;5060:14;5031:50;:::i;:::-;5024:57;4708:379;-1:-1:-1;;;;;4708:379:75:o;5188:1865::-;5249:3;5287:5;5281:12;5314:6;5309:3;5302:19;5340:4;5381:2;5376:3;5372:12;5406:11;5433;5426:18;;5483:6;5480:1;5476:14;5469:5;5465:26;5453:38;;5525:2;5518:5;5514:14;5546:1;5556:1471;5570:6;5567:1;5564:13;5556:1471;;;5641:5;5635:4;5631:16;5626:3;5619:29;5677:6;5671:13;5707:4;5750:2;5744:9;5779:2;5773:4;5766:16;5823:12;5817:19;5859:4;5898:2;5893;5887:4;5883:13;5876:25;5928:60;5983:3;5977:4;5973:14;5957;5928:60;:::i;:::-;5914:74;;6047:2;6033:12;6029:21;6023:28;6078:2;6074:7;6104:2;6164;6157:4;6149:6;6145:17;6141:26;6136:2;6130:4;6126:13;6119:49;6195:52;6240:6;6224:14;6195:52;:::i;:::-;6276:21;;;6270:28;6321:3;6344:13;;;6337:25;;;;6403:21;;;6397:28;-1:-1:-1;;;;;6486:39:75;6448:3;6471:13;;;6464:62;;;;6571:21;;;6565:28;-1:-1:-1;;;;;;6561:55:75;6546:13;;;6539:78;;;;6658:21;;;6652:28;6720:17;;;6716:26;;;6599:3;6700:14;;6693:50;-1:-1:-1;6652:28:75;6181:66;-1:-1:-1;6769:40:75;6181:66;6652:28;6769:40;:::i;:::-;6850:11;;;6844:18;5162:13;;5155:21;6907:13;;;5143:34;6844:18;6756:53;-1:-1:-1;6875:46:75;;-1:-1:-1;;5092:91:75;6875:46;7005:12;;;;6942:5;-1:-1:-1;;6970:15:75;;;;5592:1;5585:9;5556:1471;;;-1:-1:-1;7043:4:75;;5188:1865;-1:-1:-1;;;;;;;5188:1865:75:o;7058:1398::-;7121:3;7159:5;7153:12;7186:6;7181:3;7174:19;7212:4;7253:2;7248:3;7244:12;7278:11;7305;7298:18;;7355:6;7352:1;7348:14;7341:5;7337:26;7325:38;;7397:2;7390:5;7386:14;7418:1;7439;7449:981;7465:6;7460:3;7457:15;7449:981;;;7540:5;7534:4;7530:16;7525:3;7518:29;7576:6;7570:13;7606:4;7649:2;7643:9;7678:2;7672:4;7665:16;7708:55;7759:2;7753:4;7749:13;7735:12;7708:55;:::i;:::-;7804:11;;;7798:18;7851:17;;;7836:13;;;7829:40;7930:21;;7964:24;;;8054:23;;;;8101:1;;-1:-1:-1;8010:15:75;;;-1:-1:-1;8115:209:75;8131:8;8126:3;8123:17;8115:209;;;8208:15;;8194:30;;8293:17;;;;8159:1;8150:11;;;;;8250:14;;;;8115:209;;;-1:-1:-1;8408:12:75;;;;8345:5;-1:-1:-1;;;8373:15:75;;;;7491:1;7482:11;7449:981;;;-1:-1:-1;8446:4:75;;7058:1398;-1:-1:-1;;;;;;;;7058:1398:75:o;8461:1905::-;8677:4;8706:2;8746;8735:9;8731:18;8776:2;8765:9;8758:21;8799:6;8834;8828:13;8865:6;8857;8850:22;8891:2;8881:12;;8924:2;8913:9;8909:18;8902:25;;8986:2;8976:6;8973:1;8969:14;8958:9;8954:30;8950:39;9024:2;9016:6;9012:15;9045:1;9055:1282;9069:6;9066:1;9063:13;9055:1282;;;9162:2;9158:7;9146:9;9138:6;9134:22;9130:36;9125:3;9118:49;9196:6;9190:13;9226:4;9269:2;9263:9;9300:2;9292:6;9285:18;9330:57;9383:2;9375:6;9371:15;9357:12;9330:57;:::i;:::-;9316:71;;;-1:-1:-1;;;;;9442:2:75;9438;9434:11;9428:18;9424:43;9419:2;9411:6;9407:15;9400:68;9519:2;9515;9511:11;9505:18;9500:2;9492:6;9488:15;9481:43;9547:4;9600:2;9596;9592:11;9586:18;9653:6;9645;9641:19;9636:2;9628:6;9624:15;9617:44;9688:60;9741:6;9725:14;9688:60;:::i;:::-;9674:74;;;;9771:4;9824:2;9820;9816:11;9810:18;9877:6;9869;9865:19;9860:2;9852:6;9848:15;9841:44;9912:62;9967:6;9951:14;9912:62;:::i;:::-;9898:76;;;;9997:4;10052:2;10048;10044:11;10038:18;10033:2;10025:6;10021:15;10014:43;;10080:4;10133:2;10129;10125:11;10119:18;10097:40;;10186:6;10178;10174:19;10169:2;10161:6;10157:15;10150:44;;10217:40;10250:6;10234:14;10217:40;:::i;:::-;10315:12;;;;10207:50;-1:-1:-1;;;10280:15:75;;;;9091:1;9084:9;9055:1282;;;-1:-1:-1;10354:6:75;;8461:1905;-1:-1:-1;;;;;;;;8461:1905:75:o;10371:658::-;10542:2;10594:21;;;10664:13;;10567:18;;;10686:22;;;10513:4;;10542:2;10765:15;;;;10739:2;10724:18;;;10513:4;10808:195;10822:6;10819:1;10816:13;10808:195;;;10887:13;;-1:-1:-1;;;;;10883:39:75;10871:52;;10978:15;;;;10943:12;;;;10919:1;10837:9;10808:195;;;-1:-1:-1;11020:3:75;;10371:658;-1:-1:-1;;;;;;10371:658:75:o;11034:1517::-;11188:4;11217:2;11246;11235:9;11228:21;11268:2;11308;11297:9;11293:18;11346:6;11340:13;11372:4;11412:2;11407;11396:9;11392:18;11385:30;11435:6;11470:12;11464:19;11507:6;11499;11492:22;11533:3;11523:13;;11567:2;11556:9;11552:18;11545:25;;11629:2;11619:6;11616:1;11612:14;11601:9;11597:30;11593:39;11673:2;11659:12;11655:21;11641:35;;11694:1;11704:703;11718:6;11715:1;11712:13;11704:703;;;11783:22;;;-1:-1:-1;;11779:37:75;11767:50;;11840:13;;11885:9;;-1:-1:-1;;;;;11881:35:75;11866:51;;11960:11;;;11954:18;11937:15;;;11930:43;12014:11;;;12008:18;12046:15;;;12039:27;;;12093:61;12138:15;;;12008:18;12093:61;:::i;:::-;12195:11;;;12189:18;12244:19;;;12227:15;;;12220:44;12189:18;12079:75;-1:-1:-1;12287:40:75;12079:75;12189:18;12287:40;:::i;:::-;12350:15;;;;12385:12;;;;12277:50;-1:-1:-1;;;11740:1:75;11733:9;11704:703;;;-1:-1:-1;12444:15:75;;;12438:22;-1:-1:-1;;;;;79:30:75;;12503:18;;;67:43;12438:22;12539:6;11034:1517;-1:-1:-1;;;;;;;;;;11034:1517:75:o;12556:380::-;12635:1;12631:12;;;;12678;;;12699:61;;12753:4;12745:6;12741:17;12731:27;;12699:61;12806:2;12798:6;12795:14;12775:18;12772:38;12769:161;;12852:10;12847:3;12843:20;12840:1;12833:31;12887:4;12884:1;12877:15;12915:4;12912:1;12905:15;12769:161;;12556:380;;;:::o;12941:127::-;13002:10;12997:3;12993:20;12990:1;12983:31;13033:4;13030:1;13023:15;13057:4;13054:1;13047:15;13073:183;-1:-1:-1;;;;;13192:10:75;;;13180;;;13176:27;;13215:12;;;13212:38;;;13230:18;;:::i;13261:127::-;13322:10;13317:3;13313:20;13310:1;13303:31;13353:4;13350:1;13343:15;13377:4;13374:1;13367:15;13393:180;-1:-1:-1;;;;;13498:10:75;;;13510;;;13494:27;;13533:11;;;13530:37;;;13547:18;;:::i;13578:127::-;13639:10;13634:3;13630:20;13627:1;13620:31;13670:4;13667:1;13660:15;13694:4;13691:1;13684:15;13710:135;13749:3;13770:17;;;13767:43;;13790:18;;:::i;:::-;-1:-1:-1;13837:1:75;13826:13;;13710:135::o", + "sourceMap": "1527:4685:63:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3494:107;3573:21;;-1:-1:-1;;;3573:21:63;;-1:-1:-1;;;;;3573:21:63;3494:107;;;-1:-1:-1;;;;;283:31:78;;;265:50;;253:2;238:18;3494:107:63;;;;;;;;4045:78;4110:6;;4045:78;;;472:25:78;;;460:2;445:18;4045:78:63;326:177:78;4165:103:63;;;:::i;2774:176::-;;;:::i;:::-;;;;-1:-1:-1;;;;;941:15:78;;;923:34;;993:15;;;988:2;973:18;;966:43;1045:15;;1025:18;;;1018:43;;;;874:2;859:18;2774:176:63;690:377:78;2296:81:63;2362:8;;-1:-1:-1;;;2362:8:63;;;;2296:81;;;;;;:::i;3080:92::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3155:10:63;3129:7;3155:10;;;:7;:10;;;;;;;3080:92;4367:114;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2092:32:78;;;2074:51;;2062:2;2047:18;4367:114:63;1928:203:78;3702:115:63;;;:::i;2515:122::-;2602:28;;2515:122;;2956:118;;;;;;:::i;:::-;-1:-1:-1;;;;;3044:23:63;3018:7;3044:23;;;:20;:23;;;;;;;2956:118;3383:105;3461:20;;-1:-1:-1;;;3461:20:63;;-1:-1:-1;;;;;3461:20:63;3383:105;;2156:95;;;:::i;:::-;;;;;;;:::i;2419:90::-;2490:12;;2419:90;;3823:94;3899:11;;;;3823:94;;;;;;:::i;3923:116::-;4007:25;;3923:116;;3607:89;;;:::i;:::-;;;;;;;:::i;5753:457::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2643:125::-;;;:::i;4583:360::-;;;:::i;:::-;;;;;;;:::i;3282:95::-;3355:15;;-1:-1:-1;;;3355:15:63;;-1:-1:-1;;;;;3355:15:63;3282:95;;5031:654;;;:::i;:::-;;;;;;;:::i;3178:98::-;3253:16;;-1:-1:-1;;;;;3253:16:63;3178:98;;4165:103;4214:7;4240:21;:12;:19;:21::i;:::-;4233:28;;4165:103;:::o;2774:176::-;2824:6;2832;2840;2916:27;9676:17:54;:24;-1:-1:-1;;;9676:24:54;;-1:-1:-1;;;;;9676:24:54;;;;-1:-1:-1;;;9702:23:54;;;;;-1:-1:-1;;;9727:22:54;;;;;;9533:224;2916:27:63;2909:34;;;;;;2774:176;;;:::o;4367:114::-;4426:7;4452:22;:12;4468:5;4452:15;:22::i;:::-;4445:29;4367:114;-1:-1:-1;;4367:114:63:o;3702:115::-;3755:6;3780:30;10064:20:54;;;;;9935:156;2156:95:63;-1:-1:-1;;;;;;;;;;;;;;;;;2227:17:63;;;;;;;;2234:10;2227:17;;-1:-1:-1;;;;;2227:17:63;;;;;;;;;;;;;;;;;;;;;;;;2234:10;;2227:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2227:17:63;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:95;:::o;3607:89::-;3649:12;3680:1;:9;;3673:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3607:89;:::o;5753:457::-;5865:27;5904:11;5918:19;5928:9;5918:7;:19;:::i;:::-;5904:33;;5947:31;6006:4;-1:-1:-1;;;;;5981:30:63;-1:-1:-1;;;;;5981:30:63;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5981:30:63;;;;;;;;;;;;;;;;5947:64;;6027:8;6022:161;6045:4;-1:-1:-1;;;;;6041:8:63;:1;-1:-1:-1;;;;;6041:8:63;;6022:161;;;6076:22;:1;6099:13;6111:1;6099:9;:13;:::i;:::-;-1:-1:-1;;;;;6076:37:63;;;;;;;;;;;;;;;;;-1:-1:-1;6076:37:63;6067:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6076:37;;6067:46;;;;6076:37;;6067:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6067:46:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6067:46:63;-1:-1:-1;;;;;6067:46:63;-1:-1:-1;;;;;6067:46:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6067:46:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6067:46:63;;;;;;;;;;;;;;;;-1:-1:-1;;;6067:46:63;;;;-1:-1:-1;;;6067:46:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6067:46:63;;;;-1:-1:-1;;;6067:46:63;;-1:-1:-1;6067:46:63;;;;;;;;;;;;;;;-1:-1:-1;;;;;6067:46:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6067:46:63;;;;;;;;;;;;;;;;-1:-1:-1;;;6067:46:63;;;;-1:-1:-1;;;6067:46:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6067:46:63;;;;-1:-1:-1;;;6067:46:63;;-1:-1:-1;6067:46:63;;;;;;;;;;;;;;-1:-1:-1;;;;;6067:46:63;;;;;;-1:-1:-1;;;6067:46:63;;;;-1:-1:-1;;;;;;6067:46:63;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6067:46:63;;;;-1:-1:-1;;;6067:46:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6067:46:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6067:46:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:3;6071:1;-1:-1:-1;;;;;6067:6:63;;;;;;;;;:::i;:::-;;;;;;;;;;:46;6155:3;;6022:161;;;-1:-1:-1;6200:3:63;5753:457;-1:-1:-1;;;;5753:457:63:o;2643:125::-;2701:6;2726:35;1522:42:54;9897:25;-1:-1:-1;;;;;9897:25:54;;9763:166;4583:360:63;4631:16;4659:14;4676:21;:12;:19;:21::i;:::-;4659:38;;4707:23;4747:6;-1:-1:-1;;;;;4733:21:63;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4733:21:63;;4707:47;;4770:9;4765:148;4789:6;4785:1;:10;4765:148;;;4825:18;:12;4841:1;4825:15;:18::i;:::-;4813:6;4820:1;4813:9;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4813:30:63;;;:9;;;;;;;;;;;:30;4885:3;;4765:148;;;-1:-1:-1;4930:6:63;4583:360;-1:-1:-1;;4583:360:63:o;5031:654::-;-1:-1:-1;;;;;;;;;;;;;;;;;5112:14:63;5129:21;:12;:19;:21::i;:::-;5112:38;;5161:30;5214:6;-1:-1:-1;;;;;5194:27:63;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5194:27:63;;;;;;;;;;;;;;;;5161:60;;5237:9;5232:350;5256:6;5252:1;:10;5232:350;;;5296:275;;;;;;;;;;5334:18;:12;5350:1;5334:15;:18::i;:::-;-1:-1:-1;;;;;5296:275:63;;;;;5378:7;:1;5386:18;:12;5402:1;5386:15;:18::i;:::-;-1:-1:-1;;;;;5378:27:63;;;;;;;;;;;;;-1:-1:-1;5378:27:63;;;;5296:275;;;;;5435:26;;5462:18;:12;5478:1;5462:15;:18::i;:::-;-1:-1:-1;;;;;5435:46:63;;;;;;;;;;;;;;;-1:-1:-1;5435:46:63;5296:275;;;;;;;;;;;;;;;;;;;;;5435:46;;5296:275;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5296:275:63;;;;-1:-1:-1;;;5296:275:63;;;;5513:23;:1;5537:18;:12;5553:1;5537:15;:18::i;:::-;-1:-1:-1;;;;;5513:43:63;-1:-1:-1;;;;;5513:43:63;;;;;;;;;;;;5296:275;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5283:7;5291:1;5283:10;;;;;;;;:::i;:::-;;;;;;:288;;;;5264:3;;;;;:::i;:::-;;;;5232:350;;;-1:-1:-1;5599:79:63;;;;;;;;;;;;5655:21;;-1:-1:-1;;;;;5655:21:63;5599:79;;;;;5031:654;-1:-1:-1;;5031:654:63:o;9107:115:23:-;9170:7;9196:19;9204:3;4546:18;;4464:107;9564:156;9638:7;9688:22;9692:3;9704:5;9688:3;:22::i;:::-;9680:31;9564:156;-1:-1:-1;;;9564:156:23:o;4913:118::-;4980:7;5006:3;:11;;5018:5;5006:18;;;;;;;;:::i;:::-;;;;;;;;;4999:25;;4913:118;;;;:::o;1072:127:78:-;1133:10;1128:3;1124:20;1121:1;1114:31;1164:4;1161:1;1154:15;1188:4;1185:1;1178:15;1204:243;1348:2;1333:18;;1381:1;1370:13;;1360:47;;1387:18;;:::i;:::-;1416:25;;;1204:243;:::o;1452:286::-;1511:6;1564:2;1552:9;1543:7;1539:23;1535:32;1532:52;;;1580:1;1577;1570:12;1532:52;1606:23;;-1:-1:-1;;;;;1658:31:78;;1648:42;;1638:70;;1704:1;1701;1694:12;1743:180;1802:6;1855:2;1843:9;1834:7;1830:23;1826:32;1823:52;;;1871:1;1868;1861:12;1823:52;-1:-1:-1;1894:23:78;;1743:180;-1:-1:-1;1743:180:78:o;2136:689::-;2187:3;2226:4;2221:3;2217:14;-1:-1:-1;;;;;2262:5:78;2256:12;2252:37;2247:3;2240:50;2309:4;2359:2;2352:5;2348:14;2342:21;2393:4;2388:2;2383:3;2379:12;2372:26;2420:4;2453:12;2447:19;2488:6;2482:4;2475:20;2522:2;2517:3;2513:12;2504:21;;2566:2;2552:12;2548:21;2534:35;;2587:1;2578:10;;2597:201;2611:6;2608:1;2605:13;2597:201;;;2678:13;;-1:-1:-1;;;;;2674:39:78;2660:54;;2773:15;;;;2710:1;2626:9;;;;;2736:14;;;;2597:201;;;-1:-1:-1;2814:5:78;2136:689;-1:-1:-1;;;;;;2136:689:78:o;2830:263::-;3013:2;3002:9;2995:21;2976:4;3033:54;3083:2;3072:9;3068:18;3060:6;3033:54;:::i;3098:250::-;3249:2;3234:18;;3282:1;3271:13;;3261:47;;3288:18;;:::i;3353:422::-;3394:3;3432:5;3426:12;3459:6;3454:3;3447:19;3484:1;3494:162;3508:6;3505:1;3502:13;3494:162;;;3570:4;3626:13;;;3622:22;;3616:29;3598:11;;;3594:20;;3587:59;3523:12;3494:162;;;3498:3;3701:1;3694:4;3685:6;3680:3;3676:16;3672:27;3665:38;3764:4;3757:2;3753:7;3748:2;3740:6;3736:15;3732:29;3727:3;3723:39;3719:50;3712:57;;;3353:422;;;;:::o;3780:217::-;3927:2;3916:9;3909:21;3890:4;3947:44;3987:2;3976:9;3972:18;3964:6;3947:44;:::i;4002:171::-;4069:20;;-1:-1:-1;;;;;4118:30:78;;4108:41;;4098:69;;4163:1;4160;4153:12;4098:69;4002:171;;;:::o;4178:256::-;4244:6;4252;4305:2;4293:9;4284:7;4280:23;4276:32;4273:52;;;4321:1;4318;4311:12;4273:52;4344:28;4362:9;4344:28;:::i;:::-;4334:38;;4391:37;4424:2;4413:9;4409:18;4391:37;:::i;:::-;4381:47;;4178:256;;;;;:::o;4439:264::-;4540:4;4532:5;4526:12;4522:23;4517:3;4510:36;4492:3;4592:4;4585:5;4581:16;4575:23;4630:4;4623;4618:3;4614:14;4607:28;4651:46;4691:4;4686:3;4682:14;4668:12;4651:46;:::i;:::-;4644:53;4439:264;-1:-1:-1;;;;4439:264:78:o;4708:379::-;4761:3;4805:5;4799:12;4832:4;4827:3;4820:17;4858:56;4908:4;4903:3;4899:14;4885:12;4858:56;:::i;:::-;4846:68;;4962:4;4955:5;4951:16;4945:23;5010:3;5004:4;5000:14;4993:4;4988:3;4984:14;4977:38;5031:50;5076:4;5060:14;5031:50;:::i;:::-;5024:57;4708:379;-1:-1:-1;;;;;4708:379:78:o;5188:1865::-;5249:3;5287:5;5281:12;5314:6;5309:3;5302:19;5340:4;5381:2;5376:3;5372:12;5406:11;5433;5426:18;;5483:6;5480:1;5476:14;5469:5;5465:26;5453:38;;5525:2;5518:5;5514:14;5546:1;5556:1471;5570:6;5567:1;5564:13;5556:1471;;;5641:5;5635:4;5631:16;5626:3;5619:29;5677:6;5671:13;5707:4;5750:2;5744:9;5779:2;5773:4;5766:16;5823:12;5817:19;5859:4;5898:2;5893;5887:4;5883:13;5876:25;5928:60;5983:3;5977:4;5973:14;5957;5928:60;:::i;:::-;5914:74;;6047:2;6033:12;6029:21;6023:28;6078:2;6074:7;6104:2;6164;6157:4;6149:6;6145:17;6141:26;6136:2;6130:4;6126:13;6119:49;6195:52;6240:6;6224:14;6195:52;:::i;:::-;6276:21;;;6270:28;6321:3;6344:13;;;6337:25;;;;6403:21;;;6397:28;-1:-1:-1;;;;;6486:39:78;6448:3;6471:13;;;6464:62;;;;6571:21;;;6565:28;-1:-1:-1;;;;;;6561:55:78;6546:13;;;6539:78;;;;6658:21;;;6652:28;6720:17;;;6716:26;;;6599:3;6700:14;;6693:50;-1:-1:-1;6652:28:78;6181:66;-1:-1:-1;6769:40:78;6181:66;6652:28;6769:40;:::i;:::-;6850:11;;;6844:18;5162:13;;5155:21;6907:13;;;5143:34;6844:18;6756:53;-1:-1:-1;6875:46:78;;-1:-1:-1;;5092:91:78;6875:46;7005:12;;;;6942:5;-1:-1:-1;;6970:15:78;;;;5592:1;5585:9;5556:1471;;;-1:-1:-1;7043:4:78;;5188:1865;-1:-1:-1;;;;;;;5188:1865:78:o;7058:1398::-;7121:3;7159:5;7153:12;7186:6;7181:3;7174:19;7212:4;7253:2;7248:3;7244:12;7278:11;7305;7298:18;;7355:6;7352:1;7348:14;7341:5;7337:26;7325:38;;7397:2;7390:5;7386:14;7418:1;7439;7449:981;7465:6;7460:3;7457:15;7449:981;;;7540:5;7534:4;7530:16;7525:3;7518:29;7576:6;7570:13;7606:4;7649:2;7643:9;7678:2;7672:4;7665:16;7708:55;7759:2;7753:4;7749:13;7735:12;7708:55;:::i;:::-;7804:11;;;7798:18;7851:17;;;7836:13;;;7829:40;7930:21;;7964:24;;;8054:23;;;;8101:1;;-1:-1:-1;8010:15:78;;;-1:-1:-1;8115:209:78;8131:8;8126:3;8123:17;8115:209;;;8208:15;;8194:30;;8293:17;;;;8159:1;8150:11;;;;;8250:14;;;;8115:209;;;-1:-1:-1;8408:12:78;;;;8345:5;-1:-1:-1;;;8373:15:78;;;;7491:1;7482:11;7449:981;;;-1:-1:-1;8446:4:78;;7058:1398;-1:-1:-1;;;;;;;;7058:1398:78:o;8461:1905::-;8677:4;8706:2;8746;8735:9;8731:18;8776:2;8765:9;8758:21;8799:6;8834;8828:13;8865:6;8857;8850:22;8891:2;8881:12;;8924:2;8913:9;8909:18;8902:25;;8986:2;8976:6;8973:1;8969:14;8958:9;8954:30;8950:39;9024:2;9016:6;9012:15;9045:1;9055:1282;9069:6;9066:1;9063:13;9055:1282;;;9162:2;9158:7;9146:9;9138:6;9134:22;9130:36;9125:3;9118:49;9196:6;9190:13;9226:4;9269:2;9263:9;9300:2;9292:6;9285:18;9330:57;9383:2;9375:6;9371:15;9357:12;9330:57;:::i;:::-;9316:71;;;-1:-1:-1;;;;;9442:2:78;9438;9434:11;9428:18;9424:43;9419:2;9411:6;9407:15;9400:68;9519:2;9515;9511:11;9505:18;9500:2;9492:6;9488:15;9481:43;9547:4;9600:2;9596;9592:11;9586:18;9653:6;9645;9641:19;9636:2;9628:6;9624:15;9617:44;9688:60;9741:6;9725:14;9688:60;:::i;:::-;9674:74;;;;9771:4;9824:2;9820;9816:11;9810:18;9877:6;9869;9865:19;9860:2;9852:6;9848:15;9841:44;9912:62;9967:6;9951:14;9912:62;:::i;:::-;9898:76;;;;9997:4;10052:2;10048;10044:11;10038:18;10033:2;10025:6;10021:15;10014:43;;10080:4;10133:2;10129;10125:11;10119:18;10097:40;;10186:6;10178;10174:19;10169:2;10161:6;10157:15;10150:44;;10217:40;10250:6;10234:14;10217:40;:::i;:::-;10315:12;;;;10207:50;-1:-1:-1;;;10280:15:78;;;;9091:1;9084:9;9055:1282;;;-1:-1:-1;10354:6:78;;8461:1905;-1:-1:-1;;;;;;;;8461:1905:78:o;10371:658::-;10542:2;10594:21;;;10664:13;;10567:18;;;10686:22;;;10513:4;;10542:2;10765:15;;;;10739:2;10724:18;;;10513:4;10808:195;10822:6;10819:1;10816:13;10808:195;;;10887:13;;-1:-1:-1;;;;;10883:39:78;10871:52;;10978:15;;;;10943:12;;;;10919:1;10837:9;10808:195;;;-1:-1:-1;11020:3:78;;10371:658;-1:-1:-1;;;;;;10371:658:78:o;11034:1517::-;11188:4;11217:2;11246;11235:9;11228:21;11268:2;11308;11297:9;11293:18;11346:6;11340:13;11372:4;11412:2;11407;11396:9;11392:18;11385:30;11435:6;11470:12;11464:19;11507:6;11499;11492:22;11533:3;11523:13;;11567:2;11556:9;11552:18;11545:25;;11629:2;11619:6;11616:1;11612:14;11601:9;11597:30;11593:39;11673:2;11659:12;11655:21;11641:35;;11694:1;11704:703;11718:6;11715:1;11712:13;11704:703;;;11783:22;;;-1:-1:-1;;11779:37:78;11767:50;;11840:13;;11885:9;;-1:-1:-1;;;;;11881:35:78;11866:51;;11960:11;;;11954:18;11937:15;;;11930:43;12014:11;;;12008:18;12046:15;;;12039:27;;;12093:61;12138:15;;;12008:18;12093:61;:::i;:::-;12195:11;;;12189:18;12244:19;;;12227:15;;;12220:44;12189:18;12079:75;-1:-1:-1;12287:40:78;12079:75;12189:18;12287:40;:::i;:::-;12350:15;;;;12385:12;;;;12277:50;-1:-1:-1;;;11740:1:78;11733:9;11704:703;;;-1:-1:-1;12444:15:78;;;12438:22;-1:-1:-1;;;;;79:30:78;;12503:18;;;67:43;12438:22;12539:6;11034:1517;-1:-1:-1;;;;;;;;;;11034:1517:78:o;12556:380::-;12635:1;12631:12;;;;12678;;;12699:61;;12753:4;12745:6;12741:17;12731:27;;12699:61;12806:2;12798:6;12795:14;12775:18;12772:38;12769:161;;12852:10;12847:3;12843:20;12840:1;12833:31;12887:4;12884:1;12877:15;12915:4;12912:1;12905:15;12769:161;;12556:380;;;:::o;12941:127::-;13002:10;12997:3;12993:20;12990:1;12983:31;13033:4;13030:1;13023:15;13057:4;13054:1;13047:15;13073:183;-1:-1:-1;;;;;13192:10:78;;;13180;;;13176:27;;13215:12;;;13212:38;;;13230:18;;:::i;13261:127::-;13322:10;13317:3;13313:20;13310:1;13303:31;13353:4;13350:1;13343:15;13377:4;13374:1;13367:15;13393:180;-1:-1:-1;;;;;13498:10:78;;;13510;;;13494:27;;13533:11;;;13530:37;;;13547:18;;:::i;13578:127::-;13639:10;13634:3;13630:20;13627:1;13620:31;13670:4;13667:1;13660:15;13694:4;13691:1;13684:15;13710:135;13749:3;13770:17;;;13767:43;;13790:18;;:::i;:::-;-1:-1:-1;13837:1:78;13826:13;;13710:135::o", "linkReferences": {} }, "methodIdentifiers": { diff --git a/contracts/SubnetActorManagerFacet.json b/contracts/SubnetActorManagerFacet.json index f78f2603..d3cacba4 100644 --- a/contracts/SubnetActorManagerFacet.json +++ b/contracts/SubnetActorManagerFacet.json @@ -676,13 +676,13 @@ } ], "bytecode": { - "object": "0x608060405234801561001057600080fd5b50615567806100206000396000f3fe6080604052600436106100915760003560e01c80636cf6970a116100595780636cf6970a1461015c578063989037481461016f578063a9fb763c146101a0578063d66d9e19146101c0578063f6fd8381146101d557600080fd5b8063133f74ea146100965780633ccfd60b146100d257806341c0e1b5146100e957806366d7bbbc146100fe5780636cb2ecee1461012e575b600080fd5b3480156100a257600080fd5b506100b66100b13660046132fd565b6101f5565b6040805192151583526020830191909152015b60405180910390f35b3480156100de57600080fd5b506100e761028e565b005b3480156100f557600080fd5b506100e7610348565b34801561010a57600080fd5b5061011e61011936600461332f565b610406565b60405190151581526020016100c9565b34801561013a57600080fd5b5061014e6101493660046132fd565b610449565b6040516100c99291906135fa565b6100e761016a3660046136aa565b610b93565b34801561017b57600080fd5b5061018f61018a3660046132fd565b610de9565b6040516100c9959493929190613744565b3480156101ac57600080fd5b506100e76101bb366004613790565b610f5e565b3480156101cc57600080fd5b506100e761101b565b3480156101e157600080fd5b506100e76101f03660046137a9565b611195565b60008060008061020485610449565b6040516339aa47fb60e01b81529193509150829073__$1cd67d4dc9e627f0bec7928aa480e7d951$__906339aa47fb9061024290859060040161395c565b602060405180830381865af415801561025f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061028391906139f9565b935093505050915091565b61029661140c565b33600090815260086020526040812054908190036102c7576040516367300f9160e11b815260040160405180910390fd5b3360009081526008602052604080822091909155600f549051631f0e077760e31b8152600481018390526001600160a01b039091169063f8703bb890602401600060405180830381600087803b15801561032057600080fd5b505af1158015610334573d6000803e3d6000fd5b50610345925033915083905061149e565b50565b61035061140c565b610358611539565b6103626004611577565b151580610370575060005415155b1561038e57604051636b62255160e11b815260040160405180910390fd5b6001805460ff60401b191668030000000000000000179055600f54604080516341c0e1b560e01b815290516001600160a01b03909216916341c0e1b59160048082019260009290919082900301818387803b1580156103ec57600080fd5b505af1158015610400573d6000803e3d6000fd5b50505050565b6001600160401b03821660009081526006602090815260408083208054845260030182528083206001600160a01b038516845290915290205460ff165b92915050565b60006104996040805161012081018252600060e0820181815260606101008401819052908352602083018290529282018190528282018390526080820183905260a082015260c081019190915290565b6001600160401b03808416600090815260036020908152604091829020825161012081018452815490941660e085019081526001820180548551818602810186019096528086529294869492938693610100870193919083018282801561052957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161050b575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156109335760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561063a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161061c575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061067490613a28565b80601f01602080910402602001604051908101604052809291908181526020018280546106a090613a28565b80156106ed5780601f106106c2576101008083540402835291602001916106ed565b820191906000526020600020905b8154815290600101906020018083116106d057829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561077e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610760575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906107b890613a28565b80601f01602080910402602001604051908101604052809291908181526020018280546107e490613a28565b80156108315780601f1061080657610100808354040283529160200191610831565b820191906000526020600020905b81548152906001019060200180831161081457829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161088c90613a28565b80601f01602080910402602001604051908101604052809291908181526020018280546108b890613a28565b80156109055780601f106108da57610100808354040283529160200191610905565b820191906000526020600020905b8154815290600101906020018083116108e857829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101610594565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015610a6a576000848152602090819020604080516080810182526003860290920180546001600160401b0316838301908152600182018054845181880281018801909552808552949592948694929386936060870193909290918301828280156109f657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109d8575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610a5257602002820191906000526020600020905b815481526020019060010190808311610a3e575b50505050508152505081526020019060010190610960565b50505050815260200160068201548152602001600782018054610a8c90613a28565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab890613a28565b8015610b055780601f10610ada57610100808354040283529160200191610b05565b820191906000526020600020905b815481529060010190602001808311610ae857829003601f168201915b5050509190925250508151604051630c133d1360e31b815292935073__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e8989250610b4a9190600401613a62565b602060405180830381865af4158015610b67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8b9190613a83565b159150915091565b610b9b61140c565b610ba3611539565b34336000829003610bc757604051635a78c58160e11b815260040160405180910390fd5b6001600160a01b03811660009081526007602052604081208054849290610bef908490613ab6565b9091555050600080548391908190610c08908490613ab6565b90915550506013546001600160a01b03821660009081526007602052604090205410610c9457610c39600482611581565b610c9457610c486004826115a6565b506001600160a01b0381166000908152600960205260409020610c6c858783613b42565b506001600160a01b0381166000908152600a602052604090208390610c918282613c57565b50505b6005600154600160401b900460ff166005811115610cb457610cb4613a12565b03610d3d5760135460005410610d38576001805460ff60401b1916600160401b179055600f546000805460408051630354740160e31b815290516001600160a01b0390941693631aa3a0089360048084019391929182900301818588803b158015610d1e57600080fd5b505af1158015610d32573d6000803e3d6000fd5b50505050505b610de2565b6002600154600160401b900460ff166005811115610d5d57610d5d613a12565b03610d815760135460005410610d81576001805460ff60401b1916600160401b1790555b600f54604080516316989f6f60e21b815290516001600160a01b0390921691635a627dbc918591600480830192600092919082900301818588803b158015610dc857600080fd5b505af1158015610ddc573d6000803e3d6000fd5b50505050505b5050505050565b6040805180820182526000808252606060208084018290526001600160401b03868116845260038252858420865180880188528154909216825260018101805488518186028101860190995280895296979596879687969585810193919290830182828015610e8157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e63575b505050919092525050506001600160401b038088166000908152600360208190526040909120600281015491810154600682015460079092018054959a5092909316975091955090935090610ed590613a28565b80601f0160208091040260200160405190810160405280929190818152602001828054610f0190613a28565b8015610f4e5780601f10610f2357610100808354040283529160200191610f4e565b820191906000526020600020905b815481529060010190602001808311610f3157829003601f168201915b5050505050905091939590929450565b610f666115bb565b6000610f726004611577565b905080600003610f955760405163efa9c8f160e01b815260040160405180910390fd5b80821015610fb657604051633074cabf60e11b815260040160405180910390fd5b6000610fc28284613d52565b905060005b82811015610400578160086000610fdf6004856115e6565b6001600160a01b03166001600160a01b03168152602001908152602001600020600082825461100e9190613ab6565b9091555050600101610fc7565b7f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009580546000190161105f576040516329f745a760e01b815260040160405180910390fd5b6001815561106b61140c565b611073611539565b33600090815260076020526040812054908190036110a457604051632ec5b44960e01b815260040160405180910390fd5b336000908152600760205260408120819055805482919081906110c8908490613d66565b909155506110d990506004336115f2565b5060018054600160401b900460ff1660058111156110f9576110f9613a12565b03611123576013546000541015611123576001805460ff60401b1916680200000000000000001790555b600f546040516345f5448560e01b8152600481018390526001600160a01b03909116906345f5448590602401600060405180830381600087803b15801561116957600080fd5b505af115801561117d573d6000803e3d6000fd5b5061118e925033915083905061149e565b5060009055565b61119d61140c565b6111b56111b060408301602084016132fd565b611607565b60018054600160401b900460ff1660058111156111d4576111d4613a12565b146111f25760405163c18316bf60e01b815260040160405180910390fd5b6111fd600433611581565b61121a57604051632ec5b44960e01b815260040160405180910390fd5b6011546112278280613d79565b61123090613f15565b6040516390ba52cf60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__916390ba52cf916112669190600401613a62565b602060405180830381865af4158015611283573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a791906139f9565b146112c5576040516375ecc72d60e01b815260040160405180910390fd5b73__$33b79814e84bf6cf5e47244090b19ce5f8$__63898414756112ec6060840184613f21565b6040518363ffffffff1660e01b815260040161130992919061413a565b602060405180830381865af4158015611326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134a9190613a83565b61136757604051630bd9169f60e01b815260040160405180910390fd5b600060068161137c60408501602086016132fd565b6001600160401b031681526020808201929092526040908101600090812033808352600790945291812054919350916113b89184918691611610565b905080156113ce576113c982611dd0565b505050565b6000806113d9612693565b915091508015610de2576001600160401b038216600090815260066020526040902061140481611dd0565b505050505050565b604051630972932760e21b815233600482015273__$e800e3908cdbb6b1b5bd452383a17b18f7$__906325ca4c9c90602401602060405180830381865af415801561145b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147f9190613a83565b61149c5760405163b7150de560e01b815260040160405180910390fd5b565b804710156114c55760405163cd78605960e01b815230600482015260240160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611512576040519150601f19603f3d011682016040523d82523d6000602084013e611517565b606091505b50509050806113c957604051630a12f52160e11b815260040160405180910390fd5b6003600154600160401b900460ff16600581111561155957611559613a12565b0361149c5760405163248c8efb60e11b815260040160405180910390fd5b6000610443825490565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b600061159f836001600160a01b0384166126e6565b600f546001600160a01b0316331461149c5760405163e7e601db60e01b815260040160405180910390fd5b600061159f8383612735565b600061159f836001600160a01b03841661275f565b61034581612859565b60008061161c8561464f565b6040516339aa47fb60e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__916339aa47fb91611652919060040161395c565b602060405180830381865af415801561166f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169391906139f9565b90506116b4868286866116ac60408b0160208c016132fd565b60005461290b565b600082815260058801602090815260409182902082516101208101845281546001600160401b031660e082019081526001830180548651818702810187019097528087529698509195929486949193869361010087019390919083018282801561174757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611729575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015611b515760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561185857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161183a575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061189290613a28565b80601f01602080910402602001604051908101604052809291908181526020018280546118be90613a28565b801561190b5780601f106118e05761010080835404028352916020019161190b565b820191906000526020600020905b8154815290600101906020018083116118ee57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561199c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161197e575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906119d690613a28565b80601f0160208091040260200160405190810160405280929190818152602001828054611a0290613a28565b8015611a4f5780601f10611a2457610100808354040283529160200191611a4f565b820191906000526020600020905b815481529060010190602001808311611a3257829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191611aaa90613a28565b80601f0160208091040260200160405190810160405280929190818152602001828054611ad690613a28565b8015611b235780601f10611af857610100808354040283529160200191611b23565b820191906000526020600020905b815481529060010190602001808311611b0657829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016117b2565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015611c88576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015611c1457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611bf6575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015611c7057602002820191906000526020600020905b815481526020019060010190808311611c5c575b50505050508152505081526020019060010190611b7e565b50505050815260200160068201548152602001600782018054611caa90613a28565b80601f0160208091040260200160405190810160405280929190818152602001828054611cd690613a28565b8015611d235780601f10611cf857610100808354040283529160200191611d23565b820191906000526020600020905b815481529060010190602001808311611d0657829003601f168201915b5050509190925250506040516322ea8d8960e11b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__926345d51b129250611d629160040161395c565b602060405180830381865af4158015611d7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da39190613a83565b15611dc757600081815260058701602052604090208590611dc48282614f48565b50505b50949350505050565b6002808201546000908152600583016020526040902060068101549154909114611e7257604051635a27a53960e11b81526004810183905273__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063b44f4a729060240160006040518083038186803b158015611e3f57600080fd5b505af4158015611e53573d6000803e3d6000fd5b5050506002820154611e6e91506001600160401b0316612b58565b5050565b6002810154611e89906001600160401b0316612bdc565b60028101546001600160401b039081166000908152600360205260409020825481546001600160401b03191692169190911781556001808301805484939284928492611ed89284019190612e9f565b50505060028281015490820180546001600160401b0319166001600160401b039092169190911790556003808301549082015560048083018054611f1f9284019190612eef565b5060058281018054611f3492840191906130b5565b506006820154816006015560078201816007019081611f539190615077565b5050604080516101208101825283546001600160401b031660e0820190815260018501805484516020828102820181019096528181529395508694869486936101008701939192909190830182828015611fd657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611fb8575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156123e05760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d019390918301828280156120e757602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116120c9575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061212190613a28565b80601f016020809104026020016040519081016040528092919081815260200182805461214d90613a28565b801561219a5780601f1061216f5761010080835404028352916020019161219a565b820191906000526020600020905b81548152906001019060200180831161217d57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561222b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161220d575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061226590613a28565b80601f016020809104026020016040519081016040528092919081815260200182805461229190613a28565b80156122de5780601f106122b3576101008083540402835291602001916122de565b820191906000526020600020905b8154815290600101906020018083116122c157829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161233990613a28565b80601f016020809104026020016040519081016040528092919081815260200182805461236590613a28565b80156123b25780601f10612387576101008083540402835291602001916123b2565b820191906000526020600020905b81548152906001019060200180831161239557829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101612041565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015612517576000848152602090819020604080516080810182526003860290920180546001600160401b0316838301908152600182018054845181880281018801909552808552949592948694929386936060870193909290918301828280156124a357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612485575b5050505050815250508152602001600282018054806020026020016040519081016040528092919081815260200182805480156124ff57602002820191906000526020600020905b8154815260200190600101908083116124eb575b5050505050815250508152602001906001019061240d565b5050505081526020016006820154815260200160078201805461253990613a28565b80601f016020809104026020016040519081016040528092919081815260200182805461256590613a28565b80156125b25780601f10612587576101008083540402835291602001916125b2565b820191906000526020600020905b81548152906001019060200180831161259557829003601f168201915b5050509190925250506040516339aa47fb60e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__926339aa47fb92506125f19160040161395c565b602060405180830381865af415801561260e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263291906139f9565b600255600f54604051631a9c293560e31b81526001600160a01b039091169063d4e149a8906126659084906004016153ef565b600060405180830381600087803b15801561267f57600080fd5b505af1158015611404573d6000803e3d6000fd5b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27154600160401b90046001600160401b031660006000805160206155128339815191526126df83612d3d565b9150509091565b600081815260018301602052604081205461272d57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610443565b506000610443565b600082600001828154811061274c5761274c61547f565b9060005260206000200154905092915050565b60008181526001830160205260408120548015612848576000612783600183613d66565b855490915060009061279790600190613d66565b90508181146127fc5760008660000182815481106127b7576127b761547f565b90600052602060002001549050808760000184815481106127da576127da61547f565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061280d5761280d615495565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610443565b6000915050610443565b5092915050565b60008051602061551283398151915280546001600160401b039081169083161161289657604051631f30cc6360e21b815260040160405180910390fd5b80546001600160401b03600160401b90910481169083161115611e6e5780546001600160401b03600160881b82048116916128da91600160401b90910416846154ab565b6128e491906154cb565b6001600160401b031615611e6e5760405163b4f68f9760e01b815260040160405180910390fd5b8554600081815260038801602090815260408083206001600160a01b038916845290915281205490916000805160206155128339815191529160ff1615612965576040516337138f5f60e11b815260040160405180910390fd5b600081815260038a01602090815260408083206001600160a01b038b1684529091528120805460ff191660019081179091558a0180548892906129a9908490613ab6565b9091555050600081815260048a01602090815260408083208b8452909152812080548892906129d9908490613ab6565b9091555050600081815260048a016020908152604080832060028d01548452909152808220548a835291205480821015612a155760028b018a90555b6000612a218c88612d8a565b90506003816003811115612a3757612a37613a12565b03612acc57612a4588612d3d565b15612a535760019550612b49565b60405163199b9ca560e01b81526001860160048201526001600160401b038916602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__9063199b9ca59060440160006040518083038186803b158015612aaf57600080fd5b505af4158015612ac3573d6000803e3d6000fd5b50505050612b49565b6002816003811115612ae057612ae0613a12565b03612b4957604051635a27a53960e11b8152600481018d905273__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063b44f4a729060240160006040518083038186803b158015612b3057600080fd5b505af4158015612b44573d6000803e3d6000fd5b505050505b50505050509695505050505050565b60006000805160206155128339815191526040516394ecccfd60e01b81526001820160048201526001600160401b038416602482015290915073__$b7b8687e33476c74e3b4e0a64c4768a343$__906394ecccfd9060440160006040518083038186803b158015612bc857600080fd5b505af4158015611404573d6000803e3d6000fd5b600080516020615512833981519152612bf482612d3d565b612bfc575050565b604051634953836d60e11b81526001820160048201526001600160401b038316602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__906392a706da90604401602060405180830381865af4158015612c5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c819190613a83565b15612ca85760018101546001600160401b03838116600160401b9092041614612ca8575050565b6040516394ecccfd60e01b81526001820160048201526001600160401b038316602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__906394ecccfd9060440160006040518083038186803b158015612d0457600080fd5b505af4158015612d18573d6000803e3d6000fd5b505082546001600160401b0319166001600160401b0394909416939093179091555050565b600080516020615512833981519152805460009190612d6e906001600160401b03600160881b8204811691166154f1565b6001600160401b0316836001600160401b031614915050919050565b6000805160206155128339815191528054600091908290606490612db890600160801b900460ff1686614737565b612dc29190613d52565b604051637d2ef4e560e11b81526004810187905290915060009073__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063fa5de9ca90602401602060405180830381865af4158015612e18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e3c91906139f9565b905081866001015411612e555760009350505050610443565b81811115612e695760039350505050610443565b6001860154612e789086613d66565b612e828284613d66565b10612e935760029350505050610443565b50600195945050505050565b828054828255906000526020600020908101928215612edf5760005260206000209182015b82811115612edf578254825591600101919060010190612ec4565b50612eeb929150613155565b5090565b82805482825590600052602060002090600c0281019282156130a957600052602060002091600c0282015b828111156130a957825482546001600160401b0319166001600160401b039091161782556001808401805485928592849284928492849284928492612f629291840191612e9f565b50505060028281018054918301805460ff191660ff90931692909217825590600380840190612f9390860182615077565b505050506004838101805491840180546001600160401b0319166001600160401b039093169290921782556005808601805492945084928492612fd99290880191612e9f565b50505060028281018054918301805460ff191660ff9093169290921782559060038084019061300a90860182615077565b5050505060088381015490830155506009808301805491830180546001600160401b031981166001600160401b039094169384178255915463ffffffff600160401b9182900416026bffffffffffffffffffffffff19909216909217179055600a8082019061307b90840182615077565b505050600b918201549101805460ff191660ff9092161515919091179055600c928301929190910190612f1a565b50612eeb92915061316a565b8280548282559060005260206000209060030281019282156131495760005260206000209160030282015b8281111561314957825482546001600160401b0319166001600160401b039091161782556001808401805485928592849284926131209290840191612e9f565b505050600282810180546131379284019190612e9f565b505050916003019190600301906130e0565b50612eeb92915061323f565b5b80821115612eeb5760008155600101613156565b80821115612eeb5780546001600160401b031916815560008181818181816131956001830182613280565b505060028201805460ff1916815560006131b2600385018261329e565b505050506004820180546001600160401b0319168155600081816131d96005870182613280565b505060028201805460ff1916815560006131f6600385018261329e565b50506000600885018190556009850180546bffffffffffffffffffffffff191690556132289250600a8501915061329e565b505050600b8101805460ff19169055600c0161316a565b80821115612eeb5780546001600160401b0319168155600081816132666001830182613280565b506132779050600283016000613280565b5060030161323f565b50805460008255906000526020600020908101906103459190613155565b5080546132aa90613a28565b6000825580601f106132ba575050565b601f0160209004906000526020600020908101906103459190613155565b6001600160401b038116811461034557600080fd5b80356132f8816132d8565b919050565b60006020828403121561330f57600080fd5b813561159f816132d8565b6001600160a01b038116811461034557600080fd5b6000806040838503121561334257600080fd5b823561334d816132d8565b9150602083013561335d8161331a565b809150509250929050565b6000604083016001600160401b0383511684526020808401516040828701528281518085526060880191508383019450600092505b808310156133c65784516001600160a01b0316825293830193600192909201919083019061339d565b509695505050505050565b6000815180845260005b818110156133f7576020818501810151868301820152016133db565b506000602082860101526020601f19601f83011685010191505092915050565b600081516040845261342c6040850182613368565b90506020830151848203602086015260ff8151168252602081015190506040602083015261345d60408301826133d1565b95945050505050565b600081518084526020808501808196508360051b8101915082860160005b8581101561354d578284038952815160408151818752805160c080848a01526134b16101008a0183613417565b915089830151603f196060818c860301818d01526134cf8584613417565b9686015160808d810191909152908601516001600160401b031660a0808e0191909152908601516001600160e01b031916938c0193909352918401518a860390920160e08b01525092905061352481846133d1565b93890151801515898b015293925061353a915050565b9986019994505090840190600101613484565b5091979650505050505050565b600081518084526020808501808196508360051b810191508286016000805b868110156135ec578385038a5282516040815181885261359b82890182613368565b92890151888403898b01528051808552908a01938693508a0191505b808310156135d757835182529289019260019290920191908901906135b7565b509b88019b9650505091850191600101613579565b509298975050505050505050565b8215158152604060208201526000825160e0604084015261361f610120840182613368565b90506001600160401b036020850151166060840152604084015160808401526060840151603f19808584030160a086015261365a8383613466565b925060808601519150808584030160c0860152613677838361355a565b925060a086015160e086015260c086015191508085840301610100860152506136a082826133d1565b9695505050505050565b6000806000604084860312156136bf57600080fd5b83356001600160401b03808211156136d657600080fd5b818601915086601f8301126136ea57600080fd5b8135818111156136f957600080fd5b87602082850101111561370b57600080fd5b60209283019550935090850135908082111561372657600080fd5b5084016040818703121561373957600080fd5b809150509250925092565b60a08152600061375760a0830188613368565b6001600160401b0387166020840152856040840152846060840152828103608084015261378481856133d1565b98975050505050505050565b6000602082840312156137a257600080fd5b5035919050565b6000602082840312156137bb57600080fd5b81356001600160401b038111156137d157600080fd5b820160e0818503121561159f57600080fd5b600081518084526020808501808196508360051b8101915082860160005b8581101561354d578284038952815160408151818752805160c080848a015261382e6101008a0183613417565b915089830151603f196060818c860301818d015261384c8584613417565b9686015160808d810191909152908601516001600160401b031660a0808e0191909152908601516001600160e01b031916938c0193909352918401518a860390920160e08b0152509290506138a181846133d1565b93890151801515898b01529392506138b7915050565b9986019994505090840190600101613801565b600081518084526020808501808196508360051b810191508286016000805b868110156135ec578385038a5282516040815181885261390b82890182613368565b92890151888403898b01528051808552908a01938693508a0191505b808310156139475783518252928901926001929092019190890190613927565b509b88019b96505050918501916001016138e9565b602081526000825160e06020840152613979610100840182613368565b90506001600160401b036020850151166040840152604084015160608401526060840151601f19808584030160808601526139b483836137e3565b925060808601519150808584030160a08601526139d183836138ca565b925060a086015160c086015260c08601519150808584030160e08601525061345d82826133d1565b600060208284031215613a0b57600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b600181811c90821680613a3c57607f821691505b602082108103613a5c57634e487b7160e01b600052602260045260246000fd5b50919050565b60208152600061159f6020830184613368565b801515811461034557600080fd5b600060208284031215613a9557600080fd5b815161159f81613a75565b634e487b7160e01b600052601160045260246000fd5b8082018082111561044357610443613aa0565b634e487b7160e01b600052604160045260246000fd5b5b81811015611e6e5760008155600101613ae0565b601f8211156113c957806000526020600020601f840160051c81016020851015613b1b5750805b610de2601f850160051c830182613adf565b600019600383901b1c191660019190911b1790565b6001600160401b03831115613b5957613b59613ac9565b613b6d83613b678354613a28565b83613af4565b6000601f841160018114613b9b5760008515613b895750838201355b613b938682613b2d565b845550610de2565b600083815260209020601f19861690835b82811015613bcc5786850135825560209485019460019092019101613bac565b5086821015613be95760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60ff8116811461034557600080fd5b6000808335601e19843603018112613c2157600080fd5b8301803591506001600160401b03821115613c3b57600080fd5b602001915036819003821315613c5057600080fd5b9250929050565b8135613c6281613bfb565b60ff811660ff198354161782555060018082016020613c8381860186613c0a565b6001600160401b03811115613c9a57613c9a613ac9565b613cae81613ca88654613a28565b86613af4565b6000601f821160018114613cdc5760008315613cca5750838201355b613cd48482613b2d565b875550613d31565b600086815260209020601f19841690835b82811015613d0a5786850135825593870193908901908701613ced565b5084821015613d275760001960f88660031b161c19848701351681555b50508683881b0186555b505050505050505050565b634e487b7160e01b600052601260045260246000fd5b600082613d6157613d61613d3c565b500490565b8181038181111561044357610443613aa0565b60008235603e19833603018112613d8f57600080fd5b9190910192915050565b604080519081016001600160401b0381118282101715613dbb57613dbb613ac9565b60405290565b60405160c081016001600160401b0381118282101715613dbb57613dbb613ac9565b60405160e081016001600160401b0381118282101715613dbb57613dbb613ac9565b604051601f8201601f191681016001600160401b0381118282101715613e2d57613e2d613ac9565b604052919050565b60006001600160401b03821115613e4e57613e4e613ac9565b5060051b60200190565b600060408284031215613e6a57600080fd5b613e72613d99565b90508135613e7f816132d8565b81526020828101356001600160401b03811115613e9b57600080fd5b8301601f81018513613eac57600080fd5b8035613ebf613eba82613e35565b613e05565b81815260059190911b82018301908381019087831115613ede57600080fd5b928401925b82841015613f05578335613ef68161331a565b82529284019290840190613ee3565b8085870152505050505092915050565b60006104433683613e58565b6000808335601e19843603018112613f3857600080fd5b8301803591506001600160401b03821115613f5257600080fd5b6020019150600581901b3603821315613c5057600080fd5b60008235603e19833603018112613f8057600080fd5b90910192915050565b6000808335601e19843603018112613fa057600080fd5b83016020810192503590506001600160401b03811115613fbf57600080fd5b803603821315613c5057600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000813561400481613bfb565b60ff1683526140166020830183613f89565b6040602086015261345d604086018284613fce565b60006140378283613f6a565b6040845260808401813561404a816132d8565b6001600160401b0390811660408701526020908382013536859003601e1901811261407457600080fd5b9093018181019390358181111561408a57600080fd5b8060051b360385131561409c57600080fd5b60406060890152928390525060009160a08701905b808410156140e35784356140c48161331a565b6001600160a01b031682529382019360019390930192908201906140b1565b506140f082870187613f6a565b9350868103828801526141038185613ff7565b979650505050505050565b6001600160e01b03198116811461034557600080fd5b80356132f88161410e565b80356132f881613a75565b60208082528181018390526000906040808401600586901b850182018785805b8981101561426e57603f19808a8603018652614176848d613f6a565b803560be19823603018112614189578485fd5b88875281016141988180613f6a565b60c0808b8a01526141ad6101008a018361402b565b91506141bb8c840184613f6a565b6060868b850301818c01526141d0848361402b565b9350608091508c850135828c01528085013590506141ed816132d8565b60a06001600160401b038216818d015282860135925061420c8361410e565b6001600160e01b031983168c85015261422786820187613f89565b96509350505050848983030160e08a0152614243828483613fce565b945050505061425389820161412f565b1515958901959095529487019493509186019160010161415a565b50919998505050505050505050565b600082601f83011261428e57600080fd5b81356001600160401b038111156142a7576142a7613ac9565b6142ba601f8201601f1916602001613e05565b8181528460208386010111156142cf57600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156142fe57600080fd5b614306613d99565b905081356001600160401b038082111561431f57600080fd5b61432b85838601613e58565b8352602084013591508082111561434157600080fd5b908301906040828603121561435557600080fd5b61435d613d99565b823561436881613bfb565b815260208301358281111561437c57600080fd5b6143888782860161427d565b60208301525080602085015250505092915050565b600082601f8301126143ae57600080fd5b813560206143be613eba83613e35565b82815260059290921b840181019181810190868411156143dd57600080fd5b8286015b848110156133c65780356001600160401b038082111561440057600080fd5b90880190601f196040838c038201121561441957600080fd5b614421613d99565b878401358381111561443257600080fd5b840160c0818e038401121561444657600080fd5b61444e613dc1565b9250888101358481111561446157600080fd5b61446f8e8b838501016142ec565b84525060408101358481111561448457600080fd5b6144928e8b838501016142ec565b8a85015250606081013560408401526144ad608082016132ed565b60608401526144be60a08201614124565b608084015260c0810135848111156144d557600080fd5b6144e38e8b8385010161427d565b60a085015250508181526144f96040850161412f565b8189015286525050509183019183016143e1565b600082601f83011261451e57600080fd5b8135602061452e613eba83613e35565b828152600592831b850182019282820191908785111561454d57600080fd5b8387015b858110156146425780356001600160401b03808211156145715760008081fd5b908901906040828c03601f190181131561458b5760008081fd5b614593613d99565b88840135838111156145a55760008081fd5b6145b38e8b83880101613e58565b82525081840135838111156145c85760008081fd5b8085019450508c603f8501126145e057600092508283fd5b8884013592506145f2613eba84613e35565b83815292861b8401820192898101908e85111561460f5760008081fd5b948301945b8486101561462d5785358252948a0194908a0190614614565b828b0152508752505050928401928401614551565b5090979650505050505050565b600060e0823603121561466157600080fd5b614669613de3565b82356001600160401b038082111561468057600080fd5b61468c36838701613e58565b835261469a602086016132ed565b60208401526040850135604084015260608501359150808211156146bd57600080fd5b6146c93683870161439d565b606084015260808501359150808211156146e257600080fd5b6146ee3683870161450d565b608084015260a085013560a084015260c085013591508082111561471157600080fd5b5061471e3682860161427d565b60c08301525092915050565b60008135610443816132d8565b808202811582820484141761044357610443613aa0565b8054600082558015611e6e578160005260206000206113c982820182613adf565b600160401b82111561478357614783613ac9565b8054828255808310156113c957816000526020600020610400828201858301613adf565b600081556103456001820161474e565b6147c18154613a28565b8015611e6e57601f8111600181146147db57505060009055565b8260005260206000206147f9601f840160051c820160018301613adf565b60008085559055505050565b600081556148156001820161474e565b60006002820155610345600382016147b7565b6148328283613d79565b803561483d816132d8565b82546001600160401b0319166001600160401b038216178355506001808301602061486a81850185613f21565b94506001600160401b038086111561488457614884613ac9565b61488e868561476f565b600093845282842093805b878110156148bb5783356148ac8161331a565b86820155928401928601614899565b506002880196506148ce848a018a613d79565b9450843592506148dd83613bfb565b865460ff191660ff84161790965560038701956148fc85850186613c0a565b955092508185111561491057614910613ac9565b6149248561491e8954613a28565b89613af4565b809150601f851160018114614952578186156149405750838301355b61494a8782613b2d565b895550610ddc565b600088815260209020601f19871690835b828110156149805786860135825594870194908901908701614963565b508782101561499d5760001960f88960031b161c19858701351681555b505050505091831b90920190925550505050565b600081356104438161410e565b6000813561044381613a75565b813560be198336030181126149df57600080fd5b82016149eb8180613d79565b6149f58182613d79565b8035614a00816132d8565b84546001600160401b0319166001600160401b0382161785555060018085016020614a2d81850185613f21565b94506001600160401b0380861115614a4757614a47613ac9565b614a51868561476f565b600093845282842093805b87811015614a7e578335614a6f8161331a565b86820155928401928601614a5c565b5060028a019650614a9184890189613d79565b975087359450614aa085613bfb565b865460ff191660ff8616179096556003890195614abf88850189613c0a565b9850945081881115614ad357614ad3613ac9565b614ae18861491e8954613a28565b809250601f881160018114614b11578192508815614b00578386013592505b614b0a8984613b2d565b8855614b66565b600088815260209020601f198a169350825b84811015614b405787860135825594860194908801908601614b23565b5089841015614b5d5760001960f88b60031b161c19858801351681555b508689881b0188555b50505050614b82614b7982880188613d79565b60048901614828565b60408601356008880155600987019450614bbe614ba16060880161472a565b86546001600160401b0319166001600160401b0391909116178655565b614bf7614bcd608088016149b1565b86546bffffffff0000000000000000191660a09190911c6bffffffff000000000000000016178655565b614c0460a0870187613c0a565b96509450614c168686600a8a01613b42565b614c3d614c24828a016149be565b600b890160ff1981541660ff8315151681178255505050565b5050505050505050565b600160401b831115614c5b57614c5b613ac9565b805483825580841015614cef57600c8181028181048314614c7e57614c7e613aa0565b8582028281048714614c9257614c92613aa0565b6000858152602081209283019291909101905b82821015614cea57614cb682614805565b614cc260048301614805565b806008830155806009830155614cda600a83016147b7565b80600b8301558382019150614ca5565b505050505b5060008181526020812083915b8581101561140457614d17614d118487613d79565b836149cb565b60209290920191600c9190910190600101614cfc565b8054600080835581156113c957828152602081208281015b80821015610de257828255600182019150614d45565b600160401b821115614d6f57614d6f613ac9565b8054828255808310156113c9576000828152602081208481019083015b8082101561140457828255600182019150614d8c565b614dac8283613d79565b8035614db7816132d8565b82546001600160401b0319166001600160401b0382161783555060018083016020614de481850185613f21565b94506001600160401b0380861115614dfe57614dfe613ac9565b614e08868561476f565b600093845282842093805b87811015614e35578335614e268161331a565b86820155928401928601614e13565b50600288019650614e48848a018a613f21565b9550925081851115614e5c57614e5c613ac9565b614e668588614d5b565b95865250818520945b83811015614c3d57813586820155908201908401614e6f565b600160401b831115614e9c57614e9c613ac9565b805483825580841015614f0a5760038181028181048314614ebf57614ebf613aa0565b8582028281048714614ed357614ed3613aa0565b60008581526020902091820191015b81811015614f0657614ef3816147a7565b614eff60028201614d2d565b8201614ee2565b5050505b5060008181526020812083915b8581101561140457614f32614f2c8487613d79565b83614da2565b6020929092019160039190910190600101614f17565b614f528283613d79565b8035614f5d816132d8565b82546001600160401b0319166001600160401b0382161783555060018083016020614f8a81850185613f21565b94506001600160401b03851115614fa357614fa3613ac9565b614fad858461476f565b6000928352818320925b85811015614fd9578135614fca8161331a565b84820155908201908401614fb7565b505061500a614fe982880161472a565b600287016001600160401b0382166001600160401b03198254161781555050565b50505050604082013560038201556150256060830183613f21565b615033818360048601614c47565b50506150426080830183613f21565b615050818360058601614e88565b505060a0820135600682015561506960c0830183613c0a565b610400818360078601613b42565b818103615082575050565b61508c8254613a28565b6001600160401b038111156150a3576150a3613ac9565b6150b7816150b18454613a28565b84613af4565b6000601f8211600181146150e557600083156150d35750848201545b6150dd8482613b2d565b855550610de2565b600085815260209020601f19841690600086815260209020845b8381101561511f57828601548255600195860195909101906020016150ff565b508583101561513d5781850154600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000604083016001600160401b0383541684526001808401602060408188015283825480865260608901915083600052826000209550600093505b808410156151ae5785546001600160a01b03168252948401949284019290820190615188565b50979650505050505050565b600081546151c781613a28565b8085526020600183811680156151e457600181146151fe5761522c565b60ff1985168884015283151560051b88018301955061522c565b866000528260002060005b858110156152245781548a8201860152908301908401615209565b890184019650505b505050505092915050565b60408252600061524a604084018361514d565b838103602085015260ff60028401541681526040602082015261527360408201600385016151ba565b949350505050565b600081548084526020808501808196508360051b81019150856000528260002060005b8581101561354d578284038952604080855260c080828701526152c5610100870185615237565b9150603f19808784030160608801526152e18360048701615237565b6008860154608089015260098601546001600160401b03811660a0808b01919091521b6001600160e01b031916928801929092528682030160e0870152905061532d81600a85016151ba565b905061533d600b84015460ff1690565b15159486019490945297840197600c919091019060010161529e565b600081548084526020808501808196508360051b810191506000868152838120815b868110156135ec578385038a5260408086526153998187018461514d565b86810388880152600284018054808352908652888620925085918901905b808310156153d757835482526001938401939290920191908901906153b7565b509b88019b965050506003919091019060010161537b565b6020815260e06020820152600061540a61010083018461514d565b60028401546001600160401b0316604084015260038401546060840152828103601f199081016080850152615442826004870161527b565b9150808483030160a085015261545b8260058701615359565b9150600685015460c0850152808483030160e08501525061527381600786016151ba565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6001600160401b0382811682821603908082111561285257612852613aa0565b60006001600160401b03808416806154e5576154e5613d3c565b92169190910692915050565b6001600160401b0381811683821601908082111561285257612852613aa056fe283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e270a264697066735822122001b46e81270e5c112262180ce78840f576b5d7c72a99b8876c16a96ffd6396ea64736f6c63430008130033", - "sourceMap": "1767:9418:68:-:0;;;;;;;;;;;;;;;;;;;", + "object": "0x608060405234801561001057600080fd5b5061558b806100206000396000f3fe6080604052600436106100915760003560e01c80636cf6970a116100595780636cf6970a1461015c578063989037481461016f578063a9fb763c146101a0578063d66d9e19146101c0578063f6fd8381146101d557600080fd5b8063133f74ea146100965780633ccfd60b146100d257806341c0e1b5146100e957806366d7bbbc146100fe5780636cb2ecee1461012e575b600080fd5b3480156100a257600080fd5b506100b66100b1366004613321565b6101f5565b6040805192151583526020830191909152015b60405180910390f35b3480156100de57600080fd5b506100e761028e565b005b3480156100f557600080fd5b506100e7610348565b34801561010a57600080fd5b5061011e610119366004613353565b610400565b60405190151581526020016100c9565b34801561013a57600080fd5b5061014e610149366004613321565b610441565b6040516100c992919061361e565b6100e761016a3660046136ce565b610b8b565b34801561017b57600080fd5b5061018f61018a366004613321565b610de4565b6040516100c9959493929190613768565b3480156101ac57600080fd5b506100e76101bb3660046137b4565b610f56565b3480156101cc57600080fd5b506100e7611013565b3480156101e157600080fd5b506100e76101f03660046137cd565b611189565b60008060008061020485610441565b6040516339aa47fb60e01b81529193509150829073__$1cd67d4dc9e627f0bec7928aa480e7d951$__906339aa47fb90610242908590600401613980565b602060405180830381865af415801561025f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102839190613a1d565b935093505050915091565b610296611400565b33600090815260026020526040812054908190036102c7576040516367300f9160e11b815260040160405180910390fd5b3360009081526002602052604080822091909155600d549051631f0e077760e31b8152600481018390526001600160a01b039091169063f8703bb890602401600060405180830381600087803b15801561032057600080fd5b505af1158015610334573d6000803e3d6000fd5b506103459250339150839050611492565b50565b610350611400565b61035861152d565b610362600e61156b565b151580610370575060075415155b1561038e57604051636b62255160e11b815260040160405180910390fd5b600d8054600360a01b60ff60a01b19821617909155604080516341c0e1b560e01b815290516001600160a01b03909216916341c0e1b59160048082019260009290919082900301818387803b1580156103e657600080fd5b505af11580156103fa573d6000803e3d6000fd5b50505050565b6001600160401b0382166000908152602081815260408083208054845260030182528083206001600160a01b038516845290915290205460ff165b92915050565b60006104916040805161012081018252600060e0820181815260606101008401819052908352602083018290529282018190528282018390526080820183905260a082015260c081019190915290565b6001600160401b03808416600090815260056020908152604091829020825161012081018452815490941660e085019081526001820180548551818602810186019096528086529294869492938693610100870193919083018282801561052157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610503575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b8282101561092b5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561063257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610614575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061066c90613a4c565b80601f016020809104026020016040519081016040528092919081815260200182805461069890613a4c565b80156106e55780601f106106ba576101008083540402835291602001916106e5565b820191906000526020600020905b8154815290600101906020018083116106c857829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561077657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610758575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906107b090613a4c565b80601f01602080910402602001604051908101604052809291908181526020018280546107dc90613a4c565b80156108295780601f106107fe57610100808354040283529160200191610829565b820191906000526020600020905b81548152906001019060200180831161080c57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161088490613a4c565b80601f01602080910402602001604051908101604052809291908181526020018280546108b090613a4c565b80156108fd5780601f106108d2576101008083540402835291602001916108fd565b820191906000526020600020905b8154815290600101906020018083116108e057829003601f168201915b505050919092525050508152600b919091015460ff161515602091820152908252600192909201910161058c565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015610a62576000848152602090819020604080516080810182526003860290920180546001600160401b0316838301908152600182018054845181880281018801909552808552949592948694929386936060870193909290918301828280156109ee57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109d0575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610a4a57602002820191906000526020600020905b815481526020019060010190808311610a36575b50505050508152505081526020019060010190610958565b50505050815260200160068201548152602001600782018054610a8490613a4c565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab090613a4c565b8015610afd5780601f10610ad257610100808354040283529160200191610afd565b820191906000526020600020905b815481529060010190602001808311610ae057829003601f168201915b5050509190925250508151604051630c133d1360e31b815292935073__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e8989250610b429190600401613a86565b602060405180830381865af4158015610b5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b839190613aa7565b159150915091565b610b93611400565b610b9b61152d565b34336000829003610bbf57604051635a78c58160e11b815260040160405180910390fd5b6001600160a01b03811660009081526001602052604081208054849290610be7908490613ada565b909155505060078054839190600090610c01908490613ada565b90915550506008546001600160a01b03821660009081526001602052604090205410610c8d57610c32600e82611575565b610c8d57610c41600e8261159a565b506001600160a01b0381166000908152600360205260409020610c65858783613b66565b506001600160a01b03811660009081526004602052604090208390610c8a8282613c7b565b50505b6005600d54600160a01b900460ff166005811115610cad57610cad613a36565b03610d385760085460075410610d3357600d8054600160a01b60ff60a01b1982161790915560075460408051630354740160e31b815290516001600160a01b0390931692631aa3a008929160048082019260009290919082900301818588803b158015610d1957600080fd5b505af1158015610d2d573d6000803e3d6000fd5b50505050505b610ddd565b6002600d54600160a01b900460ff166005811115610d5857610d58613a36565b03610d7c5760085460075410610d7c57600d805460ff60a01b1916600160a01b1790555b600d54604080516316989f6f60e21b815290516001600160a01b0390921691635a627dbc918591600480830192600092919082900301818588803b158015610dc357600080fd5b505af1158015610dd7573d6000803e3d6000fd5b50505050505b5050505050565b6040805180820182526000808252606060208084018290526001600160401b03868116845260058252858420865180880188528154909216825260018101805488518186028101860190995280895296979596879687969585810193919290830182828015610e7c57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e5e575b505050919092525050506001600160401b03808816600090815260056020526040902060028101546003820154600683015460079093018054959a50919093169750919550935090610ecd90613a4c565b80601f0160208091040260200160405190810160405280929190818152602001828054610ef990613a4c565b8015610f465780601f10610f1b57610100808354040283529160200191610f46565b820191906000526020600020905b815481529060010190602001808311610f2957829003601f168201915b5050505050905091939590929450565b610f5e6115af565b6000610f6a600e61156b565b905080600003610f8d5760405163efa9c8f160e01b815260040160405180910390fd5b80821015610fae57604051633074cabf60e11b815260040160405180910390fd5b6000610fba8284613d76565b905060005b828110156103fa578160026000610fd7600e856115da565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546110069190613ada565b9091555050600101610fbf565b7f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095805460001901611057576040516329f745a760e01b815260040160405180910390fd5b60018155611063611400565b61106b61152d565b336000908152600160205260408120549081900361109c57604051632ec5b44960e01b815260040160405180910390fd5b336000908152600160205260408120819055600780548392906110c0908490613d8a565b909155506110d19050600e336115e6565b506001600d54600160a01b900460ff1660058111156110f2576110f2613a36565b0361111757600854600754101561111757600d805460ff60a01b1916600160a11b1790555b600d546040516345f5448560e01b8152600481018390526001600160a01b03909116906345f5448590602401600060405180830381600087803b15801561115d57600080fd5b505af1158015611171573d6000803e3d6000fd5b506111829250339150839050611492565b5060009055565b611191611400565b6111a96111a46040830160208401613321565b6115fb565b6001600d54600160a01b900460ff1660058111156111c9576111c9613a36565b146111e75760405163c18316bf60e01b815260040160405180910390fd5b6111f2600e33611575565b61120f57604051632ec5b44960e01b815260040160405180910390fd5b600b5461121c8280613d9d565b61122590613f39565b6040516390ba52cf60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__916390ba52cf9161125b9190600401613a86565b602060405180830381865af4158015611278573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061129c9190613a1d565b146112ba576040516375ecc72d60e01b815260040160405180910390fd5b73__$33b79814e84bf6cf5e47244090b19ce5f8$__63898414756112e16060840184613f45565b6040518363ffffffff1660e01b81526004016112fe92919061415e565b602060405180830381865af415801561131b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133f9190613aa7565b61135c57604051630bd9169f60e01b815260040160405180910390fd5b600080806113706040850160208601613321565b6001600160401b031681526020808201929092526040908101600090812033808352600190945291812054919350916113ac9184918691611604565b905080156113c2576113bd82611dc4565b505050565b6000806113cd612685565b915091508015610ddd576001600160401b03821660009081526020819052604090206113f881611dc4565b505050505050565b604051630972932760e21b815233600482015273__$e800e3908cdbb6b1b5bd452383a17b18f7$__906325ca4c9c90602401602060405180830381865af415801561144f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114739190613aa7565b6114905760405163b7150de560e01b815260040160405180910390fd5b565b804710156114b95760405163cd78605960e01b815230600482015260240160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611506576040519150601f19603f3d011682016040523d82523d6000602084013e61150b565b606091505b50509050806113bd57604051630a12f52160e11b815260040160405180910390fd5b6003600d54600160a01b900460ff16600581111561154d5761154d613a36565b036114905760405163248c8efb60e11b815260040160405180910390fd5b600061043b825490565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b6000611593836001600160a01b0384166126d8565b600d546001600160a01b031633146114905760405163e7e601db60e01b815260040160405180910390fd5b60006115938383612727565b6000611593836001600160a01b038416612751565b6103458161284b565b60008061161085614673565b6040516339aa47fb60e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__916339aa47fb916116469190600401613980565b602060405180830381865af4158015611663573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116879190613a1d565b90506116a8868286866116a060408b0160208c01613321565b600754612916565b600082815260058801602090815260409182902082516101208101845281546001600160401b031660e082019081526001830180548651818702810187019097528087529698509195929486949193869361010087019390919083018282801561173b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161171d575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015611b455760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561184c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161182e575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061188690613a4c565b80601f01602080910402602001604051908101604052809291908181526020018280546118b290613a4c565b80156118ff5780601f106118d4576101008083540402835291602001916118ff565b820191906000526020600020905b8154815290600101906020018083116118e257829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561199057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611972575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906119ca90613a4c565b80601f01602080910402602001604051908101604052809291908181526020018280546119f690613a4c565b8015611a435780601f10611a1857610100808354040283529160200191611a43565b820191906000526020600020905b815481529060010190602001808311611a2657829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191611a9e90613a4c565b80601f0160208091040260200160405190810160405280929190818152602001828054611aca90613a4c565b8015611b175780601f10611aec57610100808354040283529160200191611b17565b820191906000526020600020905b815481529060010190602001808311611afa57829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016117a6565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015611c7c576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015611c0857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611bea575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015611c6457602002820191906000526020600020905b815481526020019060010190808311611c50575b50505050508152505081526020019060010190611b72565b50505050815260200160068201548152602001600782018054611c9e90613a4c565b80601f0160208091040260200160405190810160405280929190818152602001828054611cca90613a4c565b8015611d175780601f10611cec57610100808354040283529160200191611d17565b820191906000526020600020905b815481529060010190602001808311611cfa57829003601f168201915b5050509190925250506040516322ea8d8960e11b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__926345d51b129250611d5691600401613980565b602060405180830381865af4158015611d73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d979190613aa7565b15611dbb57600081815260058701602052604090208590611db88282614f6c565b50505b50949350505050565b6002810154600090815260058201602052604090206006810154600c5414611e6457604051635a27a53960e11b81526004810183905273__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063b44f4a729060240160006040518083038186803b158015611e3157600080fd5b505af4158015611e45573d6000803e3d6000fd5b5050506002820154611e6091506001600160401b0316612b63565b5050565b6002810154611e7b906001600160401b0316612be7565b60028101546001600160401b039081166000908152600560205260409020825481546001600160401b03191692169190911781556001808301805484939284928492611eca9284019190612ec3565b50505060028281015490820180546001600160401b0319166001600160401b039092169190911790556003808301549082015560048083018054611f119284019190612f13565b5060058281018054611f2692840191906130d9565b506006820154816006015560078201816007019081611f45919061509b565b5050604080516101208101825283546001600160401b031660e0820190815260018501805484516020828102820181019096528181529395508694869486936101008701939192909190830182828015611fc857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611faa575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156123d25760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d019390918301828280156120d957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116120bb575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061211390613a4c565b80601f016020809104026020016040519081016040528092919081815260200182805461213f90613a4c565b801561218c5780601f106121615761010080835404028352916020019161218c565b820191906000526020600020905b81548152906001019060200180831161216f57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561221d57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116121ff575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061225790613a4c565b80601f016020809104026020016040519081016040528092919081815260200182805461228390613a4c565b80156122d05780601f106122a5576101008083540402835291602001916122d0565b820191906000526020600020905b8154815290600101906020018083116122b357829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161232b90613a4c565b80601f016020809104026020016040519081016040528092919081815260200182805461235790613a4c565b80156123a45780601f10612379576101008083540402835291602001916123a4565b820191906000526020600020905b81548152906001019060200180831161238757829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101612033565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015612509576000848152602090819020604080516080810182526003860290920180546001600160401b03168383019081526001820180548451818802810188019095528085529495929486949293869360608701939092909183018282801561249557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612477575b5050505050815250508152602001600282018054806020026020016040519081016040528092919081815260200182805480156124f157602002820191906000526020600020905b8154815260200190600101908083116124dd575b505050505081525050815260200190600101906123ff565b5050505081526020016006820154815260200160078201805461252b90613a4c565b80601f016020809104026020016040519081016040528092919081815260200182805461255790613a4c565b80156125a45780601f10612579576101008083540402835291602001916125a4565b820191906000526020600020905b81548152906001019060200180831161258757829003601f168201915b5050509190925250506040516339aa47fb60e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__926339aa47fb92506125e391600401613980565b602060405180830381865af4158015612600573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126249190613a1d565b600c55600d54604051631a9c293560e31b81526001600160a01b039091169063d4e149a890612657908490600401615413565b600060405180830381600087803b15801561267157600080fd5b505af11580156113f8573d6000803e3d6000fd5b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27154600160801b90046001600160401b031660006000805160206155368339815191526126d183612d48565b9150509091565b600081815260018301602052604081205461271f5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561043b565b50600061043b565b600082600001828154811061273e5761273e6154a3565b9060005260206000200154905092915050565b6000818152600183016020526040812054801561283a576000612775600183613d8a565b855490915060009061278990600190613d8a565b90508181146127ee5760008660000182815481106127a9576127a96154a3565b90600052602060002001549050808760000184815481106127cc576127cc6154a3565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806127ff576127ff6154b9565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061043b565b600091505061043b565b5092915050565b60008051602061553683398151915280546001600160401b039081169083161161288857604051631f30cc6360e21b815260040160405180910390fd5b80546001600160401b03600160401b909104811690831610156128be5760405163b4f68f9760e01b815260040160405180910390fd5b80546001600160401b03600160801b82048116916128e591600160401b90910416846154cf565b6128ef91906154ef565b6001600160401b031615611e605760405163b4f68f9760e01b815260040160405180910390fd5b8554600081815260038801602090815260408083206001600160a01b038916845290915281205490916000805160206155368339815191529160ff1615612970576040516337138f5f60e11b815260040160405180910390fd5b600081815260038a01602090815260408083206001600160a01b038b1684529091528120805460ff191660019081179091558a0180548892906129b4908490613ada565b9091555050600081815260048a01602090815260408083208b8452909152812080548892906129e4908490613ada565b9091555050600081815260048a016020908152604080832060028d01548452909152808220548a835291205480821015612a205760028b018a90555b6000612a2c8c88612d95565b90506003816003811115612a4257612a42613a36565b03612ad757612a5088612d48565b15612a5e5760019550612b54565b60405163199b9ca560e01b81526001860160048201526001600160401b038916602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__9063199b9ca59060440160006040518083038186803b158015612aba57600080fd5b505af4158015612ace573d6000803e3d6000fd5b50505050612b54565b6002816003811115612aeb57612aeb613a36565b03612b5457604051635a27a53960e11b8152600481018d905273__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063b44f4a729060240160006040518083038186803b158015612b3b57600080fd5b505af4158015612b4f573d6000803e3d6000fd5b505050505b50505050509695505050505050565b60006000805160206155368339815191526040516394ecccfd60e01b81526001820160048201526001600160401b038416602482015290915073__$b7b8687e33476c74e3b4e0a64c4768a343$__906394ecccfd9060440160006040518083038186803b158015612bd357600080fd5b505af41580156113f8573d6000803e3d6000fd5b600080516020615536833981519152612bff82612d48565b612c07575050565b604051634953836d60e11b81526001820160048201526001600160401b038316602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__906392a706da90604401602060405180830381865af4158015612c68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c8c9190613aa7565b15612cb35760018101546001600160401b03838116600160801b9092041614612cb3575050565b6040516394ecccfd60e01b81526001820160048201526001600160401b038316602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__906394ecccfd9060440160006040518083038186803b158015612d0f57600080fd5b505af4158015612d23573d6000803e3d6000fd5b505082546001600160401b0319166001600160401b0394909416939093179091555050565b600080516020615536833981519152805460009190612d79906001600160401b03600160801b820481169116615515565b6001600160401b0316836001600160401b031614915050919050565b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27354600090600080516020615536833981519152908290606490612ddc9060ff168661475b565b612de69190613d76565b604051637d2ef4e560e11b81526004810187905290915060009073__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063fa5de9ca90602401602060405180830381865af4158015612e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e609190613a1d565b905081866001015411612e79576000935050505061043b565b81811115612e8d576003935050505061043b565b6001860154612e9c9086613d8a565b612ea68284613d8a565b10612eb7576002935050505061043b565b50600195945050505050565b828054828255906000526020600020908101928215612f035760005260206000209182015b82811115612f03578254825591600101919060010190612ee8565b50612f0f929150613179565b5090565b82805482825590600052602060002090600c0281019282156130cd57600052602060002091600c0282015b828111156130cd57825482546001600160401b0319166001600160401b039091161782556001808401805485928592849284928492849284928492612f869291840191612ec3565b50505060028281018054918301805460ff191660ff90931692909217825590600380840190612fb79086018261509b565b505050506004838101805491840180546001600160401b0319166001600160401b039093169290921782556005808601805492945084928492612ffd9290880191612ec3565b50505060028281018054918301805460ff191660ff9093169290921782559060038084019061302e9086018261509b565b5050505060088381015490830155506009808301805491830180546001600160401b031981166001600160401b039094169384178255915463ffffffff600160401b9182900416026bffffffffffffffffffffffff19909216909217179055600a8082019061309f9084018261509b565b505050600b918201549101805460ff191660ff9092161515919091179055600c928301929190910190612f3e565b50612f0f92915061318e565b82805482825590600052602060002090600302810192821561316d5760005260206000209160030282015b8281111561316d57825482546001600160401b0319166001600160401b039091161782556001808401805485928592849284926131449290840191612ec3565b5050506002828101805461315b9284019190612ec3565b50505091600301919060030190613104565b50612f0f929150613263565b5b80821115612f0f576000815560010161317a565b80821115612f0f5780546001600160401b031916815560008181818181816131b960018301826132a4565b505060028201805460ff1916815560006131d660038501826132c2565b505050506004820180546001600160401b0319168155600081816131fd60058701826132a4565b505060028201805460ff19168155600061321a60038501826132c2565b50506000600885018190556009850180546bffffffffffffffffffffffff1916905561324c9250600a850191506132c2565b505050600b8101805460ff19169055600c0161318e565b80821115612f0f5780546001600160401b03191681556000818161328a60018301826132a4565b5061329b90506002830160006132a4565b50600301613263565b50805460008255906000526020600020908101906103459190613179565b5080546132ce90613a4c565b6000825580601f106132de575050565b601f0160209004906000526020600020908101906103459190613179565b6001600160401b038116811461034557600080fd5b803561331c816132fc565b919050565b60006020828403121561333357600080fd5b8135611593816132fc565b6001600160a01b038116811461034557600080fd5b6000806040838503121561336657600080fd5b8235613371816132fc565b915060208301356133818161333e565b809150509250929050565b6000604083016001600160401b0383511684526020808401516040828701528281518085526060880191508383019450600092505b808310156133ea5784516001600160a01b031682529383019360019290920191908301906133c1565b509695505050505050565b6000815180845260005b8181101561341b576020818501810151868301820152016133ff565b506000602082860101526020601f19601f83011685010191505092915050565b6000815160408452613450604085018261338c565b90506020830151848203602086015260ff8151168252602081015190506040602083015261348160408301826133f5565b95945050505050565b600081518084526020808501808196508360051b8101915082860160005b85811015613571578284038952815160408151818752805160c080848a01526134d56101008a018361343b565b915089830151603f196060818c860301818d01526134f3858461343b565b9686015160808d810191909152908601516001600160401b031660a0808e0191909152908601516001600160e01b031916938c0193909352918401518a860390920160e08b01525092905061354881846133f5565b93890151801515898b015293925061355e915050565b99860199945050908401906001016134a8565b5091979650505050505050565b600081518084526020808501808196508360051b810191508286016000805b86811015613610578385038a528251604081518188526135bf8289018261338c565b92890151888403898b01528051808552908a01938693508a0191505b808310156135fb57835182529289019260019290920191908901906135db565b509b88019b965050509185019160010161359d565b509298975050505050505050565b8215158152604060208201526000825160e0604084015261364361012084018261338c565b90506001600160401b036020850151166060840152604084015160808401526060840151603f19808584030160a086015261367e838361348a565b925060808601519150808584030160c086015261369b838361357e565b925060a086015160e086015260c086015191508085840301610100860152506136c482826133f5565b9695505050505050565b6000806000604084860312156136e357600080fd5b83356001600160401b03808211156136fa57600080fd5b818601915086601f83011261370e57600080fd5b81358181111561371d57600080fd5b87602082850101111561372f57600080fd5b60209283019550935090850135908082111561374a57600080fd5b5084016040818703121561375d57600080fd5b809150509250925092565b60a08152600061377b60a083018861338c565b6001600160401b038716602084015285604084015284606084015282810360808401526137a881856133f5565b98975050505050505050565b6000602082840312156137c657600080fd5b5035919050565b6000602082840312156137df57600080fd5b81356001600160401b038111156137f557600080fd5b820160e0818503121561159357600080fd5b600081518084526020808501808196508360051b8101915082860160005b85811015613571578284038952815160408151818752805160c080848a01526138526101008a018361343b565b915089830151603f196060818c860301818d0152613870858461343b565b9686015160808d810191909152908601516001600160401b031660a0808e0191909152908601516001600160e01b031916938c0193909352918401518a860390920160e08b0152509290506138c581846133f5565b93890151801515898b01529392506138db915050565b9986019994505090840190600101613825565b600081518084526020808501808196508360051b810191508286016000805b86811015613610578385038a5282516040815181885261392f8289018261338c565b92890151888403898b01528051808552908a01938693508a0191505b8083101561396b578351825292890192600192909201919089019061394b565b509b88019b965050509185019160010161390d565b602081526000825160e0602084015261399d61010084018261338c565b90506001600160401b036020850151166040840152604084015160608401526060840151601f19808584030160808601526139d88383613807565b925060808601519150808584030160a08601526139f583836138ee565b925060a086015160c086015260c08601519150808584030160e08601525061348182826133f5565b600060208284031215613a2f57600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b600181811c90821680613a6057607f821691505b602082108103613a8057634e487b7160e01b600052602260045260246000fd5b50919050565b602081526000611593602083018461338c565b801515811461034557600080fd5b600060208284031215613ab957600080fd5b815161159381613a99565b634e487b7160e01b600052601160045260246000fd5b8082018082111561043b5761043b613ac4565b634e487b7160e01b600052604160045260246000fd5b5b81811015611e605760008155600101613b04565b601f8211156113bd57806000526020600020601f840160051c81016020851015613b3f5750805b610ddd601f850160051c830182613b03565b600019600383901b1c191660019190911b1790565b6001600160401b03831115613b7d57613b7d613aed565b613b9183613b8b8354613a4c565b83613b18565b6000601f841160018114613bbf5760008515613bad5750838201355b613bb78682613b51565b845550610ddd565b600083815260209020601f19861690835b82811015613bf05786850135825560209485019460019092019101613bd0565b5086821015613c0d5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60ff8116811461034557600080fd5b6000808335601e19843603018112613c4557600080fd5b8301803591506001600160401b03821115613c5f57600080fd5b602001915036819003821315613c7457600080fd5b9250929050565b8135613c8681613c1f565b60ff811660ff198354161782555060018082016020613ca781860186613c2e565b6001600160401b03811115613cbe57613cbe613aed565b613cd281613ccc8654613a4c565b86613b18565b6000601f821160018114613d005760008315613cee5750838201355b613cf88482613b51565b875550613d55565b600086815260209020601f19841690835b82811015613d2e5786850135825593870193908901908701613d11565b5084821015613d4b5760001960f88660031b161c19848701351681555b50508683881b0186555b505050505050505050565b634e487b7160e01b600052601260045260246000fd5b600082613d8557613d85613d60565b500490565b8181038181111561043b5761043b613ac4565b60008235603e19833603018112613db357600080fd5b9190910192915050565b604080519081016001600160401b0381118282101715613ddf57613ddf613aed565b60405290565b60405160c081016001600160401b0381118282101715613ddf57613ddf613aed565b60405160e081016001600160401b0381118282101715613ddf57613ddf613aed565b604051601f8201601f191681016001600160401b0381118282101715613e5157613e51613aed565b604052919050565b60006001600160401b03821115613e7257613e72613aed565b5060051b60200190565b600060408284031215613e8e57600080fd5b613e96613dbd565b90508135613ea3816132fc565b81526020828101356001600160401b03811115613ebf57600080fd5b8301601f81018513613ed057600080fd5b8035613ee3613ede82613e59565b613e29565b81815260059190911b82018301908381019087831115613f0257600080fd5b928401925b82841015613f29578335613f1a8161333e565b82529284019290840190613f07565b8085870152505050505092915050565b600061043b3683613e7c565b6000808335601e19843603018112613f5c57600080fd5b8301803591506001600160401b03821115613f7657600080fd5b6020019150600581901b3603821315613c7457600080fd5b60008235603e19833603018112613fa457600080fd5b90910192915050565b6000808335601e19843603018112613fc457600080fd5b83016020810192503590506001600160401b03811115613fe357600080fd5b803603821315613c7457600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000813561402881613c1f565b60ff16835261403a6020830183613fad565b60406020860152613481604086018284613ff2565b600061405b8283613f8e565b6040845260808401813561406e816132fc565b6001600160401b0390811660408701526020908382013536859003601e1901811261409857600080fd5b909301818101939035818111156140ae57600080fd5b8060051b36038513156140c057600080fd5b60406060890152928390525060009160a08701905b808410156141075784356140e88161333e565b6001600160a01b031682529382019360019390930192908201906140d5565b5061411482870187613f8e565b935086810382880152614127818561401b565b979650505050505050565b6001600160e01b03198116811461034557600080fd5b803561331c81614132565b803561331c81613a99565b60208082528181018390526000906040808401600586901b850182018785805b8981101561429257603f19808a860301865261419a848d613f8e565b803560be198236030181126141ad578485fd5b88875281016141bc8180613f8e565b60c0808b8a01526141d16101008a018361404f565b91506141df8c840184613f8e565b6060868b850301818c01526141f4848361404f565b9350608091508c850135828c0152808501359050614211816132fc565b60a06001600160401b038216818d015282860135925061423083614132565b6001600160e01b031983168c85015261424b86820187613fad565b96509350505050848983030160e08a0152614267828483613ff2565b9450505050614277898201614153565b1515958901959095529487019493509186019160010161417e565b50919998505050505050505050565b600082601f8301126142b257600080fd5b81356001600160401b038111156142cb576142cb613aed565b6142de601f8201601f1916602001613e29565b8181528460208386010111156142f357600080fd5b816020850160208301376000918101602001919091529392505050565b60006040828403121561432257600080fd5b61432a613dbd565b905081356001600160401b038082111561434357600080fd5b61434f85838601613e7c565b8352602084013591508082111561436557600080fd5b908301906040828603121561437957600080fd5b614381613dbd565b823561438c81613c1f565b81526020830135828111156143a057600080fd5b6143ac878286016142a1565b60208301525080602085015250505092915050565b600082601f8301126143d257600080fd5b813560206143e2613ede83613e59565b82815260059290921b8401810191818101908684111561440157600080fd5b8286015b848110156133ea5780356001600160401b038082111561442457600080fd5b90880190601f196040838c038201121561443d57600080fd5b614445613dbd565b878401358381111561445657600080fd5b840160c0818e038401121561446a57600080fd5b614472613de5565b9250888101358481111561448557600080fd5b6144938e8b83850101614310565b8452506040810135848111156144a857600080fd5b6144b68e8b83850101614310565b8a85015250606081013560408401526144d160808201613311565b60608401526144e260a08201614148565b608084015260c0810135848111156144f957600080fd5b6145078e8b838501016142a1565b60a0850152505081815261451d60408501614153565b818901528652505050918301918301614405565b600082601f83011261454257600080fd5b81356020614552613ede83613e59565b828152600592831b850182019282820191908785111561457157600080fd5b8387015b858110156146665780356001600160401b03808211156145955760008081fd5b908901906040828c03601f19018113156145af5760008081fd5b6145b7613dbd565b88840135838111156145c95760008081fd5b6145d78e8b83880101613e7c565b82525081840135838111156145ec5760008081fd5b8085019450508c603f85011261460457600092508283fd5b888401359250614616613ede84613e59565b83815292861b8401820192898101908e8511156146335760008081fd5b948301945b848610156146515785358252948a0194908a0190614638565b828b0152508752505050928401928401614575565b5090979650505050505050565b600060e0823603121561468557600080fd5b61468d613e07565b82356001600160401b03808211156146a457600080fd5b6146b036838701613e7c565b83526146be60208601613311565b60208401526040850135604084015260608501359150808211156146e157600080fd5b6146ed368387016143c1565b6060840152608085013591508082111561470657600080fd5b61471236838701614531565b608084015260a085013560a084015260c085013591508082111561473557600080fd5b50614742368286016142a1565b60c08301525092915050565b6000813561043b816132fc565b808202811582820484141761043b5761043b613ac4565b8054600082558015611e60578160005260206000206113bd82820182613b03565b600160401b8211156147a7576147a7613aed565b8054828255808310156113bd578160005260206000206103fa828201858301613b03565b6000815561034560018201614772565b6147e58154613a4c565b8015611e6057601f8111600181146147ff57505060009055565b82600052602060002061481d601f840160051c820160018301613b03565b60008085559055505050565b6000815561483960018201614772565b60006002820155610345600382016147db565b6148568283613d9d565b8035614861816132fc565b82546001600160401b0319166001600160401b038216178355506001808301602061488e81850185613f45565b94506001600160401b03808611156148a8576148a8613aed565b6148b28685614793565b600093845282842093805b878110156148df5783356148d08161333e565b868201559284019286016148bd565b506002880196506148f2848a018a613d9d565b94508435925061490183613c1f565b865460ff191660ff841617909655600387019561492085850186613c2e565b955092508185111561493457614934613aed565b614948856149428954613a4c565b89613b18565b809150601f851160018114614976578186156149645750838301355b61496e8782613b51565b895550610dd7565b600088815260209020601f19871690835b828110156149a45786860135825594870194908901908701614987565b50878210156149c15760001960f88960031b161c19858701351681555b505050505091831b90920190925550505050565b6000813561043b81614132565b6000813561043b81613a99565b813560be19833603018112614a0357600080fd5b8201614a0f8180613d9d565b614a198182613d9d565b8035614a24816132fc565b84546001600160401b0319166001600160401b0382161785555060018085016020614a5181850185613f45565b94506001600160401b0380861115614a6b57614a6b613aed565b614a758685614793565b600093845282842093805b87811015614aa2578335614a938161333e565b86820155928401928601614a80565b5060028a019650614ab584890189613d9d565b975087359450614ac485613c1f565b865460ff191660ff8616179096556003890195614ae388850189613c2e565b9850945081881115614af757614af7613aed565b614b05886149428954613a4c565b809250601f881160018114614b35578192508815614b24578386013592505b614b2e8984613b51565b8855614b8a565b600088815260209020601f198a169350825b84811015614b645787860135825594860194908801908601614b47565b5089841015614b815760001960f88b60031b161c19858801351681555b508689881b0188555b50505050614ba6614b9d82880188613d9d565b6004890161484c565b60408601356008880155600987019450614be2614bc56060880161474e565b86546001600160401b0319166001600160401b0391909116178655565b614c1b614bf1608088016149d5565b86546bffffffff0000000000000000191660a09190911c6bffffffff000000000000000016178655565b614c2860a0870187613c2e565b96509450614c3a8686600a8a01613b66565b614c61614c48828a016149e2565b600b890160ff1981541660ff8315151681178255505050565b5050505050505050565b600160401b831115614c7f57614c7f613aed565b805483825580841015614d1357600c8181028181048314614ca257614ca2613ac4565b8582028281048714614cb657614cb6613ac4565b6000858152602081209283019291909101905b82821015614d0e57614cda82614829565b614ce660048301614829565b806008830155806009830155614cfe600a83016147db565b80600b8301558382019150614cc9565b505050505b5060008181526020812083915b858110156113f857614d3b614d358487613d9d565b836149ef565b60209290920191600c9190910190600101614d20565b8054600080835581156113bd57828152602081208281015b80821015610ddd57828255600182019150614d69565b600160401b821115614d9357614d93613aed565b8054828255808310156113bd576000828152602081208481019083015b808210156113f857828255600182019150614db0565b614dd08283613d9d565b8035614ddb816132fc565b82546001600160401b0319166001600160401b0382161783555060018083016020614e0881850185613f45565b94506001600160401b0380861115614e2257614e22613aed565b614e2c8685614793565b600093845282842093805b87811015614e59578335614e4a8161333e565b86820155928401928601614e37565b50600288019650614e6c848a018a613f45565b9550925081851115614e8057614e80613aed565b614e8a8588614d7f565b95865250818520945b83811015614c6157813586820155908201908401614e93565b600160401b831115614ec057614ec0613aed565b805483825580841015614f2e5760038181028181048314614ee357614ee3613ac4565b8582028281048714614ef757614ef7613ac4565b60008581526020902091820191015b81811015614f2a57614f17816147cb565b614f2360028201614d51565b8201614f06565b5050505b5060008181526020812083915b858110156113f857614f56614f508487613d9d565b83614dc6565b6020929092019160039190910190600101614f3b565b614f768283613d9d565b8035614f81816132fc565b82546001600160401b0319166001600160401b0382161783555060018083016020614fae81850185613f45565b94506001600160401b03851115614fc757614fc7613aed565b614fd18584614793565b6000928352818320925b85811015614ffd578135614fee8161333e565b84820155908201908401614fdb565b505061502e61500d82880161474e565b600287016001600160401b0382166001600160401b03198254161781555050565b50505050604082013560038201556150496060830183613f45565b615057818360048601614c6b565b50506150666080830183613f45565b615074818360058601614eac565b505060a0820135600682015561508d60c0830183613c2e565b6103fa818360078601613b66565b8181036150a6575050565b6150b08254613a4c565b6001600160401b038111156150c7576150c7613aed565b6150db816150d58454613a4c565b84613b18565b6000601f82116001811461510957600083156150f75750848201545b6151018482613b51565b855550610ddd565b600085815260209020601f19841690600086815260209020845b838110156151435782860154825560019586019590910190602001615123565b50858310156151615781850154600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000604083016001600160401b0383541684526001808401602060408188015283825480865260608901915083600052826000209550600093505b808410156151d25785546001600160a01b031682529484019492840192908201906151ac565b50979650505050505050565b600081546151eb81613a4c565b808552602060018381168015615208576001811461522257615250565b60ff1985168884015283151560051b880183019550615250565b866000528260002060005b858110156152485781548a820186015290830190840161522d565b890184019650505b505050505092915050565b60408252600061526e6040840183615171565b838103602085015260ff60028401541681526040602082015261529760408201600385016151de565b949350505050565b600081548084526020808501808196508360051b81019150856000528260002060005b85811015613571578284038952604080855260c080828701526152e961010087018561525b565b9150603f1980878403016060880152615305836004870161525b565b6008860154608089015260098601546001600160401b03811660a0808b01919091521b6001600160e01b031916928801929092528682030160e0870152905061535181600a85016151de565b9050615361600b84015460ff1690565b15159486019490945297840197600c91909101906001016152c2565b600081548084526020808501808196508360051b810191506000868152838120815b86811015613610578385038a5260408086526153bd81870184615171565b86810388880152600284018054808352908652888620925085918901905b808310156153fb57835482526001938401939290920191908901906153db565b509b88019b965050506003919091019060010161539f565b6020815260e06020820152600061542e610100830184615171565b60028401546001600160401b0316604084015260038401546060840152828103601f199081016080850152615466826004870161529f565b9150808483030160a085015261547f826005870161537d565b9150600685015460c0850152808483030160e08501525061529781600786016151de565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6001600160401b0382811682821603908082111561284457612844613ac4565b60006001600160401b038084168061550957615509613d60565b92169190910692915050565b6001600160401b0381811683821601908082111561284457612844613ac456fe283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e270a2646970667358221220a2ee3a596184af53752eeabe46f09a8470b15941e37106fc8e96d458e5e641ac64736f6c63430008130033", + "sourceMap": "1767:9418:64:-:0;;;;;;;;;;;;;;;;;;;", "linkReferences": { "src/lib/AccountHelper.sol": { "AccountHelper": [ { - "start": 5185, + "start": 5173, "length": 20 } ] @@ -694,15 +694,15 @@ "length": 20 }, { - "start": 5707, + "start": 5695, "length": 20 }, { - "start": 7515, + "start": 7503, "length": 20 }, { - "start": 9706, + "start": 9692, "length": 20 } ] @@ -710,7 +710,7 @@ "src/lib/CrossMsgHelper.sol": { "CrossMsgHelper": [ { - "start": 4839, + "start": 4828, "length": 20 } ] @@ -718,15 +718,15 @@ "src/lib/EpochVoteSubmissionHelper.sol": { "EpochVoteSubmissionHelper": [ { - "start": 7722, + "start": 7708, "length": 20 }, { - "start": 11035, + "start": 11046, "length": 20 }, { - "start": 11774, + "start": 11810, "length": 20 } ] @@ -734,19 +734,19 @@ "src/lib/ExecutableQueueHelper.sol": { "ExecutableQueueHelper": [ { - "start": 10906, + "start": 10917, "length": 20 }, { - "start": 11187, + "start": 11198, "length": 20 }, { - "start": 11331, + "start": 11342, "length": 20 }, { - "start": 11503, + "start": 11514, "length": 20 } ] @@ -754,11 +754,11 @@ "src/lib/SubnetIDHelper.sol": { "SubnetIDHelper": [ { - "start": 2882, + "start": 2874, "length": 20 }, { - "start": 4703, + "start": 4692, "length": 20 } ] @@ -766,13 +766,13 @@ } }, "deployedBytecode": { - "object": "0x6080604052600436106100915760003560e01c80636cf6970a116100595780636cf6970a1461015c578063989037481461016f578063a9fb763c146101a0578063d66d9e19146101c0578063f6fd8381146101d557600080fd5b8063133f74ea146100965780633ccfd60b146100d257806341c0e1b5146100e957806366d7bbbc146100fe5780636cb2ecee1461012e575b600080fd5b3480156100a257600080fd5b506100b66100b13660046132fd565b6101f5565b6040805192151583526020830191909152015b60405180910390f35b3480156100de57600080fd5b506100e761028e565b005b3480156100f557600080fd5b506100e7610348565b34801561010a57600080fd5b5061011e61011936600461332f565b610406565b60405190151581526020016100c9565b34801561013a57600080fd5b5061014e6101493660046132fd565b610449565b6040516100c99291906135fa565b6100e761016a3660046136aa565b610b93565b34801561017b57600080fd5b5061018f61018a3660046132fd565b610de9565b6040516100c9959493929190613744565b3480156101ac57600080fd5b506100e76101bb366004613790565b610f5e565b3480156101cc57600080fd5b506100e761101b565b3480156101e157600080fd5b506100e76101f03660046137a9565b611195565b60008060008061020485610449565b6040516339aa47fb60e01b81529193509150829073__$1cd67d4dc9e627f0bec7928aa480e7d951$__906339aa47fb9061024290859060040161395c565b602060405180830381865af415801561025f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061028391906139f9565b935093505050915091565b61029661140c565b33600090815260086020526040812054908190036102c7576040516367300f9160e11b815260040160405180910390fd5b3360009081526008602052604080822091909155600f549051631f0e077760e31b8152600481018390526001600160a01b039091169063f8703bb890602401600060405180830381600087803b15801561032057600080fd5b505af1158015610334573d6000803e3d6000fd5b50610345925033915083905061149e565b50565b61035061140c565b610358611539565b6103626004611577565b151580610370575060005415155b1561038e57604051636b62255160e11b815260040160405180910390fd5b6001805460ff60401b191668030000000000000000179055600f54604080516341c0e1b560e01b815290516001600160a01b03909216916341c0e1b59160048082019260009290919082900301818387803b1580156103ec57600080fd5b505af1158015610400573d6000803e3d6000fd5b50505050565b6001600160401b03821660009081526006602090815260408083208054845260030182528083206001600160a01b038516845290915290205460ff165b92915050565b60006104996040805161012081018252600060e0820181815260606101008401819052908352602083018290529282018190528282018390526080820183905260a082015260c081019190915290565b6001600160401b03808416600090815260036020908152604091829020825161012081018452815490941660e085019081526001820180548551818602810186019096528086529294869492938693610100870193919083018282801561052957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161050b575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156109335760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561063a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161061c575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061067490613a28565b80601f01602080910402602001604051908101604052809291908181526020018280546106a090613a28565b80156106ed5780601f106106c2576101008083540402835291602001916106ed565b820191906000526020600020905b8154815290600101906020018083116106d057829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561077e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610760575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906107b890613a28565b80601f01602080910402602001604051908101604052809291908181526020018280546107e490613a28565b80156108315780601f1061080657610100808354040283529160200191610831565b820191906000526020600020905b81548152906001019060200180831161081457829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161088c90613a28565b80601f01602080910402602001604051908101604052809291908181526020018280546108b890613a28565b80156109055780601f106108da57610100808354040283529160200191610905565b820191906000526020600020905b8154815290600101906020018083116108e857829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101610594565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015610a6a576000848152602090819020604080516080810182526003860290920180546001600160401b0316838301908152600182018054845181880281018801909552808552949592948694929386936060870193909290918301828280156109f657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109d8575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610a5257602002820191906000526020600020905b815481526020019060010190808311610a3e575b50505050508152505081526020019060010190610960565b50505050815260200160068201548152602001600782018054610a8c90613a28565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab890613a28565b8015610b055780601f10610ada57610100808354040283529160200191610b05565b820191906000526020600020905b815481529060010190602001808311610ae857829003601f168201915b5050509190925250508151604051630c133d1360e31b815292935073__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e8989250610b4a9190600401613a62565b602060405180830381865af4158015610b67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8b9190613a83565b159150915091565b610b9b61140c565b610ba3611539565b34336000829003610bc757604051635a78c58160e11b815260040160405180910390fd5b6001600160a01b03811660009081526007602052604081208054849290610bef908490613ab6565b9091555050600080548391908190610c08908490613ab6565b90915550506013546001600160a01b03821660009081526007602052604090205410610c9457610c39600482611581565b610c9457610c486004826115a6565b506001600160a01b0381166000908152600960205260409020610c6c858783613b42565b506001600160a01b0381166000908152600a602052604090208390610c918282613c57565b50505b6005600154600160401b900460ff166005811115610cb457610cb4613a12565b03610d3d5760135460005410610d38576001805460ff60401b1916600160401b179055600f546000805460408051630354740160e31b815290516001600160a01b0390941693631aa3a0089360048084019391929182900301818588803b158015610d1e57600080fd5b505af1158015610d32573d6000803e3d6000fd5b50505050505b610de2565b6002600154600160401b900460ff166005811115610d5d57610d5d613a12565b03610d815760135460005410610d81576001805460ff60401b1916600160401b1790555b600f54604080516316989f6f60e21b815290516001600160a01b0390921691635a627dbc918591600480830192600092919082900301818588803b158015610dc857600080fd5b505af1158015610ddc573d6000803e3d6000fd5b50505050505b5050505050565b6040805180820182526000808252606060208084018290526001600160401b03868116845260038252858420865180880188528154909216825260018101805488518186028101860190995280895296979596879687969585810193919290830182828015610e8157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e63575b505050919092525050506001600160401b038088166000908152600360208190526040909120600281015491810154600682015460079092018054959a5092909316975091955090935090610ed590613a28565b80601f0160208091040260200160405190810160405280929190818152602001828054610f0190613a28565b8015610f4e5780601f10610f2357610100808354040283529160200191610f4e565b820191906000526020600020905b815481529060010190602001808311610f3157829003601f168201915b5050505050905091939590929450565b610f666115bb565b6000610f726004611577565b905080600003610f955760405163efa9c8f160e01b815260040160405180910390fd5b80821015610fb657604051633074cabf60e11b815260040160405180910390fd5b6000610fc28284613d52565b905060005b82811015610400578160086000610fdf6004856115e6565b6001600160a01b03166001600160a01b03168152602001908152602001600020600082825461100e9190613ab6565b9091555050600101610fc7565b7f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009580546000190161105f576040516329f745a760e01b815260040160405180910390fd5b6001815561106b61140c565b611073611539565b33600090815260076020526040812054908190036110a457604051632ec5b44960e01b815260040160405180910390fd5b336000908152600760205260408120819055805482919081906110c8908490613d66565b909155506110d990506004336115f2565b5060018054600160401b900460ff1660058111156110f9576110f9613a12565b03611123576013546000541015611123576001805460ff60401b1916680200000000000000001790555b600f546040516345f5448560e01b8152600481018390526001600160a01b03909116906345f5448590602401600060405180830381600087803b15801561116957600080fd5b505af115801561117d573d6000803e3d6000fd5b5061118e925033915083905061149e565b5060009055565b61119d61140c565b6111b56111b060408301602084016132fd565b611607565b60018054600160401b900460ff1660058111156111d4576111d4613a12565b146111f25760405163c18316bf60e01b815260040160405180910390fd5b6111fd600433611581565b61121a57604051632ec5b44960e01b815260040160405180910390fd5b6011546112278280613d79565b61123090613f15565b6040516390ba52cf60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__916390ba52cf916112669190600401613a62565b602060405180830381865af4158015611283573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a791906139f9565b146112c5576040516375ecc72d60e01b815260040160405180910390fd5b73__$33b79814e84bf6cf5e47244090b19ce5f8$__63898414756112ec6060840184613f21565b6040518363ffffffff1660e01b815260040161130992919061413a565b602060405180830381865af4158015611326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134a9190613a83565b61136757604051630bd9169f60e01b815260040160405180910390fd5b600060068161137c60408501602086016132fd565b6001600160401b031681526020808201929092526040908101600090812033808352600790945291812054919350916113b89184918691611610565b905080156113ce576113c982611dd0565b505050565b6000806113d9612693565b915091508015610de2576001600160401b038216600090815260066020526040902061140481611dd0565b505050505050565b604051630972932760e21b815233600482015273__$e800e3908cdbb6b1b5bd452383a17b18f7$__906325ca4c9c90602401602060405180830381865af415801561145b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147f9190613a83565b61149c5760405163b7150de560e01b815260040160405180910390fd5b565b804710156114c55760405163cd78605960e01b815230600482015260240160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611512576040519150601f19603f3d011682016040523d82523d6000602084013e611517565b606091505b50509050806113c957604051630a12f52160e11b815260040160405180910390fd5b6003600154600160401b900460ff16600581111561155957611559613a12565b0361149c5760405163248c8efb60e11b815260040160405180910390fd5b6000610443825490565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b600061159f836001600160a01b0384166126e6565b600f546001600160a01b0316331461149c5760405163e7e601db60e01b815260040160405180910390fd5b600061159f8383612735565b600061159f836001600160a01b03841661275f565b61034581612859565b60008061161c8561464f565b6040516339aa47fb60e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__916339aa47fb91611652919060040161395c565b602060405180830381865af415801561166f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169391906139f9565b90506116b4868286866116ac60408b0160208c016132fd565b60005461290b565b600082815260058801602090815260409182902082516101208101845281546001600160401b031660e082019081526001830180548651818702810187019097528087529698509195929486949193869361010087019390919083018282801561174757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611729575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015611b515760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561185857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161183a575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061189290613a28565b80601f01602080910402602001604051908101604052809291908181526020018280546118be90613a28565b801561190b5780601f106118e05761010080835404028352916020019161190b565b820191906000526020600020905b8154815290600101906020018083116118ee57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561199c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161197e575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906119d690613a28565b80601f0160208091040260200160405190810160405280929190818152602001828054611a0290613a28565b8015611a4f5780601f10611a2457610100808354040283529160200191611a4f565b820191906000526020600020905b815481529060010190602001808311611a3257829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191611aaa90613a28565b80601f0160208091040260200160405190810160405280929190818152602001828054611ad690613a28565b8015611b235780601f10611af857610100808354040283529160200191611b23565b820191906000526020600020905b815481529060010190602001808311611b0657829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016117b2565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015611c88576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015611c1457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611bf6575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015611c7057602002820191906000526020600020905b815481526020019060010190808311611c5c575b50505050508152505081526020019060010190611b7e565b50505050815260200160068201548152602001600782018054611caa90613a28565b80601f0160208091040260200160405190810160405280929190818152602001828054611cd690613a28565b8015611d235780601f10611cf857610100808354040283529160200191611d23565b820191906000526020600020905b815481529060010190602001808311611d0657829003601f168201915b5050509190925250506040516322ea8d8960e11b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__926345d51b129250611d629160040161395c565b602060405180830381865af4158015611d7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da39190613a83565b15611dc757600081815260058701602052604090208590611dc48282614f48565b50505b50949350505050565b6002808201546000908152600583016020526040902060068101549154909114611e7257604051635a27a53960e11b81526004810183905273__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063b44f4a729060240160006040518083038186803b158015611e3f57600080fd5b505af4158015611e53573d6000803e3d6000fd5b5050506002820154611e6e91506001600160401b0316612b58565b5050565b6002810154611e89906001600160401b0316612bdc565b60028101546001600160401b039081166000908152600360205260409020825481546001600160401b03191692169190911781556001808301805484939284928492611ed89284019190612e9f565b50505060028281015490820180546001600160401b0319166001600160401b039092169190911790556003808301549082015560048083018054611f1f9284019190612eef565b5060058281018054611f3492840191906130b5565b506006820154816006015560078201816007019081611f539190615077565b5050604080516101208101825283546001600160401b031660e0820190815260018501805484516020828102820181019096528181529395508694869486936101008701939192909190830182828015611fd657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611fb8575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156123e05760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d019390918301828280156120e757602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116120c9575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061212190613a28565b80601f016020809104026020016040519081016040528092919081815260200182805461214d90613a28565b801561219a5780601f1061216f5761010080835404028352916020019161219a565b820191906000526020600020905b81548152906001019060200180831161217d57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561222b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161220d575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061226590613a28565b80601f016020809104026020016040519081016040528092919081815260200182805461229190613a28565b80156122de5780601f106122b3576101008083540402835291602001916122de565b820191906000526020600020905b8154815290600101906020018083116122c157829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161233990613a28565b80601f016020809104026020016040519081016040528092919081815260200182805461236590613a28565b80156123b25780601f10612387576101008083540402835291602001916123b2565b820191906000526020600020905b81548152906001019060200180831161239557829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101612041565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015612517576000848152602090819020604080516080810182526003860290920180546001600160401b0316838301908152600182018054845181880281018801909552808552949592948694929386936060870193909290918301828280156124a357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612485575b5050505050815250508152602001600282018054806020026020016040519081016040528092919081815260200182805480156124ff57602002820191906000526020600020905b8154815260200190600101908083116124eb575b5050505050815250508152602001906001019061240d565b5050505081526020016006820154815260200160078201805461253990613a28565b80601f016020809104026020016040519081016040528092919081815260200182805461256590613a28565b80156125b25780601f10612587576101008083540402835291602001916125b2565b820191906000526020600020905b81548152906001019060200180831161259557829003601f168201915b5050509190925250506040516339aa47fb60e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__926339aa47fb92506125f19160040161395c565b602060405180830381865af415801561260e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263291906139f9565b600255600f54604051631a9c293560e31b81526001600160a01b039091169063d4e149a8906126659084906004016153ef565b600060405180830381600087803b15801561267f57600080fd5b505af1158015611404573d6000803e3d6000fd5b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27154600160401b90046001600160401b031660006000805160206155128339815191526126df83612d3d565b9150509091565b600081815260018301602052604081205461272d57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610443565b506000610443565b600082600001828154811061274c5761274c61547f565b9060005260206000200154905092915050565b60008181526001830160205260408120548015612848576000612783600183613d66565b855490915060009061279790600190613d66565b90508181146127fc5760008660000182815481106127b7576127b761547f565b90600052602060002001549050808760000184815481106127da576127da61547f565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061280d5761280d615495565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610443565b6000915050610443565b5092915050565b60008051602061551283398151915280546001600160401b039081169083161161289657604051631f30cc6360e21b815260040160405180910390fd5b80546001600160401b03600160401b90910481169083161115611e6e5780546001600160401b03600160881b82048116916128da91600160401b90910416846154ab565b6128e491906154cb565b6001600160401b031615611e6e5760405163b4f68f9760e01b815260040160405180910390fd5b8554600081815260038801602090815260408083206001600160a01b038916845290915281205490916000805160206155128339815191529160ff1615612965576040516337138f5f60e11b815260040160405180910390fd5b600081815260038a01602090815260408083206001600160a01b038b1684529091528120805460ff191660019081179091558a0180548892906129a9908490613ab6565b9091555050600081815260048a01602090815260408083208b8452909152812080548892906129d9908490613ab6565b9091555050600081815260048a016020908152604080832060028d01548452909152808220548a835291205480821015612a155760028b018a90555b6000612a218c88612d8a565b90506003816003811115612a3757612a37613a12565b03612acc57612a4588612d3d565b15612a535760019550612b49565b60405163199b9ca560e01b81526001860160048201526001600160401b038916602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__9063199b9ca59060440160006040518083038186803b158015612aaf57600080fd5b505af4158015612ac3573d6000803e3d6000fd5b50505050612b49565b6002816003811115612ae057612ae0613a12565b03612b4957604051635a27a53960e11b8152600481018d905273__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063b44f4a729060240160006040518083038186803b158015612b3057600080fd5b505af4158015612b44573d6000803e3d6000fd5b505050505b50505050509695505050505050565b60006000805160206155128339815191526040516394ecccfd60e01b81526001820160048201526001600160401b038416602482015290915073__$b7b8687e33476c74e3b4e0a64c4768a343$__906394ecccfd9060440160006040518083038186803b158015612bc857600080fd5b505af4158015611404573d6000803e3d6000fd5b600080516020615512833981519152612bf482612d3d565b612bfc575050565b604051634953836d60e11b81526001820160048201526001600160401b038316602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__906392a706da90604401602060405180830381865af4158015612c5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c819190613a83565b15612ca85760018101546001600160401b03838116600160401b9092041614612ca8575050565b6040516394ecccfd60e01b81526001820160048201526001600160401b038316602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__906394ecccfd9060440160006040518083038186803b158015612d0457600080fd5b505af4158015612d18573d6000803e3d6000fd5b505082546001600160401b0319166001600160401b0394909416939093179091555050565b600080516020615512833981519152805460009190612d6e906001600160401b03600160881b8204811691166154f1565b6001600160401b0316836001600160401b031614915050919050565b6000805160206155128339815191528054600091908290606490612db890600160801b900460ff1686614737565b612dc29190613d52565b604051637d2ef4e560e11b81526004810187905290915060009073__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063fa5de9ca90602401602060405180830381865af4158015612e18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e3c91906139f9565b905081866001015411612e555760009350505050610443565b81811115612e695760039350505050610443565b6001860154612e789086613d66565b612e828284613d66565b10612e935760029350505050610443565b50600195945050505050565b828054828255906000526020600020908101928215612edf5760005260206000209182015b82811115612edf578254825591600101919060010190612ec4565b50612eeb929150613155565b5090565b82805482825590600052602060002090600c0281019282156130a957600052602060002091600c0282015b828111156130a957825482546001600160401b0319166001600160401b039091161782556001808401805485928592849284928492849284928492612f629291840191612e9f565b50505060028281018054918301805460ff191660ff90931692909217825590600380840190612f9390860182615077565b505050506004838101805491840180546001600160401b0319166001600160401b039093169290921782556005808601805492945084928492612fd99290880191612e9f565b50505060028281018054918301805460ff191660ff9093169290921782559060038084019061300a90860182615077565b5050505060088381015490830155506009808301805491830180546001600160401b031981166001600160401b039094169384178255915463ffffffff600160401b9182900416026bffffffffffffffffffffffff19909216909217179055600a8082019061307b90840182615077565b505050600b918201549101805460ff191660ff9092161515919091179055600c928301929190910190612f1a565b50612eeb92915061316a565b8280548282559060005260206000209060030281019282156131495760005260206000209160030282015b8281111561314957825482546001600160401b0319166001600160401b039091161782556001808401805485928592849284926131209290840191612e9f565b505050600282810180546131379284019190612e9f565b505050916003019190600301906130e0565b50612eeb92915061323f565b5b80821115612eeb5760008155600101613156565b80821115612eeb5780546001600160401b031916815560008181818181816131956001830182613280565b505060028201805460ff1916815560006131b2600385018261329e565b505050506004820180546001600160401b0319168155600081816131d96005870182613280565b505060028201805460ff1916815560006131f6600385018261329e565b50506000600885018190556009850180546bffffffffffffffffffffffff191690556132289250600a8501915061329e565b505050600b8101805460ff19169055600c0161316a565b80821115612eeb5780546001600160401b0319168155600081816132666001830182613280565b506132779050600283016000613280565b5060030161323f565b50805460008255906000526020600020908101906103459190613155565b5080546132aa90613a28565b6000825580601f106132ba575050565b601f0160209004906000526020600020908101906103459190613155565b6001600160401b038116811461034557600080fd5b80356132f8816132d8565b919050565b60006020828403121561330f57600080fd5b813561159f816132d8565b6001600160a01b038116811461034557600080fd5b6000806040838503121561334257600080fd5b823561334d816132d8565b9150602083013561335d8161331a565b809150509250929050565b6000604083016001600160401b0383511684526020808401516040828701528281518085526060880191508383019450600092505b808310156133c65784516001600160a01b0316825293830193600192909201919083019061339d565b509695505050505050565b6000815180845260005b818110156133f7576020818501810151868301820152016133db565b506000602082860101526020601f19601f83011685010191505092915050565b600081516040845261342c6040850182613368565b90506020830151848203602086015260ff8151168252602081015190506040602083015261345d60408301826133d1565b95945050505050565b600081518084526020808501808196508360051b8101915082860160005b8581101561354d578284038952815160408151818752805160c080848a01526134b16101008a0183613417565b915089830151603f196060818c860301818d01526134cf8584613417565b9686015160808d810191909152908601516001600160401b031660a0808e0191909152908601516001600160e01b031916938c0193909352918401518a860390920160e08b01525092905061352481846133d1565b93890151801515898b015293925061353a915050565b9986019994505090840190600101613484565b5091979650505050505050565b600081518084526020808501808196508360051b810191508286016000805b868110156135ec578385038a5282516040815181885261359b82890182613368565b92890151888403898b01528051808552908a01938693508a0191505b808310156135d757835182529289019260019290920191908901906135b7565b509b88019b9650505091850191600101613579565b509298975050505050505050565b8215158152604060208201526000825160e0604084015261361f610120840182613368565b90506001600160401b036020850151166060840152604084015160808401526060840151603f19808584030160a086015261365a8383613466565b925060808601519150808584030160c0860152613677838361355a565b925060a086015160e086015260c086015191508085840301610100860152506136a082826133d1565b9695505050505050565b6000806000604084860312156136bf57600080fd5b83356001600160401b03808211156136d657600080fd5b818601915086601f8301126136ea57600080fd5b8135818111156136f957600080fd5b87602082850101111561370b57600080fd5b60209283019550935090850135908082111561372657600080fd5b5084016040818703121561373957600080fd5b809150509250925092565b60a08152600061375760a0830188613368565b6001600160401b0387166020840152856040840152846060840152828103608084015261378481856133d1565b98975050505050505050565b6000602082840312156137a257600080fd5b5035919050565b6000602082840312156137bb57600080fd5b81356001600160401b038111156137d157600080fd5b820160e0818503121561159f57600080fd5b600081518084526020808501808196508360051b8101915082860160005b8581101561354d578284038952815160408151818752805160c080848a015261382e6101008a0183613417565b915089830151603f196060818c860301818d015261384c8584613417565b9686015160808d810191909152908601516001600160401b031660a0808e0191909152908601516001600160e01b031916938c0193909352918401518a860390920160e08b0152509290506138a181846133d1565b93890151801515898b01529392506138b7915050565b9986019994505090840190600101613801565b600081518084526020808501808196508360051b810191508286016000805b868110156135ec578385038a5282516040815181885261390b82890182613368565b92890151888403898b01528051808552908a01938693508a0191505b808310156139475783518252928901926001929092019190890190613927565b509b88019b96505050918501916001016138e9565b602081526000825160e06020840152613979610100840182613368565b90506001600160401b036020850151166040840152604084015160608401526060840151601f19808584030160808601526139b483836137e3565b925060808601519150808584030160a08601526139d183836138ca565b925060a086015160c086015260c08601519150808584030160e08601525061345d82826133d1565b600060208284031215613a0b57600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b600181811c90821680613a3c57607f821691505b602082108103613a5c57634e487b7160e01b600052602260045260246000fd5b50919050565b60208152600061159f6020830184613368565b801515811461034557600080fd5b600060208284031215613a9557600080fd5b815161159f81613a75565b634e487b7160e01b600052601160045260246000fd5b8082018082111561044357610443613aa0565b634e487b7160e01b600052604160045260246000fd5b5b81811015611e6e5760008155600101613ae0565b601f8211156113c957806000526020600020601f840160051c81016020851015613b1b5750805b610de2601f850160051c830182613adf565b600019600383901b1c191660019190911b1790565b6001600160401b03831115613b5957613b59613ac9565b613b6d83613b678354613a28565b83613af4565b6000601f841160018114613b9b5760008515613b895750838201355b613b938682613b2d565b845550610de2565b600083815260209020601f19861690835b82811015613bcc5786850135825560209485019460019092019101613bac565b5086821015613be95760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60ff8116811461034557600080fd5b6000808335601e19843603018112613c2157600080fd5b8301803591506001600160401b03821115613c3b57600080fd5b602001915036819003821315613c5057600080fd5b9250929050565b8135613c6281613bfb565b60ff811660ff198354161782555060018082016020613c8381860186613c0a565b6001600160401b03811115613c9a57613c9a613ac9565b613cae81613ca88654613a28565b86613af4565b6000601f821160018114613cdc5760008315613cca5750838201355b613cd48482613b2d565b875550613d31565b600086815260209020601f19841690835b82811015613d0a5786850135825593870193908901908701613ced565b5084821015613d275760001960f88660031b161c19848701351681555b50508683881b0186555b505050505050505050565b634e487b7160e01b600052601260045260246000fd5b600082613d6157613d61613d3c565b500490565b8181038181111561044357610443613aa0565b60008235603e19833603018112613d8f57600080fd5b9190910192915050565b604080519081016001600160401b0381118282101715613dbb57613dbb613ac9565b60405290565b60405160c081016001600160401b0381118282101715613dbb57613dbb613ac9565b60405160e081016001600160401b0381118282101715613dbb57613dbb613ac9565b604051601f8201601f191681016001600160401b0381118282101715613e2d57613e2d613ac9565b604052919050565b60006001600160401b03821115613e4e57613e4e613ac9565b5060051b60200190565b600060408284031215613e6a57600080fd5b613e72613d99565b90508135613e7f816132d8565b81526020828101356001600160401b03811115613e9b57600080fd5b8301601f81018513613eac57600080fd5b8035613ebf613eba82613e35565b613e05565b81815260059190911b82018301908381019087831115613ede57600080fd5b928401925b82841015613f05578335613ef68161331a565b82529284019290840190613ee3565b8085870152505050505092915050565b60006104433683613e58565b6000808335601e19843603018112613f3857600080fd5b8301803591506001600160401b03821115613f5257600080fd5b6020019150600581901b3603821315613c5057600080fd5b60008235603e19833603018112613f8057600080fd5b90910192915050565b6000808335601e19843603018112613fa057600080fd5b83016020810192503590506001600160401b03811115613fbf57600080fd5b803603821315613c5057600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000813561400481613bfb565b60ff1683526140166020830183613f89565b6040602086015261345d604086018284613fce565b60006140378283613f6a565b6040845260808401813561404a816132d8565b6001600160401b0390811660408701526020908382013536859003601e1901811261407457600080fd5b9093018181019390358181111561408a57600080fd5b8060051b360385131561409c57600080fd5b60406060890152928390525060009160a08701905b808410156140e35784356140c48161331a565b6001600160a01b031682529382019360019390930192908201906140b1565b506140f082870187613f6a565b9350868103828801526141038185613ff7565b979650505050505050565b6001600160e01b03198116811461034557600080fd5b80356132f88161410e565b80356132f881613a75565b60208082528181018390526000906040808401600586901b850182018785805b8981101561426e57603f19808a8603018652614176848d613f6a565b803560be19823603018112614189578485fd5b88875281016141988180613f6a565b60c0808b8a01526141ad6101008a018361402b565b91506141bb8c840184613f6a565b6060868b850301818c01526141d0848361402b565b9350608091508c850135828c01528085013590506141ed816132d8565b60a06001600160401b038216818d015282860135925061420c8361410e565b6001600160e01b031983168c85015261422786820187613f89565b96509350505050848983030160e08a0152614243828483613fce565b945050505061425389820161412f565b1515958901959095529487019493509186019160010161415a565b50919998505050505050505050565b600082601f83011261428e57600080fd5b81356001600160401b038111156142a7576142a7613ac9565b6142ba601f8201601f1916602001613e05565b8181528460208386010111156142cf57600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156142fe57600080fd5b614306613d99565b905081356001600160401b038082111561431f57600080fd5b61432b85838601613e58565b8352602084013591508082111561434157600080fd5b908301906040828603121561435557600080fd5b61435d613d99565b823561436881613bfb565b815260208301358281111561437c57600080fd5b6143888782860161427d565b60208301525080602085015250505092915050565b600082601f8301126143ae57600080fd5b813560206143be613eba83613e35565b82815260059290921b840181019181810190868411156143dd57600080fd5b8286015b848110156133c65780356001600160401b038082111561440057600080fd5b90880190601f196040838c038201121561441957600080fd5b614421613d99565b878401358381111561443257600080fd5b840160c0818e038401121561444657600080fd5b61444e613dc1565b9250888101358481111561446157600080fd5b61446f8e8b838501016142ec565b84525060408101358481111561448457600080fd5b6144928e8b838501016142ec565b8a85015250606081013560408401526144ad608082016132ed565b60608401526144be60a08201614124565b608084015260c0810135848111156144d557600080fd5b6144e38e8b8385010161427d565b60a085015250508181526144f96040850161412f565b8189015286525050509183019183016143e1565b600082601f83011261451e57600080fd5b8135602061452e613eba83613e35565b828152600592831b850182019282820191908785111561454d57600080fd5b8387015b858110156146425780356001600160401b03808211156145715760008081fd5b908901906040828c03601f190181131561458b5760008081fd5b614593613d99565b88840135838111156145a55760008081fd5b6145b38e8b83880101613e58565b82525081840135838111156145c85760008081fd5b8085019450508c603f8501126145e057600092508283fd5b8884013592506145f2613eba84613e35565b83815292861b8401820192898101908e85111561460f5760008081fd5b948301945b8486101561462d5785358252948a0194908a0190614614565b828b0152508752505050928401928401614551565b5090979650505050505050565b600060e0823603121561466157600080fd5b614669613de3565b82356001600160401b038082111561468057600080fd5b61468c36838701613e58565b835261469a602086016132ed565b60208401526040850135604084015260608501359150808211156146bd57600080fd5b6146c93683870161439d565b606084015260808501359150808211156146e257600080fd5b6146ee3683870161450d565b608084015260a085013560a084015260c085013591508082111561471157600080fd5b5061471e3682860161427d565b60c08301525092915050565b60008135610443816132d8565b808202811582820484141761044357610443613aa0565b8054600082558015611e6e578160005260206000206113c982820182613adf565b600160401b82111561478357614783613ac9565b8054828255808310156113c957816000526020600020610400828201858301613adf565b600081556103456001820161474e565b6147c18154613a28565b8015611e6e57601f8111600181146147db57505060009055565b8260005260206000206147f9601f840160051c820160018301613adf565b60008085559055505050565b600081556148156001820161474e565b60006002820155610345600382016147b7565b6148328283613d79565b803561483d816132d8565b82546001600160401b0319166001600160401b038216178355506001808301602061486a81850185613f21565b94506001600160401b038086111561488457614884613ac9565b61488e868561476f565b600093845282842093805b878110156148bb5783356148ac8161331a565b86820155928401928601614899565b506002880196506148ce848a018a613d79565b9450843592506148dd83613bfb565b865460ff191660ff84161790965560038701956148fc85850186613c0a565b955092508185111561491057614910613ac9565b6149248561491e8954613a28565b89613af4565b809150601f851160018114614952578186156149405750838301355b61494a8782613b2d565b895550610ddc565b600088815260209020601f19871690835b828110156149805786860135825594870194908901908701614963565b508782101561499d5760001960f88960031b161c19858701351681555b505050505091831b90920190925550505050565b600081356104438161410e565b6000813561044381613a75565b813560be198336030181126149df57600080fd5b82016149eb8180613d79565b6149f58182613d79565b8035614a00816132d8565b84546001600160401b0319166001600160401b0382161785555060018085016020614a2d81850185613f21565b94506001600160401b0380861115614a4757614a47613ac9565b614a51868561476f565b600093845282842093805b87811015614a7e578335614a6f8161331a565b86820155928401928601614a5c565b5060028a019650614a9184890189613d79565b975087359450614aa085613bfb565b865460ff191660ff8616179096556003890195614abf88850189613c0a565b9850945081881115614ad357614ad3613ac9565b614ae18861491e8954613a28565b809250601f881160018114614b11578192508815614b00578386013592505b614b0a8984613b2d565b8855614b66565b600088815260209020601f198a169350825b84811015614b405787860135825594860194908801908601614b23565b5089841015614b5d5760001960f88b60031b161c19858801351681555b508689881b0188555b50505050614b82614b7982880188613d79565b60048901614828565b60408601356008880155600987019450614bbe614ba16060880161472a565b86546001600160401b0319166001600160401b0391909116178655565b614bf7614bcd608088016149b1565b86546bffffffff0000000000000000191660a09190911c6bffffffff000000000000000016178655565b614c0460a0870187613c0a565b96509450614c168686600a8a01613b42565b614c3d614c24828a016149be565b600b890160ff1981541660ff8315151681178255505050565b5050505050505050565b600160401b831115614c5b57614c5b613ac9565b805483825580841015614cef57600c8181028181048314614c7e57614c7e613aa0565b8582028281048714614c9257614c92613aa0565b6000858152602081209283019291909101905b82821015614cea57614cb682614805565b614cc260048301614805565b806008830155806009830155614cda600a83016147b7565b80600b8301558382019150614ca5565b505050505b5060008181526020812083915b8581101561140457614d17614d118487613d79565b836149cb565b60209290920191600c9190910190600101614cfc565b8054600080835581156113c957828152602081208281015b80821015610de257828255600182019150614d45565b600160401b821115614d6f57614d6f613ac9565b8054828255808310156113c9576000828152602081208481019083015b8082101561140457828255600182019150614d8c565b614dac8283613d79565b8035614db7816132d8565b82546001600160401b0319166001600160401b0382161783555060018083016020614de481850185613f21565b94506001600160401b0380861115614dfe57614dfe613ac9565b614e08868561476f565b600093845282842093805b87811015614e35578335614e268161331a565b86820155928401928601614e13565b50600288019650614e48848a018a613f21565b9550925081851115614e5c57614e5c613ac9565b614e668588614d5b565b95865250818520945b83811015614c3d57813586820155908201908401614e6f565b600160401b831115614e9c57614e9c613ac9565b805483825580841015614f0a5760038181028181048314614ebf57614ebf613aa0565b8582028281048714614ed357614ed3613aa0565b60008581526020902091820191015b81811015614f0657614ef3816147a7565b614eff60028201614d2d565b8201614ee2565b5050505b5060008181526020812083915b8581101561140457614f32614f2c8487613d79565b83614da2565b6020929092019160039190910190600101614f17565b614f528283613d79565b8035614f5d816132d8565b82546001600160401b0319166001600160401b0382161783555060018083016020614f8a81850185613f21565b94506001600160401b03851115614fa357614fa3613ac9565b614fad858461476f565b6000928352818320925b85811015614fd9578135614fca8161331a565b84820155908201908401614fb7565b505061500a614fe982880161472a565b600287016001600160401b0382166001600160401b03198254161781555050565b50505050604082013560038201556150256060830183613f21565b615033818360048601614c47565b50506150426080830183613f21565b615050818360058601614e88565b505060a0820135600682015561506960c0830183613c0a565b610400818360078601613b42565b818103615082575050565b61508c8254613a28565b6001600160401b038111156150a3576150a3613ac9565b6150b7816150b18454613a28565b84613af4565b6000601f8211600181146150e557600083156150d35750848201545b6150dd8482613b2d565b855550610de2565b600085815260209020601f19841690600086815260209020845b8381101561511f57828601548255600195860195909101906020016150ff565b508583101561513d5781850154600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000604083016001600160401b0383541684526001808401602060408188015283825480865260608901915083600052826000209550600093505b808410156151ae5785546001600160a01b03168252948401949284019290820190615188565b50979650505050505050565b600081546151c781613a28565b8085526020600183811680156151e457600181146151fe5761522c565b60ff1985168884015283151560051b88018301955061522c565b866000528260002060005b858110156152245781548a8201860152908301908401615209565b890184019650505b505050505092915050565b60408252600061524a604084018361514d565b838103602085015260ff60028401541681526040602082015261527360408201600385016151ba565b949350505050565b600081548084526020808501808196508360051b81019150856000528260002060005b8581101561354d578284038952604080855260c080828701526152c5610100870185615237565b9150603f19808784030160608801526152e18360048701615237565b6008860154608089015260098601546001600160401b03811660a0808b01919091521b6001600160e01b031916928801929092528682030160e0870152905061532d81600a85016151ba565b905061533d600b84015460ff1690565b15159486019490945297840197600c919091019060010161529e565b600081548084526020808501808196508360051b810191506000868152838120815b868110156135ec578385038a5260408086526153998187018461514d565b86810388880152600284018054808352908652888620925085918901905b808310156153d757835482526001938401939290920191908901906153b7565b509b88019b965050506003919091019060010161537b565b6020815260e06020820152600061540a61010083018461514d565b60028401546001600160401b0316604084015260038401546060840152828103601f199081016080850152615442826004870161527b565b9150808483030160a085015261545b8260058701615359565b9150600685015460c0850152808483030160e08501525061527381600786016151ba565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6001600160401b0382811682821603908082111561285257612852613aa0565b60006001600160401b03808416806154e5576154e5613d3c565b92169190910692915050565b6001600160401b0381811683821601908082111561285257612852613aa056fe283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e270a264697066735822122001b46e81270e5c112262180ce78840f576b5d7c72a99b8876c16a96ffd6396ea64736f6c63430008130033", - "sourceMap": "1767:9418:68:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9019:240;;;;;;;;;;-1:-1:-1;9019:240:68;;;;;:::i;:::-;;:::i;:::-;;;;824:14:83;;817:22;799:41;;871:2;856:18;;849:34;;;;772:18;9019:240:68;;;;;;;;7038:342;;;;;;;;;;;;;:::i;:::-;;4506:254;;;;;;;;;;;;;:::i;8032:287::-;;;;;;;;;;-1:-1:-1;8032:287:68;;;;;:::i;:::-;;:::i;:::-;;;1586:14:83;;1579:22;1561:41;;1549:2;1534:18;8032:287:68;1421:187:83;8550:241:68;;;;;;;;;;-1:-1:-1;8550:241:68;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;2440:1280::-;;;;;;:::i;:::-;;:::i;7422:422::-;;;;;;;;;;-1:-1:-1;7422:422:68;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;6360:562::-;;;;;;;;;;-1:-1:-1;6360:562:68;;;;;:::i;:::-;;:::i;3793:621::-;;;;;;;;;;;;;:::i;4953:1319::-;;;;;;;;;;-1:-1:-1;4953:1319:68;;;;;:::i;:::-;;:::i;9019:240::-;9095:4;9101:7;9121:11;9134:36;9174:32;9200:5;9174:25;:32::i;:::-;9232:19;;-1:-1:-1;;;9232:19:68;;9120:86;;-1:-1:-1;9120:86:68;-1:-1:-1;9120:86:68;;9232:17;;;;:19;;9120:86;;9232:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9216:36;;;;;;9019:240;;;:::o;7038:342::-;4616:15:57;:13;:15::i;:::-;7128:10:68::1;7090:14;7107:32:::0;;;:20:::1;:32;::::0;;;;;;7154:11;;;7150:69:::1;;7188:20;;-1:-1:-1::0;;;7188:20:68::1;;;;;;;;;;;7150:69;7250:10;7264:1;7229:32:::0;;;:20:::1;:32;::::0;;;;;:36;;;;7285:16:::1;::::0;7276:49;;-1:-1:-1;;;7276:49:68;;::::1;::::0;::::1;16343:25:83::0;;;-1:-1:-1;;;;;7285:16:68;;::::1;::::0;7276:41:::1;::::0;16316:18:83;;7276:49:68::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;7336:37:68::1;::::0;-1:-1:-1;7344:10:68::1;::::0;-1:-1:-1;7366:6:68;;-1:-1:-1;7336:29:68::1;:37::i;:::-;7080:300;7038:342::o:0;4506:254::-;4616:15:57;:13;:15::i;:::-;4686:12:::1;:10;:12::i;:::-;4568:21:68::2;:12;:19;:21::i;:::-;:26:::0;::::2;::::0;:47:::2;;-1:-1:-1::0;4598:1:68::2;:12:::0;:17;::::2;4568:47;4564:111;;;4638:26;;-1:-1:-1::0;;;4638:26:68::2;;;;;;;;;;;4564:111;4685:8;:24:::0;;-1:-1:-1;;;;4685:24:68::2;::::0;::::2;::::0;;4729:16:::2;::::0;4720:33:::2;::::0;;-1:-1:-1;;;4720:33:68;;;;-1:-1:-1;;;;;4729:16:68;;::::2;::::0;4720:31:::2;::::0;:33:::2;::::0;;::::2;::::0;-1:-1:-1;;4720:33:68;;;;;;;;-1:-1:-1;4729:16:68;4720:33;::::2;;::::0;::::2;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;4506:254::o:0;8032:287::-;-1:-1:-1;;;;;8197:29:68;;8128:4;8197:29;;;:22;:29;;;;;;;;8275:25;;8244:57;;:30;;:57;;;;;-1:-1:-1;;;;;8244:68:68;;;;;;;;;;;;8032:287;;;;;:::o;8550:241::-;8634:11;8647:36;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8647:36:68;-1:-1:-1;;;;;8708:29:68;;;:1;:29;;;:22;:29;;;;;;;;;8695:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8708:29;;8695:42;;;;8708:29;;8695:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8695:42:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8695:42:68;-1:-1:-1;;;;;8695:42:68;-1:-1:-1;;;;;8695:42:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8695:42:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8695:42:68;;;;;;;;;;;;;;;;-1:-1:-1;;;8695:42:68;;;;-1:-1:-1;;;8695:42:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8695:42:68;;;;-1:-1:-1;;;8695:42:68;;-1:-1:-1;8695:42:68;;;;;;;;;;;;;;;-1:-1:-1;;;;;8695:42:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8695:42:68;;;;;;;;;;;;;;;;-1:-1:-1;;;8695:42:68;;;;-1:-1:-1;;;8695:42:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8695:42:68;;;;-1:-1:-1;;;8695:42:68;;-1:-1:-1;8695:42:68;;;;;;;;;;;;;;-1:-1:-1;;;;;8695:42:68;;;;;;-1:-1:-1;;;8695:42:68;;;;-1:-1:-1;;;;;;8695:42:68;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8695:42:68;;;;-1:-1:-1;;;8695:42:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8695:42:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8695:42:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8695:42:68;;;;-1:-1:-1;;8757:17:68;;:27;;-1:-1:-1;;;8757:27:68;;8695:42;;-1:-1:-1;8757:25:68;;;;-1:-1:-1;8757:27:68;;:17;:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8756:28;8747:37;;8550:241;;;:::o;2440:1280::-;4616:15:57;:13;:15::i;:::-;4686:12:::1;:10;:12::i;:::-;2586:9:68::2;2625:10;2561:22;2649:19:::0;;;2645:75:::2;;2691:18;;-1:-1:-1::0;;;2691:18:68::2;;;;;;;;;;;2645:75;-1:-1:-1::0;;;;;2730:18:68;::::2;:1;:18:::0;;;:7:::2;:18;::::0;;;;:36;;2752:14;;2730:1;:36:::2;::::0;2752:14;;2730:36:::2;:::i;:::-;::::0;;;-1:-1:-1;;2776:1:68::2;:30:::0;;2792:14;;2776:1;;;:30:::2;::::0;2792:14;;2776:30:::2;:::i;:::-;::::0;;;-1:-1:-1;;2843:25:68::2;::::0;-1:-1:-1;;;;;2821:18:68;::::2;2843:1;2821:18:::0;;;:7:::2;:18;::::0;;;;;:47:::2;2817:365;;2889:32;:12;2911:9:::0;2889:21:::2;:32::i;:::-;2884:288;;3000:27;:12;3017:9:::0;3000:16:::2;:27::i;:::-;-1:-1:-1::0;;;;;;3045:34:68;::::2;:1;:34:::0;;;:23:::2;:34;::::0;;;;:44:::2;3082:7:::0;;3045:34;:44:::2;:::i;:::-;-1:-1:-1::0;;;;;;3107:37:68;::::2;:1;:37:::0;;;:26:::2;:37;::::0;;;;3147:10;;3107:50:::2;3147:10:::0;3107:37;:50:::2;:::i;:::-;-1:-1:-1::0;;2884:288:68::2;3208:19;3196:8;::::0;-1:-1:-1;;;3196:8:68;::::2;;;:31;::::0;::::2;;;;;;:::i;:::-;::::0;3192:522:::2;;3263:25;::::0;:1:::2;3247:12:::0;:41:::2;3243:180;;3319:13;3308:24:::0;;-1:-1:-1;;;;3308:24:68::2;-1:-1:-1::0;;;3308:24:68::2;::::0;;3359:16:::2;::::0;-1:-1:-1;3393:12:68;;3350:58:::2;::::0;;-1:-1:-1;;;3350:58:68;;;;-1:-1:-1;;;;;3359:16:68;;::::2;::::0;3350:35:::2;::::0;:58:::2;::::0;;::::2;::::0;-1:-1:-1;;3350:58:68;;;;;;3393:12;3359:16;3350:58;::::2;;::::0;::::2;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;3243:180;3192:522;;;3469:15;3457:8;::::0;-1:-1:-1;;;3457:8:68;::::2;;;:27;::::0;::::2;;;;;;:::i;:::-;::::0;3453:177:::2;;3524:25;::::0;:1:::2;3508:12:::0;:41:::2;3504:112;;3584:13;3573:24:::0;;-1:-1:-1;;;;3573:24:68::2;-1:-1:-1::0;;;3573:24:68::2;::::0;;3504:112:::2;3652:16;::::0;3643:60:::2;::::0;;-1:-1:-1;;;3643:60:68;;;;-1:-1:-1;;;;;3652:16:68;;::::2;::::0;3643:35:::2;::::0;3686:14;;3643:60:::2;::::0;;::::2;::::0;3652:1:::2;::::0;3643:60;;;;;;;3686:14;3652:16;3643:60;::::2;;::::0;::::2;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;3192:522;2551:1169;;2440:1280:::0;;;:::o;7422:422::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;7607:25:68;;;;;:22;:25;;;;;7598:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;7598:41:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7598:41:68;;;;;;;;;;;;;;;;-1:-1:-1;;;7598:41:68;;;;-1:-1:-1;;;;;;;;7657:25:68;;;:1;:25;;;:22;:25;;;;;;;;:31;;;;7704:29;;;;7754:34;;;;7806:31;;;;7798:39;;7598:41;;-1:-1:-1;7657:31:68;;;;;-1:-1:-1;7704:29:68;;-1:-1:-1;7754:34:68;;-1:-1:-1;7806:31:68;7798:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7422:422;;;;;;;:::o;6360:562::-;4544:14:57;:12;:14::i;:::-;6423:24:68::1;6450:21;:12;:19;:21::i;:::-;6423:48;;6486:16;6506:1;6486:21:::0;6482:81:::1;;6530:22;;-1:-1:-1::0;;;6530:22:68::1;;;;;;;;;;;6482:81;6585:16;6576:6;:25;6572:91;;;6624:28;;-1:-1:-1::0;;;6624:28:68::1;;;;;;;;;;;6572:91;6673:20;6696:25;6705:16:::0;6696:6;:25:::1;:::i;:::-;6673:48;;6737:9;6732:184;6756:16;6752:1;:20;6732:184;;;6834:12:::0;6790:20:::1;:1;6811:18;:12;6827:1:::0;6811:15:::1;:18::i;:::-;-1:-1:-1::0;;;;;6790:40:68::1;-1:-1:-1::0;;;;;6790:40:68::1;;;;;;;;;;;;;:56;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;6888:3:68::1;;6732:184;;3793:621:::0;240:48:56;575:8;;-1:-1:-1;;575:20:56;571:50;;604:17;;-1:-1:-1;;;604:17:56;;;;;;;;;;;571:50;470:1;631:19;;4616:15:57::1;:13;:15::i;:::-;4686:12:::2;:10;:12::i;:::-;3890:10:68::3;3865:14;3882:19:::0;;;:7:::3;:19;::::0;;;;;;3916:11;;;3912:63:::3;;3950:14;;-1:-1:-1::0;;;3950:14:68::3;;;;;;;;;;;3912:63;3993:10;4007:1;3985:19:::0;;;:7:::3;:19;::::0;;;;:23;;;4018:22;;4034:6;;4007:1;;;4018:22:::3;::::0;4034:6;;4018:22:::3;:::i;:::-;::::0;;;-1:-1:-1;4101:31:68::3;::::0;-1:-1:-1;4101:12:68::3;4121:10;4101:19;:31::i;:::-;-1:-1:-1::0;4158:13:68::3;4146:8:::0;;-1:-1:-1;;;4146:8:68;::::3;;;:25;::::0;::::3;;;;;;:::i;:::-;::::0;4142:160:::3;;4206:25;::::0;:1:::3;4191:12:::0;:40:::3;4187:105;;;4251:8;:26:::0;;-1:-1:-1;;;;4251:26:68::3;::::0;::::3;::::0;;4187:105:::3;4321:16;::::0;4312:47:::3;::::0;-1:-1:-1;;;4312:47:68;;::::3;::::0;::::3;16343:25:83::0;;;-1:-1:-1;;;;;4321:16:68;;::::3;::::0;4312:39:::3;::::0;16316:18:83;;4312:47:68::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;::::0;::::3;;;;;-1:-1:-1::0;4370:37:68::3;::::0;-1:-1:-1;4378:10:68::3;::::0;-1:-1:-1;4400:6:68;;-1:-1:-1;4370:29:68::3;:37::i;:::-;-1:-1:-1::0;427:1:56;671:23;;3793:621:68:o;4953:1319::-;4616:15:57;:13;:15::i;:::-;5051:47:68::1;5081:16;::::0;;;::::1;::::0;::::1;;:::i;:::-;5051:29;:47::i;:::-;5125:13;5113:8:::0;;-1:-1:-1;;;5113:8:68;::::1;;;:25;::::0;::::1;;;;;;:::i;:::-;;5109:80;;5161:17;;-1:-1:-1::0;;;5161:17:68::1;;;;;;;;;;;5109:80;5203:33;:12;5225:10;5203:21;:33::i;:::-;5198:86;;5259:14;;-1:-1:-1::0;;;5259:14:68::1;;;;;;;;;;;5198:86;5327:19;::::0;5297:17:::1;:10:::0;;:17:::1;:::i;:::-;:24;;;:::i;:::-;:26;::::0;-1:-1:-1;;;5297:26:68;;:24:::1;::::0;::::1;::::0;:26:::1;::::0;:24;:26:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:49;5293:110;;5369:23;;-1:-1:-1::0;;;5369:23:68::1;;;;;;;;;;;5293:110;5417:14;:23;5441:20;;::::0;::::1;:10:::0;:20:::1;:::i;:::-;5417:45;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5412:103;;5485:19;;-1:-1:-1::0;;;5485:19:68::1;;;;;;;;;;;5412:103;5525:50;5578:22;5525:50:::0;5601:16:::1;::::0;;;::::1;::::0;::::1;;:::i;:::-;-1:-1:-1::0;;;;;5578:40:68::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;5578:40:68;;;5729:10:::1;5741:19:::0;;;:7:::1;:19:::0;;;;;;;5578:40;;-1:-1:-1;;5681:80:68::1;::::0;5578:40;;5717:10;;5681:19:::1;:80::i;:::-;5656:105;;5776:17;5772:494;;;5809:33;5827:14;5809:17;:33::i;:::-;5041:1231;;4953:1319:::0;:::o;5772:494::-:1;5941:26;5969:22:::0;5995:34:::1;:32;:34::i;:::-;5940:89;;;;6048:17;6044:212;;;-1:-1:-1::0;;;;;6142:43:68;::::1;6085:54;6142:43:::0;;;:22:::1;:43;::::0;;;;6204:37:::1;6142:43:::0;6204:17:::1;:37::i;:::-;6067:189;5859:407;;5041:1231;;4953:1319:::0;:::o;4098:127:57:-;4151:22;;-1:-1:-1;;;4151:22:57;;:10;:22;;;33624:51:83;4151:20:57;;;;33597:18:83;;4151:22:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4146:73;;4196:12;;-1:-1:-1;;;4196:12:57;;;;;;;;;;;4146:73;4098:127::o;1530:331:19:-;1639:6;1615:21;:30;1611:109;;;1668:41;;-1:-1:-1;;;1668:41:19;;1703:4;1668:41;;;33624:51:83;33597:18;;1668:41:19;;;;;;;1611:109;1731:12;1749:9;-1:-1:-1;;;;;1749:14:19;1771:6;1749:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1730:52;;;1797:7;1792:63;;1827:17;;-1:-1:-1;;;1827:17:19;;;;;;;;;;;4370:135:57;4431:13;4419:8;;-1:-1:-1;;;4419:8:57;;;;:25;;;;;;;;:::i;:::-;;4415:84;;4467:21;;-1:-1:-1;;;4467:21:57;;;;;;;;;;;9107:115:24;9170:7;9196:19;9204:3;4546:18;;4464:107;8861:165;-1:-1:-1;;;;;8994:23:24;;8941:4;4352:19;;;:12;;;:19;;;;;;:24;;8964:55;8957:62;8861:165;-1:-1:-1;;;8861:165:24:o;8306:150::-;8376:4;8399:50;8404:3;-1:-1:-1;;;;;8424:23:24;;8399:4;:50::i;4231:133:57:-;4296:16;;-1:-1:-1;;;;;4296:16:57;4282:10;:30;4278:80;;4335:12;;-1:-1:-1;;;4335:12:57;;;;;;;;;;;9564:156:24;9638:7;9688:22;9692:3;9704:5;9688:3;:22::i;8624:156::-;8697:4;8720:53;8728:3;-1:-1:-1;;;;;8748:23:24;;8720:7;:53::i;1779:96:58:-;1846:22;1862:5;1846:15;:22::i;9501:750:68:-;9729:22;;9788:17;:10;:17;:::i;:::-;:19;;-1:-1:-1;;;9788:19:68;;:17;;;;:19;;:17;:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9763:44;-1:-1:-1;9838:206:68;9872:14;9763:44;9933:16;9963:15;9992:16;;;;;;;;:::i;:::-;10022:1;:12;9838:20;:206::i;:::-;10111:42;;;;:26;;;:42;;;;;;;;;:50;;;;;;;;;-1:-1:-1;;;;;10111:50:68;;;;;;;;;;;;;;;;;;;;;;;;;;;9818:226;;-1:-1:-1;10111:50:68;;:42;;:50;;;;:42;;:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10111:50:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10111:50:68;-1:-1:-1;;;;;10111:50:68;-1:-1:-1;;;;;10111:50:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10111:50:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10111:50:68;;;;;;;;;;;;;;;;-1:-1:-1;;;10111:50:68;;;;-1:-1:-1;;;10111:50:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10111:50:68;;;;-1:-1:-1;;;10111:50:68;;-1:-1:-1;10111:50:68;;;;;;;;;;;;;;;-1:-1:-1;;;;;10111:50:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10111:50:68;;;;;;;;;;;;;;;;-1:-1:-1;;;10111:50:68;;;;-1:-1:-1;;;10111:50:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10111:50:68;;;;-1:-1:-1;;;10111:50:68;;-1:-1:-1;10111:50:68;;;;;;;;;;;;;;-1:-1:-1;;;;;10111:50:68;;;;;;-1:-1:-1;;;10111:50:68;;;;-1:-1:-1;;;;;;10111:50:68;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10111:50:68;;;;-1:-1:-1;;;10111:50:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10111:50:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10111:50:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10111:50:68;;;;-1:-1:-1;;10111:52:68;;-1:-1:-1;;;10111:52:68;;:50;;;;-1:-1:-1;10111:52:68;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10107:138;;;10179:42;;;;:26;;;:42;;;;;10224:10;;10179:55;10224:10;10179:42;:55;:::i;:::-;-1:-1:-1;;10107:138:68;9753:498;9501:750;;;;;;:::o;10420:763::-;10585:39;;;;;10518:37;10558:67;;;:26;;;:67;;;;;10766:19;;;;10734:28;;10558:67;;10734:51;10730:196;;10801:27;;-1:-1:-1;;;10801:27:68;;;;;16343:25:83;;;10801::68;;;;16316:18:83;;10801:27:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10878:16:68;;;;10842:53;;-1:-1:-1;;;;;;10878:16:68;10842:35;:53::i;:::-;10909:7;10420:763;:::o;10730:196::-;10969:16;;;;10936:50;;-1:-1:-1;;;;;10969:16:68;10936:32;:50::i;:::-;11020:16;;;;-1:-1:-1;;;;;11020:16:68;;;10997:1;:40;;;:22;:40;;;;;:53;;;;-1:-1:-1;;;;;;10997:53:68;;;;;;;;;11020:16;10997:53;;;;;11040:10;;10997:40;11040:10;;10997:40;;:53;;;;;;;:::i;:::-;-1:-1:-1;;;10997:53:68;;;;;;;;;;-1:-1:-1;;;;;;10997:53:68;-1:-1:-1;;;;;10997:53:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;10997:53:68;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;11091:17:68;;;;;;;;;;-1:-1:-1;;;;;11091:17:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11091:10:68;;:17;;:10;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11091:17:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11091:17:68;-1:-1:-1;;;;;11091:17:68;-1:-1:-1;;;;;11091:17:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11091:17:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11091:17:68;;;;;;;;;;;;;;;;-1:-1:-1;;;11091:17:68;;;;-1:-1:-1;;;11091:17:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11091:17:68;;;;-1:-1:-1;;;11091:17:68;;-1:-1:-1;11091:17:68;;;;;;;;;;;;;;;-1:-1:-1;;;;;11091:17:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11091:17:68;;;;;;;;;;;;;;;;-1:-1:-1;;;11091:17:68;;;;-1:-1:-1;;;11091:17:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11091:17:68;;;;-1:-1:-1;;;11091:17:68;;-1:-1:-1;11091:17:68;;;;;;;;;;;;;;-1:-1:-1;;;;;11091:17:68;;;;;;-1:-1:-1;;;11091:17:68;;;;-1:-1:-1;;;;;;11091:17:68;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11091:17:68;;;;-1:-1:-1;;;11091:17:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11091:17:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11091:17:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11091:17:68;;;;-1:-1:-1;;11091:19:68;;-1:-1:-1;;;11091:19:68;;:17;;;;-1:-1:-1;11091:19:68;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11060:28;:50;11130:16;;11121:55;;-1:-1:-1;;;11121:55:68;;-1:-1:-1;;;;;11130:16:68;;;;11121:43;;:55;;11165:10;;11121:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7090:254:58;7257:17;:23;-1:-1:-1;;;7257:23:58;;-1:-1:-1;;;;;7257:23:58;7147:16;-1:-1:-1;;;;;;;;;;;7305:32:58;7257:23;7305:21;:32::i;:::-;7290:47;;7184:160;7090:254;;:::o;2215:404:24:-;2278:4;4352:19;;;:12;;;:19;;;;;;2294:319;;-1:-1:-1;2336:23:24;;;;;;;;:11;:23;;;;;;;;;;;;;2516:18;;2494:19;;;:12;;;:19;;;;;;:40;;;;2548:11;;2294:319;-1:-1:-1;2597:5:24;2590:12;;4913:118;4980:7;5006:3;:11;;5018:5;5006:18;;;;;;;;:::i;:::-;;;;;;;;;4999:25;;4913:118;;;;:::o;2787:1388::-;2853:4;2990:19;;;:12;;;:19;;;;;;3024:15;;3020:1149;;3393:21;3417:14;3430:1;3417:10;:14;:::i;:::-;3465:18;;3393:38;;-1:-1:-1;3445:17:24;;3465:22;;3486:1;;3465:22;:::i;:::-;3445:42;;3519:13;3506:9;:26;3502:398;;3552:17;3572:3;:11;;3584:9;3572:22;;;;;;;;:::i;:::-;;;;;;;;;3552:42;;3723:9;3694:3;:11;;3706:13;3694:26;;;;;;;;:::i;:::-;;;;;;;;;;;;:38;;;;3806:23;;;:12;;;:23;;;;;:36;;;3502:398;3978:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4070:3;:12;;:19;4083:5;4070:19;;;;;;;;;;;4063:26;;;4111:4;4104:11;;;;;;;3020:1149;4153:5;4146:12;;;;;3020:1149;2859:1316;2787:1388;;;;:::o;1881:387:58:-;-1:-1:-1;;;;;;;;;;;2007:25:58;;-1:-1:-1;;;;;2007:25:58;;;1998:34;;;;1994:94;;2055:22;;-1:-1:-1;;;2055:22:58;;;;;;;;;;;1994:94;2109:14;;-1:-1:-1;;;;;;;;2109:14:58;;;;;2101:22;;;;2097:165;;;2170:18;;-1:-1:-1;;;;;;;;2170:18:58;;;;;2144:22;;-1:-1:-1;;;2152:14:58;;;;2144:5;:22;:::i;:::-;2143:45;;;;:::i;:::-;-1:-1:-1;;;;;2143:50:58;;2139:113;;2220:17;;-1:-1:-1;;;2220:17:58;;;;;;;;;;;7834:1528;8171:10;;8070:22;8195;;;:15;;;:22;;;;;;;;-1:-1:-1;;;;;8195:40:58;;;;;;;;;;8070:22;;-1:-1:-1;;;;;;;;;;;1438:42:58;8195:40;;8191:101;;;8258:23;;-1:-1:-1;;;8258:23:58;;;;;;;;;;;8191:101;8302:22;;;;:15;;;:22;;;;;;;;-1:-1:-1;;;;;8302:40:58;;;;;;;;;:47;;-1:-1:-1;;8302:47:58;8345:4;8302:47;;;;;;8359:26;;:45;;8389:15;;8302:22;8359:45;;8389:15;;8359:45;:::i;:::-;;;;-1:-1:-1;;8414:29:58;;;;:22;;;:29;;;;;;;;:45;;;;;;;;:64;;8463:15;;8414:29;:64;;8463:15;;8414:64;:::i;:::-;;;;-1:-1:-1;;8489:23:58;8515:29;;;:22;;;:29;;;;;;;;8545:24;;;;8515:55;;;;;;;;;8606:45;;;;;;8666:33;;;8662:105;;;8715:24;;;:41;;;8662:105;8777:26;8806:40;8828:4;8834:11;8806:21;:40::i;:::-;8777:69;-1:-1:-1;8871:36:58;8861:6;:46;;;;;;;;:::i;:::-;;8857:499;;8927:28;8949:5;8927:21;:28::i;:::-;8923:264;;;8995:4;8975:24;;8857:499;;8923:264;9143:29;;-1:-1:-1;;;9143:29:58;;:17;;;:29;;;68181:25:83;-1:-1:-1;;;;;68242:31:83;;68222:18;;;68215:59;9143:22:58;;;;68154:18:83;;9143:29:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8857:499;;;9217:30;9207:6;:40;;;;;;;;:::i;:::-;;9203:153;;9333:12;;-1:-1:-1;;;9333:12:58;;;;;16343:25:83;;;9333:10:58;;;;16316:18:83;;9333:12:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9203:153;8094:1268;;;;;7834:1528;;;;;;;;:::o;9932:149::-;9996:23;-1:-1:-1;;;;;;;;;;;10047:27:58;;-1:-1:-1;;;10047:27:58;;:17;;;:27;;;68181:25:83;-1:-1:-1;;;;;68242:31:83;;68222:18;;;68215:59;9996:41:58;;-1:-1:-1;10047:24:58;;;;68154:18:83;;10047:27:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5877:619;-1:-1:-1;;;;;;;;;;;6045:28:58;6067:5;6045:21;:28::i;:::-;6040:66;;6089:7;5877:619;:::o;6040:66::-;6180:33;;-1:-1:-1;;;6180:33:58;;:17;;;:33;;;68181:25:83;-1:-1:-1;;;;;68242:31:83;;68222:18;;;68215:59;6180:26:58;;;;68154:18:83;;6180:33:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6176:140;;;6233:17;;;:23;-1:-1:-1;;;;;6233:32:58;;;-1:-1:-1;;;6233:23:58;;;;:32;6229:77;;6285:7;5877:619;:::o;6229:77::-;6372:31;;-1:-1:-1;;;6372:31:58;;:17;;;:31;;;68181:25:83;-1:-1:-1;;;;;68242:31:83;;68222:18;;;68215:59;6372:24:58;;;;68154:18:83;;6372:31:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6456:33:58;;-1:-1:-1;;;;;;6456:33:58;-1:-1:-1;;;;;6456:33:58;;;;;;;;;;;-1:-1:-1;;5877:619:58:o;6696:204::-;-1:-1:-1;;;;;;;;;;;6875:18:58;;6764:4;;1438:42;6847:46;;-1:-1:-1;;;;;;;;6875:18:58;;;;;6847:25;:46;:::i;:::-;-1:-1:-1;;;;;6838:55:58;:5;-1:-1:-1;;;;;6838:55:58;;6831:62;;;6696:204;;;:::o;3873:1880::-;-1:-1:-1;;;;;;;;;;;4121:20:58;;4004:19;;1438:42;4004:19;;4145:3;;4107:34;;-1:-1:-1;;;4121:20:58;;;;4107:11;:34;:::i;:::-;4106:42;;;;:::i;:::-;4184:25;;-1:-1:-1;;;4184:25:58;;;;;16343::83;;;4086:62:58;;-1:-1:-1;4158:23:58;;4184;;;;16316:18:83;;4184:25:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4158:51;;4347:9;4317:4;:26;;;:39;4313:116;;4379:39;4372:46;;;;;;;4313:116;4490:9;4472:15;:27;4468:101;;;4522:36;4515:43;;;;;;;4468:101;5549:26;;;;5535:40;;:11;:40;:::i;:::-;5504:27;5516:15;5504:9;:27;:::i;:::-;:71;5500:139;;5598:30;5591:37;;;;;;;5500:139;-1:-1:-1;5709:37:58;;3873:1880;-1:-1:-1;;;;;3873:1880:58:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;14:129:83:-;-1:-1:-1;;;;;92:5:83;88:30;81:5;78:41;68:69;;133:1;130;123:12;148:132;215:20;;244:30;215:20;244:30;:::i;:::-;148:132;;;:::o;285:245::-;343:6;396:2;384:9;375:7;371:23;367:32;364:52;;;412:1;409;402:12;364:52;451:9;438:23;470:30;494:5;470:30;:::i;894:131::-;-1:-1:-1;;;;;969:31:83;;959:42;;949:70;;1015:1;1012;1005:12;1030:386;1097:6;1105;1158:2;1146:9;1137:7;1133:23;1129:32;1126:52;;;1174:1;1171;1164:12;1126:52;1213:9;1200:23;1232:30;1256:5;1232:30;:::i;:::-;1281:5;-1:-1:-1;1338:2:83;1323:18;;1310:32;1351:33;1310:32;1351:33;:::i;:::-;1403:7;1393:17;;;1030:386;;;;;:::o;1720:708::-;1790:3;1829:4;1824:3;1820:14;-1:-1:-1;;;;;1865:5:83;1859:12;1855:37;1850:3;1843:50;1912:4;1962:2;1955:5;1951:14;1945:21;1996:4;1991:2;1986:3;1982:12;1975:26;2023:4;2056:12;2050:19;2091:6;2085:4;2078:20;2125:2;2120:3;2116:12;2107:21;;2169:2;2155:12;2151:21;2137:35;;2190:1;2181:10;;2200:201;2214:6;2211:1;2208:13;2200:201;;;2281:13;;-1:-1:-1;;;;;2277:39:83;2263:54;;2376:15;;;;2313:1;2229:9;;;;;2339:14;;;;2200:201;;;-1:-1:-1;2417:5:83;1720:708;-1:-1:-1;;;;;;1720:708:83:o;2433:422::-;2474:3;2512:5;2506:12;2539:6;2534:3;2527:19;2564:1;2574:162;2588:6;2585:1;2582:13;2574:162;;;2650:4;2706:13;;;2702:22;;2696:29;2678:11;;;2674:20;;2667:59;2603:12;2574:162;;;2578:3;2781:1;2774:4;2765:6;2760:3;2756:16;2752:27;2745:38;2844:4;2837:2;2833:7;2828:2;2820:6;2816:15;2812:29;2807:3;2803:39;2799:50;2792:57;;;2433:422;;;;:::o;2860:564::-;2924:3;2968:5;2962:12;2995:4;2990:3;2983:17;3021:75;3090:4;3085:3;3081:14;3067:12;3021:75;:::i;:::-;3009:87;;3144:4;3137:5;3133:16;3127:23;3192:3;3186:4;3182:14;3175:4;3170:3;3166:14;3159:38;3246:4;3229:14;3223:21;3219:32;3213:4;3206:46;3309:4;3293:14;3289:25;3283:32;3261:54;;3348:4;3341;3335;3331:15;3324:29;3369:49;3412:4;3406;3402:15;3386:14;3369:49;:::i;:::-;3362:56;2860:564;-1:-1:-1;;;;;2860:564:83:o;3429:1909::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3603:4;3644:2;3639:3;3635:12;3669:11;3696;3689:18;;3746:6;3743:1;3739:14;3732:5;3728:26;3716:38;;3788:2;3781:5;3777:14;3809:1;3819:1493;3833:6;3830:1;3827:13;3819:1493;;;3904:5;3898:4;3894:16;3889:3;3882:29;3940:6;3934:13;3970:4;4013:2;4007:9;4042:2;4036:4;4029:16;4086:12;4080:19;4122:4;4161:2;4156;4150:4;4146:13;4139:25;4191:71;4257:3;4251:4;4247:14;4231;4191:71;:::i;:::-;4177:85;;4321:2;4307:12;4303:21;4297:28;4352:2;4348:7;4378:2;4438;4431:4;4423:6;4419:17;4415:26;4410:2;4404:4;4400:13;4393:49;4469:63;4525:6;4509:14;4469:63;:::i;:::-;4561:21;;;4555:28;4606:3;4629:13;;;4622:25;;;;4688:21;;;4682:28;-1:-1:-1;;;;;4771:39:83;4733:3;4756:13;;;4749:62;;;;4856:21;;;4850:28;-1:-1:-1;;;;;;4846:55:83;4831:13;;;4824:78;;;;4943:21;;;4937:28;5005:17;;;5001:26;;;4884:3;4985:14;;4978:50;-1:-1:-1;4937:28:83;4455:77;-1:-1:-1;5054:40:83;4455:77;4937:28;5054:40;:::i;:::-;5135:11;;;5129:18;605:13;;598:21;5192:13;;;586:34;5129:18;5041:53;-1:-1:-1;5160:46:83;;-1:-1:-1;;535:91:83;5160:46;5290:12;;;;5227:5;-1:-1:-1;;5255:15:83;;;;3855:1;3848:9;3819:1493;;;-1:-1:-1;5328:4:83;;3429:1909;-1:-1:-1;;;;;;;3429:1909:83:o;5343:1439::-;5428:3;5466:5;5460:12;5493:6;5488:3;5481:19;5519:4;5560:2;5555:3;5551:12;5585:11;5612;5605:18;;5662:6;5659:1;5655:14;5648:5;5644:26;5632:38;;5704:2;5697:5;5693:14;5725:1;5746;5756:1000;5772:6;5767:3;5764:15;5756:1000;;;5847:5;5841:4;5837:16;5832:3;5825:29;5883:6;5877:13;5913:4;5956:2;5950:9;5985:2;5979:4;5972:16;6015:74;6085:2;6079:4;6075:13;6061:12;6015:74;:::i;:::-;6130:11;;;6124:18;6177:17;;;6162:13;;;6155:40;6256:21;;6290:24;;;6380:23;;;;6427:1;;-1:-1:-1;6336:15:83;;;-1:-1:-1;6441:209:83;6457:8;6452:3;6449:17;6441:209;;;6534:15;;6520:30;;6619:17;;;;6485:1;6476:11;;;;;6576:14;;;;6441:209;;;-1:-1:-1;6734:12:83;;;;6671:5;-1:-1:-1;;;6699:15:83;;;;5798:1;5789:11;5756:1000;;;-1:-1:-1;6772:4:83;;5343:1439;-1:-1:-1;;;;;;;;5343:1439:83:o;6787:1348::-;7026:6;7019:14;7012:22;7001:9;6994:41;7071:2;7066;7055:9;7051:18;7044:30;6975:4;7109:6;7103:13;7152:4;7147:2;7136:9;7132:18;7125:32;7180:80;7255:3;7244:9;7240:19;7226:12;7180:80;:::i;:::-;7166:94;;-1:-1:-1;;;;;7318:2:83;7310:6;7306:15;7300:22;7296:47;7291:2;7280:9;7276:18;7269:75;7399:2;7391:6;7387:15;7381:22;7375:3;7364:9;7360:19;7353:51;7453:2;7445:6;7441:15;7435:22;7480:2;7476:7;7548:2;7536:9;7528:6;7524:22;7520:31;7514:3;7503:9;7499:19;7492:60;7575:82;7650:6;7634:14;7575:82;:::i;:::-;7561:96;;7706:3;7698:6;7694:16;7688:23;7666:45;;7776:2;7764:9;7756:6;7752:22;7748:31;7742:3;7731:9;7727:19;7720:60;7803:84;7880:6;7864:14;7803:84;:::i;:::-;7789:98;;7943:3;7935:6;7931:16;7925:23;7918:4;7907:9;7903:20;7896:53;7998:3;7990:6;7986:16;7980:23;7958:45;;8068:2;8056:9;8048:6;8044:22;8040:31;8034:3;8023:9;8019:19;8012:60;;8089:40;8122:6;8106:14;8089:40;:::i;:::-;8081:48;6787:1348;-1:-1:-1;;;;;;6787:1348:83:o;8140:866::-;8251:6;8259;8267;8320:2;8308:9;8299:7;8295:23;8291:32;8288:52;;;8336:1;8333;8326:12;8288:52;8376:9;8363:23;-1:-1:-1;;;;;8446:2:83;8438:6;8435:14;8432:34;;;8462:1;8459;8452:12;8432:34;8500:6;8489:9;8485:22;8475:32;;8545:7;8538:4;8534:2;8530:13;8526:27;8516:55;;8567:1;8564;8557:12;8516:55;8607:2;8594:16;8633:2;8625:6;8622:14;8619:34;;;8649:1;8646;8639:12;8619:34;8696:7;8689:4;8680:6;8676:2;8672:15;8668:26;8665:39;8662:59;;;8717:1;8714;8707:12;8662:59;8748:4;8740:13;;;;-1:-1:-1;8772:6:83;-1:-1:-1;8816:20:83;;;8803:34;;8849:16;;;8846:36;;;8878:1;8875;8868:12;8846:36;-1:-1:-1;8901:24:83;;8959:2;8941:16;;;8937:25;8934:45;;;8975:1;8972;8965:12;8934:45;8998:2;8988:12;;;8140:866;;;;;:::o;9011:681::-;9322:3;9311:9;9304:22;9285:4;9349:74;9418:3;9407:9;9403:19;9395:6;9349:74;:::i;:::-;-1:-1:-1;;;;;9463:6:83;9459:31;9454:2;9443:9;9439:18;9432:59;9527:6;9522:2;9511:9;9507:18;9500:34;9570:6;9565:2;9554:9;9550:18;9543:34;9626:9;9618:6;9614:22;9608:3;9597:9;9593:19;9586:51;9654:32;9679:6;9671;9654:32;:::i;:::-;9646:40;9011:681;-1:-1:-1;;;;;;;;9011:681:83:o;9697:180::-;9756:6;9809:2;9797:9;9788:7;9784:23;9780:32;9777:52;;;9825:1;9822;9815:12;9777:52;-1:-1:-1;9848:23:83;;9697:180;-1:-1:-1;9697:180:83:o;9882:399::-;9980:6;10033:2;10021:9;10012:7;10008:23;10004:32;10001:52;;;10049:1;10046;10039:12;10001:52;10089:9;10076:23;-1:-1:-1;;;;;10114:6:83;10111:30;10108:50;;;10154:1;10151;10144:12;10108:50;10177:22;;10233:3;10215:16;;;10211:26;10208:46;;;10250:1;10247;10240:12;11519:1865;11580:3;11618:5;11612:12;11645:6;11640:3;11633:19;11671:4;11712:2;11707:3;11703:12;11737:11;11764;11757:18;;11814:6;11811:1;11807:14;11800:5;11796:26;11784:38;;11856:2;11849:5;11845:14;11877:1;11887:1471;11901:6;11898:1;11895:13;11887:1471;;;11972:5;11966:4;11962:16;11957:3;11950:29;12008:6;12002:13;12038:4;12081:2;12075:9;12110:2;12104:4;12097:16;12154:12;12148:19;12190:4;12229:2;12224;12218:4;12214:13;12207:25;12259:60;12314:3;12308:4;12304:14;12288;12259:60;:::i;:::-;12245:74;;12378:2;12364:12;12360:21;12354:28;12409:2;12405:7;12435:2;12495;12488:4;12480:6;12476:17;12472:26;12467:2;12461:4;12457:13;12450:49;12526:52;12571:6;12555:14;12526:52;:::i;:::-;12607:21;;;12601:28;12652:3;12675:13;;;12668:25;;;;12734:21;;;12728:28;-1:-1:-1;;;;;12817:39:83;12779:3;12802:13;;;12795:62;;;;12902:21;;;12896:28;-1:-1:-1;;;;;;12892:55:83;12877:13;;;12870:78;;;;12989:21;;;12983:28;13051:17;;;13047:26;;;12930:3;13031:14;;13024:50;-1:-1:-1;12983:28:83;12512:66;-1:-1:-1;13100:40:83;12512:66;12983:28;13100:40;:::i;:::-;13181:11;;;13175:18;605:13;;598:21;13238:13;;;586:34;13175:18;13087:53;-1:-1:-1;13206:46:83;;-1:-1:-1;;535:91:83;13206:46;13336:12;;;;13273:5;-1:-1:-1;;13301:15:83;;;;11923:1;11916:9;11887:1471;;13389:1398;13452:3;13490:5;13484:12;13517:6;13512:3;13505:19;13543:4;13584:2;13579:3;13575:12;13609:11;13636;13629:18;;13686:6;13683:1;13679:14;13672:5;13668:26;13656:38;;13728:2;13721:5;13717:14;13749:1;13770;13780:981;13796:6;13791:3;13788:15;13780:981;;;13871:5;13865:4;13861:16;13856:3;13849:29;13907:6;13901:13;13937:4;13980:2;13974:9;14009:2;14003:4;13996:16;14039:55;14090:2;14084:4;14080:13;14066:12;14039:55;:::i;:::-;14135:11;;;14129:18;14182:17;;;14167:13;;;14160:40;14261:21;;14295:24;;;14385:23;;;;14432:1;;-1:-1:-1;14341:15:83;;;-1:-1:-1;14446:209:83;14462:8;14457:3;14454:17;14446:209;;;14539:15;;14525:30;;14624:17;;;;14490:1;14481:11;;;;;14581:14;;;;14446:209;;;-1:-1:-1;14739:12:83;;;;14676:5;-1:-1:-1;;;14704:15:83;;;;13822:1;13813:11;13780:981;;14792:1211;15003:2;14992:9;14985:21;14966:4;15041:6;15035:13;15084:4;15079:2;15068:9;15064:18;15057:32;15112:61;15168:3;15157:9;15153:19;15139:12;15112:61;:::i;:::-;15098:75;;-1:-1:-1;;;;;15231:2:83;15223:6;15219:15;15213:22;15209:47;15204:2;15193:9;15189:18;15182:75;15311:2;15303:6;15299:15;15293:22;15288:2;15277:9;15273:18;15266:50;15365:2;15357:6;15353:15;15347:22;15392:2;15388:7;15460:2;15448:9;15440:6;15436:22;15432:31;15426:3;15415:9;15411:19;15404:60;15487;15540:6;15524:14;15487:60;:::i;:::-;15473:74;;15596:3;15588:6;15584:16;15578:23;15556:45;;15666:2;15654:9;15646:6;15642:22;15638:31;15632:3;15621:9;15617:19;15610:60;15693:62;15748:6;15732:14;15693:62;:::i;:::-;15679:76;;15810:3;15802:6;15798:16;15792:23;15786:3;15775:9;15771:19;15764:52;15865:3;15857:6;15853:16;15847:23;15825:45;;15936:2;15924:9;15916:6;15912:22;15908:31;15901:4;15890:9;15886:20;15879:61;;15957:40;15990:6;15974:14;15957:40;:::i;16008:184::-;16078:6;16131:2;16119:9;16110:7;16106:23;16102:32;16099:52;;;16147:1;16144;16137:12;16099:52;-1:-1:-1;16170:16:83;;16008:184;-1:-1:-1;16008:184:83:o;16379:127::-;16440:10;16435:3;16431:20;16428:1;16421:31;16471:4;16468:1;16461:15;16495:4;16492:1;16485:15;16511:380;16590:1;16586:12;;;;16633;;;16654:61;;16708:4;16700:6;16696:17;16686:27;;16654:61;16761:2;16753:6;16750:14;16730:18;16727:38;16724:161;;16807:10;16802:3;16798:20;16795:1;16788:31;16842:4;16839:1;16832:15;16870:4;16867:1;16860:15;16724:161;;16511:380;;;:::o;16896:271::-;17087:2;17076:9;17069:21;17050:4;17107:54;17157:2;17146:9;17142:18;17134:6;17107:54;:::i;17172:118::-;17258:5;17251:13;17244:21;17237:5;17234:32;17224:60;;17280:1;17277;17270:12;17295:245;17362:6;17415:2;17403:9;17394:7;17390:23;17386:32;17383:52;;;17431:1;17428;17421:12;17383:52;17463:9;17457:16;17482:28;17504:5;17482:28;:::i;17545:127::-;17606:10;17601:3;17597:20;17594:1;17587:31;17637:4;17634:1;17627:15;17661:4;17658:1;17651:15;17677:125;17742:9;;;17763:10;;;17760:36;;;17776:18;;:::i;17807:127::-;17868:10;17863:3;17859:20;17856:1;17849:31;17899:4;17896:1;17889:15;17923:4;17920:1;17913:15;18065:146;18127:78;18145:3;18138:5;18135:14;18127:78;;;18201:1;18187:16;;18172:1;18161:13;18127:78;;18216:418;18318:2;18313:3;18310:11;18307:321;;;18354:5;18351:1;18344:16;18398:4;18395:1;18385:18;18468:2;18456:10;18452:19;18449:1;18445:27;18439:4;18435:38;18504:4;18492:10;18489:20;18486:47;;;-1:-1:-1;18527:4:83;18486:47;18546:72;18612:2;18607:3;18603:12;18600:1;18596:20;18590:4;18586:31;18573:11;18546:72;:::i;18639:166::-;-1:-1:-1;;18767:1:83;18763:11;;;18759:24;18755:29;18745:40;18791:1;18787:11;;;;18742:57;;18639:166::o;18810:1206::-;-1:-1:-1;;;;;18929:3:83;18926:27;18923:53;;;18956:18;;:::i;:::-;18985:94;19075:3;19035:38;19067:4;19061:11;19035:38;:::i;:::-;19029:4;18985:94;:::i;:::-;19105:1;19130:2;19125:3;19122:11;19147:1;19142:616;;;;19802:1;19819:3;19816:93;;;-1:-1:-1;19875:19:83;;;19862:33;19816:93;19935:64;19995:3;19988:5;19935:64;:::i;:::-;19929:4;19922:78;;19115:895;;19142:616;18012:1;18005:14;;;18049:4;18036:18;;-1:-1:-1;;19178:17:83;;;19279:9;19301:229;19315:7;19312:1;19309:14;19301:229;;;19404:19;;;19391:33;19376:49;;19511:4;19496:20;;;;19464:1;19452:14;;;;19331:12;19301:229;;;19305:3;19558;19549:7;19546:16;19543:159;;;19682:1;19678:6;19672:3;19666;19663:1;19659:11;19655:21;19651:34;19647:39;19634:9;19629:3;19625:19;19612:33;19608:79;19600:6;19593:95;19543:159;;;19745:1;19739:3;19736:1;19732:11;19728:19;19722:4;19715:33;19115:895;;18810:1206;;;:::o;20021:114::-;20105:4;20098:5;20094:16;20087:5;20084:27;20074:55;;20125:1;20122;20115:12;20140:515;20211:4;20217:6;20277:11;20264:25;20371:2;20367:7;20356:8;20340:14;20336:29;20332:43;20312:18;20308:68;20298:96;;20390:1;20387;20380:12;20298:96;20417:33;;20469:20;;;-1:-1:-1;;;;;;20501:30:83;;20498:50;;;20544:1;20541;20534:12;20498:50;20577:4;20565:17;;-1:-1:-1;20608:14:83;20604:27;;;20594:38;;20591:58;;;20645:1;20642;20635:12;20591:58;20140:515;;;;;:::o;21853:1725::-;22026:5;22013:19;22041:31;22064:7;22041:31;:::i;:::-;22138:4;22129:7;22125:18;22118:3;22114:8;22107:4;22101:11;22097:26;22094:50;22088:4;22081:64;;22164:1;22202:2;22196:4;22192:13;22224:2;22269:58;22323:2;22316:5;22312:14;22305:5;22269:58;:::i;:::-;-1:-1:-1;;;;;22342:13:83;22339:37;22336:63;;;22379:18;;:::i;:::-;22408:116;22510:13;22464:44;22496:10;22490:17;22464:44;:::i;:::-;22452:10;22408:116;:::i;:::-;22550:1;22585:2;22570:13;22567:21;22602:1;22597:683;;;;23326:1;23343:13;23340:113;;;-1:-1:-1;23411:27:83;;;23398:41;23340:113;23485:76;23547:13;23538:7;23485:76;:::i;:::-;23473:10;23466:96;;22560:1012;;22597:683;18012:1;18005:14;;;18049:4;18036:18;;-1:-1:-1;;22633:27:83;;;22750:9;22772:234;22786:7;22783:1;22780:14;22772:234;;;22873:27;;;22860:41;22845:57;;22974:18;;;;22929:15;;;;22802:10;;22772:234;;;22776:3;23034:13;23025:7;23022:26;23019:187;;;23186:1;23182:6;23176:3;23160:13;23157:1;23153:21;23149:31;23145:44;23141:49;23128:9;23115:11;23111:27;23098:41;23094:97;23086:6;23079:113;23019:187;;;23266:2;23250:13;23246:2;23242:22;23238:31;23226:10;23219:51;22560:1012;;;;;;;;21853:1725;;:::o;23583:127::-;23644:10;23639:3;23635:20;23632:1;23625:31;23675:4;23672:1;23665:15;23699:4;23696:1;23689:15;23715:120;23755:1;23781;23771:35;;23786:18;;:::i;:::-;-1:-1:-1;23820:9:83;;23715:120::o;23840:128::-;23907:9;;;23928:11;;;23925:37;;;23942:18;;:::i;23973:326::-;24068:4;24126:11;24113:25;24220:2;24216:7;24205:8;24189:14;24185:29;24181:43;24161:18;24157:68;24147:96;;24239:1;24236;24229:12;24147:96;24260:33;;;;;23973:326;-1:-1:-1;;23973:326:83:o;24304:258::-;24377:4;24371:11;;;24409:17;;-1:-1:-1;;;;;24441:34:83;;24477:22;;;24438:62;24435:88;;;24503:18;;:::i;:::-;24539:4;24532:24;24304:258;:::o;24567:254::-;24640:2;24634:9;24682:4;24670:17;;-1:-1:-1;;;;;24702:34:83;;24738:22;;;24699:62;24696:88;;;24764:18;;:::i;24826:254::-;24899:2;24893:9;24941:4;24929:17;;-1:-1:-1;;;;;24961:34:83;;24997:22;;;24958:62;24955:88;;;25023:18;;:::i;25085:275::-;25156:2;25150:9;25221:2;25202:13;;-1:-1:-1;;25198:27:83;25186:40;;-1:-1:-1;;;;;25241:34:83;;25277:22;;;25238:62;25235:88;;;25303:18;;:::i;:::-;25339:2;25332:22;25085:275;;-1:-1:-1;25085:275:83:o;25365:183::-;25425:4;-1:-1:-1;;;;;25450:6:83;25447:30;25444:56;;;25480:18;;:::i;:::-;-1:-1:-1;25525:1:83;25521:14;25537:4;25517:25;;25365:183::o;25553:1115::-;25608:5;25656:4;25644:9;25639:3;25635:19;25631:30;25628:50;;;25674:1;25671;25664:12;25628:50;25696:23;;:::i;:::-;25687:32;;25756:9;25743:23;25775:32;25799:7;25775:32;:::i;:::-;25816:22;;25857:2;25895:18;;;25882:32;-1:-1:-1;;;;;25926:30:83;;25923:50;;;25969:1;25966;25959:12;25923:50;25992:22;;26045:4;26037:13;;26033:23;-1:-1:-1;26023:51:83;;26070:1;26067;26060:12;26023:51;26106:2;26093:16;26129:60;26145:43;26185:2;26145:43;:::i;:::-;26129:60;:::i;:::-;26223:15;;;26305:1;26301:10;;;;26293:19;;26289:28;;;26254:12;;;;26329:15;;;26326:35;;;26357:1;26354;26347:12;26326:35;26381:11;;;;26401:223;26417:6;26412:3;26409:15;26401:223;;;26499:3;26486:17;26516:33;26541:7;26516:33;:::i;:::-;26562:20;;26434:12;;;;26602;;;;26401:223;;;26656:5;26651:2;26644:5;26640:14;26633:29;;;;;;25553:1115;;;;:::o;26673:198::-;26779:9;26816:49;26850:14;26843:5;26816:49;:::i;26876:574::-;26998:4;27004:6;27064:11;27051:25;27158:2;27154:7;27143:8;27127:14;27123:29;27119:43;27099:18;27095:68;27085:96;;27177:1;27174;27167:12;27085:96;27204:33;;27256:20;;;-1:-1:-1;;;;;;27288:30:83;;27285:50;;;27331:1;27328;27321:12;27285:50;27364:4;27352:17;;-1:-1:-1;27415:1:83;27411:14;;;27395;27391:35;27381:46;;27378:66;;;27440:1;27437;27430:12;27455:295;27525:5;27584:3;27571:17;27670:2;27666:7;27655:8;27639:14;27635:29;27631:43;27611:18;27607:68;27597:96;;27689:1;27686;27679:12;27597:96;27711:33;;;;27455:295;-1:-1:-1;;27455:295:83:o;27755:500::-;27813:5;27820:6;27880:3;27867:17;27966:2;27962:7;27951:8;27935:14;27931:29;27927:43;27907:18;27903:68;27893:96;;27985:1;27982;27975:12;27893:96;28013:33;;28117:4;28104:18;;;-1:-1:-1;28065:21:83;;-1:-1:-1;;;;;;28134:30:83;;28131:50;;;28177:1;28174;28167:12;28131:50;28224:6;28208:14;28204:27;28197:5;28193:39;28190:59;;;28245:1;28242;28235:12;28260:266;28348:6;28343:3;28336:19;28400:6;28393:5;28386:4;28381:3;28377:14;28364:43;-1:-1:-1;28452:1:83;28427:16;;;28445:4;28423:27;;;28416:38;;;;28508:2;28487:15;;;-1:-1:-1;;28483:29:83;28474:39;;;28470:50;;28260:266::o;28531:420::-;28593:3;28639:5;28626:19;28654:31;28677:7;28654:31;:::i;:::-;28719:4;28706:18;28694:31;;28768:55;28817:4;28806:16;;28810:5;28768:55;:::i;:::-;28855:4;28848;28843:3;28839:14;28832:28;28876:69;28939:4;28934:3;28930:14;28916:12;28902;28876:69;:::i;28956:1553::-;29018:3;29056:56;29106:5;29099;29056:56;:::i;:::-;29133:4;29128:3;29121:17;29168:3;29163;29159:13;29209:12;29196:26;29231:32;29255:7;29231:32;:::i;:::-;-1:-1:-1;;;;;29332:16:83;;;29325:4;29316:14;;29309:40;29368:4;;29420:21;;;29407:35;29493:14;29489:33;;;-1:-1:-1;;29485:47:83;29461:72;;29451:100;;29547:1;29544;29537:12;29451:100;29575:37;;;29680:16;;;;29719:2;29635:21;29708:14;;;29705:34;;;29735:1;29732;29725:12;29705:34;29791:6;29788:1;29784:14;29768;29764:35;29755:7;29751:49;29748:69;;;29813:1;29810;29803:12;29748:69;29847:4;29842:2;29833:12;;29826:26;29887:20;;;;-1:-1:-1;29986:1:83;;29934:3;29925:13;;;29996:289;30010:6;30007:1;30004:13;29996:289;;;30087:6;30074:20;30107:33;30132:7;30107:33;:::i;:::-;-1:-1:-1;;;;;30167:33:83;30153:48;;30260:15;;;;30197:1;30025:9;;;;;30223:14;;;;29996:289;;;30000:3;30316:65;30377:2;30370:5;30366:14;30359:5;30316:65;:::i;:::-;30294:87;;30422:3;30415:5;30411:15;30406:2;30401:3;30397:12;30390:37;30443:60;30497:5;30481:14;30443:60;:::i;:::-;30436:67;28956:1553;-1:-1:-1;;;;;;;28956:1553:83:o;30514:131::-;-1:-1:-1;;;;;;30588:32:83;;30578:43;;30568:71;;30635:1;30632;30625:12;30650:132;30717:20;;30746:30;30717:20;30746:30;:::i;30787:128::-;30852:20;;30881:28;30852:20;30881:28;:::i;30920:2545::-;31165:2;31217:21;;;31190:18;;;31273:22;;;31136:4;;31314:2;31332:18;;;31396:1;31392:14;;;31377:30;;31373:39;;31435:6;31136:4;;31490:1946;31506:6;31501:3;31498:15;31490:1946;;;31573:2;31569:7;31629:2;31617:9;31609:6;31605:22;31601:31;31596:3;31589:44;31656:58;31707:6;31699;31656:58;:::i;:::-;31766:2;31753:16;31849:3;31845:8;31840:2;31824:14;31820:23;31816:38;31796:18;31792:63;31782:91;;31869:1;31866;31859:12;31782:91;31939:18;;;31899:27;;31990:56;31899:27;;31990:56;:::i;:::-;32069:4;32110:2;32105;32097:6;32093:15;32086:27;32140:69;32204:3;32196:6;32192:16;32178:12;32140:69;:::i;:::-;32126:83;;32244:65;32305:2;32298:5;32294:14;32287:5;32244:65;:::i;:::-;32332:2;32396;32387:6;32379;32375:19;32371:28;32366:2;32358:6;32354:15;32347:53;32427:61;32481:6;32465:14;32427:61;:::i;:::-;32413:75;;32511:3;32501:13;;32575:2;32568:5;32564:14;32551:28;32546:2;32538:6;32534:15;32527:53;32632:2;32625:5;32621:14;32608:28;32593:43;;32649:32;32673:7;32649:32;:::i;:::-;32704:3;-1:-1:-1;;;;;32748:7:83;32744:32;32739:2;32731:6;32727:15;32720:57;32829:2;32822:5;32818:14;32805:28;32790:43;;32846:32;32870:7;32846:32;:::i;:::-;-1:-1:-1;;;;;;32915:34:83;;32898:15;;;32891:59;32999:53;33037:14;;;33041:5;32999:53;:::i;:::-;32963:89;;;;;;;33115:2;33106:6;33098;33094:19;33090:28;33084:3;33076:6;33072:16;33065:54;33143:63;33199:6;33185:12;33169:14;33143:63;:::i;:::-;33132:74;;;;;33241:28;33265:2;33261;33257:11;33241:28;:::i;:::-;605:13;598:21;33314:15;;;586:34;;;;33414:12;;;;;-1:-1:-1;33379:15:83;;;;31532:1;31523:11;31490:1946;;;-1:-1:-1;33453:6:83;;30920:2545;-1:-1:-1;;;;;;;;;30920:2545:83:o;34104:530::-;34146:5;34199:3;34192:4;34184:6;34180:17;34176:27;34166:55;;34217:1;34214;34207:12;34166:55;34253:6;34240:20;-1:-1:-1;;;;;34275:2:83;34272:26;34269:52;;;34301:18;;:::i;:::-;34345:55;34388:2;34369:13;;-1:-1:-1;;34365:27:83;34394:4;34361:38;34345:55;:::i;:::-;34425:2;34416:7;34409:19;34471:3;34464:4;34459:2;34451:6;34447:15;34443:26;34440:35;34437:55;;;34488:1;34485;34478:12;34437:55;34553:2;34546:4;34538:6;34534:17;34527:4;34518:7;34514:18;34501:55;34601:1;34576:16;;;34594:4;34572:27;34565:38;;;;34580:7;34104:530;-1:-1:-1;;;34104:530:83:o;34639:946::-;34696:5;34744:4;34732:9;34727:3;34723:19;34719:30;34716:50;;;34762:1;34759;34752:12;34716:50;34784:23;;:::i;:::-;34775:32;;34843:9;34830:23;-1:-1:-1;;;;;34913:2:83;34905:6;34902:14;34899:34;;;34929:1;34926;34919:12;34899:34;34956:55;35007:3;34998:6;34987:9;34983:22;34956:55;:::i;:::-;34949:5;34942:70;35065:2;35054:9;35050:18;35037:32;35021:48;;35094:2;35084:8;35081:16;35078:36;;;35110:1;35107;35100:12;35078:36;35133:24;;;;35187:4;35173:12;;;35169:23;35166:43;;;35205:1;35202;35195:12;35166:43;35233:23;;:::i;:::-;35293:2;35280:16;35305:31;35328:7;35305:31;:::i;:::-;35345:24;;35415:2;35407:11;;35394:25;35431:16;;;35428:36;;;35460:1;35457;35450:12;35428:36;35498:40;35534:3;35523:8;35519:2;35515:17;35498:40;:::i;:::-;35493:2;35484:7;35480:16;35473:66;;35571:7;35566:2;35559:5;35555:14;35548:31;;;;34639:946;;;;:::o;35590:2152::-;35652:5;35705:3;35698:4;35690:6;35686:17;35682:27;35672:55;;35723:1;35720;35713:12;35672:55;35759:6;35746:20;35785:4;35809:60;35825:43;35865:2;35825:43;:::i;35809:60::-;35903:15;;;35989:1;35985:10;;;;35973:23;;35969:32;;;35934:12;;;;36013:15;;;36010:35;;;36041:1;36038;36031:12;36010:35;36077:2;36069:6;36065:15;36089:1624;36105:6;36100:3;36097:15;36089:1624;;;36191:3;36178:17;-1:-1:-1;;;;;36268:2:83;36255:11;36252:19;36249:39;;;36284:1;36281;36274:12;36249:39;36311:24;;;;-1:-1:-1;;36408:4:83;36389:12;;;36385:21;;36381:32;36378:52;;;36426:1;36423;36416:12;36378:52;36456:23;;:::i;:::-;36529:2;36525;36521:11;36508:25;36562:2;36552:8;36549:16;36546:36;;;36578:1;36575;36568:12;36546:36;36605:17;;36665:4;36646:12;;;36642:21;;36638:32;36635:52;;;36683:1;36680;36673:12;36635:52;36715:23;;:::i;:::-;36700:38;;36788:2;36784;36780:11;36767:25;36821:2;36811:8;36808:16;36805:36;;;36837:1;36834;36827:12;36805:36;36870:61;36927:3;36922:2;36911:8;36907:2;36903:17;36899:26;36870:61;:::i;:::-;36861:7;36854:78;;36982:4;36978:2;36974:13;36961:27;37017:2;37007:8;37004:16;37001:36;;;37033:1;37030;37023:12;37001:36;37075:61;37132:3;37127:2;37116:8;37112:2;37108:17;37104:26;37075:61;:::i;:::-;37070:2;37061:7;37057:16;37050:87;;37198:2;37194;37190:11;37177:25;37170:4;37161:7;37157:18;37150:53;37241:31;37267:3;37263:2;37259:12;37241:31;:::i;:::-;37236:2;37227:7;37223:16;37216:57;37312:31;37338:3;37334:2;37330:12;37312:31;:::i;:::-;37306:3;37297:7;37293:17;37286:58;37394:4;37390:2;37386:13;37373:27;37429:2;37419:8;37416:16;37413:36;;;37445:1;37442;37435:12;37413:36;37488:49;37533:3;37528:2;37517:8;37513:2;37509:17;37505:26;37488:49;:::i;:::-;37482:3;37473:7;37469:17;37462:76;;;37565:7;37558:5;37551:22;37609:30;37633:4;37629:2;37625:13;37609:30;:::i;:::-;37593:14;;;37586:54;37653:18;;-1:-1:-1;;;37691:12:83;;;;36122;;36089:1624;;37747:2452;37811:5;37864:3;37857:4;37849:6;37845:17;37841:27;37831:55;;37882:1;37879;37872:12;37831:55;37918:6;37905:20;37944:4;37968:60;37984:43;38024:2;37984:43;:::i;37968:60::-;38062:15;;;38124:1;38164:11;;;38152:24;;38148:33;;;38093:12;;;;38050:3;38193:15;;;38190:35;;;38221:1;38218;38211:12;38190:35;38257:2;38249:6;38245:15;38269:1901;38285:6;38280:3;38277:15;38269:1901;;;38371:3;38358:17;-1:-1:-1;;;;;38448:2:83;38435:11;38432:19;38429:109;;;38492:1;38521:2;38517;38510:14;38429:109;38561:24;;;;38608:4;38636:12;;;-1:-1:-1;;38632:26:83;38628:35;-1:-1:-1;38625:125:83;;;38704:1;38733:2;38729;38722:14;38625:125;38776:23;;:::i;:::-;38849:2;38845;38841:11;38828:25;38882:2;38872:8;38869:16;38866:106;;;38926:1;38955:2;38951;38944:14;38866:106;38999:59;39054:3;39049:2;39038:8;39034:2;39030:17;39026:26;38999:59;:::i;:::-;38992:5;38985:74;;39109:2;39105;39101:11;39088:25;39142:2;39132:8;39129:16;39126:109;;;39187:1;39217:3;39212;39205:16;39126:109;39267:8;39263:2;39259:17;39248:28;;;39317:3;39312:2;39307:3;39303:12;39299:22;39289:123;;39364:1;39353:12;;39394:3;39389;39382:16;39289:123;39458:2;39453:3;39449:12;39436:26;39425:37;;39488:61;39504:44;39544:3;39504:44;:::i;39488:61::-;39593:18;;;39689:12;;;39680:22;;39676:31;;;39633:14;;;;39723:17;;;39720:110;;;39782:1;39812:3;39807;39800:16;39720:110;39856:12;;;;39881:174;39899:8;39892:5;39889:19;39881:174;;;39981:19;;39967:34;;39920:14;;;;40027;;;;39881:174;;;40075:14;;;40068:29;-1:-1:-1;40110:18:83;;-1:-1:-1;;;40148:12:83;;;;38302;;38269:1901;;;-1:-1:-1;40188:5:83;;37747:2452;-1:-1:-1;;;;;;;37747:2452:83:o;40204:1302::-;40330:9;40389:4;40381:5;40365:14;40361:26;40357:37;40354:57;;;40407:1;40404;40397:12;40354:57;40435:23;;:::i;:::-;40494:5;40481:19;-1:-1:-1;;;;;40560:2:83;40552:6;40549:14;40546:34;;;40576:1;40573;40566:12;40546:34;40605:62;40652:14;40643:6;40636:5;40632:18;40605:62;:::i;:::-;40596:7;40589:79;40702:33;40731:2;40724:5;40720:14;40702:33;:::i;:::-;40697:2;40688:7;40684:16;40677:59;40794:2;40787:5;40783:14;40770:28;40765:2;40756:7;40752:16;40745:54;40848:2;40841:5;40837:14;40824:28;40808:44;;40877:2;40867:8;40864:16;40861:36;;;40893:1;40890;40883:12;40861:36;40931:74;40990:14;40979:8;40972:5;40968:20;40931:74;:::i;:::-;40926:2;40917:7;40913:16;40906:100;41055:3;41048:5;41044:15;41031:29;41015:45;;41085:2;41075:8;41072:16;41069:36;;;41101:1;41098;41091:12;41069:36;41140:76;41201:14;41190:8;41183:5;41179:20;41140:76;:::i;:::-;41134:3;41125:7;41121:17;41114:103;41276:3;41269:5;41265:15;41252:29;41246:3;41237:7;41233:17;41226:56;41331:3;41324:5;41320:15;41307:29;41291:45;;41361:2;41351:8;41348:16;41345:36;;;41377:1;41374;41367:12;41345:36;;41416:54;41455:14;41444:8;41437:5;41433:20;41416:54;:::i;:::-;41410:3;41397:17;;41390:81;-1:-1:-1;41401:7:83;40204:1302;-1:-1:-1;;40204:1302:83:o;41511:174::-;41555:11;41607:3;41594:17;41620:30;41644:5;41620:30;:::i;41874:168::-;41947:9;;;41978;;41995:15;;;41989:22;;41975:37;41965:71;;42016:18;;:::i;42047:322::-;42142:5;42136:12;42171:1;42164:5;42157:16;42199:6;42192:14;42182:181;;42240:5;42237:1;42230:16;42284:4;42281:1;42271:18;42302:51;42345:6;42339:4;42335:17;42329:4;42302:51;:::i;42374:405::-;-1:-1:-1;;;42457:6:83;42454:32;42451:58;;;42489:18;;:::i;:::-;42538:5;42532:12;42567:6;42560:5;42553:21;42597:6;42589;42586:18;42583:190;;;42637:5;42634:1;42627:16;42681:4;42678:1;42668:18;42699:64;42755:6;42749:4;42745:17;42736:6;42730:4;42726:17;42699:64;:::i;42784:153::-;42862:1;42856:4;42849:15;42873:58;42928:1;42922:4;42918:12;42873:58;:::i;42942:512::-;43011:38;43043:4;43037:11;43011:38;:::i;:::-;43075:6;43068:14;43058:390;;43124:2;43116:6;43113:14;43145:1;43140:258;;;;-1:-1:-1;;43434:1:83;43421:15;;4953:1319:68:o;43140:258:83:-;43175:4;43172:1;43165:15;43222:4;43219:1;43209:18;43244:76;43314:2;43306:6;43302:15;43299:1;43295:23;43289:4;43285:34;43281:1;43275:4;43271:12;43244:76;:::i;:::-;43350:1;43337:15;;;43369;;43106:332;43058:390;42942:512;:::o;43459:235::-;43539:1;43533:4;43526:15;43550:58;43605:1;43599:4;43595:12;43550:58;:::i;:::-;43638:1;43634;43628:4;43624:12;43617:23;43649:39;43685:1;43679:4;43675:12;43649:39;:::i;43699:2836::-;43821:73;43888:5;43881;43821:73;:::i;:::-;43931:2;43918:16;43943:32;43967:7;43943:32;:::i;:::-;41792:11;;-1:-1:-1;;;;;;41788:41:83;-1:-1:-1;;;;;41831:30:83;;41785:77;41772:91;;43984:60;44063:1;44101:2;44095:4;44091:13;44123:2;44168:103;44267:2;44263;44259:11;44255:2;44168:103;:::i;:::-;44134:137;;-1:-1:-1;;;;;44338:2:83;44323:13;44320:21;44317:47;;;44344:18;;:::i;:::-;44373:65;44424:13;44412:10;44373:65;:::i;:::-;44491:1;44501:22;;;44544:17;;;;44491:1;44590:242;44604:13;44601:1;44598:20;44590:242;;;44689:6;44676:20;44709:33;44734:7;44709:33;:::i;:::-;44800:12;;;44793:29;44765:15;;;;44626:10;;44590:242;;;44594:3;44871:1;44865:4;44861:12;44841:32;;44892:82;44970:2;44963:5;44959:14;44952:5;44892:82;:::i;:::-;44882:92;;45011:2;44998:16;44983:31;;45023;45046:7;45023:31;:::i;:::-;45091:19;;-1:-1:-1;;45087:34:83;45136:4;45123:18;;45084:58;45063:80;;;45182:1;45172:12;;;45229:52;45269:11;;;45273:2;45229:52;:::i;:::-;45193:88;;;;45311:2;45296:13;45293:21;45290:47;;;45317:18;;:::i;:::-;45346:120;45452:13;45404:46;45436:12;45430:19;45404:46;:::i;:::-;45390:12;45346:120;:::i;:::-;45492:2;45475:19;;45528:2;45513:13;45510:21;45545:1;45540:692;;;;46278:2;46296:13;46293:115;;;-1:-1:-1;46364:29:83;;;46351:43;46293:115;46442:76;46504:13;46495:7;46442:76;:::i;:::-;46428:12;46421:98;;45503:1026;;45540:692;18012:1;18005:14;;;18049:4;18036:18;;-1:-1:-1;;45576:27:83;;;45697:2;45712:242;45728:7;45723:3;45720:16;45712:242;;;45819:29;;;45806:43;45791:59;;45922:18;;;;45877:15;;;;45746:12;;45712:242;;;45716:3;45982:13;45973:7;45970:26;45967:189;;;46136:1;46132:6;46126:3;46110:13;46107:1;46103:21;46099:31;46095:44;46091:49;46078:9;46063:13;46059:29;46046:43;46042:99;46034:6;46027:115;45967:189;-1:-1:-1;;;;;46194:22:83;;;46190:31;;;46169:53;;;-1:-1:-1;;;;43699:2836:83:o;46540:174::-;46584:11;46636:3;46623:17;46649:30;46673:5;46649:30;:::i;46950:170::-;46992:11;47044:3;47031:17;47057:28;47079:5;47057:28;:::i;47322:3977::-;47469:5;47456:19;47554:3;47550:8;47542:5;47526:14;47522:26;47518:41;47498:18;47494:66;47484:94;;47574:1;47571;47564:12;47484:94;47599:30;;47648:71;47599:30;;47648:71;:::i;:::-;47738:67;47802:2;47798;47738:67;:::i;:::-;47842:2;47829:16;47854:32;47878:7;47854:32;:::i;:::-;41792:11;;-1:-1:-1;;;;;;41788:41:83;-1:-1:-1;;;;;41831:30:83;;41785:77;41772:91;;47895:60;47974:1;48012:2;48006:4;48002:13;48034:2;48079:103;48178:2;48174;48170:11;48166:2;48079:103;:::i;:::-;48045:137;;-1:-1:-1;;;;;48249:2:83;48234:13;48231:21;48228:47;;;48255:18;;:::i;:::-;48284:65;48335:13;48323:10;48284:65;:::i;:::-;48402:1;48412:22;;;48455:17;;;;48402:1;48501:281;48515:13;48512:1;48509:20;48501:281;;;48600:6;48587:20;48620:33;48645:7;48620:33;:::i;:::-;48748:12;;;48741:31;48713:15;;;;48537:10;;48501:281;;;48505:3;48821:1;48815:4;48811:12;48791:32;;48842:76;48914:2;48910;48906:11;48902:2;48842:76;:::i;:::-;48832:86;;48955:2;48942:16;48927:31;;48967;48990:7;48967:31;:::i;:::-;49035:19;;-1:-1:-1;;49031:34:83;49080:4;49067:18;;49028:58;49007:80;;;49126:1;49116:12;;;49173:52;49213:11;;;49217:2;49173:52;:::i;:::-;49137:88;;;;49255:2;49240:13;49237:21;49234:47;;;49261:18;;:::i;:::-;49290:120;49396:13;49348:46;49380:12;49374:19;49348:46;:::i;49290:120::-;49436:2;49419:19;;49472:2;49457:13;49454:21;49489:1;49484:692;;;;50222:2;50207:17;;50240:13;50237:115;;;50327:9;50312:13;50308:29;50295:43;50284:54;;50237:115;50386:76;50448:13;50439:7;50386:76;:::i;:::-;50372:12;50365:98;49447:1026;;49484:692;18012:1;18005:14;;;18049:4;18036:18;;-1:-1:-1;;49520:27:83;;;-1:-1:-1;49641:2:83;49656:242;49672:7;49667:3;49664:16;49656:242;;;49763:29;;;49750:43;49735:59;;49866:18;;;;49821:15;;;;49690:12;;49656:242;;;49660:3;49926:13;49917:7;49914:26;49911:189;;;50080:1;50076:6;50070:3;50054:13;50051:1;50047:21;50043:31;50039:44;50035:49;50022:9;50007:13;50003:29;49990:43;49986:99;49978:6;49971:115;49911:189;;50162:2;50146:13;50142:2;50138:22;50134:31;50120:12;50113:53;49447:1026;;;;;50482:171;50572:80;50648:2;50642:4;50638:13;50632:4;50572:80;:::i;:::-;50568:1;50562:4;50558:12;50482:171;:::i;:::-;50706:2;50700:4;50696:13;50683:27;50679:1;50673:4;50669:12;50662:49;50750:1;50744:4;50740:12;50720:32;;50761:102;50821:41;50858:2;50852:4;50848:13;50821:41;:::i;:::-;41792:11;;-1:-1:-1;;;;;;41788:41:83;-1:-1:-1;;;;;41831:30:83;;;;41785:77;41772:91;;41690:179;50761:102;50872:103;50932:42;50969:3;50963:4;50959:14;50932:42;:::i;:::-;46811:11;;-1:-1:-1;;46847:40:83;46897:3;46893:15;;;;46910:26;46889:48;46844:94;46831:108;;46719:226;50872:103;51020:57;51072:3;51066:4;51062:14;51056:4;51020:57;:::i;:::-;50984:93;;;;51086:100;51172:13;51157;51152:2;51146:4;51142:13;51086:100;:::i;:::-;51195:98;51252:40;51288:2;51281:5;51277:14;51252:40;:::i;:::-;51247:2;51241:4;51237:13;47239:3;47235:8;47228:4;47222:11;47218:26;47305:3;47296:5;47289:13;47282:21;47278:31;47269:7;47266:44;47260:4;47253:58;;47125:192;;;51195:98;;;;;;;47322:3977;;:::o;51304:1593::-;-1:-1:-1;;;51452:3:83;51449:29;51446:55;;;51481:18;;:::i;:::-;51530:4;51524:11;51557:3;51551:4;51544:17;51581:6;51576:3;51573:15;51570:886;;;51621:2;51659:6;51655:2;51651:15;51713:2;51704:7;51700:16;51692:6;51689:28;51679:62;;51721:18;;:::i;:::-;51779:3;51775:2;51771:12;51829:2;51818:9;51814:18;51809:3;51806:27;51796:61;;51837:18;;:::i;:::-;51880:1;51894:16;;;51949:4;51935:19;;51977:18;;;;52021:20;;;;;52054:392;52072:2;52065:5;52062:13;52054:392;;;52134:44;52172:5;52134:44;:::i;:::-;52195:52;52244:1;52237:5;52233:13;52195:52;:::i;:::-;52286:2;52282:1;52275:5;52271:13;52264:25;52328:2;52324:1;52317:5;52313:13;52306:25;52348:41;52385:2;52378:5;52374:14;52348:41;:::i;:::-;52429:2;52424;52417:5;52413:14;52406:26;52098:2;52091:5;52087:14;52078:23;;52054:392;;;52058:3;;;;51570:886;-1:-1:-1;18012:1:83;18005:14;;;18049:4;18036:18;;52479:5;;52575:316;52589:3;52586:1;52583:10;52575:316;;;52635:160;52720:74;52787:6;52780:5;52720:74;:::i;:::-;52707:11;52635:160;:::i;:::-;52830:2;52818:15;;;;;52878:2;52861:20;;;;;52608:1;52601:9;52575:316;;52902:446;52997:5;52991:12;53022:1;53046:2;53039:5;53032:17;53075:6;53068:14;53058:284;;53117:5;53113:2;53106:17;53162:4;53158:2;53148:19;53200:6;53194:4;53190:17;53250:82;53268:2;53261:5;53258:13;53250:82;;;53327:2;53320:5;53313:17;53294:1;53287:5;53283:13;53274:22;;53250:82;;53353:532;-1:-1:-1;;;53436:6:83;53433:32;53430:58;;;53468:18;;:::i;:::-;53517:5;53511:12;53546:6;53539:5;53532:21;53576:6;53568;53565:18;53562:317;;;53616:1;53630:17;;;53686:4;53672:19;;53757:17;;;;53714;;53787:82;53805:2;53798:5;53795:13;53787:82;;;53864:2;53857:5;53850:17;53831:1;53824:5;53820:13;53811:22;;53787:82;;53890:1810;54012:73;54079:5;54072;54012:73;:::i;:::-;54122:2;54109:16;54134:32;54158:7;54134:32;:::i;:::-;41792:11;;-1:-1:-1;;;;;;41788:41:83;-1:-1:-1;;;;;41831:30:83;;41785:77;41772:91;;54175:60;54254:1;54292:2;54286:4;54282:13;54314:2;54359:103;54458:2;54454;54450:11;54446:2;54359:103;:::i;:::-;54325:137;;-1:-1:-1;;;;;54529:2:83;54514:13;54511:21;54508:47;;;54535:18;;:::i;:::-;54564:65;54615:13;54603:10;54564:65;:::i;:::-;54682:1;54692:22;;;54735:17;;;;54682:1;54781:242;54795:13;54792:1;54789:20;54781:242;;;54880:6;54867:20;54900:33;54925:7;54900:33;:::i;:::-;54991:12;;;54984:29;54956:15;;;;54817:10;;54781:242;;;54785:3;55062:1;55056:4;55052:12;55032:32;;55109:109;55214:2;55207:5;55203:14;55196:5;55109:109;:::i;:::-;55073:145;;;;55248:2;55233:13;55230:21;55227:47;;;55254:18;;:::i;:::-;55283:67;55336:13;55322:12;55283:67;:::i;:::-;55397:24;;;-1:-1:-1;55444:17:83;;;;55492:202;55508:13;55503:3;55500:22;55492:202;;;55579:22;;55663:16;;;55656:28;55626:17;;;;55532:12;;55492:202;;55705:1393;-1:-1:-1;;;55857:3:83;55854:29;55851:55;;;55886:18;;:::i;:::-;55935:4;55929:11;55962:3;55956:4;55949:17;55986:6;55981:3;55978:15;55975:679;;;56026:1;56063:6;56059:2;56055:15;56117:2;56108:7;56104:16;56096:6;56093:28;56083:62;;56125:18;;:::i;:::-;56183:3;56179:2;56175:12;56233:2;56222:9;56218:18;56213:3;56210:27;56200:61;;56241:18;;:::i;:::-;56281:1;56274:15;;;56327:4;56314:18;;56355;;;;56399:20;56432:212;56450:2;56443:5;56440:13;56432:212;;;56512:42;56548:5;56512:42;:::i;:::-;56571:59;56627:1;56620:5;56616:13;56571:59;:::i;:::-;56465:14;;56432:212;;;56436:3;;;55975:679;-1:-1:-1;18012:1:83;18005:14;;;18049:4;18036:18;;56677:5;;56773:319;56787:3;56784:1;56781:10;56773:319;;;56833:164;56922:74;56989:6;56982:5;56922:74;:::i;:::-;56909:11;56833:164;:::i;:::-;57032:2;57020:15;;;;;57080:1;57063:19;;;;;56806:1;56799:9;56773:319;;57103:2245;57274:73;57341:5;57334;57274:73;:::i;:::-;57384:2;57371:16;57396:32;57420:7;57396:32;:::i;:::-;41792:11;;-1:-1:-1;;;;;;41788:41:83;-1:-1:-1;;;;;41831:30:83;;41785:77;41772:91;;57437:60;57516:1;57554:2;57548:4;57544:13;57576:2;57621:103;57720:2;57716;57712:11;57708:2;57621:103;:::i;:::-;57587:137;;-1:-1:-1;;;;;57739:13:83;57736:37;57733:63;;;57776:18;;:::i;:::-;57805:65;57856:13;57844:10;57805:65;:::i;:::-;57920:1;57913:21;;;57955:16;;;;57999:281;58013:13;58010:1;58007:20;57999:281;;;58098:6;58085:20;58118:33;58143:7;58118:33;:::i;:::-;58246:12;;;58239:31;58211:15;;;;58035:10;;57999:281;;;58003:3;;58289:103;58349:42;58387:2;58380:5;58376:14;58349:42;:::i;:::-;58345:1;58339:4;58335:12;-1:-1:-1;;;;;41835:5:83;41831:30;-1:-1:-1;;;;;41805:23:83;41798:4;41792:11;41788:41;41785:77;41779:4;41772:91;;;41690:179;58289:103;;;;;58446:2;58439:5;58435:14;58422:28;58418:1;58412:4;58408:12;58401:50;58496:109;58601:2;58594:5;58590:14;58583:5;58496:109;:::i;:::-;58614:144;58744:13;58729;58725:1;58719:4;58715:12;58614:144;:::i;:::-;;;58803:110;58908:3;58901:5;58897:15;58890:5;58803:110;:::i;:::-;58922:148;59056:13;59041;59037:1;59031:4;59027:12;58922:148;:::i;:::-;;;59124:3;59117:5;59113:15;59100:29;59096:1;59090:4;59086:12;59079:51;59175:59;59229:3;59222:5;59218:15;59211:5;59175:59;:::i;:::-;59243:99;59328:13;59313;59309:1;59303:4;59299:12;59243:99;:::i;59582:1429::-;59695:3;59689:4;59686:13;59683:26;;59702:5;;59582:1429::o;59683:26::-;59732:37;59764:3;59758:10;59732:37;:::i;:::-;-1:-1:-1;;;;;59784:6:83;59781:30;59778:56;;;59814:18;;:::i;:::-;59843:97;59933:6;59893:38;59925:4;59919:11;59893:38;:::i;:::-;59887:4;59843:97;:::i;:::-;59966:1;59994:2;59986:6;59983:14;60011:1;60006:748;;;;60798:1;60815:6;60812:89;;;-1:-1:-1;60867:19:83;;;60861:26;60812:89;60927:67;60987:6;60980:5;60927:67;:::i;:::-;60921:4;60914:81;;59976:1029;;60006:748;18012:1;18005:14;;;18049:4;18036:18;;-1:-1:-1;;60042:20:83;;;18012:1;18005:14;;;18049:4;18036:18;;60206:9;60228:251;60242:7;60239:1;60236:14;60228:251;;;60324:21;;;60318:28;60303:44;;60374:1;60447:18;;;;60402:15;;;;60265:4;60258:12;60228:251;;;60232:3;60507:6;60498:7;60495:19;60492:203;;;60568:21;;;60562:28;-1:-1:-1;;60653:1:83;60649:14;;;60665:3;60645:24;60641:37;60637:42;60622:58;60607:74;;60492:203;-1:-1:-1;;;;;60741:1:83;60725:14;;;60721:22;60708:36;;-1:-1:-1;59582:1429:83:o;61157:741::-;61216:3;61255:4;61250:3;61246:14;-1:-1:-1;;;;;61291:5:83;61285:12;61281:37;61276:3;61269:50;61338:4;61382:2;61375:5;61371:14;61404:4;61438;61433:2;61428:3;61424:12;61417:26;61465:4;61498:12;61492:19;61533:6;61527:4;61520:20;61567:2;61562:3;61558:12;61549:21;;61589:12;61586:1;61579:23;61638:2;61635:1;61625:16;61611:30;;61659:1;61650:10;;61669:202;61683:6;61680:1;61677:13;61669:202;;;61751:13;;-1:-1:-1;;;;;61747:39:83;61733:54;;61846:15;;;;61698:10;;;;61809:14;;;;61669:202;;;-1:-1:-1;61887:5:83;61157:741;-1:-1:-1;;;;;;;61157:741:83:o;62029:771::-;62078:3;62119:5;62113:12;62148:36;62174:9;62148:36;:::i;:::-;62193:19;;;62231:4;62254:1;62271:18;;;62298:146;;;;62458:1;62453:341;;;;62264:530;;62298:146;-1:-1:-1;;62340:24:83;;62326:12;;;62319:46;62412:14;;62405:22;62402:1;62398:30;62389:40;;62385:49;;;-1:-1:-1;62298:146:83;;62453:341;62484:5;62481:1;62474:16;62531:2;62528:1;62518:16;62556:1;62570:174;62584:6;62581:1;62578:13;62570:174;;;62671:14;;62653:11;;;62649:20;;62642:44;62714:16;;;;62599:10;;62570:174;;;62768:11;;62764:20;;;-1:-1:-1;;62264:530:83;;;;;;62029:771;;;;:::o;62805:394::-;62896:4;62891:3;62884:17;62866:3;62922:57;62973:4;62968:3;62964:14;62957:5;62922:57;:::i;:::-;63021:3;63015:4;63011:14;63004:4;62999:3;62995:14;62988:38;63077:4;63069;63062:5;63058:16;63052:23;63048:34;63042:4;63035:48;63116:4;63109;63103;63099:15;63092:29;63137:56;63187:4;63181;63177:15;63173:1;63166:5;63162:13;63137:56;:::i;:::-;63130:63;62805:394;-1:-1:-1;;;;62805:394:83:o;63204:1607::-;63273:3;63311:5;63305:12;63338:6;63333:3;63326:19;63364:4;63405:2;63400:3;63396:12;63430:11;63457;63450:18;;63507:6;63504:1;63500:14;63493:5;63489:26;63477:38;;63534:5;63531:1;63524:16;63576:2;63573:1;63563:16;63597:1;63607:1178;63621:6;63618:1;63615:13;63607:1178;;;63692:5;63686:4;63682:16;63677:3;63670:29;63722:4;63752:2;63746:4;63739:16;63778:4;63817:2;63812;63806:4;63802:13;63795:25;63847:60;63902:3;63896:4;63892:14;63884:6;63847:60;:::i;:::-;63833:74;;63934:2;63930:7;63995:2;63988:4;63980:6;63976:17;63972:26;63967:2;63961:4;63957:13;63950:49;64026:63;64082:6;64075:4;64067:6;64063:17;64026:63;:::i;:::-;64143:4;64131:17;;64125:24;64119:3;64109:14;;64102:48;64198:4;64186:17;;64180:24;-1:-1:-1;;;;;64265:34:83;;64227:3;64250:13;;;64243:57;;;;64339:18;-1:-1:-1;;;;;;64335:45:83;64320:13;;;64313:68;;;;64421:17;;;64417:26;64363:3;64401:14;;64394:50;64012:77;-1:-1:-1;64470:51:83;64012:77;64507:4;64495:17;;64470:51;:::i;:::-;64457:64;;64554:66;64613:4;64605:6;64601:17;64595:24;62013:4;61997:21;;61903:121;64554:66;605:13;598:21;64663:13;;;586:34;;;;64763:12;;;;64738:4;64726:17;;;;;63643:1;63636:9;63607:1178;;64816:1381;64887:3;64925:5;64919:12;64952:6;64947:3;64940:19;64978:4;65019:2;65014:3;65010:12;65044:11;65071;65064:18;;65121:6;65118:1;65114:14;65107:5;65103:26;65091:38;;65148:1;65169:5;65165:2;65158:17;65212:2;65208;65198:17;65233:2;65244:927;65258:6;65255:1;65252:13;65244:927;;;65329:5;65323:4;65319:16;65314:3;65307:29;65359:4;65389:2;65383:4;65376:16;65419:57;65472:2;65466:4;65462:13;65454:6;65419:57;:::i;:::-;65561:17;;;65546:13;;;65539:40;65521:4;65509:17;;65640:19;;65672:24;;;65746;;;65799:17;;;;-1:-1:-1;65753:2:83;;65718:15;;;65855:208;65871:8;65866:3;65863:17;65855:208;;;65948:15;;65934:30;;66047:1;66033:16;;;;65890:11;;;;;65990:14;;;;65855:208;;;-1:-1:-1;66149:12:83;;;;66084:5;-1:-1:-1;;;66124:4:83;66112:17;;;;;65280:1;65273:9;65244:927;;66202:1111;66406:2;66395:9;66388:21;66445:4;66440:2;66429:9;66425:18;66418:32;66369:4;66473:63;66531:3;66520:9;66516:19;66508:6;66473:63;:::i;:::-;66625:4;66613:17;;66607:24;-1:-1:-1;;;;;61111:35:83;66688:2;66673:18;;1666:43;66746:4;66734:17;;66728:24;66723:2;66708:18;;66701:52;66820:22;;;-1:-1:-1;;66816:31:83;;;66810:3;66795:19;;66788:60;66871:71;66824:6;66928:4;66916:17;;66871:71;:::i;:::-;66857:85;;67007:2;66995:9;66987:6;66983:22;66979:31;66973:3;66962:9;66958:19;66951:60;67034:73;67100:6;67093:4;67085:6;67081:17;67034:73;:::i;:::-;67020:87;;67162:4;67154:6;67150:17;67144:24;67138:3;67127:9;67123:19;67116:53;67235:2;67223:9;67215:6;67211:22;67207:31;67200:4;67189:9;67185:20;67178:61;;67256:51;67300:6;67293:4;67285:6;67281:17;67256:51;:::i;67318:127::-;67379:10;67374:3;67370:20;67367:1;67360:31;67410:4;67407:1;67400:15;67434:4;67431:1;67424:15;67450:127;67511:10;67506:3;67502:20;67499:1;67492:31;67542:4;67539:1;67532:15;67566:4;67563:1;67556:15;67582:183;-1:-1:-1;;;;;67701:10:83;;;67689;;;67685:27;;67724:12;;;67721:38;;;67739:18;;:::i;67770:191::-;67801:1;-1:-1:-1;;;;;67872:2:83;67869:1;67865:10;67894:3;67884:37;;67901:18;;:::i;:::-;67939:10;;67935:20;;;;;67770:191;-1:-1:-1;;67770:191:83:o;68285:180::-;-1:-1:-1;;;;;68390:10:83;;;68402;;;68386:27;;68425:11;;;68422:37;;;68439:18;;:::i", + "object": "0x6080604052600436106100915760003560e01c80636cf6970a116100595780636cf6970a1461015c578063989037481461016f578063a9fb763c146101a0578063d66d9e19146101c0578063f6fd8381146101d557600080fd5b8063133f74ea146100965780633ccfd60b146100d257806341c0e1b5146100e957806366d7bbbc146100fe5780636cb2ecee1461012e575b600080fd5b3480156100a257600080fd5b506100b66100b1366004613321565b6101f5565b6040805192151583526020830191909152015b60405180910390f35b3480156100de57600080fd5b506100e761028e565b005b3480156100f557600080fd5b506100e7610348565b34801561010a57600080fd5b5061011e610119366004613353565b610400565b60405190151581526020016100c9565b34801561013a57600080fd5b5061014e610149366004613321565b610441565b6040516100c992919061361e565b6100e761016a3660046136ce565b610b8b565b34801561017b57600080fd5b5061018f61018a366004613321565b610de4565b6040516100c9959493929190613768565b3480156101ac57600080fd5b506100e76101bb3660046137b4565b610f56565b3480156101cc57600080fd5b506100e7611013565b3480156101e157600080fd5b506100e76101f03660046137cd565b611189565b60008060008061020485610441565b6040516339aa47fb60e01b81529193509150829073__$1cd67d4dc9e627f0bec7928aa480e7d951$__906339aa47fb90610242908590600401613980565b602060405180830381865af415801561025f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102839190613a1d565b935093505050915091565b610296611400565b33600090815260026020526040812054908190036102c7576040516367300f9160e11b815260040160405180910390fd5b3360009081526002602052604080822091909155600d549051631f0e077760e31b8152600481018390526001600160a01b039091169063f8703bb890602401600060405180830381600087803b15801561032057600080fd5b505af1158015610334573d6000803e3d6000fd5b506103459250339150839050611492565b50565b610350611400565b61035861152d565b610362600e61156b565b151580610370575060075415155b1561038e57604051636b62255160e11b815260040160405180910390fd5b600d8054600360a01b60ff60a01b19821617909155604080516341c0e1b560e01b815290516001600160a01b03909216916341c0e1b59160048082019260009290919082900301818387803b1580156103e657600080fd5b505af11580156103fa573d6000803e3d6000fd5b50505050565b6001600160401b0382166000908152602081815260408083208054845260030182528083206001600160a01b038516845290915290205460ff165b92915050565b60006104916040805161012081018252600060e0820181815260606101008401819052908352602083018290529282018190528282018390526080820183905260a082015260c081019190915290565b6001600160401b03808416600090815260056020908152604091829020825161012081018452815490941660e085019081526001820180548551818602810186019096528086529294869492938693610100870193919083018282801561052157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610503575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b8282101561092b5760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561063257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610614575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061066c90613a4c565b80601f016020809104026020016040519081016040528092919081815260200182805461069890613a4c565b80156106e55780601f106106ba576101008083540402835291602001916106e5565b820191906000526020600020905b8154815290600101906020018083116106c857829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561077657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610758575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906107b090613a4c565b80601f01602080910402602001604051908101604052809291908181526020018280546107dc90613a4c565b80156108295780601f106107fe57610100808354040283529160200191610829565b820191906000526020600020905b81548152906001019060200180831161080c57829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161088490613a4c565b80601f01602080910402602001604051908101604052809291908181526020018280546108b090613a4c565b80156108fd5780601f106108d2576101008083540402835291602001916108fd565b820191906000526020600020905b8154815290600101906020018083116108e057829003601f168201915b505050919092525050508152600b919091015460ff161515602091820152908252600192909201910161058c565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015610a62576000848152602090819020604080516080810182526003860290920180546001600160401b0316838301908152600182018054845181880281018801909552808552949592948694929386936060870193909290918301828280156109ee57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109d0575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610a4a57602002820191906000526020600020905b815481526020019060010190808311610a36575b50505050508152505081526020019060010190610958565b50505050815260200160068201548152602001600782018054610a8490613a4c565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab090613a4c565b8015610afd5780601f10610ad257610100808354040283529160200191610afd565b820191906000526020600020905b815481529060010190602001808311610ae057829003601f168201915b5050509190925250508151604051630c133d1360e31b815292935073__$a0fe38a9a81205afccc10810b09a4d3f45$__92636099e8989250610b429190600401613a86565b602060405180830381865af4158015610b5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b839190613aa7565b159150915091565b610b93611400565b610b9b61152d565b34336000829003610bbf57604051635a78c58160e11b815260040160405180910390fd5b6001600160a01b03811660009081526001602052604081208054849290610be7908490613ada565b909155505060078054839190600090610c01908490613ada565b90915550506008546001600160a01b03821660009081526001602052604090205410610c8d57610c32600e82611575565b610c8d57610c41600e8261159a565b506001600160a01b0381166000908152600360205260409020610c65858783613b66565b506001600160a01b03811660009081526004602052604090208390610c8a8282613c7b565b50505b6005600d54600160a01b900460ff166005811115610cad57610cad613a36565b03610d385760085460075410610d3357600d8054600160a01b60ff60a01b1982161790915560075460408051630354740160e31b815290516001600160a01b0390931692631aa3a008929160048082019260009290919082900301818588803b158015610d1957600080fd5b505af1158015610d2d573d6000803e3d6000fd5b50505050505b610ddd565b6002600d54600160a01b900460ff166005811115610d5857610d58613a36565b03610d7c5760085460075410610d7c57600d805460ff60a01b1916600160a01b1790555b600d54604080516316989f6f60e21b815290516001600160a01b0390921691635a627dbc918591600480830192600092919082900301818588803b158015610dc357600080fd5b505af1158015610dd7573d6000803e3d6000fd5b50505050505b5050505050565b6040805180820182526000808252606060208084018290526001600160401b03868116845260058252858420865180880188528154909216825260018101805488518186028101860190995280895296979596879687969585810193919290830182828015610e7c57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e5e575b505050919092525050506001600160401b03808816600090815260056020526040902060028101546003820154600683015460079093018054959a50919093169750919550935090610ecd90613a4c565b80601f0160208091040260200160405190810160405280929190818152602001828054610ef990613a4c565b8015610f465780601f10610f1b57610100808354040283529160200191610f46565b820191906000526020600020905b815481529060010190602001808311610f2957829003601f168201915b5050505050905091939590929450565b610f5e6115af565b6000610f6a600e61156b565b905080600003610f8d5760405163efa9c8f160e01b815260040160405180910390fd5b80821015610fae57604051633074cabf60e11b815260040160405180910390fd5b6000610fba8284613d76565b905060005b828110156103fa578160026000610fd7600e856115da565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546110069190613ada565b9091555050600101610fbf565b7f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095805460001901611057576040516329f745a760e01b815260040160405180910390fd5b60018155611063611400565b61106b61152d565b336000908152600160205260408120549081900361109c57604051632ec5b44960e01b815260040160405180910390fd5b336000908152600160205260408120819055600780548392906110c0908490613d8a565b909155506110d19050600e336115e6565b506001600d54600160a01b900460ff1660058111156110f2576110f2613a36565b0361111757600854600754101561111757600d805460ff60a01b1916600160a11b1790555b600d546040516345f5448560e01b8152600481018390526001600160a01b03909116906345f5448590602401600060405180830381600087803b15801561115d57600080fd5b505af1158015611171573d6000803e3d6000fd5b506111829250339150839050611492565b5060009055565b611191611400565b6111a96111a46040830160208401613321565b6115fb565b6001600d54600160a01b900460ff1660058111156111c9576111c9613a36565b146111e75760405163c18316bf60e01b815260040160405180910390fd5b6111f2600e33611575565b61120f57604051632ec5b44960e01b815260040160405180910390fd5b600b5461121c8280613d9d565b61122590613f39565b6040516390ba52cf60e01b815273__$a0fe38a9a81205afccc10810b09a4d3f45$__916390ba52cf9161125b9190600401613a86565b602060405180830381865af4158015611278573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061129c9190613a1d565b146112ba576040516375ecc72d60e01b815260040160405180910390fd5b73__$33b79814e84bf6cf5e47244090b19ce5f8$__63898414756112e16060840184613f45565b6040518363ffffffff1660e01b81526004016112fe92919061415e565b602060405180830381865af415801561131b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133f9190613aa7565b61135c57604051630bd9169f60e01b815260040160405180910390fd5b600080806113706040850160208601613321565b6001600160401b031681526020808201929092526040908101600090812033808352600190945291812054919350916113ac9184918691611604565b905080156113c2576113bd82611dc4565b505050565b6000806113cd612685565b915091508015610ddd576001600160401b03821660009081526020819052604090206113f881611dc4565b505050505050565b604051630972932760e21b815233600482015273__$e800e3908cdbb6b1b5bd452383a17b18f7$__906325ca4c9c90602401602060405180830381865af415801561144f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114739190613aa7565b6114905760405163b7150de560e01b815260040160405180910390fd5b565b804710156114b95760405163cd78605960e01b815230600482015260240160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611506576040519150601f19603f3d011682016040523d82523d6000602084013e61150b565b606091505b50509050806113bd57604051630a12f52160e11b815260040160405180910390fd5b6003600d54600160a01b900460ff16600581111561154d5761154d613a36565b036114905760405163248c8efb60e11b815260040160405180910390fd5b600061043b825490565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b6000611593836001600160a01b0384166126d8565b600d546001600160a01b031633146114905760405163e7e601db60e01b815260040160405180910390fd5b60006115938383612727565b6000611593836001600160a01b038416612751565b6103458161284b565b60008061161085614673565b6040516339aa47fb60e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__916339aa47fb916116469190600401613980565b602060405180830381865af4158015611663573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116879190613a1d565b90506116a8868286866116a060408b0160208c01613321565b600754612916565b600082815260058801602090815260409182902082516101208101845281546001600160401b031660e082019081526001830180548651818702810187019097528087529698509195929486949193869361010087019390919083018282801561173b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161171d575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015611b455760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d0193909183018282801561184c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161182e575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061188690613a4c565b80601f01602080910402602001604051908101604052809291908181526020018280546118b290613a4c565b80156118ff5780601f106118d4576101008083540402835291602001916118ff565b820191906000526020600020905b8154815290600101906020018083116118e257829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561199057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611972575b5050509190925250505081526040805180820190915260028301805460ff168252600384018054602094850194840191906119ca90613a4c565b80601f01602080910402602001604051908101604052809291908181526020018280546119f690613a4c565b8015611a435780601f10611a1857610100808354040283529160200191611a43565b820191906000526020600020905b815481529060010190602001808311611a2657829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a82018054608090920191611a9e90613a4c565b80601f0160208091040260200160405190810160405280929190818152602001828054611aca90613a4c565b8015611b175780601f10611aec57610100808354040283529160200191611b17565b820191906000526020600020905b815481529060010190602001808311611afa57829003601f168201915b505050919092525050508152600b919091015460ff16151560209182015290825260019290920191016117a6565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015611c7c576000848152602090819020604080516080810182526003860290920180546001600160401b031683830190815260018201805484518188028101880190955280855294959294869492938693606087019390929091830182828015611c0857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611bea575b505050505081525050815260200160028201805480602002602001604051908101604052809291908181526020018280548015611c6457602002820191906000526020600020905b815481526020019060010190808311611c50575b50505050508152505081526020019060010190611b72565b50505050815260200160068201548152602001600782018054611c9e90613a4c565b80601f0160208091040260200160405190810160405280929190818152602001828054611cca90613a4c565b8015611d175780601f10611cec57610100808354040283529160200191611d17565b820191906000526020600020905b815481529060010190602001808311611cfa57829003601f168201915b5050509190925250506040516322ea8d8960e11b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__926345d51b129250611d5691600401613980565b602060405180830381865af4158015611d73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d979190613aa7565b15611dbb57600081815260058701602052604090208590611db88282614f6c565b50505b50949350505050565b6002810154600090815260058201602052604090206006810154600c5414611e6457604051635a27a53960e11b81526004810183905273__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063b44f4a729060240160006040518083038186803b158015611e3157600080fd5b505af4158015611e45573d6000803e3d6000fd5b5050506002820154611e6091506001600160401b0316612b63565b5050565b6002810154611e7b906001600160401b0316612be7565b60028101546001600160401b039081166000908152600560205260409020825481546001600160401b03191692169190911781556001808301805484939284928492611eca9284019190612ec3565b50505060028281015490820180546001600160401b0319166001600160401b039092169190911790556003808301549082015560048083018054611f119284019190612f13565b5060058281018054611f2692840191906130d9565b506006820154816006015560078201816007019081611f45919061509b565b5050604080516101208101825283546001600160401b031660e0820190815260018501805484516020828102820181019096528181529395508694869486936101008701939192909190830182828015611fc857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611faa575b50505050508152505081526020016002820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156123d25760008481526020908190206040805161018081018252600c860290920180546001600160401b031661014084019081526001820180548451818802810188018652818152959693958795860194879486946101008901948794869486936101608d019390918301828280156120d957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116120bb575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061211390613a4c565b80601f016020809104026020016040519081016040528092919081815260200182805461213f90613a4c565b801561218c5780601f106121615761010080835404028352916020019161218c565b820191906000526020600020905b81548152906001019060200180831161216f57829003601f168201915b505050919092525050509052508152604080516080810182526004840180546001600160401b031682840190815260058601805485516020828102820181019097528181529686019694959394869486936060870193909183018282801561221d57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116121ff575b5050509190925250505081526040805180820190915260028301805460ff1682526003840180546020948501948401919061225790613a4c565b80601f016020809104026020016040519081016040528092919081815260200182805461228390613a4c565b80156122d05780601f106122a5576101008083540402835291602001916122d0565b820191906000526020600020905b8154815290600101906020018083116122b357829003601f168201915b5050509190925250505090525081526008820154602082015260098201546001600160401b0381166040830152600160401b900460e01b6001600160e01b0319166060820152600a8201805460809092019161232b90613a4c565b80601f016020809104026020016040519081016040528092919081815260200182805461235790613a4c565b80156123a45780601f10612379576101008083540402835291602001916123a4565b820191906000526020600020905b81548152906001019060200180831161238757829003601f168201915b505050919092525050508152600b919091015460ff1615156020918201529082526001929092019101612033565b50505050815260200160058201805480602002602001604051908101604052809291908181526020016000905b82821015612509576000848152602090819020604080516080810182526003860290920180546001600160401b03168383019081526001820180548451818802810188019095528085529495929486949293869360608701939092909183018282801561249557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612477575b5050505050815250508152602001600282018054806020026020016040519081016040528092919081815260200182805480156124f157602002820191906000526020600020905b8154815260200190600101908083116124dd575b505050505081525050815260200190600101906123ff565b5050505081526020016006820154815260200160078201805461252b90613a4c565b80601f016020809104026020016040519081016040528092919081815260200182805461255790613a4c565b80156125a45780601f10612579576101008083540402835291602001916125a4565b820191906000526020600020905b81548152906001019060200180831161258757829003601f168201915b5050509190925250506040516339aa47fb60e01b815273__$1cd67d4dc9e627f0bec7928aa480e7d951$__926339aa47fb92506125e391600401613980565b602060405180830381865af4158015612600573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126249190613a1d565b600c55600d54604051631a9c293560e31b81526001600160a01b039091169063d4e149a890612657908490600401615413565b600060405180830381600087803b15801561267157600080fd5b505af11580156113f8573d6000803e3d6000fd5b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27154600160801b90046001600160401b031660006000805160206155368339815191526126d183612d48565b9150509091565b600081815260018301602052604081205461271f5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561043b565b50600061043b565b600082600001828154811061273e5761273e6154a3565b9060005260206000200154905092915050565b6000818152600183016020526040812054801561283a576000612775600183613d8a565b855490915060009061278990600190613d8a565b90508181146127ee5760008660000182815481106127a9576127a96154a3565b90600052602060002001549050808760000184815481106127cc576127cc6154a3565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806127ff576127ff6154b9565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061043b565b600091505061043b565b5092915050565b60008051602061553683398151915280546001600160401b039081169083161161288857604051631f30cc6360e21b815260040160405180910390fd5b80546001600160401b03600160401b909104811690831610156128be5760405163b4f68f9760e01b815260040160405180910390fd5b80546001600160401b03600160801b82048116916128e591600160401b90910416846154cf565b6128ef91906154ef565b6001600160401b031615611e605760405163b4f68f9760e01b815260040160405180910390fd5b8554600081815260038801602090815260408083206001600160a01b038916845290915281205490916000805160206155368339815191529160ff1615612970576040516337138f5f60e11b815260040160405180910390fd5b600081815260038a01602090815260408083206001600160a01b038b1684529091528120805460ff191660019081179091558a0180548892906129b4908490613ada565b9091555050600081815260048a01602090815260408083208b8452909152812080548892906129e4908490613ada565b9091555050600081815260048a016020908152604080832060028d01548452909152808220548a835291205480821015612a205760028b018a90555b6000612a2c8c88612d95565b90506003816003811115612a4257612a42613a36565b03612ad757612a5088612d48565b15612a5e5760019550612b54565b60405163199b9ca560e01b81526001860160048201526001600160401b038916602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__9063199b9ca59060440160006040518083038186803b158015612aba57600080fd5b505af4158015612ace573d6000803e3d6000fd5b50505050612b54565b6002816003811115612aeb57612aeb613a36565b03612b5457604051635a27a53960e11b8152600481018d905273__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063b44f4a729060240160006040518083038186803b158015612b3b57600080fd5b505af4158015612b4f573d6000803e3d6000fd5b505050505b50505050509695505050505050565b60006000805160206155368339815191526040516394ecccfd60e01b81526001820160048201526001600160401b038416602482015290915073__$b7b8687e33476c74e3b4e0a64c4768a343$__906394ecccfd9060440160006040518083038186803b158015612bd357600080fd5b505af41580156113f8573d6000803e3d6000fd5b600080516020615536833981519152612bff82612d48565b612c07575050565b604051634953836d60e11b81526001820160048201526001600160401b038316602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__906392a706da90604401602060405180830381865af4158015612c68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c8c9190613aa7565b15612cb35760018101546001600160401b03838116600160801b9092041614612cb3575050565b6040516394ecccfd60e01b81526001820160048201526001600160401b038316602482015273__$b7b8687e33476c74e3b4e0a64c4768a343$__906394ecccfd9060440160006040518083038186803b158015612d0f57600080fd5b505af4158015612d23573d6000803e3d6000fd5b505082546001600160401b0319166001600160401b0394909416939093179091555050565b600080516020615536833981519152805460009190612d79906001600160401b03600160801b820481169116615515565b6001600160401b0316836001600160401b031614915050919050565b7f283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e27354600090600080516020615536833981519152908290606490612ddc9060ff168661475b565b612de69190613d76565b604051637d2ef4e560e11b81526004810187905290915060009073__$e0f829f5071d7e628aa77eca0c12e35bc2$__9063fa5de9ca90602401602060405180830381865af4158015612e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e609190613a1d565b905081866001015411612e79576000935050505061043b565b81811115612e8d576003935050505061043b565b6001860154612e9c9086613d8a565b612ea68284613d8a565b10612eb7576002935050505061043b565b50600195945050505050565b828054828255906000526020600020908101928215612f035760005260206000209182015b82811115612f03578254825591600101919060010190612ee8565b50612f0f929150613179565b5090565b82805482825590600052602060002090600c0281019282156130cd57600052602060002091600c0282015b828111156130cd57825482546001600160401b0319166001600160401b039091161782556001808401805485928592849284928492849284928492612f869291840191612ec3565b50505060028281018054918301805460ff191660ff90931692909217825590600380840190612fb79086018261509b565b505050506004838101805491840180546001600160401b0319166001600160401b039093169290921782556005808601805492945084928492612ffd9290880191612ec3565b50505060028281018054918301805460ff191660ff9093169290921782559060038084019061302e9086018261509b565b5050505060088381015490830155506009808301805491830180546001600160401b031981166001600160401b039094169384178255915463ffffffff600160401b9182900416026bffffffffffffffffffffffff19909216909217179055600a8082019061309f9084018261509b565b505050600b918201549101805460ff191660ff9092161515919091179055600c928301929190910190612f3e565b50612f0f92915061318e565b82805482825590600052602060002090600302810192821561316d5760005260206000209160030282015b8281111561316d57825482546001600160401b0319166001600160401b039091161782556001808401805485928592849284926131449290840191612ec3565b5050506002828101805461315b9284019190612ec3565b50505091600301919060030190613104565b50612f0f929150613263565b5b80821115612f0f576000815560010161317a565b80821115612f0f5780546001600160401b031916815560008181818181816131b960018301826132a4565b505060028201805460ff1916815560006131d660038501826132c2565b505050506004820180546001600160401b0319168155600081816131fd60058701826132a4565b505060028201805460ff19168155600061321a60038501826132c2565b50506000600885018190556009850180546bffffffffffffffffffffffff1916905561324c9250600a850191506132c2565b505050600b8101805460ff19169055600c0161318e565b80821115612f0f5780546001600160401b03191681556000818161328a60018301826132a4565b5061329b90506002830160006132a4565b50600301613263565b50805460008255906000526020600020908101906103459190613179565b5080546132ce90613a4c565b6000825580601f106132de575050565b601f0160209004906000526020600020908101906103459190613179565b6001600160401b038116811461034557600080fd5b803561331c816132fc565b919050565b60006020828403121561333357600080fd5b8135611593816132fc565b6001600160a01b038116811461034557600080fd5b6000806040838503121561336657600080fd5b8235613371816132fc565b915060208301356133818161333e565b809150509250929050565b6000604083016001600160401b0383511684526020808401516040828701528281518085526060880191508383019450600092505b808310156133ea5784516001600160a01b031682529383019360019290920191908301906133c1565b509695505050505050565b6000815180845260005b8181101561341b576020818501810151868301820152016133ff565b506000602082860101526020601f19601f83011685010191505092915050565b6000815160408452613450604085018261338c565b90506020830151848203602086015260ff8151168252602081015190506040602083015261348160408301826133f5565b95945050505050565b600081518084526020808501808196508360051b8101915082860160005b85811015613571578284038952815160408151818752805160c080848a01526134d56101008a018361343b565b915089830151603f196060818c860301818d01526134f3858461343b565b9686015160808d810191909152908601516001600160401b031660a0808e0191909152908601516001600160e01b031916938c0193909352918401518a860390920160e08b01525092905061354881846133f5565b93890151801515898b015293925061355e915050565b99860199945050908401906001016134a8565b5091979650505050505050565b600081518084526020808501808196508360051b810191508286016000805b86811015613610578385038a528251604081518188526135bf8289018261338c565b92890151888403898b01528051808552908a01938693508a0191505b808310156135fb57835182529289019260019290920191908901906135db565b509b88019b965050509185019160010161359d565b509298975050505050505050565b8215158152604060208201526000825160e0604084015261364361012084018261338c565b90506001600160401b036020850151166060840152604084015160808401526060840151603f19808584030160a086015261367e838361348a565b925060808601519150808584030160c086015261369b838361357e565b925060a086015160e086015260c086015191508085840301610100860152506136c482826133f5565b9695505050505050565b6000806000604084860312156136e357600080fd5b83356001600160401b03808211156136fa57600080fd5b818601915086601f83011261370e57600080fd5b81358181111561371d57600080fd5b87602082850101111561372f57600080fd5b60209283019550935090850135908082111561374a57600080fd5b5084016040818703121561375d57600080fd5b809150509250925092565b60a08152600061377b60a083018861338c565b6001600160401b038716602084015285604084015284606084015282810360808401526137a881856133f5565b98975050505050505050565b6000602082840312156137c657600080fd5b5035919050565b6000602082840312156137df57600080fd5b81356001600160401b038111156137f557600080fd5b820160e0818503121561159357600080fd5b600081518084526020808501808196508360051b8101915082860160005b85811015613571578284038952815160408151818752805160c080848a01526138526101008a018361343b565b915089830151603f196060818c860301818d0152613870858461343b565b9686015160808d810191909152908601516001600160401b031660a0808e0191909152908601516001600160e01b031916938c0193909352918401518a860390920160e08b0152509290506138c581846133f5565b93890151801515898b01529392506138db915050565b9986019994505090840190600101613825565b600081518084526020808501808196508360051b810191508286016000805b86811015613610578385038a5282516040815181885261392f8289018261338c565b92890151888403898b01528051808552908a01938693508a0191505b8083101561396b578351825292890192600192909201919089019061394b565b509b88019b965050509185019160010161390d565b602081526000825160e0602084015261399d61010084018261338c565b90506001600160401b036020850151166040840152604084015160608401526060840151601f19808584030160808601526139d88383613807565b925060808601519150808584030160a08601526139f583836138ee565b925060a086015160c086015260c08601519150808584030160e08601525061348182826133f5565b600060208284031215613a2f57600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b600181811c90821680613a6057607f821691505b602082108103613a8057634e487b7160e01b600052602260045260246000fd5b50919050565b602081526000611593602083018461338c565b801515811461034557600080fd5b600060208284031215613ab957600080fd5b815161159381613a99565b634e487b7160e01b600052601160045260246000fd5b8082018082111561043b5761043b613ac4565b634e487b7160e01b600052604160045260246000fd5b5b81811015611e605760008155600101613b04565b601f8211156113bd57806000526020600020601f840160051c81016020851015613b3f5750805b610ddd601f850160051c830182613b03565b600019600383901b1c191660019190911b1790565b6001600160401b03831115613b7d57613b7d613aed565b613b9183613b8b8354613a4c565b83613b18565b6000601f841160018114613bbf5760008515613bad5750838201355b613bb78682613b51565b845550610ddd565b600083815260209020601f19861690835b82811015613bf05786850135825560209485019460019092019101613bd0565b5086821015613c0d5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60ff8116811461034557600080fd5b6000808335601e19843603018112613c4557600080fd5b8301803591506001600160401b03821115613c5f57600080fd5b602001915036819003821315613c7457600080fd5b9250929050565b8135613c8681613c1f565b60ff811660ff198354161782555060018082016020613ca781860186613c2e565b6001600160401b03811115613cbe57613cbe613aed565b613cd281613ccc8654613a4c565b86613b18565b6000601f821160018114613d005760008315613cee5750838201355b613cf88482613b51565b875550613d55565b600086815260209020601f19841690835b82811015613d2e5786850135825593870193908901908701613d11565b5084821015613d4b5760001960f88660031b161c19848701351681555b50508683881b0186555b505050505050505050565b634e487b7160e01b600052601260045260246000fd5b600082613d8557613d85613d60565b500490565b8181038181111561043b5761043b613ac4565b60008235603e19833603018112613db357600080fd5b9190910192915050565b604080519081016001600160401b0381118282101715613ddf57613ddf613aed565b60405290565b60405160c081016001600160401b0381118282101715613ddf57613ddf613aed565b60405160e081016001600160401b0381118282101715613ddf57613ddf613aed565b604051601f8201601f191681016001600160401b0381118282101715613e5157613e51613aed565b604052919050565b60006001600160401b03821115613e7257613e72613aed565b5060051b60200190565b600060408284031215613e8e57600080fd5b613e96613dbd565b90508135613ea3816132fc565b81526020828101356001600160401b03811115613ebf57600080fd5b8301601f81018513613ed057600080fd5b8035613ee3613ede82613e59565b613e29565b81815260059190911b82018301908381019087831115613f0257600080fd5b928401925b82841015613f29578335613f1a8161333e565b82529284019290840190613f07565b8085870152505050505092915050565b600061043b3683613e7c565b6000808335601e19843603018112613f5c57600080fd5b8301803591506001600160401b03821115613f7657600080fd5b6020019150600581901b3603821315613c7457600080fd5b60008235603e19833603018112613fa457600080fd5b90910192915050565b6000808335601e19843603018112613fc457600080fd5b83016020810192503590506001600160401b03811115613fe357600080fd5b803603821315613c7457600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000813561402881613c1f565b60ff16835261403a6020830183613fad565b60406020860152613481604086018284613ff2565b600061405b8283613f8e565b6040845260808401813561406e816132fc565b6001600160401b0390811660408701526020908382013536859003601e1901811261409857600080fd5b909301818101939035818111156140ae57600080fd5b8060051b36038513156140c057600080fd5b60406060890152928390525060009160a08701905b808410156141075784356140e88161333e565b6001600160a01b031682529382019360019390930192908201906140d5565b5061411482870187613f8e565b935086810382880152614127818561401b565b979650505050505050565b6001600160e01b03198116811461034557600080fd5b803561331c81614132565b803561331c81613a99565b60208082528181018390526000906040808401600586901b850182018785805b8981101561429257603f19808a860301865261419a848d613f8e565b803560be198236030181126141ad578485fd5b88875281016141bc8180613f8e565b60c0808b8a01526141d16101008a018361404f565b91506141df8c840184613f8e565b6060868b850301818c01526141f4848361404f565b9350608091508c850135828c0152808501359050614211816132fc565b60a06001600160401b038216818d015282860135925061423083614132565b6001600160e01b031983168c85015261424b86820187613fad565b96509350505050848983030160e08a0152614267828483613ff2565b9450505050614277898201614153565b1515958901959095529487019493509186019160010161417e565b50919998505050505050505050565b600082601f8301126142b257600080fd5b81356001600160401b038111156142cb576142cb613aed565b6142de601f8201601f1916602001613e29565b8181528460208386010111156142f357600080fd5b816020850160208301376000918101602001919091529392505050565b60006040828403121561432257600080fd5b61432a613dbd565b905081356001600160401b038082111561434357600080fd5b61434f85838601613e7c565b8352602084013591508082111561436557600080fd5b908301906040828603121561437957600080fd5b614381613dbd565b823561438c81613c1f565b81526020830135828111156143a057600080fd5b6143ac878286016142a1565b60208301525080602085015250505092915050565b600082601f8301126143d257600080fd5b813560206143e2613ede83613e59565b82815260059290921b8401810191818101908684111561440157600080fd5b8286015b848110156133ea5780356001600160401b038082111561442457600080fd5b90880190601f196040838c038201121561443d57600080fd5b614445613dbd565b878401358381111561445657600080fd5b840160c0818e038401121561446a57600080fd5b614472613de5565b9250888101358481111561448557600080fd5b6144938e8b83850101614310565b8452506040810135848111156144a857600080fd5b6144b68e8b83850101614310565b8a85015250606081013560408401526144d160808201613311565b60608401526144e260a08201614148565b608084015260c0810135848111156144f957600080fd5b6145078e8b838501016142a1565b60a0850152505081815261451d60408501614153565b818901528652505050918301918301614405565b600082601f83011261454257600080fd5b81356020614552613ede83613e59565b828152600592831b850182019282820191908785111561457157600080fd5b8387015b858110156146665780356001600160401b03808211156145955760008081fd5b908901906040828c03601f19018113156145af5760008081fd5b6145b7613dbd565b88840135838111156145c95760008081fd5b6145d78e8b83880101613e7c565b82525081840135838111156145ec5760008081fd5b8085019450508c603f85011261460457600092508283fd5b888401359250614616613ede84613e59565b83815292861b8401820192898101908e8511156146335760008081fd5b948301945b848610156146515785358252948a0194908a0190614638565b828b0152508752505050928401928401614575565b5090979650505050505050565b600060e0823603121561468557600080fd5b61468d613e07565b82356001600160401b03808211156146a457600080fd5b6146b036838701613e7c565b83526146be60208601613311565b60208401526040850135604084015260608501359150808211156146e157600080fd5b6146ed368387016143c1565b6060840152608085013591508082111561470657600080fd5b61471236838701614531565b608084015260a085013560a084015260c085013591508082111561473557600080fd5b50614742368286016142a1565b60c08301525092915050565b6000813561043b816132fc565b808202811582820484141761043b5761043b613ac4565b8054600082558015611e60578160005260206000206113bd82820182613b03565b600160401b8211156147a7576147a7613aed565b8054828255808310156113bd578160005260206000206103fa828201858301613b03565b6000815561034560018201614772565b6147e58154613a4c565b8015611e6057601f8111600181146147ff57505060009055565b82600052602060002061481d601f840160051c820160018301613b03565b60008085559055505050565b6000815561483960018201614772565b60006002820155610345600382016147db565b6148568283613d9d565b8035614861816132fc565b82546001600160401b0319166001600160401b038216178355506001808301602061488e81850185613f45565b94506001600160401b03808611156148a8576148a8613aed565b6148b28685614793565b600093845282842093805b878110156148df5783356148d08161333e565b868201559284019286016148bd565b506002880196506148f2848a018a613d9d565b94508435925061490183613c1f565b865460ff191660ff841617909655600387019561492085850186613c2e565b955092508185111561493457614934613aed565b614948856149428954613a4c565b89613b18565b809150601f851160018114614976578186156149645750838301355b61496e8782613b51565b895550610dd7565b600088815260209020601f19871690835b828110156149a45786860135825594870194908901908701614987565b50878210156149c15760001960f88960031b161c19858701351681555b505050505091831b90920190925550505050565b6000813561043b81614132565b6000813561043b81613a99565b813560be19833603018112614a0357600080fd5b8201614a0f8180613d9d565b614a198182613d9d565b8035614a24816132fc565b84546001600160401b0319166001600160401b0382161785555060018085016020614a5181850185613f45565b94506001600160401b0380861115614a6b57614a6b613aed565b614a758685614793565b600093845282842093805b87811015614aa2578335614a938161333e565b86820155928401928601614a80565b5060028a019650614ab584890189613d9d565b975087359450614ac485613c1f565b865460ff191660ff8616179096556003890195614ae388850189613c2e565b9850945081881115614af757614af7613aed565b614b05886149428954613a4c565b809250601f881160018114614b35578192508815614b24578386013592505b614b2e8984613b51565b8855614b8a565b600088815260209020601f198a169350825b84811015614b645787860135825594860194908801908601614b47565b5089841015614b815760001960f88b60031b161c19858801351681555b508689881b0188555b50505050614ba6614b9d82880188613d9d565b6004890161484c565b60408601356008880155600987019450614be2614bc56060880161474e565b86546001600160401b0319166001600160401b0391909116178655565b614c1b614bf1608088016149d5565b86546bffffffff0000000000000000191660a09190911c6bffffffff000000000000000016178655565b614c2860a0870187613c2e565b96509450614c3a8686600a8a01613b66565b614c61614c48828a016149e2565b600b890160ff1981541660ff8315151681178255505050565b5050505050505050565b600160401b831115614c7f57614c7f613aed565b805483825580841015614d1357600c8181028181048314614ca257614ca2613ac4565b8582028281048714614cb657614cb6613ac4565b6000858152602081209283019291909101905b82821015614d0e57614cda82614829565b614ce660048301614829565b806008830155806009830155614cfe600a83016147db565b80600b8301558382019150614cc9565b505050505b5060008181526020812083915b858110156113f857614d3b614d358487613d9d565b836149ef565b60209290920191600c9190910190600101614d20565b8054600080835581156113bd57828152602081208281015b80821015610ddd57828255600182019150614d69565b600160401b821115614d9357614d93613aed565b8054828255808310156113bd576000828152602081208481019083015b808210156113f857828255600182019150614db0565b614dd08283613d9d565b8035614ddb816132fc565b82546001600160401b0319166001600160401b0382161783555060018083016020614e0881850185613f45565b94506001600160401b0380861115614e2257614e22613aed565b614e2c8685614793565b600093845282842093805b87811015614e59578335614e4a8161333e565b86820155928401928601614e37565b50600288019650614e6c848a018a613f45565b9550925081851115614e8057614e80613aed565b614e8a8588614d7f565b95865250818520945b83811015614c6157813586820155908201908401614e93565b600160401b831115614ec057614ec0613aed565b805483825580841015614f2e5760038181028181048314614ee357614ee3613ac4565b8582028281048714614ef757614ef7613ac4565b60008581526020902091820191015b81811015614f2a57614f17816147cb565b614f2360028201614d51565b8201614f06565b5050505b5060008181526020812083915b858110156113f857614f56614f508487613d9d565b83614dc6565b6020929092019160039190910190600101614f3b565b614f768283613d9d565b8035614f81816132fc565b82546001600160401b0319166001600160401b0382161783555060018083016020614fae81850185613f45565b94506001600160401b03851115614fc757614fc7613aed565b614fd18584614793565b6000928352818320925b85811015614ffd578135614fee8161333e565b84820155908201908401614fdb565b505061502e61500d82880161474e565b600287016001600160401b0382166001600160401b03198254161781555050565b50505050604082013560038201556150496060830183613f45565b615057818360048601614c6b565b50506150666080830183613f45565b615074818360058601614eac565b505060a0820135600682015561508d60c0830183613c2e565b6103fa818360078601613b66565b8181036150a6575050565b6150b08254613a4c565b6001600160401b038111156150c7576150c7613aed565b6150db816150d58454613a4c565b84613b18565b6000601f82116001811461510957600083156150f75750848201545b6151018482613b51565b855550610ddd565b600085815260209020601f19841690600086815260209020845b838110156151435782860154825560019586019590910190602001615123565b50858310156151615781850154600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000604083016001600160401b0383541684526001808401602060408188015283825480865260608901915083600052826000209550600093505b808410156151d25785546001600160a01b031682529484019492840192908201906151ac565b50979650505050505050565b600081546151eb81613a4c565b808552602060018381168015615208576001811461522257615250565b60ff1985168884015283151560051b880183019550615250565b866000528260002060005b858110156152485781548a820186015290830190840161522d565b890184019650505b505050505092915050565b60408252600061526e6040840183615171565b838103602085015260ff60028401541681526040602082015261529760408201600385016151de565b949350505050565b600081548084526020808501808196508360051b81019150856000528260002060005b85811015613571578284038952604080855260c080828701526152e961010087018561525b565b9150603f1980878403016060880152615305836004870161525b565b6008860154608089015260098601546001600160401b03811660a0808b01919091521b6001600160e01b031916928801929092528682030160e0870152905061535181600a85016151de565b9050615361600b84015460ff1690565b15159486019490945297840197600c91909101906001016152c2565b600081548084526020808501808196508360051b810191506000868152838120815b86811015613610578385038a5260408086526153bd81870184615171565b86810388880152600284018054808352908652888620925085918901905b808310156153fb57835482526001938401939290920191908901906153db565b509b88019b965050506003919091019060010161539f565b6020815260e06020820152600061542e610100830184615171565b60028401546001600160401b0316604084015260038401546060840152828103601f199081016080850152615466826004870161529f565b9150808483030160a085015261547f826005870161537d565b9150600685015460c0850152808483030160e08501525061529781600786016151de565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6001600160401b0382811682821603908082111561284457612844613ac4565b60006001600160401b038084168061550957615509613d60565b92169190910692915050565b6001600160401b0381811683821601908082111561284457612844613ac456fe283d1424c49941ba61504663c7a1b6f59e6bbb963a00bcc130bcbf9c29e1e270a2646970667358221220a2ee3a596184af53752eeabe46f09a8470b15941e37106fc8e96d458e5e641ac64736f6c63430008130033", + "sourceMap": "1767:9418:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9019:240;;;;;;;;;;-1:-1:-1;9019:240:64;;;;;:::i;:::-;;:::i;:::-;;;;824:14:78;;817:22;799:41;;871:2;856:18;;849:34;;;;772:18;9019:240:64;;;;;;;;7038:342;;;;;;;;;;;;;:::i;:::-;;4506:254;;;;;;;;;;;;;:::i;8032:287::-;;;;;;;;;;-1:-1:-1;8032:287:64;;;;;:::i;:::-;;:::i;:::-;;;1586:14:78;;1579:22;1561:41;;1549:2;1534:18;8032:287:64;1421:187:78;8550:241:64;;;;;;;;;;-1:-1:-1;8550:241:64;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;2440:1280::-;;;;;;:::i;:::-;;:::i;7422:422::-;;;;;;;;;;-1:-1:-1;7422:422:64;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;6360:562::-;;;;;;;;;;-1:-1:-1;6360:562:64;;;;;:::i;:::-;;:::i;3793:621::-;;;;;;;;;;;;;:::i;4953:1319::-;;;;;;;;;;-1:-1:-1;4953:1319:64;;;;;:::i;:::-;;:::i;9019:240::-;9095:4;9101:7;9121:11;9134:36;9174:32;9200:5;9174:25;:32::i;:::-;9232:19;;-1:-1:-1;;;9232:19:64;;9120:86;;-1:-1:-1;9120:86:64;-1:-1:-1;9120:86:64;;9232:17;;;;:19;;9120:86;;9232:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9216:36;;;;;;9019:240;;;:::o;7038:342::-;4661:15:53;:13;:15::i;:::-;7128:10:64::1;7090:14;7107:32:::0;;;:20:::1;:32;::::0;;;;;;7154:11;;;7150:69:::1;;7188:20;;-1:-1:-1::0;;;7188:20:64::1;;;;;;;;;;;7150:69;7250:10;7264:1;7229:32:::0;;;:20:::1;:32;::::0;;;;;:36;;;;7285:16:::1;::::0;7276:49;;-1:-1:-1;;;7276:49:64;;::::1;::::0;::::1;16303:25:78::0;;;-1:-1:-1;;;;;7285:16:64;;::::1;::::0;7276:41:::1;::::0;16276:18:78;;7276:49:64::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;7336:37:64::1;::::0;-1:-1:-1;7344:10:64::1;::::0;-1:-1:-1;7366:6:64;;-1:-1:-1;7336:29:64::1;:37::i;:::-;7080:300;7038:342::o:0;4506:254::-;4661:15:53;:13;:15::i;:::-;4731:12:::1;:10;:12::i;:::-;4568:21:64::2;:12;:19;:21::i;:::-;:26:::0;::::2;::::0;:47:::2;;-1:-1:-1::0;4598:12:64::2;::::0;:17;::::2;4568:47;4564:111;;;4638:26;;-1:-1:-1::0;;;4638:26:64::2;;;;;;;;;;;4564:111;4685:8;:24:::0;;-1:-1:-1;;;;;;;4685:24:64;::::2;;::::0;;;4720:33:::2;::::0;;-1:-1:-1;;;4720:33:64;;;;-1:-1:-1;;;;;4729:16:64;;;;4720:31:::2;::::0;:33:::2;::::0;;::::2;::::0;-1:-1:-1;;4720:33:64;;;;;;;;-1:-1:-1;4729:16:64;4720:33;::::2;;::::0;::::2;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;4506:254::o:0;8032:287::-;-1:-1:-1;;;;;8197:29:64;;8128:4;8197:29;;;;;;;;;;;8275:25;;8244:57;;:30;;:57;;;;;-1:-1:-1;;;;;8244:68:64;;;;;;;;;;;;8032:287;;;;;:::o;8550:241::-;8634:11;8647:36;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8647:36:64;-1:-1:-1;;;;;8708:29:64;;;:1;:29;;;:22;:29;;;;;;;;;8695:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8708:29;;8695:42;;;;8708:29;;8695:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8695:42:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8695:42:64;-1:-1:-1;;;;;8695:42:64;-1:-1:-1;;;;;8695:42:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8695:42:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8695:42:64;;;;;;;;;;;;;;;;-1:-1:-1;;;8695:42:64;;;;-1:-1:-1;;;8695:42:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8695:42:64;;;;-1:-1:-1;;;8695:42:64;;-1:-1:-1;8695:42:64;;;;;;;;;;;;;;;-1:-1:-1;;;;;8695:42:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8695:42:64;;;;;;;;;;;;;;;;-1:-1:-1;;;8695:42:64;;;;-1:-1:-1;;;8695:42:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8695:42:64;;;;-1:-1:-1;;;8695:42:64;;-1:-1:-1;8695:42:64;;;;;;;;;;;;;;-1:-1:-1;;;;;8695:42:64;;;;;;-1:-1:-1;;;8695:42:64;;;;-1:-1:-1;;;;;;8695:42:64;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8695:42:64;;;;-1:-1:-1;;;8695:42:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8695:42:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8695:42:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8695:42:64;;;;-1:-1:-1;;8757:17:64;;:27;;-1:-1:-1;;;8757:27:64;;8695:42;;-1:-1:-1;8757:25:64;;;;-1:-1:-1;8757:27:64;;:17;:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8756:28;8747:37;;8550:241;;;:::o;2440:1280::-;4661:15:53;:13;:15::i;:::-;4731:12:::1;:10;:12::i;:::-;2586:9:64::2;2625:10;2561:22;2649:19:::0;;;2645:75:::2;;2691:18;;-1:-1:-1::0;;;2691:18:64::2;;;;;;;;;;;2645:75;-1:-1:-1::0;;;;;2730:18:64;::::2;:1;:18:::0;;;:7:::2;:18;::::0;;;;:36;;2752:14;;2730:1;:36:::2;::::0;2752:14;;2730:36:::2;:::i;:::-;::::0;;;-1:-1:-1;;2776:12:64::2;:30:::0;;2792:14;;2776:12;:1:::2;::::0;:30:::2;::::0;2792:14;;2776:30:::2;:::i;:::-;::::0;;;-1:-1:-1;;2843:25:64::2;::::0;-1:-1:-1;;;;;2821:18:64;::::2;2843:1;2821:18:::0;;;:7:::2;:18;::::0;;;;;:47:::2;2817:365;;2889:32;:12;2911:9:::0;2889:21:::2;:32::i;:::-;2884:288;;3000:27;:12;3017:9:::0;3000:16:::2;:27::i;:::-;-1:-1:-1::0;;;;;;3045:34:64;::::2;:1;:34:::0;;;:23:::2;:34;::::0;;;;:44:::2;3082:7:::0;;3045:34;:44:::2;:::i;:::-;-1:-1:-1::0;;;;;;3107:37:64;::::2;:1;:37:::0;;;:26:::2;:37;::::0;;;;3147:10;;3107:50:::2;3147:10:::0;3107:37;:50:::2;:::i;:::-;-1:-1:-1::0;;2884:288:64::2;3208:19;3196:8;::::0;-1:-1:-1;;;3196:8:64;::::2;;;:31;::::0;::::2;;;;;;:::i;:::-;::::0;3192:522:::2;;3263:25;::::0;3247:12:::2;::::0;:41:::2;3243:180;;3308:8;:24:::0;;-1:-1:-1;;;;;;;3308:24:64;::::2;;::::0;;;3393:12:::2;::::0;3350:58:::2;::::0;;-1:-1:-1;;;3350:58:64;;;;-1:-1:-1;;;;;3359:16:64;;;;3350:35:::2;::::0;3393:12;3350:58:::2;::::0;;::::2;::::0;-1:-1:-1;;3350:58:64;;;;;;;;3393:12;3359:16;3350:58;::::2;;::::0;::::2;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;3243:180;3192:522;;;3469:15;3457:8;::::0;-1:-1:-1;;;3457:8:64;::::2;;;:27;::::0;::::2;;;;;;:::i;:::-;::::0;3453:177:::2;;3524:25;::::0;3508:12:::2;::::0;:41:::2;3504:112;;3573:8;:24:::0;;-1:-1:-1;;;;3573:24:64::2;-1:-1:-1::0;;;3573:24:64::2;::::0;;3504:112:::2;3652:16;::::0;3643:60:::2;::::0;;-1:-1:-1;;;3643:60:64;;;;-1:-1:-1;;;;;3652:16:64;;::::2;::::0;3643:35:::2;::::0;3686:14;;3643:60:::2;::::0;;::::2;::::0;3652:1:::2;::::0;3643:60;;;;;;;3686:14;3652:16;3643:60;::::2;;::::0;::::2;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;3192:522;2551:1169;;2440:1280:::0;;;:::o;7422:422::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;7607:25:64;;;;;:22;:25;;;;;7598:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;7598:41:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7598:41:64;;;;;;;;;;;;;;;;-1:-1:-1;;;7598:41:64;;;;-1:-1:-1;;;;;;;;7657:25:64;;;:1;:25;;;:22;:25;;;;;:31;;;;7704:29;;;;7754:34;;;;7806:31;;;;7798:39;;7598:41;;-1:-1:-1;7657:31:64;;;;;-1:-1:-1;7704:29:64;;-1:-1:-1;7754:34:64;-1:-1:-1;7806:31:64;7798:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7422:422;;;;;;;:::o;6360:562::-;4589:14:53;:12;:14::i;:::-;6423:24:64::1;6450:21;:12;:19;:21::i;:::-;6423:48;;6486:16;6506:1;6486:21:::0;6482:81:::1;;6530:22;;-1:-1:-1::0;;;6530:22:64::1;;;;;;;;;;;6482:81;6585:16;6576:6;:25;6572:91;;;6624:28;;-1:-1:-1::0;;;6624:28:64::1;;;;;;;;;;;6572:91;6673:20;6696:25;6705:16:::0;6696:6;:25:::1;:::i;:::-;6673:48;;6737:9;6732:184;6756:16;6752:1;:20;6732:184;;;6834:12:::0;6790:20:::1;:1;6811:18;:12;6827:1:::0;6811:15:::1;:18::i;:::-;-1:-1:-1::0;;;;;6790:40:64::1;-1:-1:-1::0;;;;;6790:40:64::1;;;;;;;;;;;;;:56;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;6888:3:64::1;;6732:184;;3793:621:::0;240:48:52;575:8;;-1:-1:-1;;575:20:52;571:50;;604:17;;-1:-1:-1;;;604:17:52;;;;;;;;;;;571:50;470:1;631:19;;4661:15:53::1;:13;:15::i;:::-;4731:12:::2;:10;:12::i;:::-;3890:10:64::3;3865:14;3882:19:::0;;;:7:::3;:19;::::0;;;;;;3916:11;;;3912:63:::3;;3950:14;;-1:-1:-1::0;;;3950:14:64::3;;;;;;;;;;;3912:63;3993:10;4007:1;3985:19:::0;;;:7:::3;:19;::::0;;;;:23;;;4018:12:::3;:22:::0;;4034:6;;4007:1;4018:22:::3;::::0;4034:6;;4018:22:::3;:::i;:::-;::::0;;;-1:-1:-1;4101:31:64::3;::::0;-1:-1:-1;4101:12:64::3;4121:10;4101:19;:31::i;:::-;-1:-1:-1::0;4158:13:64::3;4146:8;::::0;-1:-1:-1;;;4146:8:64;::::3;;;:25;::::0;::::3;;;;;;:::i;:::-;::::0;4142:160:::3;;4206:25;::::0;4191:12:::3;::::0;:40:::3;4187:105;;;4251:8;:26:::0;;-1:-1:-1;;;;4251:26:64::3;-1:-1:-1::0;;;4251:26:64::3;::::0;;4187:105:::3;4321:16;::::0;4312:47:::3;::::0;-1:-1:-1;;;4312:47:64;;::::3;::::0;::::3;16303:25:78::0;;;-1:-1:-1;;;;;4321:16:64;;::::3;::::0;4312:39:::3;::::0;16276:18:78;;4312:47:64::3;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;::::0;::::3;;;;;-1:-1:-1::0;4370:37:64::3;::::0;-1:-1:-1;4378:10:64::3;::::0;-1:-1:-1;4400:6:64;;-1:-1:-1;4370:29:64::3;:37::i;:::-;-1:-1:-1::0;427:1:52;671:23;;3793:621:64:o;4953:1319::-;4661:15:53;:13;:15::i;:::-;5051:47:64::1;5081:16;::::0;;;::::1;::::0;::::1;;:::i;:::-;5051:29;:47::i;:::-;5125:13;5113:8;::::0;-1:-1:-1;;;5113:8:64;::::1;;;:25;::::0;::::1;;;;;;:::i;:::-;;5109:80;;5161:17;;-1:-1:-1::0;;;5161:17:64::1;;;;;;;;;;;5109:80;5203:33;:12;5225:10;5203:21;:33::i;:::-;5198:86;;5259:14;;-1:-1:-1::0;;;5259:14:64::1;;;;;;;;;;;5198:86;5327:19;::::0;5297:17:::1;:10:::0;;:17:::1;:::i;:::-;:24;;;:::i;:::-;:26;::::0;-1:-1:-1;;;5297:26:64;;:24:::1;::::0;::::1;::::0;:26:::1;::::0;:24;:26:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:49;5293:110;;5369:23;;-1:-1:-1::0;;;5369:23:64::1;;;;;;;;;;;5293:110;5417:14;:23;5441:20;;::::0;::::1;:10:::0;:20:::1;:::i;:::-;5417:45;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5412:103;;5485:19;;-1:-1:-1::0;;;5485:19:64::1;;;;;;;;;;;5412:103;5525:50;::::0;;5601:16:::1;::::0;;;::::1;::::0;::::1;;:::i;:::-;-1:-1:-1::0;;;;;5578:40:64::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;5578:40:64;;;5729:10:::1;5741:19:::0;;;:7:::1;:19:::0;;;;;;;5578:40;;-1:-1:-1;;5681:80:64::1;::::0;5578:40;;5717:10;;5681:19:::1;:80::i;:::-;5656:105;;5776:17;5772:494;;;5809:33;5827:14;5809:17;:33::i;:::-;5041:1231;;4953:1319:::0;:::o;5772:494::-:1;5941:26;5969:22:::0;5995:34:::1;:32;:34::i;:::-;5940:89;;;;6048:17;6044:212;;;-1:-1:-1::0;;;;;6142:43:64;::::1;6085:54;6142:43:::0;;;::::1;::::0;;;;;;6204:37:::1;6142:43:::0;6204:17:::1;:37::i;:::-;6067:189;5859:407;;5041:1231;;4953:1319:::0;:::o;4143:127:53:-;4196:22;;-1:-1:-1;;;4196:22:53;;:10;:22;;;33584:51:78;4196:20:53;;;;33557:18:78;;4196:22:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4191:73;;4241:12;;-1:-1:-1;;;4241:12:53;;;;;;;;;;;4191:73;4143:127::o;1530:331:19:-;1639:6;1615:21;:30;1611:109;;;1668:41;;-1:-1:-1;;;1668:41:19;;1703:4;1668:41;;;33584:51:78;33557:18;;1668:41:19;;;;;;;1611:109;1731:12;1749:9;-1:-1:-1;;;;;1749:14:19;1771:6;1749:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1730:52;;;1797:7;1792:63;;1827:17;;-1:-1:-1;;;1827:17:19;;;;;;;;;;;4415:135:53;4476:13;4464:8;;-1:-1:-1;;;4464:8:53;;;;:25;;;;;;;;:::i;:::-;;4460:84;;4512:21;;-1:-1:-1;;;4512:21:53;;;;;;;;;;;9107:115:23;9170:7;9196:19;9204:3;4546:18;;4464:107;8861:165;-1:-1:-1;;;;;8994:23:23;;8941:4;4352:19;;;:12;;;:19;;;;;;:24;;8964:55;8957:62;8861:165;-1:-1:-1;;;8861:165:23:o;8306:150::-;8376:4;8399:50;8404:3;-1:-1:-1;;;;;8424:23:23;;8399:4;:50::i;4276:133:53:-;4341:16;;-1:-1:-1;;;;;4341:16:53;4327:10;:30;4323:80;;4380:12;;-1:-1:-1;;;4380:12:53;;;;;;;;;;;9564:156:23;9638:7;9688:22;9692:3;9704:5;9688:3;:22::i;8624:156::-;8697:4;8720:53;8728:3;-1:-1:-1;;;;;8748:23:23;;8720:7;:53::i;1863:96:54:-;1930:22;1946:5;1930:15;:22::i;9501:750:64:-;9729:22;;9788:17;:10;:17;:::i;:::-;:19;;-1:-1:-1;;;9788:19:64;;:17;;;;:19;;:17;:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9763:44;-1:-1:-1;9838:206:64;9872:14;9763:44;9933:16;9963:15;9992:16;;;;;;;;:::i;:::-;10022:12;;9838:20;:206::i;:::-;10111:42;;;;:26;;;:42;;;;;;;;;:50;;;;;;;;;-1:-1:-1;;;;;10111:50:64;;;;;;;;;;;;;;;;;;;;;;;;;;;9818:226;;-1:-1:-1;10111:50:64;;:42;;:50;;;;:42;;:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10111:50:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10111:50:64;-1:-1:-1;;;;;10111:50:64;-1:-1:-1;;;;;10111:50:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10111:50:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10111:50:64;;;;;;;;;;;;;;;;-1:-1:-1;;;10111:50:64;;;;-1:-1:-1;;;10111:50:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10111:50:64;;;;-1:-1:-1;;;10111:50:64;;-1:-1:-1;10111:50:64;;;;;;;;;;;;;;;-1:-1:-1;;;;;10111:50:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10111:50:64;;;;;;;;;;;;;;;;-1:-1:-1;;;10111:50:64;;;;-1:-1:-1;;;10111:50:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10111:50:64;;;;-1:-1:-1;;;10111:50:64;;-1:-1:-1;10111:50:64;;;;;;;;;;;;;;-1:-1:-1;;;;;10111:50:64;;;;;;-1:-1:-1;;;10111:50:64;;;;-1:-1:-1;;;;;;10111:50:64;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10111:50:64;;;;-1:-1:-1;;;10111:50:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10111:50:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10111:50:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10111:50:64;;;;-1:-1:-1;;10111:52:64;;-1:-1:-1;;;10111:52:64;;:50;;;;-1:-1:-1;10111:52:64;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10107:138;;;10179:42;;;;:26;;;:42;;;;;10224:10;;10179:55;10224:10;10179:42;:55;:::i;:::-;-1:-1:-1;;10107:138:64;9753:498;9501:750;;;;;;:::o;10420:763::-;10585:39;;;;10518:37;10558:67;;;:26;;;:67;;;;;10766:19;;;;10734:28;;:51;10730:196;;10801:27;;-1:-1:-1;;;10801:27:64;;;;;16303:25:78;;;10801::64;;;;16276:18:78;;10801:27:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10878:16:64;;;;10842:53;;-1:-1:-1;;;;;;10878:16:64;10842:35;:53::i;:::-;10909:7;10420:763;:::o;10730:196::-;10969:16;;;;10936:50;;-1:-1:-1;;;;;10969:16:64;10936:32;:50::i;:::-;11020:16;;;;-1:-1:-1;;;;;11020:16:64;;;10997:1;:40;;;:22;:40;;;;;:53;;;;-1:-1:-1;;;;;;10997:53:64;;;;;;;;;11020:16;10997:53;;;;;11040:10;;10997:40;11040:10;;10997:40;;:53;;;;;;;:::i;:::-;-1:-1:-1;;;10997:53:64;;;;;;;;;;-1:-1:-1;;;;;;10997:53:64;-1:-1:-1;;;;;10997:53:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;10997:53:64;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;11091:17:64;;;;;;;;;;-1:-1:-1;;;;;11091:17:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11091:10:64;;:17;;:10;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11091:17:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11091:17:64;-1:-1:-1;;;;;11091:17:64;-1:-1:-1;;;;;11091:17:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11091:17:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11091:17:64;;;;;;;;;;;;;;;;-1:-1:-1;;;11091:17:64;;;;-1:-1:-1;;;11091:17:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11091:17:64;;;;-1:-1:-1;;;11091:17:64;;-1:-1:-1;11091:17:64;;;;;;;;;;;;;;;-1:-1:-1;;;;;11091:17:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11091:17:64;;;;;;;;;;;;;;;;-1:-1:-1;;;11091:17:64;;;;-1:-1:-1;;;11091:17:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11091:17:64;;;;-1:-1:-1;;;11091:17:64;;-1:-1:-1;11091:17:64;;;;;;;;;;;;;;-1:-1:-1;;;;;11091:17:64;;;;;;-1:-1:-1;;;11091:17:64;;;;-1:-1:-1;;;;;;11091:17:64;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11091:17:64;;;;-1:-1:-1;;;11091:17:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11091:17:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11091:17:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11091:17:64;;;;-1:-1:-1;;11091:19:64;;-1:-1:-1;;;11091:19:64;;:17;;;;-1:-1:-1;11091:19:64;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11060:28;:50;11130:16;;11121:55;;-1:-1:-1;;;11121:55:64;;-1:-1:-1;;;;;11130:16:64;;;;11121:43;;:55;;11165:10;;11121:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7255:254:54;7422:17;:23;-1:-1:-1;;;7422:23:54;;-1:-1:-1;;;;;7422:23:54;7312:16;-1:-1:-1;;;;;;;;;;;7470:32:54;7422:23;7470:21;:32::i;:::-;7455:47;;7349:160;7255:254;;:::o;2215:404:23:-;2278:4;4352:19;;;:12;;;:19;;;;;;2294:319;;-1:-1:-1;2336:23:23;;;;;;;;:11;:23;;;;;;;;;;;;;2516:18;;2494:19;;;:12;;;:19;;;;;;:40;;;;2548:11;;2294:319;-1:-1:-1;2597:5:23;2590:12;;4913:118;4980:7;5006:3;:11;;5018:5;5006:18;;;;;;;;:::i;:::-;;;;;;;;;4999:25;;4913:118;;;;:::o;2787:1388::-;2853:4;2990:19;;;:12;;;:19;;;;;;3024:15;;3020:1149;;3393:21;3417:14;3430:1;3417:10;:14;:::i;:::-;3465:18;;3393:38;;-1:-1:-1;3445:17:23;;3465:22;;3486:1;;3465:22;:::i;:::-;3445:42;;3519:13;3506:9;:26;3502:398;;3552:17;3572:3;:11;;3584:9;3572:22;;;;;;;;:::i;:::-;;;;;;;;;3552:42;;3723:9;3694:3;:11;;3706:13;3694:26;;;;;;;;:::i;:::-;;;;;;;;;;;;:38;;;;3806:23;;;:12;;;:23;;;;;:36;;;3502:398;3978:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4070:3;:12;;:19;4083:5;4070:19;;;;;;;;;;;4063:26;;;4111:4;4104:11;;;;;;;3020:1149;4153:5;4146:12;;;;;3020:1149;2859:1316;2787:1388;;;;:::o;1965:413:54:-;-1:-1:-1;;;;;;;;;;;2091:25:54;;-1:-1:-1;;;;;2091:25:54;;;2082:34;;;;2078:94;;2139:22;;-1:-1:-1;;;2139:22:54;;;;;;;;;;;2078:94;2193:14;;-1:-1:-1;;;;;;;;2193:14:54;;;;;2185:22;;;;2181:77;;;2230:17;;-1:-1:-1;;;2230:17:54;;;;;;;;;;;2181:77;2298:18;;-1:-1:-1;;;;;;;;2298:18:54;;;;;2272:22;;-1:-1:-1;;;2280:14:54;;;;2272:5;:22;:::i;:::-;2271:45;;;;:::i;:::-;-1:-1:-1;;;;;2271:50:54;;2267:105;;2344:17;;-1:-1:-1;;;2344:17:54;;;;;;;;;;;7999:1528;8336:10;;8235:22;8360;;;:15;;;:22;;;;;;;;-1:-1:-1;;;;;8360:40:54;;;;;;;;;;8235:22;;-1:-1:-1;;;;;;;;;;;1522:42:54;8360:40;;8356:101;;;8423:23;;-1:-1:-1;;;8423:23:54;;;;;;;;;;;8356:101;8467:22;;;;:15;;;:22;;;;;;;;-1:-1:-1;;;;;8467:40:54;;;;;;;;;:47;;-1:-1:-1;;8467:47:54;8510:4;8467:47;;;;;;8524:26;;:45;;8554:15;;8467:22;8524:45;;8554:15;;8524:45;:::i;:::-;;;;-1:-1:-1;;8579:29:54;;;;:22;;;:29;;;;;;;;:45;;;;;;;;:64;;8628:15;;8579:29;:64;;8628:15;;8579:64;:::i;:::-;;;;-1:-1:-1;;8654:23:54;8680:29;;;:22;;;:29;;;;;;;;8710:24;;;;8680:55;;;;;;;;;8771:45;;;;;;8831:33;;;8827:105;;;8880:24;;;:41;;;8827:105;8942:26;8971:40;8993:4;8999:11;8971:21;:40::i;:::-;8942:69;-1:-1:-1;9036:36:54;9026:6;:46;;;;;;;;:::i;:::-;;9022:499;;9092:28;9114:5;9092:21;:28::i;:::-;9088:264;;;9160:4;9140:24;;9022:499;;9088:264;9308:29;;-1:-1:-1;;;9308:29:54;;:17;;;:29;;;68141:25:78;-1:-1:-1;;;;;68202:31:78;;68182:18;;;68175:59;9308:22:54;;;;68114:18:78;;9308:29:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9022:499;;;9382:30;9372:6;:40;;;;;;;;:::i;:::-;;9368:153;;9498:12;;-1:-1:-1;;;9498:12:54;;;;;16303:25:78;;;9498:10:54;;;;16276:18:78;;9498:12:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9368:153;8259:1268;;;;;7999:1528;;;;;;;;:::o;10097:149::-;10161:23;-1:-1:-1;;;;;;;;;;;10212:27:54;;-1:-1:-1;;;10212:27:54;;:17;;;:27;;;68141:25:78;-1:-1:-1;;;;;68202:31:78;;68182:18;;;68175:59;10161:41:54;;-1:-1:-1;10212:24:54;;;;68114:18:78;;10212:27:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6042:619;-1:-1:-1;;;;;;;;;;;6210:28:54;6232:5;6210:21;:28::i;:::-;6205:66;;6254:7;6042:619;:::o;6205:66::-;6345:33;;-1:-1:-1;;;6345:33:54;;:17;;;:33;;;68141:25:78;-1:-1:-1;;;;;68202:31:78;;68182:18;;;68175:59;6345:26:54;;;;68114:18:78;;6345:33:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6341:140;;;6398:17;;;:23;-1:-1:-1;;;;;6398:32:54;;;-1:-1:-1;;;6398:23:54;;;;:32;6394:77;;6450:7;6042:619;:::o;6394:77::-;6537:31;;-1:-1:-1;;;6537:31:54;;:17;;;:31;;;68141:25:78;-1:-1:-1;;;;;68202:31:78;;68182:18;;;68175:59;6537:24:54;;;;68114:18:78;;6537:31:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6621:33:54;;-1:-1:-1;;;;;;6621:33:54;-1:-1:-1;;;;;6621:33:54;;;;;;;;;;;-1:-1:-1;;6042:619:54:o;6861:204::-;-1:-1:-1;;;;;;;;;;;7040:18:54;;6929:4;;1522:42;7012:46;;-1:-1:-1;;;;;;;;7040:18:54;;;;;7012:25;:46;:::i;:::-;-1:-1:-1;;;;;7003:55:54;:5;-1:-1:-1;;;;;7003:55:54;;6996:62;;;6861:204;;;:::o;4038:1880::-;4286:20;;4169:19;;-1:-1:-1;;;;;;;;;;;1522:42:54;4169:19;;4310:3;;4272:34;;4286:20;;4272:11;:34;:::i;:::-;4271:42;;;;:::i;:::-;4349:25;;-1:-1:-1;;;4349:25:54;;;;;16303::78;;;4251:62:54;;-1:-1:-1;4323:23:54;;4349;;;;16276:18:78;;4349:25:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4323:51;;4512:9;4482:4;:26;;;:39;4478:116;;4544:39;4537:46;;;;;;;4478:116;4655:9;4637:15;:27;4633:101;;;4687:36;4680:43;;;;;;;4633:101;5714:26;;;;5700:40;;:11;:40;:::i;:::-;5669:27;5681:15;5669:9;:27;:::i;:::-;:71;5665:139;;5763:30;5756:37;;;;;;;5665:139;-1:-1:-1;5874:37:54;;4038:1880;-1:-1:-1;;;;;4038:1880:54:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;14:129:78:-;-1:-1:-1;;;;;92:5:78;88:30;81:5;78:41;68:69;;133:1;130;123:12;148:132;215:20;;244:30;215:20;244:30;:::i;:::-;148:132;;;:::o;285:245::-;343:6;396:2;384:9;375:7;371:23;367:32;364:52;;;412:1;409;402:12;364:52;451:9;438:23;470:30;494:5;470:30;:::i;894:131::-;-1:-1:-1;;;;;969:31:78;;959:42;;949:70;;1015:1;1012;1005:12;1030:386;1097:6;1105;1158:2;1146:9;1137:7;1133:23;1129:32;1126:52;;;1174:1;1171;1164:12;1126:52;1213:9;1200:23;1232:30;1256:5;1232:30;:::i;:::-;1281:5;-1:-1:-1;1338:2:78;1323:18;;1310:32;1351:33;1310:32;1351:33;:::i;:::-;1403:7;1393:17;;;1030:386;;;;;:::o;1720:700::-;1782:3;1821:4;1816:3;1812:14;-1:-1:-1;;;;;1857:5:78;1851:12;1847:37;1842:3;1835:50;1904:4;1954:2;1947:5;1943:14;1937:21;1988:4;1983:2;1978:3;1974:12;1967:26;2015:4;2048:12;2042:19;2083:6;2077:4;2070:20;2117:2;2112:3;2108:12;2099:21;;2161:2;2147:12;2143:21;2129:35;;2182:1;2173:10;;2192:201;2206:6;2203:1;2200:13;2192:201;;;2273:13;;-1:-1:-1;;;;;2269:39:78;2255:54;;2368:15;;;;2305:1;2221:9;;;;;2331:14;;;;2192:201;;;-1:-1:-1;2409:5:78;1720:700;-1:-1:-1;;;;;;1720:700:78:o;2425:422::-;2466:3;2504:5;2498:12;2531:6;2526:3;2519:19;2556:1;2566:162;2580:6;2577:1;2574:13;2566:162;;;2642:4;2698:13;;;2694:22;;2688:29;2670:11;;;2666:20;;2659:59;2595:12;2566:162;;;2570:3;2773:1;2766:4;2757:6;2752:3;2748:16;2744:27;2737:38;2836:4;2829:2;2825:7;2820:2;2812:6;2808:15;2804:29;2799:3;2795:39;2791:50;2784:57;;;2425:422;;;;:::o;2852:556::-;2916:3;2960:5;2954:12;2987:4;2982:3;2975:17;3013:67;3074:4;3069:3;3065:14;3051:12;3013:67;:::i;:::-;3001:79;;3128:4;3121:5;3117:16;3111:23;3176:3;3170:4;3166:14;3159:4;3154:3;3150:14;3143:38;3230:4;3213:14;3207:21;3203:32;3197:4;3190:46;3293:4;3277:14;3273:25;3267:32;3245:54;;3332:4;3325;3319;3315:15;3308:29;3353:49;3396:4;3390;3386:15;3370:14;3353:49;:::i;:::-;3346:56;2852:556;-1:-1:-1;;;;;2852:556:78:o;3413:1909::-;3496:3;3534:5;3528:12;3561:6;3556:3;3549:19;3587:4;3628:2;3623:3;3619:12;3653:11;3680;3673:18;;3730:6;3727:1;3723:14;3716:5;3712:26;3700:38;;3772:2;3765:5;3761:14;3793:1;3803:1493;3817:6;3814:1;3811:13;3803:1493;;;3888:5;3882:4;3878:16;3873:3;3866:29;3924:6;3918:13;3954:4;3997:2;3991:9;4026:2;4020:4;4013:16;4070:12;4064:19;4106:4;4145:2;4140;4134:4;4130:13;4123:25;4175:71;4241:3;4235:4;4231:14;4215;4175:71;:::i;:::-;4161:85;;4305:2;4291:12;4287:21;4281:28;4336:2;4332:7;4362:2;4422;4415:4;4407:6;4403:17;4399:26;4394:2;4388:4;4384:13;4377:49;4453:63;4509:6;4493:14;4453:63;:::i;:::-;4545:21;;;4539:28;4590:3;4613:13;;;4606:25;;;;4672:21;;;4666:28;-1:-1:-1;;;;;4755:39:78;4717:3;4740:13;;;4733:62;;;;4840:21;;;4834:28;-1:-1:-1;;;;;;4830:55:78;4815:13;;;4808:78;;;;4927:21;;;4921:28;4989:17;;;4985:26;;;4868:3;4969:14;;4962:50;-1:-1:-1;4921:28:78;4439:77;-1:-1:-1;5038:40:78;4439:77;4921:28;5038:40;:::i;:::-;5119:11;;;5113:18;605:13;;598:21;5176:13;;;586:34;5113:18;5025:53;-1:-1:-1;5144:46:78;;-1:-1:-1;;535:91:78;5144:46;5274:12;;;;5211:5;-1:-1:-1;;5239:15:78;;;;3839:1;3832:9;3803:1493;;;-1:-1:-1;5312:4:78;;3413:1909;-1:-1:-1;;;;;;;3413:1909:78:o;5327:1409::-;5390:3;5428:5;5422:12;5455:6;5450:3;5443:19;5481:4;5522:2;5517:3;5513:12;5547:11;5574;5567:18;;5624:6;5621:1;5617:14;5610:5;5606:26;5594:38;;5666:2;5659:5;5655:14;5687:1;5708;5718:992;5734:6;5729:3;5726:15;5718:992;;;5809:5;5803:4;5799:16;5794:3;5787:29;5845:6;5839:13;5875:4;5918:2;5912:9;5947:2;5941:4;5934:16;5977:66;6039:2;6033:4;6029:13;6015:12;5977:66;:::i;:::-;6084:11;;;6078:18;6131:17;;;6116:13;;;6109:40;6210:21;;6244:24;;;6334:23;;;;6381:1;;-1:-1:-1;6290:15:78;;;-1:-1:-1;6395:209:78;6411:8;6406:3;6403:17;6395:209;;;6488:15;;6474:30;;6573:17;;;;6439:1;6430:11;;;;;6530:14;;;;6395:209;;;-1:-1:-1;6688:12:78;;;;6625:5;-1:-1:-1;;;6653:15:78;;;;5760:1;5751:11;5718:992;;;-1:-1:-1;6726:4:78;;5327:1409;-1:-1:-1;;;;;;;;5327:1409:78:o;6741:1318::-;6980:6;6973:14;6966:22;6955:9;6948:41;7025:2;7020;7009:9;7005:18;6998:30;6929:4;7063:6;7057:13;7106:4;7101:2;7090:9;7086:18;7079:32;7134:72;7201:3;7190:9;7186:19;7172:12;7134:72;:::i;:::-;7120:86;;-1:-1:-1;;;;;7264:2:78;7256:6;7252:15;7246:22;7242:47;7237:2;7226:9;7222:18;7215:75;7345:2;7337:6;7333:15;7327:22;7321:3;7310:9;7306:19;7299:51;7399:2;7391:6;7387:15;7381:22;7426:2;7422:7;7494:2;7482:9;7474:6;7470:22;7466:31;7460:3;7449:9;7445:19;7438:60;7521:82;7596:6;7580:14;7521:82;:::i;:::-;7507:96;;7652:3;7644:6;7640:16;7634:23;7612:45;;7722:2;7710:9;7702:6;7698:22;7694:31;7688:3;7677:9;7673:19;7666:60;7749:62;7804:6;7788:14;7749:62;:::i;:::-;7735:76;;7867:3;7859:6;7855:16;7849:23;7842:4;7831:9;7827:20;7820:53;7922:3;7914:6;7910:16;7904:23;7882:45;;7992:2;7980:9;7972:6;7968:22;7964:31;7958:3;7947:9;7943:19;7936:60;;8013:40;8046:6;8030:14;8013:40;:::i;:::-;8005:48;6741:1318;-1:-1:-1;;;;;;6741:1318:78:o;8064:866::-;8175:6;8183;8191;8244:2;8232:9;8223:7;8219:23;8215:32;8212:52;;;8260:1;8257;8250:12;8212:52;8300:9;8287:23;-1:-1:-1;;;;;8370:2:78;8362:6;8359:14;8356:34;;;8386:1;8383;8376:12;8356:34;8424:6;8413:9;8409:22;8399:32;;8469:7;8462:4;8458:2;8454:13;8450:27;8440:55;;8491:1;8488;8481:12;8440:55;8531:2;8518:16;8557:2;8549:6;8546:14;8543:34;;;8573:1;8570;8563:12;8543:34;8620:7;8613:4;8604:6;8600:2;8596:15;8592:26;8589:39;8586:59;;;8641:1;8638;8631:12;8586:59;8672:4;8664:13;;;;-1:-1:-1;8696:6:78;-1:-1:-1;8740:20:78;;;8727:34;;8773:16;;;8770:36;;;8802:1;8799;8792:12;8770:36;-1:-1:-1;8825:24:78;;8883:2;8865:16;;;8861:25;8858:45;;;8899:1;8896;8889:12;8858:45;8922:2;8912:12;;;8064:866;;;;;:::o;8935:673::-;9246:3;9235:9;9228:22;9209:4;9273:66;9334:3;9323:9;9319:19;9311:6;9273:66;:::i;:::-;-1:-1:-1;;;;;9379:6:78;9375:31;9370:2;9359:9;9355:18;9348:59;9443:6;9438:2;9427:9;9423:18;9416:34;9486:6;9481:2;9470:9;9466:18;9459:34;9542:9;9534:6;9530:22;9524:3;9513:9;9509:19;9502:51;9570:32;9595:6;9587;9570:32;:::i;:::-;9562:40;8935:673;-1:-1:-1;;;;;;;;8935:673:78:o;9613:180::-;9672:6;9725:2;9713:9;9704:7;9700:23;9696:32;9693:52;;;9741:1;9738;9731:12;9693:52;-1:-1:-1;9764:23:78;;9613:180;-1:-1:-1;9613:180:78:o;9798:399::-;9896:6;9949:2;9937:9;9928:7;9924:23;9920:32;9917:52;;;9965:1;9962;9955:12;9917:52;10005:9;9992:23;-1:-1:-1;;;;;10030:6:78;10027:30;10024:50;;;10070:1;10067;10060:12;10024:50;10093:22;;10149:3;10131:16;;;10127:26;10124:46;;;10166:1;10163;10156:12;11435:1865;11496:3;11534:5;11528:12;11561:6;11556:3;11549:19;11587:4;11628:2;11623:3;11619:12;11653:11;11680;11673:18;;11730:6;11727:1;11723:14;11716:5;11712:26;11700:38;;11772:2;11765:5;11761:14;11793:1;11803:1471;11817:6;11814:1;11811:13;11803:1471;;;11888:5;11882:4;11878:16;11873:3;11866:29;11924:6;11918:13;11954:4;11997:2;11991:9;12026:2;12020:4;12013:16;12070:12;12064:19;12106:4;12145:2;12140;12134:4;12130:13;12123:25;12175:60;12230:3;12224:4;12220:14;12204;12175:60;:::i;:::-;12161:74;;12294:2;12280:12;12276:21;12270:28;12325:2;12321:7;12351:2;12411;12404:4;12396:6;12392:17;12388:26;12383:2;12377:4;12373:13;12366:49;12442:52;12487:6;12471:14;12442:52;:::i;:::-;12523:21;;;12517:28;12568:3;12591:13;;;12584:25;;;;12650:21;;;12644:28;-1:-1:-1;;;;;12733:39:78;12695:3;12718:13;;;12711:62;;;;12818:21;;;12812:28;-1:-1:-1;;;;;;12808:55:78;12793:13;;;12786:78;;;;12905:21;;;12899:28;12967:17;;;12963:26;;;12846:3;12947:14;;12940:50;-1:-1:-1;12899:28:78;12428:66;-1:-1:-1;13016:40:78;12428:66;12899:28;13016:40;:::i;:::-;13097:11;;;13091:18;605:13;;598:21;13154:13;;;586:34;13091:18;13003:53;-1:-1:-1;13122:46:78;;-1:-1:-1;;535:91:78;13122:46;13252:12;;;;13189:5;-1:-1:-1;;13217:15:78;;;;11839:1;11832:9;11803:1471;;13305:1420;13390:3;13428:5;13422:12;13455:6;13450:3;13443:19;13481:4;13522:2;13517:3;13513:12;13547:11;13574;13567:18;;13624:6;13621:1;13617:14;13610:5;13606:26;13594:38;;13666:2;13659:5;13655:14;13687:1;13708;13718:981;13734:6;13729:3;13726:15;13718:981;;;13809:5;13803:4;13799:16;13794:3;13787:29;13845:6;13839:13;13875:4;13918:2;13912:9;13947:2;13941:4;13934:16;13977:55;14028:2;14022:4;14018:13;14004:12;13977:55;:::i;:::-;14073:11;;;14067:18;14120:17;;;14105:13;;;14098:40;14199:21;;14233:24;;;14323:23;;;;14370:1;;-1:-1:-1;14279:15:78;;;-1:-1:-1;14384:209:78;14400:8;14395:3;14392:17;14384:209;;;14477:15;;14463:30;;14562:17;;;;14428:1;14419:11;;;;;14519:14;;;;14384:209;;;-1:-1:-1;14677:12:78;;;;14614:5;-1:-1:-1;;;14642:15:78;;;;13760:1;13751:11;13718:981;;14730:1233;14941:2;14930:9;14923:21;14904:4;14979:6;14973:13;15022:4;15017:2;15006:9;15002:18;14995:32;15050:61;15106:3;15095:9;15091:19;15077:12;15050:61;:::i;:::-;15036:75;;-1:-1:-1;;;;;15169:2:78;15161:6;15157:15;15151:22;15147:47;15142:2;15131:9;15127:18;15120:75;15249:2;15241:6;15237:15;15231:22;15226:2;15215:9;15211:18;15204:50;15303:2;15295:6;15291:15;15285:22;15330:2;15326:7;15398:2;15386:9;15378:6;15374:22;15370:31;15364:3;15353:9;15349:19;15342:60;15425;15478:6;15462:14;15425:60;:::i;:::-;15411:74;;15534:3;15526:6;15522:16;15516:23;15494:45;;15604:2;15592:9;15584:6;15580:22;15576:31;15570:3;15559:9;15555:19;15548:60;15631:84;15708:6;15692:14;15631:84;:::i;:::-;15617:98;;15770:3;15762:6;15758:16;15752:23;15746:3;15735:9;15731:19;15724:52;15825:3;15817:6;15813:16;15807:23;15785:45;;15896:2;15884:9;15876:6;15872:22;15868:31;15861:4;15850:9;15846:20;15839:61;;15917:40;15950:6;15934:14;15917:40;:::i;15968:184::-;16038:6;16091:2;16079:9;16070:7;16066:23;16062:32;16059:52;;;16107:1;16104;16097:12;16059:52;-1:-1:-1;16130:16:78;;15968:184;-1:-1:-1;15968:184:78:o;16339:127::-;16400:10;16395:3;16391:20;16388:1;16381:31;16431:4;16428:1;16421:15;16455:4;16452:1;16445:15;16471:380;16550:1;16546:12;;;;16593;;;16614:61;;16668:4;16660:6;16656:17;16646:27;;16614:61;16721:2;16713:6;16710:14;16690:18;16687:38;16684:161;;16767:10;16762:3;16758:20;16755:1;16748:31;16802:4;16799:1;16792:15;16830:4;16827:1;16820:15;16684:161;;16471:380;;;:::o;16856:271::-;17047:2;17036:9;17029:21;17010:4;17067:54;17117:2;17106:9;17102:18;17094:6;17067:54;:::i;17132:118::-;17218:5;17211:13;17204:21;17197:5;17194:32;17184:60;;17240:1;17237;17230:12;17255:245;17322:6;17375:2;17363:9;17354:7;17350:23;17346:32;17343:52;;;17391:1;17388;17381:12;17343:52;17423:9;17417:16;17442:28;17464:5;17442:28;:::i;17505:127::-;17566:10;17561:3;17557:20;17554:1;17547:31;17597:4;17594:1;17587:15;17621:4;17618:1;17611:15;17637:125;17702:9;;;17723:10;;;17720:36;;;17736:18;;:::i;17767:127::-;17828:10;17823:3;17819:20;17816:1;17809:31;17859:4;17856:1;17849:15;17883:4;17880:1;17873:15;18025:146;18087:78;18105:3;18098:5;18095:14;18087:78;;;18161:1;18147:16;;18132:1;18121:13;18087:78;;18176:418;18278:2;18273:3;18270:11;18267:321;;;18314:5;18311:1;18304:16;18358:4;18355:1;18345:18;18428:2;18416:10;18412:19;18409:1;18405:27;18399:4;18395:38;18464:4;18452:10;18449:20;18446:47;;;-1:-1:-1;18487:4:78;18446:47;18506:72;18572:2;18567:3;18563:12;18560:1;18556:20;18550:4;18546:31;18533:11;18506:72;:::i;18599:166::-;-1:-1:-1;;18727:1:78;18723:11;;;18719:24;18715:29;18705:40;18751:1;18747:11;;;;18702:57;;18599:166::o;18770:1206::-;-1:-1:-1;;;;;18889:3:78;18886:27;18883:53;;;18916:18;;:::i;:::-;18945:94;19035:3;18995:38;19027:4;19021:11;18995:38;:::i;:::-;18989:4;18945:94;:::i;:::-;19065:1;19090:2;19085:3;19082:11;19107:1;19102:616;;;;19762:1;19779:3;19776:93;;;-1:-1:-1;19835:19:78;;;19822:33;19776:93;19895:64;19955:3;19948:5;19895:64;:::i;:::-;19889:4;19882:78;;19075:895;;19102:616;17972:1;17965:14;;;18009:4;17996:18;;-1:-1:-1;;19138:17:78;;;19239:9;19261:229;19275:7;19272:1;19269:14;19261:229;;;19364:19;;;19351:33;19336:49;;19471:4;19456:20;;;;19424:1;19412:14;;;;19291:12;19261:229;;;19265:3;19518;19509:7;19506:16;19503:159;;;19642:1;19638:6;19632:3;19626;19623:1;19619:11;19615:21;19611:34;19607:39;19594:9;19589:3;19585:19;19572:33;19568:79;19560:6;19553:95;19503:159;;;19705:1;19699:3;19696:1;19692:11;19688:19;19682:4;19675:33;19075:895;;18770:1206;;;:::o;19981:114::-;20065:4;20058:5;20054:16;20047:5;20044:27;20034:55;;20085:1;20082;20075:12;20100:515;20171:4;20177:6;20237:11;20224:25;20331:2;20327:7;20316:8;20300:14;20296:29;20292:43;20272:18;20268:68;20258:96;;20350:1;20347;20340:12;20258:96;20377:33;;20429:20;;;-1:-1:-1;;;;;;20461:30:78;;20458:50;;;20504:1;20501;20494:12;20458:50;20537:4;20525:17;;-1:-1:-1;20568:14:78;20564:27;;;20554:38;;20551:58;;;20605:1;20602;20595:12;20551:58;20100:515;;;;;:::o;21813:1725::-;21986:5;21973:19;22001:31;22024:7;22001:31;:::i;:::-;22098:4;22089:7;22085:18;22078:3;22074:8;22067:4;22061:11;22057:26;22054:50;22048:4;22041:64;;22124:1;22162:2;22156:4;22152:13;22184:2;22229:58;22283:2;22276:5;22272:14;22265:5;22229:58;:::i;:::-;-1:-1:-1;;;;;22302:13:78;22299:37;22296:63;;;22339:18;;:::i;:::-;22368:116;22470:13;22424:44;22456:10;22450:17;22424:44;:::i;:::-;22412:10;22368:116;:::i;:::-;22510:1;22545:2;22530:13;22527:21;22562:1;22557:683;;;;23286:1;23303:13;23300:113;;;-1:-1:-1;23371:27:78;;;23358:41;23300:113;23445:76;23507:13;23498:7;23445:76;:::i;:::-;23433:10;23426:96;;22520:1012;;22557:683;17972:1;17965:14;;;18009:4;17996:18;;-1:-1:-1;;22593:27:78;;;22710:9;22732:234;22746:7;22743:1;22740:14;22732:234;;;22833:27;;;22820:41;22805:57;;22934:18;;;;22889:15;;;;22762:10;;22732:234;;;22736:3;22994:13;22985:7;22982:26;22979:187;;;23146:1;23142:6;23136:3;23120:13;23117:1;23113:21;23109:31;23105:44;23101:49;23088:9;23075:11;23071:27;23058:41;23054:97;23046:6;23039:113;22979:187;;;23226:2;23210:13;23206:2;23202:22;23198:31;23186:10;23179:51;22520:1012;;;;;;;;21813:1725;;:::o;23543:127::-;23604:10;23599:3;23595:20;23592:1;23585:31;23635:4;23632:1;23625:15;23659:4;23656:1;23649:15;23675:120;23715:1;23741;23731:35;;23746:18;;:::i;:::-;-1:-1:-1;23780:9:78;;23675:120::o;23800:128::-;23867:9;;;23888:11;;;23885:37;;;23902:18;;:::i;23933:326::-;24028:4;24086:11;24073:25;24180:2;24176:7;24165:8;24149:14;24145:29;24141:43;24121:18;24117:68;24107:96;;24199:1;24196;24189:12;24107:96;24220:33;;;;;23933:326;-1:-1:-1;;23933:326:78:o;24264:258::-;24337:4;24331:11;;;24369:17;;-1:-1:-1;;;;;24401:34:78;;24437:22;;;24398:62;24395:88;;;24463:18;;:::i;:::-;24499:4;24492:24;24264:258;:::o;24527:254::-;24600:2;24594:9;24642:4;24630:17;;-1:-1:-1;;;;;24662:34:78;;24698:22;;;24659:62;24656:88;;;24724:18;;:::i;24786:254::-;24859:2;24853:9;24901:4;24889:17;;-1:-1:-1;;;;;24921:34:78;;24957:22;;;24918:62;24915:88;;;24983:18;;:::i;25045:275::-;25116:2;25110:9;25181:2;25162:13;;-1:-1:-1;;25158:27:78;25146:40;;-1:-1:-1;;;;;25201:34:78;;25237:22;;;25198:62;25195:88;;;25263:18;;:::i;:::-;25299:2;25292:22;25045:275;;-1:-1:-1;25045:275:78:o;25325:183::-;25385:4;-1:-1:-1;;;;;25410:6:78;25407:30;25404:56;;;25440:18;;:::i;:::-;-1:-1:-1;25485:1:78;25481:14;25497:4;25477:25;;25325:183::o;25513:1115::-;25568:5;25616:4;25604:9;25599:3;25595:19;25591:30;25588:50;;;25634:1;25631;25624:12;25588:50;25656:23;;:::i;:::-;25647:32;;25716:9;25703:23;25735:32;25759:7;25735:32;:::i;:::-;25776:22;;25817:2;25855:18;;;25842:32;-1:-1:-1;;;;;25886:30:78;;25883:50;;;25929:1;25926;25919:12;25883:50;25952:22;;26005:4;25997:13;;25993:23;-1:-1:-1;25983:51:78;;26030:1;26027;26020:12;25983:51;26066:2;26053:16;26089:60;26105:43;26145:2;26105:43;:::i;:::-;26089:60;:::i;:::-;26183:15;;;26265:1;26261:10;;;;26253:19;;26249:28;;;26214:12;;;;26289:15;;;26286:35;;;26317:1;26314;26307:12;26286:35;26341:11;;;;26361:223;26377:6;26372:3;26369:15;26361:223;;;26459:3;26446:17;26476:33;26501:7;26476:33;:::i;:::-;26522:20;;26394:12;;;;26562;;;;26361:223;;;26616:5;26611:2;26604:5;26600:14;26593:29;;;;;;25513:1115;;;;:::o;26633:198::-;26739:9;26776:49;26810:14;26803:5;26776:49;:::i;26836:574::-;26958:4;26964:6;27024:11;27011:25;27118:2;27114:7;27103:8;27087:14;27083:29;27079:43;27059:18;27055:68;27045:96;;27137:1;27134;27127:12;27045:96;27164:33;;27216:20;;;-1:-1:-1;;;;;;27248:30:78;;27245:50;;;27291:1;27288;27281:12;27245:50;27324:4;27312:17;;-1:-1:-1;27375:1:78;27371:14;;;27355;27351:35;27341:46;;27338:66;;;27400:1;27397;27390:12;27415:295;27485:5;27544:3;27531:17;27630:2;27626:7;27615:8;27599:14;27595:29;27591:43;27571:18;27567:68;27557:96;;27649:1;27646;27639:12;27557:96;27671:33;;;;27415:295;-1:-1:-1;;27415:295:78:o;27715:500::-;27773:5;27780:6;27840:3;27827:17;27926:2;27922:7;27911:8;27895:14;27891:29;27887:43;27867:18;27863:68;27853:96;;27945:1;27942;27935:12;27853:96;27973:33;;28077:4;28064:18;;;-1:-1:-1;28025:21:78;;-1:-1:-1;;;;;;28094:30:78;;28091:50;;;28137:1;28134;28127:12;28091:50;28184:6;28168:14;28164:27;28157:5;28153:39;28150:59;;;28205:1;28202;28195:12;28220:266;28308:6;28303:3;28296:19;28360:6;28353:5;28346:4;28341:3;28337:14;28324:43;-1:-1:-1;28412:1:78;28387:16;;;28405:4;28383:27;;;28376:38;;;;28468:2;28447:15;;;-1:-1:-1;;28443:29:78;28434:39;;;28430:50;;28220:266::o;28491:420::-;28553:3;28599:5;28586:19;28614:31;28637:7;28614:31;:::i;:::-;28679:4;28666:18;28654:31;;28728:55;28777:4;28766:16;;28770:5;28728:55;:::i;:::-;28815:4;28808;28803:3;28799:14;28792:28;28836:69;28899:4;28894:3;28890:14;28876:12;28862;28836:69;:::i;28916:1553::-;28978:3;29016:56;29066:5;29059;29016:56;:::i;:::-;29093:4;29088:3;29081:17;29128:3;29123;29119:13;29169:12;29156:26;29191:32;29215:7;29191:32;:::i;:::-;-1:-1:-1;;;;;29292:16:78;;;29285:4;29276:14;;29269:40;29328:4;;29380:21;;;29367:35;29453:14;29449:33;;;-1:-1:-1;;29445:47:78;29421:72;;29411:100;;29507:1;29504;29497:12;29411:100;29535:37;;;29640:16;;;;29679:2;29595:21;29668:14;;;29665:34;;;29695:1;29692;29685:12;29665:34;29751:6;29748:1;29744:14;29728;29724:35;29715:7;29711:49;29708:69;;;29773:1;29770;29763:12;29708:69;29807:4;29802:2;29793:12;;29786:26;29847:20;;;;-1:-1:-1;29946:1:78;;29894:3;29885:13;;;29956:289;29970:6;29967:1;29964:13;29956:289;;;30047:6;30034:20;30067:33;30092:7;30067:33;:::i;:::-;-1:-1:-1;;;;;30127:33:78;30113:48;;30220:15;;;;30157:1;29985:9;;;;;30183:14;;;;29956:289;;;29960:3;30276:65;30337:2;30330:5;30326:14;30319:5;30276:65;:::i;:::-;30254:87;;30382:3;30375:5;30371:15;30366:2;30361:3;30357:12;30350:37;30403:60;30457:5;30441:14;30403:60;:::i;:::-;30396:67;28916:1553;-1:-1:-1;;;;;;;28916:1553:78:o;30474:131::-;-1:-1:-1;;;;;;30548:32:78;;30538:43;;30528:71;;30595:1;30592;30585:12;30610:132;30677:20;;30706:30;30677:20;30706:30;:::i;30747:128::-;30812:20;;30841:28;30812:20;30841:28;:::i;30880:2545::-;31125:2;31177:21;;;31150:18;;;31233:22;;;31096:4;;31274:2;31292:18;;;31356:1;31352:14;;;31337:30;;31333:39;;31395:6;31096:4;;31450:1946;31466:6;31461:3;31458:15;31450:1946;;;31533:2;31529:7;31589:2;31577:9;31569:6;31565:22;31561:31;31556:3;31549:44;31616:58;31667:6;31659;31616:58;:::i;:::-;31726:2;31713:16;31809:3;31805:8;31800:2;31784:14;31780:23;31776:38;31756:18;31752:63;31742:91;;31829:1;31826;31819:12;31742:91;31899:18;;;31859:27;;31950:56;31859:27;;31950:56;:::i;:::-;32029:4;32070:2;32065;32057:6;32053:15;32046:27;32100:69;32164:3;32156:6;32152:16;32138:12;32100:69;:::i;:::-;32086:83;;32204:65;32265:2;32258:5;32254:14;32247:5;32204:65;:::i;:::-;32292:2;32356;32347:6;32339;32335:19;32331:28;32326:2;32318:6;32314:15;32307:53;32387:61;32441:6;32425:14;32387:61;:::i;:::-;32373:75;;32471:3;32461:13;;32535:2;32528:5;32524:14;32511:28;32506:2;32498:6;32494:15;32487:53;32592:2;32585:5;32581:14;32568:28;32553:43;;32609:32;32633:7;32609:32;:::i;:::-;32664:3;-1:-1:-1;;;;;32708:7:78;32704:32;32699:2;32691:6;32687:15;32680:57;32789:2;32782:5;32778:14;32765:28;32750:43;;32806:32;32830:7;32806:32;:::i;:::-;-1:-1:-1;;;;;;32875:34:78;;32858:15;;;32851:59;32959:53;32997:14;;;33001:5;32959:53;:::i;:::-;32923:89;;;;;;;33075:2;33066:6;33058;33054:19;33050:28;33044:3;33036:6;33032:16;33025:54;33103:63;33159:6;33145:12;33129:14;33103:63;:::i;:::-;33092:74;;;;;33201:28;33225:2;33221;33217:11;33201:28;:::i;:::-;605:13;598:21;33274:15;;;586:34;;;;33374:12;;;;;-1:-1:-1;33339:15:78;;;;31492:1;31483:11;31450:1946;;;-1:-1:-1;33413:6:78;;30880:2545;-1:-1:-1;;;;;;;;;30880:2545:78:o;34064:530::-;34106:5;34159:3;34152:4;34144:6;34140:17;34136:27;34126:55;;34177:1;34174;34167:12;34126:55;34213:6;34200:20;-1:-1:-1;;;;;34235:2:78;34232:26;34229:52;;;34261:18;;:::i;:::-;34305:55;34348:2;34329:13;;-1:-1:-1;;34325:27:78;34354:4;34321:38;34305:55;:::i;:::-;34385:2;34376:7;34369:19;34431:3;34424:4;34419:2;34411:6;34407:15;34403:26;34400:35;34397:55;;;34448:1;34445;34438:12;34397:55;34513:2;34506:4;34498:6;34494:17;34487:4;34478:7;34474:18;34461:55;34561:1;34536:16;;;34554:4;34532:27;34525:38;;;;34540:7;34064:530;-1:-1:-1;;;34064:530:78:o;34599:946::-;34656:5;34704:4;34692:9;34687:3;34683:19;34679:30;34676:50;;;34722:1;34719;34712:12;34676:50;34744:23;;:::i;:::-;34735:32;;34803:9;34790:23;-1:-1:-1;;;;;34873:2:78;34865:6;34862:14;34859:34;;;34889:1;34886;34879:12;34859:34;34916:55;34967:3;34958:6;34947:9;34943:22;34916:55;:::i;:::-;34909:5;34902:70;35025:2;35014:9;35010:18;34997:32;34981:48;;35054:2;35044:8;35041:16;35038:36;;;35070:1;35067;35060:12;35038:36;35093:24;;;;35147:4;35133:12;;;35129:23;35126:43;;;35165:1;35162;35155:12;35126:43;35193:23;;:::i;:::-;35253:2;35240:16;35265:31;35288:7;35265:31;:::i;:::-;35305:24;;35375:2;35367:11;;35354:25;35391:16;;;35388:36;;;35420:1;35417;35410:12;35388:36;35458:40;35494:3;35483:8;35479:2;35475:17;35458:40;:::i;:::-;35453:2;35444:7;35440:16;35433:66;;35531:7;35526:2;35519:5;35515:14;35508:31;;;;34599:946;;;;:::o;35550:2152::-;35612:5;35665:3;35658:4;35650:6;35646:17;35642:27;35632:55;;35683:1;35680;35673:12;35632:55;35719:6;35706:20;35745:4;35769:60;35785:43;35825:2;35785:43;:::i;35769:60::-;35863:15;;;35949:1;35945:10;;;;35933:23;;35929:32;;;35894:12;;;;35973:15;;;35970:35;;;36001:1;35998;35991:12;35970:35;36037:2;36029:6;36025:15;36049:1624;36065:6;36060:3;36057:15;36049:1624;;;36151:3;36138:17;-1:-1:-1;;;;;36228:2:78;36215:11;36212:19;36209:39;;;36244:1;36241;36234:12;36209:39;36271:24;;;;-1:-1:-1;;36368:4:78;36349:12;;;36345:21;;36341:32;36338:52;;;36386:1;36383;36376:12;36338:52;36416:23;;:::i;:::-;36489:2;36485;36481:11;36468:25;36522:2;36512:8;36509:16;36506:36;;;36538:1;36535;36528:12;36506:36;36565:17;;36625:4;36606:12;;;36602:21;;36598:32;36595:52;;;36643:1;36640;36633:12;36595:52;36675:23;;:::i;:::-;36660:38;;36748:2;36744;36740:11;36727:25;36781:2;36771:8;36768:16;36765:36;;;36797:1;36794;36787:12;36765:36;36830:61;36887:3;36882:2;36871:8;36867:2;36863:17;36859:26;36830:61;:::i;:::-;36821:7;36814:78;;36942:4;36938:2;36934:13;36921:27;36977:2;36967:8;36964:16;36961:36;;;36993:1;36990;36983:12;36961:36;37035:61;37092:3;37087:2;37076:8;37072:2;37068:17;37064:26;37035:61;:::i;:::-;37030:2;37021:7;37017:16;37010:87;;37158:2;37154;37150:11;37137:25;37130:4;37121:7;37117:18;37110:53;37201:31;37227:3;37223:2;37219:12;37201:31;:::i;:::-;37196:2;37187:7;37183:16;37176:57;37272:31;37298:3;37294:2;37290:12;37272:31;:::i;:::-;37266:3;37257:7;37253:17;37246:58;37354:4;37350:2;37346:13;37333:27;37389:2;37379:8;37376:16;37373:36;;;37405:1;37402;37395:12;37373:36;37448:49;37493:3;37488:2;37477:8;37473:2;37469:17;37465:26;37448:49;:::i;:::-;37442:3;37433:7;37429:17;37422:76;;;37525:7;37518:5;37511:22;37569:30;37593:4;37589:2;37585:13;37569:30;:::i;:::-;37553:14;;;37546:54;37613:18;;-1:-1:-1;;;37651:12:78;;;;36082;;36049:1624;;37707:2452;37771:5;37824:3;37817:4;37809:6;37805:17;37801:27;37791:55;;37842:1;37839;37832:12;37791:55;37878:6;37865:20;37904:4;37928:60;37944:43;37984:2;37944:43;:::i;37928:60::-;38022:15;;;38084:1;38124:11;;;38112:24;;38108:33;;;38053:12;;;;38010:3;38153:15;;;38150:35;;;38181:1;38178;38171:12;38150:35;38217:2;38209:6;38205:15;38229:1901;38245:6;38240:3;38237:15;38229:1901;;;38331:3;38318:17;-1:-1:-1;;;;;38408:2:78;38395:11;38392:19;38389:109;;;38452:1;38481:2;38477;38470:14;38389:109;38521:24;;;;38568:4;38596:12;;;-1:-1:-1;;38592:26:78;38588:35;-1:-1:-1;38585:125:78;;;38664:1;38693:2;38689;38682:14;38585:125;38736:23;;:::i;:::-;38809:2;38805;38801:11;38788:25;38842:2;38832:8;38829:16;38826:106;;;38886:1;38915:2;38911;38904:14;38826:106;38959:59;39014:3;39009:2;38998:8;38994:2;38990:17;38986:26;38959:59;:::i;:::-;38952:5;38945:74;;39069:2;39065;39061:11;39048:25;39102:2;39092:8;39089:16;39086:109;;;39147:1;39177:3;39172;39165:16;39086:109;39227:8;39223:2;39219:17;39208:28;;;39277:3;39272:2;39267:3;39263:12;39259:22;39249:123;;39324:1;39313:12;;39354:3;39349;39342:16;39249:123;39418:2;39413:3;39409:12;39396:26;39385:37;;39448:61;39464:44;39504:3;39464:44;:::i;39448:61::-;39553:18;;;39649:12;;;39640:22;;39636:31;;;39593:14;;;;39683:17;;;39680:110;;;39742:1;39772:3;39767;39760:16;39680:110;39816:12;;;;39841:174;39859:8;39852:5;39849:19;39841:174;;;39941:19;;39927:34;;39880:14;;;;39987;;;;39841:174;;;40035:14;;;40028:29;-1:-1:-1;40070:18:78;;-1:-1:-1;;;40108:12:78;;;;38262;;38229:1901;;;-1:-1:-1;40148:5:78;;37707:2452;-1:-1:-1;;;;;;;37707:2452:78:o;40164:1302::-;40290:9;40349:4;40341:5;40325:14;40321:26;40317:37;40314:57;;;40367:1;40364;40357:12;40314:57;40395:23;;:::i;:::-;40454:5;40441:19;-1:-1:-1;;;;;40520:2:78;40512:6;40509:14;40506:34;;;40536:1;40533;40526:12;40506:34;40565:62;40612:14;40603:6;40596:5;40592:18;40565:62;:::i;:::-;40556:7;40549:79;40662:33;40691:2;40684:5;40680:14;40662:33;:::i;:::-;40657:2;40648:7;40644:16;40637:59;40754:2;40747:5;40743:14;40730:28;40725:2;40716:7;40712:16;40705:54;40808:2;40801:5;40797:14;40784:28;40768:44;;40837:2;40827:8;40824:16;40821:36;;;40853:1;40850;40843:12;40821:36;40891:74;40950:14;40939:8;40932:5;40928:20;40891:74;:::i;:::-;40886:2;40877:7;40873:16;40866:100;41015:3;41008:5;41004:15;40991:29;40975:45;;41045:2;41035:8;41032:16;41029:36;;;41061:1;41058;41051:12;41029:36;41100:76;41161:14;41150:8;41143:5;41139:20;41100:76;:::i;:::-;41094:3;41085:7;41081:17;41074:103;41236:3;41229:5;41225:15;41212:29;41206:3;41197:7;41193:17;41186:56;41291:3;41284:5;41280:15;41267:29;41251:45;;41321:2;41311:8;41308:16;41305:36;;;41337:1;41334;41327:12;41305:36;;41376:54;41415:14;41404:8;41397:5;41393:20;41376:54;:::i;:::-;41370:3;41357:17;;41350:81;-1:-1:-1;41361:7:78;40164:1302;-1:-1:-1;;40164:1302:78:o;41471:174::-;41515:11;41567:3;41554:17;41580:30;41604:5;41580:30;:::i;41834:168::-;41907:9;;;41938;;41955:15;;;41949:22;;41935:37;41925:71;;41976:18;;:::i;42007:322::-;42102:5;42096:12;42131:1;42124:5;42117:16;42159:6;42152:14;42142:181;;42200:5;42197:1;42190:16;42244:4;42241:1;42231:18;42262:51;42305:6;42299:4;42295:17;42289:4;42262:51;:::i;42334:405::-;-1:-1:-1;;;42417:6:78;42414:32;42411:58;;;42449:18;;:::i;:::-;42498:5;42492:12;42527:6;42520:5;42513:21;42557:6;42549;42546:18;42543:190;;;42597:5;42594:1;42587:16;42641:4;42638:1;42628:18;42659:64;42715:6;42709:4;42705:17;42696:6;42690:4;42686:17;42659:64;:::i;42744:153::-;42822:1;42816:4;42809:15;42833:58;42888:1;42882:4;42878:12;42833:58;:::i;42902:512::-;42971:38;43003:4;42997:11;42971:38;:::i;:::-;43035:6;43028:14;43018:390;;43084:2;43076:6;43073:14;43105:1;43100:258;;;;-1:-1:-1;;43394:1:78;43381:15;;4953:1319:64:o;43100:258:78:-;43135:4;43132:1;43125:15;43182:4;43179:1;43169:18;43204:76;43274:2;43266:6;43262:15;43259:1;43255:23;43249:4;43245:34;43241:1;43235:4;43231:12;43204:76;:::i;:::-;43310:1;43297:15;;;43329;;43066:332;43018:390;42902:512;:::o;43419:235::-;43499:1;43493:4;43486:15;43510:58;43565:1;43559:4;43555:12;43510:58;:::i;:::-;43598:1;43594;43588:4;43584:12;43577:23;43609:39;43645:1;43639:4;43635:12;43609:39;:::i;43659:2836::-;43781:73;43848:5;43841;43781:73;:::i;:::-;43891:2;43878:16;43903:32;43927:7;43903:32;:::i;:::-;41752:11;;-1:-1:-1;;;;;;41748:41:78;-1:-1:-1;;;;;41791:30:78;;41745:77;41732:91;;43944:60;44023:1;44061:2;44055:4;44051:13;44083:2;44128:103;44227:2;44223;44219:11;44215:2;44128:103;:::i;:::-;44094:137;;-1:-1:-1;;;;;44298:2:78;44283:13;44280:21;44277:47;;;44304:18;;:::i;:::-;44333:65;44384:13;44372:10;44333:65;:::i;:::-;44451:1;44461:22;;;44504:17;;;;44451:1;44550:242;44564:13;44561:1;44558:20;44550:242;;;44649:6;44636:20;44669:33;44694:7;44669:33;:::i;:::-;44760:12;;;44753:29;44725:15;;;;44586:10;;44550:242;;;44554:3;44831:1;44825:4;44821:12;44801:32;;44852:82;44930:2;44923:5;44919:14;44912:5;44852:82;:::i;:::-;44842:92;;44971:2;44958:16;44943:31;;44983;45006:7;44983:31;:::i;:::-;45051:19;;-1:-1:-1;;45047:34:78;45096:4;45083:18;;45044:58;45023:80;;;45142:1;45132:12;;;45189:52;45229:11;;;45233:2;45189:52;:::i;:::-;45153:88;;;;45271:2;45256:13;45253:21;45250:47;;;45277:18;;:::i;:::-;45306:120;45412:13;45364:46;45396:12;45390:19;45364:46;:::i;:::-;45350:12;45306:120;:::i;:::-;45452:2;45435:19;;45488:2;45473:13;45470:21;45505:1;45500:692;;;;46238:2;46256:13;46253:115;;;-1:-1:-1;46324:29:78;;;46311:43;46253:115;46402:76;46464:13;46455:7;46402:76;:::i;:::-;46388:12;46381:98;;45463:1026;;45500:692;17972:1;17965:14;;;18009:4;17996:18;;-1:-1:-1;;45536:27:78;;;45657:2;45672:242;45688:7;45683:3;45680:16;45672:242;;;45779:29;;;45766:43;45751:59;;45882:18;;;;45837:15;;;;45706:12;;45672:242;;;45676:3;45942:13;45933:7;45930:26;45927:189;;;46096:1;46092:6;46086:3;46070:13;46067:1;46063:21;46059:31;46055:44;46051:49;46038:9;46023:13;46019:29;46006:43;46002:99;45994:6;45987:115;45927:189;-1:-1:-1;;;;;46154:22:78;;;46150:31;;;46129:53;;;-1:-1:-1;;;;43659:2836:78:o;46500:174::-;46544:11;46596:3;46583:17;46609:30;46633:5;46609:30;:::i;46910:170::-;46952:11;47004:3;46991:17;47017:28;47039:5;47017:28;:::i;47282:3977::-;47429:5;47416:19;47514:3;47510:8;47502:5;47486:14;47482:26;47478:41;47458:18;47454:66;47444:94;;47534:1;47531;47524:12;47444:94;47559:30;;47608:71;47559:30;;47608:71;:::i;:::-;47698:67;47762:2;47758;47698:67;:::i;:::-;47802:2;47789:16;47814:32;47838:7;47814:32;:::i;:::-;41752:11;;-1:-1:-1;;;;;;41748:41:78;-1:-1:-1;;;;;41791:30:78;;41745:77;41732:91;;47855:60;47934:1;47972:2;47966:4;47962:13;47994:2;48039:103;48138:2;48134;48130:11;48126:2;48039:103;:::i;:::-;48005:137;;-1:-1:-1;;;;;48209:2:78;48194:13;48191:21;48188:47;;;48215:18;;:::i;:::-;48244:65;48295:13;48283:10;48244:65;:::i;:::-;48362:1;48372:22;;;48415:17;;;;48362:1;48461:281;48475:13;48472:1;48469:20;48461:281;;;48560:6;48547:20;48580:33;48605:7;48580:33;:::i;:::-;48708:12;;;48701:31;48673:15;;;;48497:10;;48461:281;;;48465:3;48781:1;48775:4;48771:12;48751:32;;48802:76;48874:2;48870;48866:11;48862:2;48802:76;:::i;:::-;48792:86;;48915:2;48902:16;48887:31;;48927;48950:7;48927:31;:::i;:::-;48995:19;;-1:-1:-1;;48991:34:78;49040:4;49027:18;;48988:58;48967:80;;;49086:1;49076:12;;;49133:52;49173:11;;;49177:2;49133:52;:::i;:::-;49097:88;;;;49215:2;49200:13;49197:21;49194:47;;;49221:18;;:::i;:::-;49250:120;49356:13;49308:46;49340:12;49334:19;49308:46;:::i;49250:120::-;49396:2;49379:19;;49432:2;49417:13;49414:21;49449:1;49444:692;;;;50182:2;50167:17;;50200:13;50197:115;;;50287:9;50272:13;50268:29;50255:43;50244:54;;50197:115;50346:76;50408:13;50399:7;50346:76;:::i;:::-;50332:12;50325:98;49407:1026;;49444:692;17972:1;17965:14;;;18009:4;17996:18;;-1:-1:-1;;49480:27:78;;;-1:-1:-1;49601:2:78;49616:242;49632:7;49627:3;49624:16;49616:242;;;49723:29;;;49710:43;49695:59;;49826:18;;;;49781:15;;;;49650:12;;49616:242;;;49620:3;49886:13;49877:7;49874:26;49871:189;;;50040:1;50036:6;50030:3;50014:13;50011:1;50007:21;50003:31;49999:44;49995:49;49982:9;49967:13;49963:29;49950:43;49946:99;49938:6;49931:115;49871:189;;50122:2;50106:13;50102:2;50098:22;50094:31;50080:12;50073:53;49407:1026;;;;;50442:171;50532:80;50608:2;50602:4;50598:13;50592:4;50532:80;:::i;:::-;50528:1;50522:4;50518:12;50442:171;:::i;:::-;50666:2;50660:4;50656:13;50643:27;50639:1;50633:4;50629:12;50622:49;50710:1;50704:4;50700:12;50680:32;;50721:102;50781:41;50818:2;50812:4;50808:13;50781:41;:::i;:::-;41752:11;;-1:-1:-1;;;;;;41748:41:78;-1:-1:-1;;;;;41791:30:78;;;;41745:77;41732:91;;41650:179;50721:102;50832:103;50892:42;50929:3;50923:4;50919:14;50892:42;:::i;:::-;46771:11;;-1:-1:-1;;46807:40:78;46857:3;46853:15;;;;46870:26;46849:48;46804:94;46791:108;;46679:226;50832:103;50980:57;51032:3;51026:4;51022:14;51016:4;50980:57;:::i;:::-;50944:93;;;;51046:100;51132:13;51117;51112:2;51106:4;51102:13;51046:100;:::i;:::-;51155:98;51212:40;51248:2;51241:5;51237:14;51212:40;:::i;:::-;51207:2;51201:4;51197:13;47199:3;47195:8;47188:4;47182:11;47178:26;47265:3;47256:5;47249:13;47242:21;47238:31;47229:7;47226:44;47220:4;47213:58;;47085:192;;;51155:98;;;;;;;47282:3977;;:::o;51264:1593::-;-1:-1:-1;;;51412:3:78;51409:29;51406:55;;;51441:18;;:::i;:::-;51490:4;51484:11;51517:3;51511:4;51504:17;51541:6;51536:3;51533:15;51530:886;;;51581:2;51619:6;51615:2;51611:15;51673:2;51664:7;51660:16;51652:6;51649:28;51639:62;;51681:18;;:::i;:::-;51739:3;51735:2;51731:12;51789:2;51778:9;51774:18;51769:3;51766:27;51756:61;;51797:18;;:::i;:::-;51840:1;51854:16;;;51909:4;51895:19;;51937:18;;;;51981:20;;;;;52014:392;52032:2;52025:5;52022:13;52014:392;;;52094:44;52132:5;52094:44;:::i;:::-;52155:52;52204:1;52197:5;52193:13;52155:52;:::i;:::-;52246:2;52242:1;52235:5;52231:13;52224:25;52288:2;52284:1;52277:5;52273:13;52266:25;52308:41;52345:2;52338:5;52334:14;52308:41;:::i;:::-;52389:2;52384;52377:5;52373:14;52366:26;52058:2;52051:5;52047:14;52038:23;;52014:392;;;52018:3;;;;51530:886;-1:-1:-1;17972:1:78;17965:14;;;18009:4;17996:18;;52439:5;;52535:316;52549:3;52546:1;52543:10;52535:316;;;52595:160;52680:74;52747:6;52740:5;52680:74;:::i;:::-;52667:11;52595:160;:::i;:::-;52790:2;52778:15;;;;;52838:2;52821:20;;;;;52568:1;52561:9;52535:316;;52862:446;52957:5;52951:12;52982:1;53006:2;52999:5;52992:17;53035:6;53028:14;53018:284;;53077:5;53073:2;53066:17;53122:4;53118:2;53108:19;53160:6;53154:4;53150:17;53210:82;53228:2;53221:5;53218:13;53210:82;;;53287:2;53280:5;53273:17;53254:1;53247:5;53243:13;53234:22;;53210:82;;53313:532;-1:-1:-1;;;53396:6:78;53393:32;53390:58;;;53428:18;;:::i;:::-;53477:5;53471:12;53506:6;53499:5;53492:21;53536:6;53528;53525:18;53522:317;;;53576:1;53590:17;;;53646:4;53632:19;;53717:17;;;;53674;;53747:82;53765:2;53758:5;53755:13;53747:82;;;53824:2;53817:5;53810:17;53791:1;53784:5;53780:13;53771:22;;53747:82;;53850:1810;53972:73;54039:5;54032;53972:73;:::i;:::-;54082:2;54069:16;54094:32;54118:7;54094:32;:::i;:::-;41752:11;;-1:-1:-1;;;;;;41748:41:78;-1:-1:-1;;;;;41791:30:78;;41745:77;41732:91;;54135:60;54214:1;54252:2;54246:4;54242:13;54274:2;54319:103;54418:2;54414;54410:11;54406:2;54319:103;:::i;:::-;54285:137;;-1:-1:-1;;;;;54489:2:78;54474:13;54471:21;54468:47;;;54495:18;;:::i;:::-;54524:65;54575:13;54563:10;54524:65;:::i;:::-;54642:1;54652:22;;;54695:17;;;;54642:1;54741:242;54755:13;54752:1;54749:20;54741:242;;;54840:6;54827:20;54860:33;54885:7;54860:33;:::i;:::-;54951:12;;;54944:29;54916:15;;;;54777:10;;54741:242;;;54745:3;55022:1;55016:4;55012:12;54992:32;;55069:109;55174:2;55167:5;55163:14;55156:5;55069:109;:::i;:::-;55033:145;;;;55208:2;55193:13;55190:21;55187:47;;;55214:18;;:::i;:::-;55243:67;55296:13;55282:12;55243:67;:::i;:::-;55357:24;;;-1:-1:-1;55404:17:78;;;;55452:202;55468:13;55463:3;55460:22;55452:202;;;55539:22;;55623:16;;;55616:28;55586:17;;;;55492:12;;55452:202;;55665:1393;-1:-1:-1;;;55817:3:78;55814:29;55811:55;;;55846:18;;:::i;:::-;55895:4;55889:11;55922:3;55916:4;55909:17;55946:6;55941:3;55938:15;55935:679;;;55986:1;56023:6;56019:2;56015:15;56077:2;56068:7;56064:16;56056:6;56053:28;56043:62;;56085:18;;:::i;:::-;56143:3;56139:2;56135:12;56193:2;56182:9;56178:18;56173:3;56170:27;56160:61;;56201:18;;:::i;:::-;56241:1;56234:15;;;56287:4;56274:18;;56315;;;;56359:20;56392:212;56410:2;56403:5;56400:13;56392:212;;;56472:42;56508:5;56472:42;:::i;:::-;56531:59;56587:1;56580:5;56576:13;56531:59;:::i;:::-;56425:14;;56392:212;;;56396:3;;;55935:679;-1:-1:-1;17972:1:78;17965:14;;;18009:4;17996:18;;56637:5;;56733:319;56747:3;56744:1;56741:10;56733:319;;;56793:164;56882:74;56949:6;56942:5;56882:74;:::i;:::-;56869:11;56793:164;:::i;:::-;56992:2;56980:15;;;;;57040:1;57023:19;;;;;56766:1;56759:9;56733:319;;57063:2245;57234:73;57301:5;57294;57234:73;:::i;:::-;57344:2;57331:16;57356:32;57380:7;57356:32;:::i;:::-;41752:11;;-1:-1:-1;;;;;;41748:41:78;-1:-1:-1;;;;;41791:30:78;;41745:77;41732:91;;57397:60;57476:1;57514:2;57508:4;57504:13;57536:2;57581:103;57680:2;57676;57672:11;57668:2;57581:103;:::i;:::-;57547:137;;-1:-1:-1;;;;;57699:13:78;57696:37;57693:63;;;57736:18;;:::i;:::-;57765:65;57816:13;57804:10;57765:65;:::i;:::-;57880:1;57873:21;;;57915:16;;;;57959:281;57973:13;57970:1;57967:20;57959:281;;;58058:6;58045:20;58078:33;58103:7;58078:33;:::i;:::-;58206:12;;;58199:31;58171:15;;;;57995:10;;57959:281;;;57963:3;;58249:103;58309:42;58347:2;58340:5;58336:14;58309:42;:::i;:::-;58305:1;58299:4;58295:12;-1:-1:-1;;;;;41795:5:78;41791:30;-1:-1:-1;;;;;41765:23:78;41758:4;41752:11;41748:41;41745:77;41739:4;41732:91;;;41650:179;58249:103;;;;;58406:2;58399:5;58395:14;58382:28;58378:1;58372:4;58368:12;58361:50;58456:109;58561:2;58554:5;58550:14;58543:5;58456:109;:::i;:::-;58574:144;58704:13;58689;58685:1;58679:4;58675:12;58574:144;:::i;:::-;;;58763:110;58868:3;58861:5;58857:15;58850:5;58763:110;:::i;:::-;58882:148;59016:13;59001;58997:1;58991:4;58987:12;58882:148;:::i;:::-;;;59084:3;59077:5;59073:15;59060:29;59056:1;59050:4;59046:12;59039:51;59135:59;59189:3;59182:5;59178:15;59171:5;59135:59;:::i;:::-;59203:99;59288:13;59273;59269:1;59263:4;59259:12;59203:99;:::i;59542:1429::-;59655:3;59649:4;59646:13;59643:26;;59662:5;;59542:1429::o;59643:26::-;59692:37;59724:3;59718:10;59692:37;:::i;:::-;-1:-1:-1;;;;;59744:6:78;59741:30;59738:56;;;59774:18;;:::i;:::-;59803:97;59893:6;59853:38;59885:4;59879:11;59853:38;:::i;:::-;59847:4;59803:97;:::i;:::-;59926:1;59954:2;59946:6;59943:14;59971:1;59966:748;;;;60758:1;60775:6;60772:89;;;-1:-1:-1;60827:19:78;;;60821:26;60772:89;60887:67;60947:6;60940:5;60887:67;:::i;:::-;60881:4;60874:81;;59936:1029;;59966:748;17972:1;17965:14;;;18009:4;17996:18;;-1:-1:-1;;60002:20:78;;;17972:1;17965:14;;;18009:4;17996:18;;60166:9;60188:251;60202:7;60199:1;60196:14;60188:251;;;60284:21;;;60278:28;60263:44;;60334:1;60407:18;;;;60362:15;;;;60225:4;60218:12;60188:251;;;60192:3;60467:6;60458:7;60455:19;60452:203;;;60528:21;;;60522:28;-1:-1:-1;;60613:1:78;60609:14;;;60625:3;60605:24;60601:37;60597:42;60582:58;60567:74;;60452:203;-1:-1:-1;;;;;60701:1:78;60685:14;;;60681:22;60668:36;;-1:-1:-1;59542:1429:78:o;61117:741::-;61176:3;61215:4;61210:3;61206:14;-1:-1:-1;;;;;61251:5:78;61245:12;61241:37;61236:3;61229:50;61298:4;61342:2;61335:5;61331:14;61364:4;61398;61393:2;61388:3;61384:12;61377:26;61425:4;61458:12;61452:19;61493:6;61487:4;61480:20;61527:2;61522:3;61518:12;61509:21;;61549:12;61546:1;61539:23;61598:2;61595:1;61585:16;61571:30;;61619:1;61610:10;;61629:202;61643:6;61640:1;61637:13;61629:202;;;61711:13;;-1:-1:-1;;;;;61707:39:78;61693:54;;61806:15;;;;61658:10;;;;61769:14;;;;61629:202;;;-1:-1:-1;61847:5:78;61117:741;-1:-1:-1;;;;;;;61117:741:78:o;61989:771::-;62038:3;62079:5;62073:12;62108:36;62134:9;62108:36;:::i;:::-;62153:19;;;62191:4;62214:1;62231:18;;;62258:146;;;;62418:1;62413:341;;;;62224:530;;62258:146;-1:-1:-1;;62300:24:78;;62286:12;;;62279:46;62372:14;;62365:22;62362:1;62358:30;62349:40;;62345:49;;;-1:-1:-1;62258:146:78;;62413:341;62444:5;62441:1;62434:16;62491:2;62488:1;62478:16;62516:1;62530:174;62544:6;62541:1;62538:13;62530:174;;;62631:14;;62613:11;;;62609:20;;62602:44;62674:16;;;;62559:10;;62530:174;;;62728:11;;62724:20;;;-1:-1:-1;;62224:530:78;;;;;;61989:771;;;;:::o;62765:394::-;62856:4;62851:3;62844:17;62826:3;62882:57;62933:4;62928:3;62924:14;62917:5;62882:57;:::i;:::-;62981:3;62975:4;62971:14;62964:4;62959:3;62955:14;62948:38;63037:4;63029;63022:5;63018:16;63012:23;63008:34;63002:4;62995:48;63076:4;63069;63063;63059:15;63052:29;63097:56;63147:4;63141;63137:15;63133:1;63126:5;63122:13;63097:56;:::i;:::-;63090:63;62765:394;-1:-1:-1;;;;62765:394:78:o;63164:1607::-;63233:3;63271:5;63265:12;63298:6;63293:3;63286:19;63324:4;63365:2;63360:3;63356:12;63390:11;63417;63410:18;;63467:6;63464:1;63460:14;63453:5;63449:26;63437:38;;63494:5;63491:1;63484:16;63536:2;63533:1;63523:16;63557:1;63567:1178;63581:6;63578:1;63575:13;63567:1178;;;63652:5;63646:4;63642:16;63637:3;63630:29;63682:4;63712:2;63706:4;63699:16;63738:4;63777:2;63772;63766:4;63762:13;63755:25;63807:60;63862:3;63856:4;63852:14;63844:6;63807:60;:::i;:::-;63793:74;;63894:2;63890:7;63955:2;63948:4;63940:6;63936:17;63932:26;63927:2;63921:4;63917:13;63910:49;63986:63;64042:6;64035:4;64027:6;64023:17;63986:63;:::i;:::-;64103:4;64091:17;;64085:24;64079:3;64069:14;;64062:48;64158:4;64146:17;;64140:24;-1:-1:-1;;;;;64225:34:78;;64187:3;64210:13;;;64203:57;;;;64299:18;-1:-1:-1;;;;;;64295:45:78;64280:13;;;64273:68;;;;64381:17;;;64377:26;64323:3;64361:14;;64354:50;63972:77;-1:-1:-1;64430:51:78;63972:77;64467:4;64455:17;;64430:51;:::i;:::-;64417:64;;64514:66;64573:4;64565:6;64561:17;64555:24;61973:4;61957:21;;61863:121;64514:66;605:13;598:21;64623:13;;;586:34;;;;64723:12;;;;64698:4;64686:17;;;;;63603:1;63596:9;63567:1178;;64776:1381;64847:3;64885:5;64879:12;64912:6;64907:3;64900:19;64938:4;64979:2;64974:3;64970:12;65004:11;65031;65024:18;;65081:6;65078:1;65074:14;65067:5;65063:26;65051:38;;65108:1;65129:5;65125:2;65118:17;65172:2;65168;65158:17;65193:2;65204:927;65218:6;65215:1;65212:13;65204:927;;;65289:5;65283:4;65279:16;65274:3;65267:29;65319:4;65349:2;65343:4;65336:16;65379:57;65432:2;65426:4;65422:13;65414:6;65379:57;:::i;:::-;65521:17;;;65506:13;;;65499:40;65481:4;65469:17;;65600:19;;65632:24;;;65706;;;65759:17;;;;-1:-1:-1;65713:2:78;;65678:15;;;65815:208;65831:8;65826:3;65823:17;65815:208;;;65908:15;;65894:30;;66007:1;65993:16;;;;65850:11;;;;;65950:14;;;;65815:208;;;-1:-1:-1;66109:12:78;;;;66044:5;-1:-1:-1;;;66084:4:78;66072:17;;;;;65240:1;65233:9;65204:927;;66162:1111;66366:2;66355:9;66348:21;66405:4;66400:2;66389:9;66385:18;66378:32;66329:4;66433:63;66491:3;66480:9;66476:19;66468:6;66433:63;:::i;:::-;66585:4;66573:17;;66567:24;-1:-1:-1;;;;;61071:35:78;66648:2;66633:18;;1666:43;66706:4;66694:17;;66688:24;66683:2;66668:18;;66661:52;66780:22;;;-1:-1:-1;;66776:31:78;;;66770:3;66755:19;;66748:60;66831:71;66784:6;66888:4;66876:17;;66831:71;:::i;:::-;66817:85;;66967:2;66955:9;66947:6;66943:22;66939:31;66933:3;66922:9;66918:19;66911:60;66994:73;67060:6;67053:4;67045:6;67041:17;66994:73;:::i;:::-;66980:87;;67122:4;67114:6;67110:17;67104:24;67098:3;67087:9;67083:19;67076:53;67195:2;67183:9;67175:6;67171:22;67167:31;67160:4;67149:9;67145:20;67138:61;;67216:51;67260:6;67253:4;67245:6;67241:17;67216:51;:::i;67278:127::-;67339:10;67334:3;67330:20;67327:1;67320:31;67370:4;67367:1;67360:15;67394:4;67391:1;67384:15;67410:127;67471:10;67466:3;67462:20;67459:1;67452:31;67502:4;67499:1;67492:15;67526:4;67523:1;67516:15;67542:183;-1:-1:-1;;;;;67661:10:78;;;67649;;;67645:27;;67684:12;;;67681:38;;;67699:18;;:::i;67730:191::-;67761:1;-1:-1:-1;;;;;67832:2:78;67829:1;67825:10;67854:3;67844:37;;67861:18;;:::i;:::-;67899:10;;67895:20;;;;;67730:191;-1:-1:-1;;67730:191:78:o;68245:180::-;-1:-1:-1;;;;;68350:10:78;;;68362;;;68346:27;;68385:11;;;68382:37;;;68399:18;;:::i", "linkReferences": { "src/lib/AccountHelper.sol": { "AccountHelper": [ { - "start": 5153, + "start": 5141, "length": 20 } ] @@ -784,15 +784,15 @@ "length": 20 }, { - "start": 5675, + "start": 5663, "length": 20 }, { - "start": 7483, + "start": 7471, "length": 20 }, { - "start": 9674, + "start": 9660, "length": 20 } ] @@ -800,7 +800,7 @@ "src/lib/CrossMsgHelper.sol": { "CrossMsgHelper": [ { - "start": 4807, + "start": 4796, "length": 20 } ] @@ -808,15 +808,15 @@ "src/lib/EpochVoteSubmissionHelper.sol": { "EpochVoteSubmissionHelper": [ { - "start": 7690, + "start": 7676, "length": 20 }, { - "start": 11003, + "start": 11014, "length": 20 }, { - "start": 11742, + "start": 11778, "length": 20 } ] @@ -824,19 +824,19 @@ "src/lib/ExecutableQueueHelper.sol": { "ExecutableQueueHelper": [ { - "start": 10874, + "start": 10885, "length": 20 }, { - "start": 11155, + "start": 11166, "length": 20 }, { - "start": 11299, + "start": 11310, "length": 20 }, { - "start": 11471, + "start": 11482, "length": 20 } ] @@ -844,11 +844,11 @@ "src/lib/SubnetIDHelper.sol": { "SubnetIDHelper": [ { - "start": 2850, + "start": 2842, "length": 20 }, { - "start": 4671, + "start": 4660, "length": 20 } ] @@ -867,7 +867,7 @@ "submitCheckpoint(((uint64,address[]),uint64,uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[],((uint64,address[]),bytes32[])[],bytes32,bytes))": "f6fd8381", "withdraw()": "3ccfd60b" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CollateralIsZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EpochAlreadyExecuted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EpochNotVotable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MessagesNotSorted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoRewardToWithdraw\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoValidatorsInSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotAllValidatorsHaveLeft\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughBalanceForRewards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotGateway\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetAlreadyKilled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetNotActive\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorAlreadyVoted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongCheckpointSource\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"}],\"name\":\"bottomUpCheckpointAtEpoch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"checks\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ChildCheck[]\",\"name\":\"children\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"}],\"name\":\"bottomUpCheckpointHashAtEpoch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"e\",\"type\":\"uint64\"}],\"name\":\"committedCheckpoints\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"hasValidatorVotedForSubmission\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"netAddr\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"workerAddr\",\"type\":\"tuple\"}],\"name\":\"join\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"leave\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"reward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"checks\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ChildCheck[]\",\"name\":\"children\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"}],\"name\":\"submitCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"kind\":\"dev\",\"methods\":{\"bottomUpCheckpointAtEpoch(uint64)\":{\"params\":{\"epoch\":\"- the epoch to check\"},\"returns\":{\"checkpoint\":\"- the checkpoint struct\",\"exists\":\"- whether the checkpoint exists\"}},\"bottomUpCheckpointHashAtEpoch(uint64)\":{\"params\":{\"epoch\":\"- the epoch to check\"},\"returns\":{\"_0\":\"exists - whether the checkpoint exists\",\"_1\":\"hash - the hash of the checkpoint\"}},\"hasValidatorVotedForSubmission(uint64,address)\":{\"params\":{\"epoch\":\"- the epoch to check\",\"submitter\":\"- the validator to check\"}},\"join(string,(uint8,bytes))\":{\"params\":{\"netAddr\":\"- the network address of the validator\"}},\"submitCheckpoint(((uint64,address[]),uint64,uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[],((uint64,address[]),bytes32[])[],bytes32,bytes))\":{\"params\":{\"checkpoint\":\"- the batch messages data\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"bottomUpCheckpointAtEpoch(uint64)\":{\"notice\":\"returns the committed bottom-up checkpoint at specific epoch\"},\"bottomUpCheckpointHashAtEpoch(uint64)\":{\"notice\":\"returns the historical committed bottom-up checkpoint hash\"},\"committedCheckpoints(uint64)\":{\"notice\":\"get the total stake\"},\"hasValidatorVotedForSubmission(uint64,address)\":{\"notice\":\"whether a validator has voted for a checkpoint submission during an epoch\"},\"join(string,(uint8,bytes))\":{\"notice\":\"method that allows a validator to join the subnet\"},\"kill()\":{\"notice\":\"method that allows the subnet no be killed after all validators leave\"},\"leave()\":{\"notice\":\"method that allows a validator to leave the subnet\"},\"reward(uint256)\":{\"notice\":\"method that distributes the rewards for the subnet to validators.\"},\"submitCheckpoint(((uint64,address[]),uint64,uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[],((uint64,address[]),bytes32[])[],bytes32,bytes))\":{\"notice\":\"methods that allows a validator to submit a checkpoint (batch of messages) and vote for it with it's own voting power.\"},\"withdraw()\":{\"notice\":\"method that allows a validator to withdraw it's accumulated rewards using pull-based transfer\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/subnet/SubnetActorManagerFacet.sol\":\"SubnetActorManagerFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xb8d40721965efd93b5369d55083181226d3c7e1be4a968c04de35d44ba44f29a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5c4b0089788aa7112cce88602212c3895999f464e00d1c40d7f27ac9288798b\",\"dweb:/ipfs/Qmd69EuGeoCYPfPkGA4hayH4s2upmAe3XaoDf4ggYNEoZ4\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x31f34a3baec77c087d2bdbc5c277f169e505b905aeb43cfcea1734175140f621\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5a3bc8093b31b685ef879e8ffaaab614594cb6f98ddac4f18c411f7bbf99d0d\",\"dweb:/ipfs/QmSFfA9pH3xo8hnWKCFKTwGi8kz68YXuAwyLXsYe6KjC3Z\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xdb6d7e26320438bdd421598eb64e6fe2b03867a4dd07c9c820994b7bec26f7b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2adf1566393ddf260fb2064dd0c67be00123b8978be8b62cc45ac97aff859949\",\"dweb:/ipfs/QmaDLzQpnitEJDAJo4squpKumr5x4D2QYetPdT3jZd8hYm\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x8a925dea568a61a38de9615aae7bb462d9eb6f8eb2c6ca409f1e740519077ab8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b7e2f836581694867c09bb9c80ff2ab6ae039ece2ff3bbf4d1bc2026449fa551\",\"dweb:/ipfs/QmVMvaQSCRBHZudSV8AzimYre76tJVm4UrHYnrT89zcjho\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xf6fd4f824e7dd9fe651bd11596f3045f32e67be595f91078c2b326e45aec4ce4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a674b1a6824a75749bb0a71b4791ff329907083ffb028b04634e94ddbcc2b2f3\",\"dweb:/ipfs/QmTkoSu2mRktfadkjhdgisBaWoZxb8iC3bacUwqCt44PNQ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0xf29c18f694b5acc919b7cada2875ca3bd2c52ddd7ef86ee747aab0faeb50ac8b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d8fb92f533cc119c578da73b06efe76b0efaa612af7c77178eb903952fcf53df\",\"dweb:/ipfs/QmdosRgUmvwXRnxq5TmoJoFMs7TULduTFpMUNyYXQNGfQD\"]},\"src/enums/VoteExecutionStatus.sol\":{\"keccak256\":\"0x56d1db8abf83feb0f1d69f1919fbd5bd79c6f3c5bf3c149950d307b9d62b6455\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb2ec0f87a9091eab463ac6a776d5737189e0239f412b36b975bb0be1fcb4ad8\",\"dweb:/ipfs/QmWiXwab54Ag2f1kyGjqT3brh5JrV5Lc7cqod9VPaS5ey6\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xab09aee88feca01f5c23baa475aa02bb8c1b189e60a7b81848a07e00b9ab708c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1f5d874688d7316a0eb382b6fb1e7ea6648b15aaaab95acc51f18bfcab851d61\",\"dweb:/ipfs/QmdZRRmWrkrn5MmEX3n5yWEREtoCvXNxzoVkPWSH64ENpd\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x57865785239b076bc429cd989bc5cb2a2e68050c7293a5a537d8cdeded170294\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://28285703560a0bbfa247c894c9f14f2a14e02e430e7dedb0a05b58c53aed3763\",\"dweb:/ipfs/QmcrNx18jZYJ7dRduWu1do3th74cHy7zn9Zx8x13WsCLj5\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0xe3f7371c7c7af8dfa71daa6c4171f6853c9ab1fdd619c09eb12c11ff18d17d91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6a09ea45ed335eada22e7cf3643c17d1c59750ed2156cc29c0960a8e8b53e394\",\"dweb:/ipfs/QmSYTNGqP9wEJnPDXmvghfL8zL8BrHGnixhbsimA9oydLG\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x86bf44c7e35907c1b0ed2fd55a6a8a277b46e6ee52b6933610504bc1d2de3b12\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb47357cd7342f951e5d08b1960e9ab7d458463e71ce08ff61b900bbb04118f0\",\"dweb:/ipfs/QmTKHhnYs1xKZUwCmSRPmSi5utfGrosYV57fSoGF7bGnJs\"]},\"src/lib/CheckpointHelper.sol\":{\"keccak256\":\"0x25d67ccc67b6b537df920c92dc3c704dc097e000c444149d3732e1d20848a269\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5823e88c38b5c4e90ee5700cee5a5fd8d982015dab7ea1cbe2f26d62a359ae76\",\"dweb:/ipfs/QmT9Ves86HoEqQciunzEwvDsyv2dgQwF8uPUjNuGsycHuF\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0xe7aacc0bc5eb10763685d6766524f6db05b151b37de4ccbd2b04649e54b9af36\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d6fae33fe9dc258efc3e0c484c6e69ff8314af266c78fd9b3d20c5bf8f251865\",\"dweb:/ipfs/QmYYpC6GnJNRvAg3MCSHKHk47cas888N3HzmMrmiRT4bnJ\"]},\"src/lib/EpochVoteSubmissionHelper.sol\":{\"keccak256\":\"0x1eaf867ddfc3e83d5a2ca50a81809e1529ea2436a8d2697d868bc8653b8c6c9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://65eb6a69fdb0fd8bfc1cd3d5044791225ff9fa8887dda49fd530e7c46e6e5366\",\"dweb:/ipfs/QmepF17eiqGqiNJRfeCohdeVw2aJxgkFS1AyFSM78v16nC\"]},\"src/lib/ExecutableQueueHelper.sol\":{\"keccak256\":\"0x66b7ba58bb9ba987789f22dcc5e44f1720876a79a52a9630d886490d48f80ece\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8b388b9f63b4f86ac03f24089a1f110e482ae89b1eb628fc78aeead1d6f50869\",\"dweb:/ipfs/QmVGVh9r2GBgXRn7Z13sMKmnn3xjfHm9tM3mnLUH1UwjQX\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x80d7d30532305664e31ad114d702904287e6f93954b420315f660ddf30791ac6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0b108070a13f76614f36e46f0af85d12aa53209ff9bb9c32ee1945be3e0a1fe1\",\"dweb:/ipfs/QmcyMuCZB4Z3qFUUjvcoVeSePJXU5F9hN4Zhy94U2qqcPq\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0xb96c3d7a112d3319919f047c4ab0d475ab8b602e141f9f7fd00ffcbf8175a630\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://aad83180ce083e22e0c05504dd4bcb8d8b865f38a930684fbe1b5c9ee1aa356f\",\"dweb:/ipfs/QmbqLgq1hCyMhBpa97K2rTQLJHfvHBCzJGE9kiA6LpPDji\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x04d8b15d89be847fced554bfc8ed1ea1d9e92ccab8799acc83cde19706e43d31\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1a2ebe2cbf011ee931874dec86dc69991b9bf3cebdbd0a38b2bc8d9f22b999f7\",\"dweb:/ipfs/QmQZxinNFFsym6GJwRRqeFLQk8HBMuzUagQETK3iMc4M4M\"]},\"src/lib/LibVoting.sol\":{\"keccak256\":\"0x3e5c9359758e7a7200c3a1e7c3a8edfbe6912e8c0a2edde1d2a9e4907b89cb91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://589fa228fdc537a56839520408ec06fc34658ef7a3ca7481b089f9d966f8ed39\",\"dweb:/ipfs/QmNQ4kPeGN5JAhFQyfEnYmmvp83dPQ6QhQKQfZhqgWKjDK\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0xf82021571aa9a7b021b2d24b2c0eb80c5796b9f28ebb6a1c239146c0c0168817\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b546fc429093a558b9382e28886d1f09e7f308e55f6398989583bc420a630326\",\"dweb:/ipfs/QmSmQPQbMBX8N8r8nGboBWdzJjUaK7ACaFUf8XosZVZPT8\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0xcddaa4630a6f68c59a819bafee579a8979cc9fd7b00d5b49f99eeefb9ce0c02c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9713f988a5709dea3ee0fb204a2d0b64b0dc115912ed9eb128f479156d97a949\",\"dweb:/ipfs/QmUjTAvd2eAYQFqgfZUf5R67daeC7eUKrL6WrFb8oEWB9j\"]},\"src/structs/EpochVoteSubmission.sol\":{\"keccak256\":\"0x4cc52a36cac1a063bf1f996b91ea81ce118b7ce8923e62cec6e5bf08b689e96a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb33236d8c7a40e17c416a21e9f0df268d6a7f4d6ba1df86ab0c2dbf444702e9\",\"dweb:/ipfs/QmXEbdkweqL1f4Q71YPiuxwhQooh1oim9oBybAbr9Jd3A2\"]},\"src/structs/ExecutableQueue.sol\":{\"keccak256\":\"0xfacfd91786edac0462f4bba34d3a3766c8785925ae96301b68b76fba78c5cab4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb421106bc9158e8a12dd7054d265113dd890337937e73acb03f03e33a13eb18\",\"dweb:/ipfs/Qmdxs4akDWuzwf5nYsCaNuYNZ5sTrMCzdgVMuSpKCjFyaP\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xbaae3da91048d76b5bab0404eebf7dc41ed273a8cd1f4143ea1b3403d89f77c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5a69d76f5022d2e19f69ef0d70d4c5e3a3e7ae8e02fcfdb2682c901ac2f3a707\",\"dweb:/ipfs/QmYEWyPz9UqVssUpU42VTv6DhzRNAfaHKt9ZsNCAvtLjTr\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0xb37b12df0c9ff47c2e88f9612b624bb44e6de5dfb8030dfd83582997dcd6aa83\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a321a05abf7b3b461e3d6c4ac27b18d3e14dffad9e2bf9a0ceb68538a02ab1e4\",\"dweb:/ipfs/QmPo878trP8pv9yXXpwUHSnP7Xt6uz9eWuB25pz2JGiCot\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0xf975778434ab648d013bc28f6611d0489880c7afc4412dc733cb9ebc421221ff\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://04d6e8469bd834dd5d287e7334a4937b210e812bd6dea2e680f6a6ed4a1f5611\",\"dweb:/ipfs/QmXSTroEfHF7TEoVXt9gUAtt51DxDCrokuYMr5RYiEmUkH\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CollateralIsZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EpochAlreadyExecuted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EpochNotVotable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MessagesNotSorted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoRewardToWithdraw\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoValidatorsInSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotAllValidatorsHaveLeft\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughBalanceForRewards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotGateway\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetAlreadyKilled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetNotActive\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorAlreadyVoted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongCheckpointSource\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"}],\"name\":\"bottomUpCheckpointAtEpoch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"checks\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ChildCheck[]\",\"name\":\"children\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"}],\"name\":\"bottomUpCheckpointHashAtEpoch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"e\",\"type\":\"uint64\"}],\"name\":\"committedCheckpoints\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"hasValidatorVotedForSubmission\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"netAddr\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"workerAddr\",\"type\":\"tuple\"}],\"name\":\"join\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"leave\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"reward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"epoch\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"source\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"checks\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ChildCheck[]\",\"name\":\"children\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"}],\"name\":\"submitCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"kind\":\"dev\",\"methods\":{\"bottomUpCheckpointAtEpoch(uint64)\":{\"params\":{\"epoch\":\"- the epoch to check\"},\"returns\":{\"checkpoint\":\"- the checkpoint struct\",\"exists\":\"- whether the checkpoint exists\"}},\"bottomUpCheckpointHashAtEpoch(uint64)\":{\"params\":{\"epoch\":\"- the epoch to check\"},\"returns\":{\"_0\":\"exists - whether the checkpoint exists\",\"_1\":\"hash - the hash of the checkpoint\"}},\"hasValidatorVotedForSubmission(uint64,address)\":{\"params\":{\"epoch\":\"- the epoch to check\",\"submitter\":\"- the validator to check\"}},\"join(string,(uint8,bytes))\":{\"params\":{\"netAddr\":\"- the network address of the validator\"}},\"submitCheckpoint(((uint64,address[]),uint64,uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[],((uint64,address[]),bytes32[])[],bytes32,bytes))\":{\"params\":{\"checkpoint\":\"- the batch messages data\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"bottomUpCheckpointAtEpoch(uint64)\":{\"notice\":\"returns the committed bottom-up checkpoint at specific epoch\"},\"bottomUpCheckpointHashAtEpoch(uint64)\":{\"notice\":\"returns the historical committed bottom-up checkpoint hash\"},\"committedCheckpoints(uint64)\":{\"notice\":\"get the total stake\"},\"hasValidatorVotedForSubmission(uint64,address)\":{\"notice\":\"whether a validator has voted for a checkpoint submission during an epoch\"},\"join(string,(uint8,bytes))\":{\"notice\":\"method that allows a validator to join the subnet\"},\"kill()\":{\"notice\":\"method that allows the subnet no be killed after all validators leave\"},\"leave()\":{\"notice\":\"method that allows a validator to leave the subnet\"},\"reward(uint256)\":{\"notice\":\"method that distributes the rewards for the subnet to validators.\"},\"submitCheckpoint(((uint64,address[]),uint64,uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes),bool)[],((uint64,address[]),bytes32[])[],bytes32,bytes))\":{\"notice\":\"methods that allows a validator to submit a checkpoint (batch of messages) and vote for it with it's own voting power.\"},\"withdraw()\":{\"notice\":\"method that allows a validator to withdraw it's accumulated rewards using pull-based transfer\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/subnet/SubnetActorManagerFacet.sol\":\"SubnetActorManagerFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x8a925dea568a61a38de9615aae7bb462d9eb6f8eb2c6ca409f1e740519077ab8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b7e2f836581694867c09bb9c80ff2ab6ae039ece2ff3bbf4d1bc2026449fa551\",\"dweb:/ipfs/QmVMvaQSCRBHZudSV8AzimYre76tJVm4UrHYnrT89zcjho\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xf6fd4f824e7dd9fe651bd11596f3045f32e67be595f91078c2b326e45aec4ce4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a674b1a6824a75749bb0a71b4791ff329907083ffb028b04634e94ddbcc2b2f3\",\"dweb:/ipfs/QmTkoSu2mRktfadkjhdgisBaWoZxb8iC3bacUwqCt44PNQ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0xf29c18f694b5acc919b7cada2875ca3bd2c52ddd7ef86ee747aab0faeb50ac8b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d8fb92f533cc119c578da73b06efe76b0efaa612af7c77178eb903952fcf53df\",\"dweb:/ipfs/QmdosRgUmvwXRnxq5TmoJoFMs7TULduTFpMUNyYXQNGfQD\"]},\"src/enums/VoteExecutionStatus.sol\":{\"keccak256\":\"0x56d1db8abf83feb0f1d69f1919fbd5bd79c6f3c5bf3c149950d307b9d62b6455\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb2ec0f87a9091eab463ac6a776d5737189e0239f412b36b975bb0be1fcb4ad8\",\"dweb:/ipfs/QmWiXwab54Ag2f1kyGjqT3brh5JrV5Lc7cqod9VPaS5ey6\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xab09aee88feca01f5c23baa475aa02bb8c1b189e60a7b81848a07e00b9ab708c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1f5d874688d7316a0eb382b6fb1e7ea6648b15aaaab95acc51f18bfcab851d61\",\"dweb:/ipfs/QmdZRRmWrkrn5MmEX3n5yWEREtoCvXNxzoVkPWSH64ENpd\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x57865785239b076bc429cd989bc5cb2a2e68050c7293a5a537d8cdeded170294\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://28285703560a0bbfa247c894c9f14f2a14e02e430e7dedb0a05b58c53aed3763\",\"dweb:/ipfs/QmcrNx18jZYJ7dRduWu1do3th74cHy7zn9Zx8x13WsCLj5\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0xe3f7371c7c7af8dfa71daa6c4171f6853c9ab1fdd619c09eb12c11ff18d17d91\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6a09ea45ed335eada22e7cf3643c17d1c59750ed2156cc29c0960a8e8b53e394\",\"dweb:/ipfs/QmSYTNGqP9wEJnPDXmvghfL8zL8BrHGnixhbsimA9oydLG\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x86bf44c7e35907c1b0ed2fd55a6a8a277b46e6ee52b6933610504bc1d2de3b12\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bb47357cd7342f951e5d08b1960e9ab7d458463e71ce08ff61b900bbb04118f0\",\"dweb:/ipfs/QmTKHhnYs1xKZUwCmSRPmSi5utfGrosYV57fSoGF7bGnJs\"]},\"src/lib/CheckpointHelper.sol\":{\"keccak256\":\"0x25d67ccc67b6b537df920c92dc3c704dc097e000c444149d3732e1d20848a269\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5823e88c38b5c4e90ee5700cee5a5fd8d982015dab7ea1cbe2f26d62a359ae76\",\"dweb:/ipfs/QmT9Ves86HoEqQciunzEwvDsyv2dgQwF8uPUjNuGsycHuF\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0xe7aacc0bc5eb10763685d6766524f6db05b151b37de4ccbd2b04649e54b9af36\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d6fae33fe9dc258efc3e0c484c6e69ff8314af266c78fd9b3d20c5bf8f251865\",\"dweb:/ipfs/QmYYpC6GnJNRvAg3MCSHKHk47cas888N3HzmMrmiRT4bnJ\"]},\"src/lib/EpochVoteSubmissionHelper.sol\":{\"keccak256\":\"0x1eaf867ddfc3e83d5a2ca50a81809e1529ea2436a8d2697d868bc8653b8c6c9e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://65eb6a69fdb0fd8bfc1cd3d5044791225ff9fa8887dda49fd530e7c46e6e5366\",\"dweb:/ipfs/QmepF17eiqGqiNJRfeCohdeVw2aJxgkFS1AyFSM78v16nC\"]},\"src/lib/ExecutableQueueHelper.sol\":{\"keccak256\":\"0x64569fd85dac9617c7cf0e2991bf3bc2f1678b9b4f87945290606d1f821ce826\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8fb7927c7ca76f45f68b2552c4a59047597ccae0c9010c847e75f203f49820bc\",\"dweb:/ipfs/Qmcsg1b1GNBRAzz2CBDufdL3TspdZqx9wUoZ1uVcy3H8EN\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x80d7d30532305664e31ad114d702904287e6f93954b420315f660ddf30791ac6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0b108070a13f76614f36e46f0af85d12aa53209ff9bb9c32ee1945be3e0a1fe1\",\"dweb:/ipfs/QmcyMuCZB4Z3qFUUjvcoVeSePJXU5F9hN4Zhy94U2qqcPq\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0xb96c3d7a112d3319919f047c4ab0d475ab8b602e141f9f7fd00ffcbf8175a630\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://aad83180ce083e22e0c05504dd4bcb8d8b865f38a930684fbe1b5c9ee1aa356f\",\"dweb:/ipfs/QmbqLgq1hCyMhBpa97K2rTQLJHfvHBCzJGE9kiA6LpPDji\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0xd3c9aa9249bd97048232e34a73857df0ab4c6e12f910727e18043d807e417e6c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9d06b7dbb287d7cd5476394bb32dccfb45986c2b9e63b204bf12df1b70cc9aed\",\"dweb:/ipfs/Qmbyd72cBRxtmbwdG6ZqayQMMMWAA1XaSqdVvRc1ziHDz7\"]},\"src/lib/LibVoting.sol\":{\"keccak256\":\"0x6f020ef598ce576688275e5b4b8910beb31afb3427ac3d0896d6b62d71ab3050\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f1dd4f3411e3d01b60fb263120355e34f467fade66bd4076688bd046434df400\",\"dweb:/ipfs/QmWH7F7B44PjwB9eV65JiqQbQdkfSc2yrEsQH9KesU9Lhd\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0xf82021571aa9a7b021b2d24b2c0eb80c5796b9f28ebb6a1c239146c0c0168817\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b546fc429093a558b9382e28886d1f09e7f308e55f6398989583bc420a630326\",\"dweb:/ipfs/QmSmQPQbMBX8N8r8nGboBWdzJjUaK7ACaFUf8XosZVZPT8\"]},\"src/structs/Checkpoint.sol\":{\"keccak256\":\"0xcddaa4630a6f68c59a819bafee579a8979cc9fd7b00d5b49f99eeefb9ce0c02c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9713f988a5709dea3ee0fb204a2d0b64b0dc115912ed9eb128f479156d97a949\",\"dweb:/ipfs/QmUjTAvd2eAYQFqgfZUf5R67daeC7eUKrL6WrFb8oEWB9j\"]},\"src/structs/EpochVoteSubmission.sol\":{\"keccak256\":\"0x4cc52a36cac1a063bf1f996b91ea81ce118b7ce8923e62cec6e5bf08b689e96a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb33236d8c7a40e17c416a21e9f0df268d6a7f4d6ba1df86ab0c2dbf444702e9\",\"dweb:/ipfs/QmXEbdkweqL1f4Q71YPiuxwhQooh1oim9oBybAbr9Jd3A2\"]},\"src/structs/ExecutableQueue.sol\":{\"keccak256\":\"0x89580931bf354ed3586ca69483307e4f0a6a626bd7798657faf303281f514e8a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://16f79b68d393fe338e0f5e47e1de4615f45ea754cd98b6f8fe87ba6efc513fcd\",\"dweb:/ipfs/QmVymcARk7QY8d9ZB6omv5kNn6kFB6v249WXP5ULAVvEDi\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xbaae3da91048d76b5bab0404eebf7dc41ed273a8cd1f4143ea1b3403d89f77c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5a69d76f5022d2e19f69ef0d70d4c5e3a3e7ae8e02fcfdb2682c901ac2f3a707\",\"dweb:/ipfs/QmYEWyPz9UqVssUpU42VTv6DhzRNAfaHKt9ZsNCAvtLjTr\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0xf707af307e7f2654d44d3fbd6eb0c44c837da7c0941ad0b826e990198d96f67d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://79cd51a4ea33be35dd774b314ec44df5b8b0c112b06dd8f155c80dc4c2e6e0d0\",\"dweb:/ipfs/QmRyAF4prSLXGuz2Q9PzdcTb8EkC67qdfhgKPtb36997Pm\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0xf975778434ab648d013bc28f6611d0489880c7afc4412dc733cb9ebc421221ff\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://04d6e8469bd834dd5d287e7334a4937b210e812bd6dea2e680f6a6ed4a1f5611\",\"dweb:/ipfs/QmXSTroEfHF7TEoVXt9gUAtt51DxDCrokuYMr5RYiEmUkH\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.19+commit.7dd6d404" @@ -1655,26 +1655,26 @@ "license": "MIT" }, "lib/openzeppelin-contracts/contracts/utils/Address.sol": { - "keccak256": "0xb8d40721965efd93b5369d55083181226d3c7e1be4a968c04de35d44ba44f29a", + "keccak256": "0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1", "urls": [ - "bzz-raw://e5c4b0089788aa7112cce88602212c3895999f464e00d1c40d7f27ac9288798b", - "dweb:/ipfs/Qmd69EuGeoCYPfPkGA4hayH4s2upmAe3XaoDf4ggYNEoZ4" + "bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5", + "dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo" ], "license": "MIT" }, "lib/openzeppelin-contracts/contracts/utils/Strings.sol": { - "keccak256": "0x31f34a3baec77c087d2bdbc5c277f169e505b905aeb43cfcea1734175140f621", + "keccak256": "0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da", "urls": [ - "bzz-raw://b5a3bc8093b31b685ef879e8ffaaab614594cb6f98ddac4f18c411f7bbf99d0d", - "dweb:/ipfs/QmSFfA9pH3xo8hnWKCFKTwGi8kz68YXuAwyLXsYe6KjC3Z" + "bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a", + "dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB" ], "license": "MIT" }, "lib/openzeppelin-contracts/contracts/utils/math/Math.sol": { - "keccak256": "0xdb6d7e26320438bdd421598eb64e6fe2b03867a4dd07c9c820994b7bec26f7b0", + "keccak256": "0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c", "urls": [ - "bzz-raw://2adf1566393ddf260fb2064dd0c67be00123b8978be8b62cc45ac97aff859949", - "dweb:/ipfs/QmaDLzQpnitEJDAJo4squpKumr5x4D2QYetPdT3jZd8hYm" + "bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81", + "dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k" ], "license": "MIT" }, @@ -1783,10 +1783,10 @@ "license": "UNLICENSED" }, "src/lib/ExecutableQueueHelper.sol": { - "keccak256": "0x66b7ba58bb9ba987789f22dcc5e44f1720876a79a52a9630d886490d48f80ece", + "keccak256": "0x64569fd85dac9617c7cf0e2991bf3bc2f1678b9b4f87945290606d1f821ce826", "urls": [ - "bzz-raw://8b388b9f63b4f86ac03f24089a1f110e482ae89b1eb628fc78aeead1d6f50869", - "dweb:/ipfs/QmVGVh9r2GBgXRn7Z13sMKmnn3xjfHm9tM3mnLUH1UwjQX" + "bzz-raw://8fb7927c7ca76f45f68b2552c4a59047597ccae0c9010c847e75f203f49820bc", + "dweb:/ipfs/Qmcsg1b1GNBRAzz2CBDufdL3TspdZqx9wUoZ1uVcy3H8EN" ], "license": "UNLICENSED" }, @@ -1807,18 +1807,18 @@ "license": "UNLICENSED" }, "src/lib/LibSubnetActorStorage.sol": { - "keccak256": "0x04d8b15d89be847fced554bfc8ed1ea1d9e92ccab8799acc83cde19706e43d31", + "keccak256": "0xd3c9aa9249bd97048232e34a73857df0ab4c6e12f910727e18043d807e417e6c", "urls": [ - "bzz-raw://1a2ebe2cbf011ee931874dec86dc69991b9bf3cebdbd0a38b2bc8d9f22b999f7", - "dweb:/ipfs/QmQZxinNFFsym6GJwRRqeFLQk8HBMuzUagQETK3iMc4M4M" + "bzz-raw://9d06b7dbb287d7cd5476394bb32dccfb45986c2b9e63b204bf12df1b70cc9aed", + "dweb:/ipfs/Qmbyd72cBRxtmbwdG6ZqayQMMMWAA1XaSqdVvRc1ziHDz7" ], "license": "UNLICENSED" }, "src/lib/LibVoting.sol": { - "keccak256": "0x3e5c9359758e7a7200c3a1e7c3a8edfbe6912e8c0a2edde1d2a9e4907b89cb91", + "keccak256": "0x6f020ef598ce576688275e5b4b8910beb31afb3427ac3d0896d6b62d71ab3050", "urls": [ - "bzz-raw://589fa228fdc537a56839520408ec06fc34658ef7a3ca7481b089f9d966f8ed39", - "dweb:/ipfs/QmNQ4kPeGN5JAhFQyfEnYmmvp83dPQ6QhQKQfZhqgWKjDK" + "bzz-raw://f1dd4f3411e3d01b60fb263120355e34f467fade66bd4076688bd046434df400", + "dweb:/ipfs/QmWH7F7B44PjwB9eV65JiqQbQdkfSc2yrEsQH9KesU9Lhd" ], "license": "UNLICENSED" }, @@ -1847,10 +1847,10 @@ "license": "UNLICENSED" }, "src/structs/ExecutableQueue.sol": { - "keccak256": "0xfacfd91786edac0462f4bba34d3a3766c8785925ae96301b68b76fba78c5cab4", + "keccak256": "0x89580931bf354ed3586ca69483307e4f0a6a626bd7798657faf303281f514e8a", "urls": [ - "bzz-raw://bb421106bc9158e8a12dd7054d265113dd890337937e73acb03f03e33a13eb18", - "dweb:/ipfs/Qmdxs4akDWuzwf5nYsCaNuYNZ5sTrMCzdgVMuSpKCjFyaP" + "bzz-raw://16f79b68d393fe338e0f5e47e1de4615f45ea754cd98b6f8fe87ba6efc513fcd", + "dweb:/ipfs/QmVymcARk7QY8d9ZB6omv5kNn6kFB6v249WXP5ULAVvEDi" ], "license": "UNLICENSED" }, @@ -1863,10 +1863,10 @@ "license": "UNLICENSED" }, "src/structs/Subnet.sol": { - "keccak256": "0xb37b12df0c9ff47c2e88f9612b624bb44e6de5dfb8030dfd83582997dcd6aa83", + "keccak256": "0xf707af307e7f2654d44d3fbd6eb0c44c837da7c0941ad0b826e990198d96f67d", "urls": [ - "bzz-raw://a321a05abf7b3b461e3d6c4ac27b18d3e14dffad9e2bf9a0ceb68538a02ab1e4", - "dweb:/ipfs/QmPo878trP8pv9yXXpwUHSnP7Xt6uz9eWuB25pz2JGiCot" + "bzz-raw://79cd51a4ea33be35dd774b314ec44df5b8b0c112b06dd8f155c80dc4c2e6e0d0", + "dweb:/ipfs/QmRyAF4prSLXGuz2Q9PzdcTb8EkC67qdfhgKPtb36997Pm" ], "license": "UNLICENSED" }, @@ -1883,124 +1883,124 @@ }, "ast": { "absolutePath": "src/subnet/SubnetActorManagerFacet.sol", - "id": 45624, + "id": 40868, "exportedSymbols": { "AccountHelper": [ - 40508 + 35664 ], "Address": [ 29869 ], "BottomUpCheckpoint": [ - 44156 + 39332 ], "CheckpointHelper": [ - 40776 + 35932 ], "ChildCheck": [ - 44170 + 39346 ], "CollateralIsZero": [ - 38160 + 33176 ], "ConsensusType": [ - 38123 + 33139 ], "CrossMsg": [ - 44176 + 39352 ], "CrossMsgHelper": [ - 41103 + 36259 ], "EnumerableSet": [ - 33009 + 31877 ], "EpochVoteBottomUpSubmission": [ - 44233 + 39409 ], "EpochVoteSubmission": [ - 44215 + 39391 ], "EpochVoteSubmissionHelper": [ - 41151 + 36307 ], "ExecutableQueue": [ - 44246 + 39424 ], "ExecutableQueueHelper": [ - 41355 + 36514 ], "FilAddress": [ 298 ], "FvmAddress": [ - 44253 + 39431 ], "FvmAddressHelper": [ - 41482 + 36641 ], "IGateway": [ - 40421 + 35577 ], "ISubnetActor": [ - 40459 + 35615 ], "LibVoting": [ - 43438 + 38614 ], "MessageNotSorted": [ - 38186 + 33202 ], "MessagesNotSorted": [ - 38188 + 33204 ], "NoRewardToWithdraw": [ - 38190 + 33206 ], "NoValidatorsInSubnet": [ - 38192 + 33208 ], "NotAllValidatorsHaveLeft": [ - 38196 + 33212 ], "NotEnoughBalanceForRewards": [ - 38202 + 33218 ], "NotValidator": [ - 38222 + 33238 ], "ReentrancyGuard": [ - 42567 + 37729 ], "Status": [ - 38137 + 33153 ], "SubnetActorManagerFacet": [ - 45623 + 40867 ], "SubnetActorModifiers": [ - 42807 + 37970 ], "SubnetID": [ - 44279 + 39457 ], "SubnetIDHelper": [ - 44131 + 39307 ], "SubnetNotActive": [ - 38228 + 33244 ], "WrongCheckpointSource": [ - 38238 + 33254 ] }, "nodeType": "SourceUnit", - "src": "39:11147:68", + "src": "39:11147:64", "nodes": [ { - "id": 44749, + "id": 39993, "nodeType": "PragmaDirective", - "src": "39:23:68", + "src": "39:23:64", "nodes": [], "literals": [ "solidity", @@ -2009,24 +2009,24 @@ ] }, { - "id": 44751, + "id": 39995, "nodeType": "ImportDirective", - "src": "64:70:68", + "src": "64:70:64", "nodes": [], "absolutePath": "src/lib/LibSubnetActorStorage.sol", "file": "../lib/LibSubnetActorStorage.sol", "nameLocation": "-1:-1:-1", - "scope": 45624, - "sourceUnit": 42808, + "scope": 40868, + "sourceUnit": 37971, "symbolAliases": [ { "foreign": { - "id": 44750, + "id": 39994, "name": "SubnetActorModifiers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42807, - "src": "72:20:68", + "referencedDeclaration": 37970, + "src": "72:20:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2035,24 +2035,24 @@ "unitAlias": "" }, { - "id": 44753, + "id": 39997, "nodeType": "ImportDirective", - "src": "135:62:68", + "src": "135:62:64", "nodes": [], "absolutePath": "src/lib/LibReentrancyGuard.sol", "file": "../lib/LibReentrancyGuard.sol", "nameLocation": "-1:-1:-1", - "scope": 45624, - "sourceUnit": 42568, + "scope": 40868, + "sourceUnit": 37730, "symbolAliases": [ { "foreign": { - "id": 44752, + "id": 39996, "name": "ReentrancyGuard", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42567, - "src": "143:15:68", + "referencedDeclaration": 37729, + "src": "143:15:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2061,24 +2061,24 @@ "unitAlias": "" }, { - "id": 44755, + "id": 39999, "nodeType": "ImportDirective", - "src": "198:53:68", + "src": "198:53:64", "nodes": [], "absolutePath": "src/structs/FvmAddress.sol", "file": "../structs/FvmAddress.sol", "nameLocation": "-1:-1:-1", - "scope": 45624, - "sourceUnit": 44261, + "scope": 40868, + "sourceUnit": 39439, "symbolAliases": [ { "foreign": { - "id": 44754, + "id": 39998, "name": "FvmAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44253, - "src": "206:10:68", + "referencedDeclaration": 39431, + "src": "206:10:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2087,48 +2087,48 @@ "unitAlias": "" }, { - "id": 44759, + "id": 40003, "nodeType": "ImportDirective", - "src": "252:83:68", + "src": "252:83:64", "nodes": [], "absolutePath": "src/structs/Checkpoint.sol", "file": "../structs/Checkpoint.sol", "nameLocation": "-1:-1:-1", - "scope": 45624, - "sourceUnit": 44192, + "scope": 40868, + "sourceUnit": 39368, "symbolAliases": [ { "foreign": { - "id": 44756, + "id": 40000, "name": "BottomUpCheckpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44156, - "src": "260:18:68", + "referencedDeclaration": 39332, + "src": "260:18:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 44757, + "id": 40001, "name": "CrossMsg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44176, - "src": "280:8:68", + "referencedDeclaration": 39352, + "src": "280:8:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 44758, + "id": 40002, "name": "ChildCheck", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44170, - "src": "290:10:68", + "referencedDeclaration": 39346, + "src": "290:10:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2137,24 +2137,24 @@ "unitAlias": "" }, { - "id": 44761, + "id": 40005, "nodeType": "ImportDirective", - "src": "336:47:68", + "src": "336:47:64", "nodes": [], "absolutePath": "src/structs/Subnet.sol", "file": "../structs/Subnet.sol", "nameLocation": "-1:-1:-1", - "scope": 45624, - "sourceUnit": 44311, + "scope": 40868, + "sourceUnit": 39489, "symbolAliases": [ { "foreign": { - "id": 44760, + "id": 40004, "name": "SubnetID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44279, - "src": "344:8:68", + "referencedDeclaration": 39457, + "src": "344:8:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2163,132 +2163,132 @@ "unitAlias": "" }, { - "id": 44772, + "id": 40016, "nodeType": "ImportDirective", - "src": "384:244:68", + "src": "384:244:64", "nodes": [], "absolutePath": "src/errors/IPCErrors.sol", "file": "../errors/IPCErrors.sol", "nameLocation": "-1:-1:-1", - "scope": 45624, - "sourceUnit": 38239, + "scope": 40868, + "sourceUnit": 33255, "symbolAliases": [ { "foreign": { - "id": 44762, + "id": 40006, "name": "CollateralIsZero", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38160, - "src": "392:16:68", + "referencedDeclaration": 33176, + "src": "392:16:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 44763, + "id": 40007, "name": "MessagesNotSorted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38188, - "src": "410:17:68", + "referencedDeclaration": 33204, + "src": "410:17:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 44764, + "id": 40008, "name": "NotEnoughBalanceForRewards", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38202, - "src": "429:26:68", + "referencedDeclaration": 33218, + "src": "429:26:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 44765, + "id": 40009, "name": "NoValidatorsInSubnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38192, - "src": "457:20:68", + "referencedDeclaration": 33208, + "src": "457:20:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 44766, + "id": 40010, "name": "NotValidator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38222, - "src": "479:12:68", + "referencedDeclaration": 33238, + "src": "479:12:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 44767, + "id": 40011, "name": "NotAllValidatorsHaveLeft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38196, - "src": "493:24:68", + "referencedDeclaration": 33212, + "src": "493:24:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 44768, + "id": 40012, "name": "SubnetNotActive", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38228, - "src": "519:15:68", + "referencedDeclaration": 33244, + "src": "519:15:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 44769, + "id": 40013, "name": "WrongCheckpointSource", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38238, - "src": "536:21:68", + "referencedDeclaration": 33254, + "src": "536:21:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 44770, + "id": 40014, "name": "MessageNotSorted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38186, - "src": "559:16:68", + "referencedDeclaration": 33202, + "src": "559:16:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 44771, + "id": 40015, "name": "NoRewardToWithdraw", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38190, - "src": "577:18:68", + "referencedDeclaration": 33206, + "src": "577:18:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2297,24 +2297,24 @@ "unitAlias": "" }, { - "id": 44774, + "id": 40018, "nodeType": "ImportDirective", - "src": "629:57:68", + "src": "629:57:64", "nodes": [], "absolutePath": "src/lib/SubnetIDHelper.sol", "file": "../lib/SubnetIDHelper.sol", "nameLocation": "-1:-1:-1", - "scope": 45624, - "sourceUnit": 44132, + "scope": 40868, + "sourceUnit": 39308, "symbolAliases": [ { "foreign": { - "id": 44773, + "id": 40017, "name": "SubnetIDHelper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44131, - "src": "637:14:68", + "referencedDeclaration": 39307, + "src": "637:14:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2323,24 +2323,24 @@ "unitAlias": "" }, { - "id": 44776, + "id": 40020, "nodeType": "ImportDirective", - "src": "687:61:68", + "src": "687:61:64", "nodes": [], "absolutePath": "src/lib/CheckpointHelper.sol", "file": "../lib/CheckpointHelper.sol", "nameLocation": "-1:-1:-1", - "scope": 45624, - "sourceUnit": 40777, + "scope": 40868, + "sourceUnit": 35933, "symbolAliases": [ { "foreign": { - "id": 44775, + "id": 40019, "name": "CheckpointHelper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40776, - "src": "695:16:68", + "referencedDeclaration": 35932, + "src": "695:16:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2349,24 +2349,24 @@ "unitAlias": "" }, { - "id": 44778, + "id": 40022, "nodeType": "ImportDirective", - "src": "749:71:68", + "src": "749:71:64", "nodes": [], "absolutePath": "src/structs/EpochVoteSubmission.sol", "file": "../structs/EpochVoteSubmission.sol", "nameLocation": "-1:-1:-1", - "scope": 45624, - "sourceUnit": 44234, + "scope": 40868, + "sourceUnit": 39410, "symbolAliases": [ { "foreign": { - "id": 44777, + "id": 40021, "name": "EpochVoteSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44215, - "src": "757:19:68", + "referencedDeclaration": 39391, + "src": "757:19:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2375,24 +2375,24 @@ "unitAlias": "" }, { - "id": 44780, + "id": 40024, "nodeType": "ImportDirective", - "src": "821:60:68", + "src": "821:60:64", "nodes": [], "absolutePath": "src/interfaces/ISubnetActor.sol", "file": "../interfaces/ISubnetActor.sol", "nameLocation": "-1:-1:-1", - "scope": 45624, - "sourceUnit": 40460, + "scope": 40868, + "sourceUnit": 35616, "symbolAliases": [ { "foreign": { - "id": 44779, + "id": 40023, "name": "ISubnetActor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40459, - "src": "829:12:68", + "referencedDeclaration": 35615, + "src": "829:12:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2401,24 +2401,24 @@ "unitAlias": "" }, { - "id": 44782, + "id": 40026, "nodeType": "ImportDirective", - "src": "882:52:68", + "src": "882:52:64", "nodes": [], "absolutePath": "src/interfaces/IGateway.sol", "file": "../interfaces/IGateway.sol", "nameLocation": "-1:-1:-1", - "scope": 45624, - "sourceUnit": 40422, + "scope": 40868, + "sourceUnit": 35578, "symbolAliases": [ { "foreign": { - "id": 44781, + "id": 40025, "name": "IGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40421, - "src": "890:8:68", + "referencedDeclaration": 35577, + "src": "890:8:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2427,24 +2427,24 @@ "unitAlias": "" }, { - "id": 44784, + "id": 40028, "nodeType": "ImportDirective", - "src": "935:55:68", + "src": "935:55:64", "nodes": [], "absolutePath": "src/lib/AccountHelper.sol", "file": "../lib/AccountHelper.sol", "nameLocation": "-1:-1:-1", - "scope": 45624, - "sourceUnit": 40509, + "scope": 40868, + "sourceUnit": 35665, "symbolAliases": [ { "foreign": { - "id": 44783, + "id": 40027, "name": "AccountHelper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40508, - "src": "943:13:68", + "referencedDeclaration": 35664, + "src": "943:13:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2453,24 +2453,24 @@ "unitAlias": "" }, { - "id": 44786, + "id": 40030, "nodeType": "ImportDirective", - "src": "991:57:68", + "src": "991:57:64", "nodes": [], "absolutePath": "src/lib/CrossMsgHelper.sol", "file": "../lib/CrossMsgHelper.sol", "nameLocation": "-1:-1:-1", - "scope": 45624, - "sourceUnit": 41104, + "scope": 40868, + "sourceUnit": 36260, "symbolAliases": [ { "foreign": { - "id": 44785, + "id": 40029, "name": "CrossMsgHelper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 41103, - "src": "999:14:68", + "referencedDeclaration": 36259, + "src": "999:14:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2479,24 +2479,24 @@ "unitAlias": "" }, { - "id": 44788, + "id": 40032, "nodeType": "ImportDirective", - "src": "1049:63:68", + "src": "1049:63:64", "nodes": [], "absolutePath": "src/structs/ExecutableQueue.sol", "file": "../structs/ExecutableQueue.sol", "nameLocation": "-1:-1:-1", - "scope": 45624, - "sourceUnit": 44247, + "scope": 40868, + "sourceUnit": 39425, "symbolAliases": [ { "foreign": { - "id": 44787, + "id": 40031, "name": "ExecutableQueue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44246, - "src": "1057:15:68", + "referencedDeclaration": 39424, + "src": "1057:15:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2505,24 +2505,24 @@ "unitAlias": "" }, { - "id": 44790, + "id": 40034, "nodeType": "ImportDirective", - "src": "1113:71:68", + "src": "1113:71:64", "nodes": [], "absolutePath": "src/lib/ExecutableQueueHelper.sol", "file": "../lib/ExecutableQueueHelper.sol", "nameLocation": "-1:-1:-1", - "scope": 45624, - "sourceUnit": 41356, + "scope": 40868, + "sourceUnit": 36515, "symbolAliases": [ { "foreign": { - "id": 44789, + "id": 40033, "name": "ExecutableQueueHelper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 41355, - "src": "1121:21:68", + "referencedDeclaration": 36514, + "src": "1121:21:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2531,24 +2531,24 @@ "unitAlias": "" }, { - "id": 44792, + "id": 40036, "nodeType": "ImportDirective", - "src": "1185:79:68", + "src": "1185:79:64", "nodes": [], "absolutePath": "src/structs/EpochVoteSubmission.sol", "file": "../structs/EpochVoteSubmission.sol", "nameLocation": "-1:-1:-1", - "scope": 45624, - "sourceUnit": 44234, + "scope": 40868, + "sourceUnit": 39410, "symbolAliases": [ { "foreign": { - "id": 44791, + "id": 40035, "name": "EpochVoteBottomUpSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44233, - "src": "1193:27:68", + "referencedDeclaration": 39409, + "src": "1193:27:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2557,24 +2557,24 @@ "unitAlias": "" }, { - "id": 44794, + "id": 40038, "nodeType": "ImportDirective", - "src": "1265:79:68", + "src": "1265:79:64", "nodes": [], "absolutePath": "src/lib/EpochVoteSubmissionHelper.sol", "file": "../lib/EpochVoteSubmissionHelper.sol", "nameLocation": "-1:-1:-1", - "scope": 45624, - "sourceUnit": 41152, + "scope": 40868, + "sourceUnit": 36308, "symbolAliases": [ { "foreign": { - "id": 44793, + "id": 40037, "name": "EpochVoteSubmissionHelper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 41151, - "src": "1273:25:68", + "referencedDeclaration": 36307, + "src": "1273:25:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2583,24 +2583,24 @@ "unitAlias": "" }, { - "id": 44796, + "id": 40040, "nodeType": "ImportDirective", - "src": "1345:47:68", + "src": "1345:47:64", "nodes": [], "absolutePath": "src/lib/LibVoting.sol", "file": "../lib/LibVoting.sol", "nameLocation": "-1:-1:-1", - "scope": 45624, - "sourceUnit": 43439, + "scope": 40868, + "sourceUnit": 38615, "symbolAliases": [ { "foreign": { - "id": 44795, + "id": 40039, "name": "LibVoting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 43438, - "src": "1353:9:68", + "referencedDeclaration": 38614, + "src": "1353:9:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2609,24 +2609,24 @@ "unitAlias": "" }, { - "id": 44798, + "id": 40042, "nodeType": "ImportDirective", - "src": "1393:43:68", + "src": "1393:43:64", "nodes": [], "absolutePath": "src/enums/Status.sol", "file": "../enums/Status.sol", "nameLocation": "-1:-1:-1", - "scope": 45624, - "sourceUnit": 38138, + "scope": 40868, + "sourceUnit": 33154, "symbolAliases": [ { "foreign": { - "id": 44797, + "id": 40041, "name": "Status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38137, - "src": "1401:6:68", + "referencedDeclaration": 33153, + "src": "1401:6:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2635,24 +2635,24 @@ "unitAlias": "" }, { - "id": 44800, + "id": 40044, "nodeType": "ImportDirective", - "src": "1437:57:68", + "src": "1437:57:64", "nodes": [], "absolutePath": "src/enums/ConsensusType.sol", "file": "../enums/ConsensusType.sol", "nameLocation": "-1:-1:-1", - "scope": 45624, - "sourceUnit": 38124, + "scope": 40868, + "sourceUnit": 33140, "symbolAliases": [ { "foreign": { - "id": 44799, + "id": 40043, "name": "ConsensusType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38123, - "src": "1445:13:68", + "referencedDeclaration": 33139, + "src": "1445:13:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2661,24 +2661,24 @@ "unitAlias": "" }, { - "id": 44802, + "id": 40046, "nodeType": "ImportDirective", - "src": "1495:85:68", + "src": "1495:85:64", "nodes": [], "absolutePath": "lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "file": "openzeppelin-contracts/utils/structs/EnumerableSet.sol", "nameLocation": "-1:-1:-1", - "scope": 45624, - "sourceUnit": 33010, + "scope": 40868, + "sourceUnit": 31878, "symbolAliases": [ { "foreign": { - "id": 44801, + "id": 40045, "name": "EnumerableSet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 33009, - "src": "1503:13:68", + "referencedDeclaration": 31877, + "src": "1503:13:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2687,24 +2687,24 @@ "unitAlias": "" }, { - "id": 44804, + "id": 40048, "nodeType": "ImportDirective", - "src": "1581:56:68", + "src": "1581:56:64", "nodes": [], "absolutePath": "lib/fevmate/contracts/utils/FilAddress.sol", "file": "fevmate/utils/FilAddress.sol", "nameLocation": "-1:-1:-1", - "scope": 45624, + "scope": 40868, "sourceUnit": 299, "symbolAliases": [ { "foreign": { - "id": 44803, + "id": 40047, "name": "FilAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 298, - "src": "1589:10:68", + "src": "1589:10:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2713,24 +2713,24 @@ "unitAlias": "" }, { - "id": 44806, + "id": 40050, "nodeType": "ImportDirective", - "src": "1638:65:68", + "src": "1638:65:64", "nodes": [], "absolutePath": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "file": "openzeppelin-contracts/utils/Address.sol", "nameLocation": "-1:-1:-1", - "scope": 45624, + "scope": 40868, "sourceUnit": 29870, "symbolAliases": [ { "foreign": { - "id": 44805, + "id": 40049, "name": "Address", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 29869, - "src": "1646:7:68", + "src": "1646:7:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2739,24 +2739,24 @@ "unitAlias": "" }, { - "id": 44808, + "id": 40052, "nodeType": "ImportDirective", - "src": "1704:61:68", + "src": "1704:61:64", "nodes": [], "absolutePath": "src/lib/FvmAddressHelper.sol", "file": "../lib/FvmAddressHelper.sol", "nameLocation": "-1:-1:-1", - "scope": 45624, - "sourceUnit": 41483, + "scope": 40868, + "sourceUnit": 36642, "symbolAliases": [ { "foreign": { - "id": 44807, + "id": 40051, "name": "FvmAddressHelper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 41482, - "src": "1712:16:68", + "referencedDeclaration": 36641, + "src": "1712:16:64", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -2765,143 +2765,143 @@ "unitAlias": "" }, { - "id": 45623, + "id": 40867, "nodeType": "ContractDefinition", - "src": "1767:9418:68", + "src": "1767:9418:64", "nodes": [ { - "id": 44818, + "id": 40062, "nodeType": "UsingForDirective", - "src": "1861:49:68", + "src": "1861:49:64", "nodes": [], "global": false, "libraryName": { - "id": 44815, + "id": 40059, "name": "EnumerableSet", "nameLocations": [ - "1867:13:68" + "1867:13:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 33009, - "src": "1867:13:68" + "referencedDeclaration": 31877, + "src": "1867:13:64" }, "typeName": { - "id": 44817, + "id": 40061, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 44816, + "id": 40060, "name": "EnumerableSet.AddressSet", "nameLocations": [ - "1885:13:68", - "1899:10:68" + "1885:13:64", + "1899:10:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 32722, - "src": "1885:24:68" + "referencedDeclaration": 31590, + "src": "1885:24:64" }, - "referencedDeclaration": 32722, - "src": "1885:24:68", + "referencedDeclaration": 31590, + "src": "1885:24:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$32722_storage_ptr", + "typeIdentifier": "t_struct$_AddressSet_$31590_storage_ptr", "typeString": "struct EnumerableSet.AddressSet" } } }, { - "id": 44822, + "id": 40066, "nodeType": "UsingForDirective", - "src": "1915:34:68", + "src": "1915:34:64", "nodes": [], "global": false, "libraryName": { - "id": 44819, + "id": 40063, "name": "SubnetIDHelper", "nameLocations": [ - "1921:14:68" + "1921:14:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44131, - "src": "1921:14:68" + "referencedDeclaration": 39307, + "src": "1921:14:64" }, "typeName": { - "id": 44821, + "id": 40065, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 44820, + "id": 40064, "name": "SubnetID", "nameLocations": [ - "1940:8:68" + "1940:8:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44279, - "src": "1940:8:68" + "referencedDeclaration": 39457, + "src": "1940:8:64" }, - "referencedDeclaration": 44279, - "src": "1940:8:68", + "referencedDeclaration": 39457, + "src": "1940:8:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage_ptr", "typeString": "struct SubnetID" } } }, { - "id": 44826, + "id": 40070, "nodeType": "UsingForDirective", - "src": "1954:46:68", + "src": "1954:46:64", "nodes": [], "global": false, "libraryName": { - "id": 44823, + "id": 40067, "name": "CheckpointHelper", "nameLocations": [ - "1960:16:68" + "1960:16:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 40776, - "src": "1960:16:68" + "referencedDeclaration": 35932, + "src": "1960:16:64" }, "typeName": { - "id": 44825, + "id": 40069, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 44824, + "id": 40068, "name": "BottomUpCheckpoint", "nameLocations": [ - "1981:18:68" + "1981:18:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44156, - "src": "1981:18:68" + "referencedDeclaration": 39332, + "src": "1981:18:64" }, - "referencedDeclaration": 44156, - "src": "1981:18:68", + "referencedDeclaration": 39332, + "src": "1981:18:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage_ptr", "typeString": "struct BottomUpCheckpoint" } } }, { - "id": 44829, + "id": 40073, "nodeType": "UsingForDirective", - "src": "2005:29:68", + "src": "2005:29:64", "nodes": [], "global": false, "libraryName": { - "id": 44827, + "id": 40071, "name": "FilAddress", "nameLocations": [ - "2011:10:68" + "2011:10:64" ], "nodeType": "IdentifierPath", "referencedDeclaration": 298, - "src": "2011:10:68" + "src": "2011:10:64" }, "typeName": { - "id": 44828, + "id": 40072, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2026:7:68", + "src": "2026:7:64", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2910,26 +2910,26 @@ } }, { - "id": 44832, + "id": 40076, "nodeType": "UsingForDirective", - "src": "2039:34:68", + "src": "2039:34:64", "nodes": [], "global": false, "libraryName": { - "id": 44830, + "id": 40074, "name": "Address", "nameLocations": [ - "2045:7:68" + "2045:7:64" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29869, - "src": "2045:7:68" + "src": "2045:7:64" }, "typeName": { - "id": 44831, + "id": 40075, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2057:15:68", + "src": "2057:15:64", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -2938,26 +2938,26 @@ } }, { - "id": 44835, + "id": 40079, "nodeType": "UsingForDirective", - "src": "2078:32:68", + "src": "2078:32:64", "nodes": [], "global": false, "libraryName": { - "id": 44833, + "id": 40077, "name": "AccountHelper", "nameLocations": [ - "2084:13:68" + "2084:13:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 40508, - "src": "2084:13:68" + "referencedDeclaration": 35664, + "src": "2084:13:64" }, "typeName": { - "id": 44834, + "id": 40078, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2102:7:68", + "src": "2102:7:64", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2966,178 +2966,178 @@ } }, { - "id": 44839, + "id": 40083, "nodeType": "UsingForDirective", - "src": "2115:48:68", + "src": "2115:48:64", "nodes": [], "global": false, "libraryName": { - "id": 44836, + "id": 40080, "name": "ExecutableQueueHelper", "nameLocations": [ - "2121:21:68" + "2121:21:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 41355, - "src": "2121:21:68" + "referencedDeclaration": 36514, + "src": "2121:21:64" }, "typeName": { - "id": 44838, + "id": 40082, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 44837, + "id": 40081, "name": "ExecutableQueue", "nameLocations": [ - "2147:15:68" + "2147:15:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44246, - "src": "2147:15:68" + "referencedDeclaration": 39424, + "src": "2147:15:64" }, - "referencedDeclaration": 44246, - "src": "2147:15:68", + "referencedDeclaration": 39424, + "src": "2147:15:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_ExecutableQueue_$44246_storage_ptr", + "typeIdentifier": "t_struct$_ExecutableQueue_$39424_storage_ptr", "typeString": "struct ExecutableQueue" } } }, { - "id": 44843, + "id": 40087, "nodeType": "UsingForDirective", - "src": "2168:56:68", + "src": "2168:56:64", "nodes": [], "global": false, "libraryName": { - "id": 44840, + "id": 40084, "name": "EpochVoteSubmissionHelper", "nameLocations": [ - "2174:25:68" + "2174:25:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 41151, - "src": "2174:25:68" + "referencedDeclaration": 36307, + "src": "2174:25:64" }, "typeName": { - "id": 44842, + "id": 40086, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 44841, + "id": 40085, "name": "EpochVoteSubmission", "nameLocations": [ - "2204:19:68" + "2204:19:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44215, - "src": "2204:19:68" + "referencedDeclaration": 39391, + "src": "2204:19:64" }, - "referencedDeclaration": 44215, - "src": "2204:19:68", + "referencedDeclaration": 39391, + "src": "2204:19:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteSubmission_$44215_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteSubmission_$39391_storage_ptr", "typeString": "struct EpochVoteSubmission" } } }, { - "id": 44847, + "id": 40091, "nodeType": "UsingForDirective", - "src": "2229:34:68", + "src": "2229:34:64", "nodes": [], "global": false, "libraryName": { - "id": 44844, + "id": 40088, "name": "CrossMsgHelper", "nameLocations": [ - "2235:14:68" + "2235:14:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 41103, - "src": "2235:14:68" + "referencedDeclaration": 36259, + "src": "2235:14:64" }, "typeName": { - "id": 44846, + "id": 40090, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 44845, + "id": 40089, "name": "CrossMsg", "nameLocations": [ - "2254:8:68" + "2254:8:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44176, - "src": "2254:8:68" + "referencedDeclaration": 39352, + "src": "2254:8:64" }, - "referencedDeclaration": 44176, - "src": "2254:8:68", + "referencedDeclaration": 39352, + "src": "2254:8:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_CrossMsg_$44176_storage_ptr", + "typeIdentifier": "t_struct$_CrossMsg_$39352_storage_ptr", "typeString": "struct CrossMsg" } } }, { - "id": 44851, + "id": 40095, "nodeType": "UsingForDirective", - "src": "2268:38:68", + "src": "2268:38:64", "nodes": [], "global": false, "libraryName": { - "id": 44848, + "id": 40092, "name": "FvmAddressHelper", "nameLocations": [ - "2274:16:68" + "2274:16:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 41482, - "src": "2274:16:68" + "referencedDeclaration": 36641, + "src": "2274:16:64" }, "typeName": { - "id": 44850, + "id": 40094, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 44849, + "id": 40093, "name": "FvmAddress", "nameLocations": [ - "2295:10:68" + "2295:10:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44253, - "src": "2295:10:68" + "referencedDeclaration": 39431, + "src": "2295:10:64" }, - "referencedDeclaration": 44253, - "src": "2295:10:68", + "referencedDeclaration": 39431, + "src": "2295:10:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_FvmAddress_$44253_storage_ptr", + "typeIdentifier": "t_struct$_FvmAddress_$39431_storage_ptr", "typeString": "struct FvmAddress" } } }, { - "id": 45000, + "id": 40244, "nodeType": "FunctionDefinition", - "src": "2440:1280:68", + "src": "2440:1280:64", "nodes": [], "body": { - "id": 44999, + "id": 40243, "nodeType": "Block", - "src": "2551:1169:68", + "src": "2551:1169:64", "nodes": [], "statements": [ { "assignments": [ - 44865 + 40109 ], "declarations": [ { "constant": false, - "id": 44865, + "id": 40109, "mutability": "mutable", "name": "validatorStake", - "nameLocation": "2569:14:68", + "nameLocation": "2569:14:64", "nodeType": "VariableDeclaration", - "scope": 44999, - "src": "2561:22:68", + "scope": 40243, + "src": "2561:22:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3145,10 +3145,10 @@ "typeString": "uint256" }, "typeName": { - "id": 44864, + "id": 40108, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2561:7:68", + "src": "2561:7:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3157,51 +3157,51 @@ "visibility": "internal" } ], - "id": 44868, + "id": 40112, "initialValue": { "expression": { - "id": 44866, + "id": 40110, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "2586:3:68", + "src": "2586:3:64", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 44867, + "id": 40111, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2590:5:68", + "memberLocation": "2590:5:64", "memberName": "value", "nodeType": "MemberAccess", - "src": "2586:9:68", + "src": "2586:9:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2561:34:68" + "src": "2561:34:64" }, { "assignments": [ - 44870 + 40114 ], "declarations": [ { "constant": false, - "id": 44870, + "id": 40114, "mutability": "mutable", "name": "validator", - "nameLocation": "2613:9:68", + "nameLocation": "2613:9:64", "nodeType": "VariableDeclaration", - "scope": 44999, - "src": "2605:17:68", + "scope": 40243, + "src": "2605:17:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3209,10 +3209,10 @@ "typeString": "address" }, "typeName": { - "id": 44869, + "id": 40113, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2605:7:68", + "src": "2605:7:64", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3222,36 +3222,36 @@ "visibility": "internal" } ], - "id": 44873, + "id": 40117, "initialValue": { "expression": { - "id": 44871, + "id": 40115, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "2625:3:68", + "src": "2625:3:64", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 44872, + "id": 40116, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2629:6:68", + "memberLocation": "2629:6:64", "memberName": "sender", "nodeType": "MemberAccess", - "src": "2625:10:68", + "src": "2625:10:64", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "2605:30:68" + "src": "2605:30:64" }, { "condition": { @@ -3259,18 +3259,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 44876, + "id": 40120, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 44874, + "id": 40118, "name": "validatorStake", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44865, - "src": "2649:14:68", + "referencedDeclaration": 40109, + "src": "2649:14:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3280,51 +3280,51 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 44875, + "id": 40119, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2667:1:68", + "src": "2667:1:64", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "2649:19:68", + "src": "2649:19:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 44881, + "id": 40125, "nodeType": "IfStatement", - "src": "2645:75:68", + "src": "2645:75:64", "trueBody": { - "id": 44880, + "id": 40124, "nodeType": "Block", - "src": "2670:50:68", + "src": "2670:50:64", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 44877, + "id": 40121, "name": "CollateralIsZero", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38160, - "src": "2691:16:68", + "referencedDeclaration": 33176, + "src": "2691:16:64", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 44878, + "id": 40122, "isConstant": false, "isLValue": false, "isPure": false, @@ -3333,23 +3333,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2691:18:68", + "src": "2691:18:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 44879, + "id": 40123, "nodeType": "RevertStatement", - "src": "2684:25:68" + "src": "2684:25:64" } ] } }, { "expression": { - "id": 44888, + "id": 40132, "isConstant": false, "isLValue": false, "isPure": false, @@ -3357,40 +3357,40 @@ "leftHandSide": { "baseExpression": { "expression": { - "id": 44882, + "id": 40126, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "2730:1:68", + "referencedDeclaration": 37869, + "src": "2730:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 44885, + "id": 40129, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2732:5:68", + "memberLocation": "2732:5:64", "memberName": "stake", "nodeType": "MemberAccess", - "referencedDeclaration": 42647, - "src": "2730:7:68", + "referencedDeclaration": 37786, + "src": "2730:7:64", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 44886, + "id": 40130, "indexExpression": { - "id": 44884, + "id": 40128, "name": "validator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44870, - "src": "2738:9:68", + "referencedDeclaration": 40114, + "src": "2738:9:64", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3401,7 +3401,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2730:18:68", + "src": "2730:18:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3410,57 +3410,57 @@ "nodeType": "Assignment", "operator": "+=", "rightHandSide": { - "id": 44887, + "id": 40131, "name": "validatorStake", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44865, - "src": "2752:14:68", + "referencedDeclaration": 40109, + "src": "2752:14:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2730:36:68", + "src": "2730:36:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 44889, + "id": 40133, "nodeType": "ExpressionStatement", - "src": "2730:36:68" + "src": "2730:36:64" }, { "expression": { - "id": 44894, + "id": 40138, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 44890, + "id": 40134, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "2776:1:68", + "referencedDeclaration": 37869, + "src": "2776:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 44892, + "id": 40136, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "2778:10:68", + "memberLocation": "2778:10:64", "memberName": "totalStake", "nodeType": "MemberAccess", - "referencedDeclaration": 42616, - "src": "2776:12:68", + "referencedDeclaration": 37814, + "src": "2776:12:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3469,26 +3469,26 @@ "nodeType": "Assignment", "operator": "+=", "rightHandSide": { - "id": 44893, + "id": 40137, "name": "validatorStake", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44865, - "src": "2792:14:68", + "referencedDeclaration": 40109, + "src": "2792:14:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2776:30:68", + "src": "2776:30:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 44895, + "id": 40139, "nodeType": "ExpressionStatement", - "src": "2776:30:68" + "src": "2776:30:64" }, { "condition": { @@ -3496,7 +3496,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 44902, + "id": 40146, "isConstant": false, "isLValue": false, "isPure": false, @@ -3504,40 +3504,40 @@ "leftExpression": { "baseExpression": { "expression": { - "id": 44896, + "id": 40140, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "2821:1:68", + "referencedDeclaration": 37869, + "src": "2821:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 44897, + "id": 40141, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2823:5:68", + "memberLocation": "2823:5:64", "memberName": "stake", "nodeType": "MemberAccess", - "referencedDeclaration": 42647, - "src": "2821:7:68", + "referencedDeclaration": 37786, + "src": "2821:7:64", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 44899, + "id": 40143, "indexExpression": { - "id": 44898, + "id": 40142, "name": "validator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44870, - "src": "2829:9:68", + "referencedDeclaration": 40114, + "src": "2829:9:64", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3548,7 +3548,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2821:18:68", + "src": "2821:18:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3558,49 +3558,49 @@ "operator": ">=", "rightExpression": { "expression": { - "id": 44900, + "id": 40144, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "2843:1:68", + "referencedDeclaration": 37869, + "src": "2843:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 44901, + "id": 40145, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2845:23:68", + "memberLocation": "2845:23:64", "memberName": "minActivationCollateral", "nodeType": "MemberAccess", - "referencedDeclaration": 42693, - "src": "2843:25:68", + "referencedDeclaration": 37817, + "src": "2843:25:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2821:47:68", + "src": "2821:47:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 44936, + "id": 40180, "nodeType": "IfStatement", - "src": "2817:365:68", + "src": "2817:365:64", "trueBody": { - "id": 44935, + "id": 40179, "nodeType": "Block", - "src": "2870:312:68", + "src": "2870:312:64", "statements": [ { "condition": { - "id": 44908, + "id": 40152, "isConstant": false, "isLValue": false, "isPure": false, @@ -3608,16 +3608,16 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2888:33:68", + "src": "2888:33:64", "subExpression": { "arguments": [ { - "id": 44906, + "id": 40150, "name": "validator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44870, - "src": "2911:9:68", + "referencedDeclaration": 40114, + "src": "2911:9:64", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3633,48 +3633,48 @@ ], "expression": { "expression": { - "id": 44903, + "id": 40147, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "2889:1:68", + "referencedDeclaration": 37869, + "src": "2889:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 44904, + "id": 40148, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2891:10:68", + "memberLocation": "2891:10:64", "memberName": "validators", "nodeType": "MemberAccess", - "referencedDeclaration": 42636, - "src": "2889:12:68", + "referencedDeclaration": 37848, + "src": "2889:12:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$32722_storage", + "typeIdentifier": "t_struct$_AddressSet_$31590_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 44905, + "id": 40149, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2902:8:68", + "memberLocation": "2902:8:64", "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 32803, - "src": "2889:21:68", + "referencedDeclaration": 31671, + "src": "2889:21:64", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32722_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$32722_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$31590_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$31590_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 44907, + "id": 40151, "isConstant": false, "isLValue": false, "isPure": false, @@ -3683,7 +3683,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2889:32:68", + "src": "2889:32:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3695,24 +3695,24 @@ "typeString": "bool" } }, - "id": 44934, + "id": 40178, "nodeType": "IfStatement", - "src": "2884:288:68", + "src": "2884:288:64", "trueBody": { - "id": 44933, + "id": 40177, "nodeType": "Block", - "src": "2923:249:68", + "src": "2923:249:64", "statements": [ { "expression": { "arguments": [ { - "id": 44914, + "id": 40158, "name": "validator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44870, - "src": "3017:9:68", + "referencedDeclaration": 40114, + "src": "3017:9:64", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3728,48 +3728,48 @@ ], "expression": { "expression": { - "id": 44909, + "id": 40153, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "3000:1:68", + "referencedDeclaration": 37869, + "src": "3000:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 44912, + "id": 40156, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3002:10:68", + "memberLocation": "3002:10:64", "memberName": "validators", "nodeType": "MemberAccess", - "referencedDeclaration": 42636, - "src": "3000:12:68", + "referencedDeclaration": 37848, + "src": "3000:12:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$32722_storage", + "typeIdentifier": "t_struct$_AddressSet_$31590_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 44913, + "id": 40157, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3013:3:68", + "memberLocation": "3013:3:64", "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 32749, - "src": "3000:16:68", + "referencedDeclaration": 31617, + "src": "3000:16:64", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$32722_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$32722_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$31590_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$31590_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" } }, - "id": 44915, + "id": 40159, "isConstant": false, "isLValue": false, "isPure": false, @@ -3778,20 +3778,20 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3000:27:68", + "src": "3000:27:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 44916, + "id": 40160, "nodeType": "ExpressionStatement", - "src": "3000:27:68" + "src": "3000:27:64" }, { "expression": { - "id": 44923, + "id": 40167, "isConstant": false, "isLValue": false, "isPure": false, @@ -3799,40 +3799,40 @@ "leftHandSide": { "baseExpression": { "expression": { - "id": 44917, + "id": 40161, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "3045:1:68", + "referencedDeclaration": 37869, + "src": "3045:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 44920, + "id": 40164, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3047:21:68", + "memberLocation": "3047:21:64", "memberName": "validatorNetAddresses", "nodeType": "MemberAccess", - "referencedDeclaration": 42657, - "src": "3045:23:68", + "referencedDeclaration": 37796, + "src": "3045:23:64", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_string_storage_$", "typeString": "mapping(address => string storage ref)" } }, - "id": 44921, + "id": 40165, "indexExpression": { - "id": 44919, + "id": 40163, "name": "validator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44870, - "src": "3069:9:68", + "referencedDeclaration": 40114, + "src": "3069:9:64", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3843,7 +3843,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3045:34:68", + "src": "3045:34:64", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -3852,30 +3852,30 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 44922, + "id": 40166, "name": "netAddr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44854, - "src": "3082:7:68", + "referencedDeclaration": 40098, + "src": "3082:7:64", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string calldata" } }, - "src": "3045:44:68", + "src": "3045:44:64", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 44924, + "id": 40168, "nodeType": "ExpressionStatement", - "src": "3045:44:68" + "src": "3045:44:64" }, { "expression": { - "id": 44931, + "id": 40175, "isConstant": false, "isLValue": false, "isPure": false, @@ -3883,40 +3883,40 @@ "leftHandSide": { "baseExpression": { "expression": { - "id": 44925, + "id": 40169, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "3107:1:68", + "referencedDeclaration": 37869, + "src": "3107:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 44928, + "id": 40172, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3109:24:68", + "memberLocation": "3109:24:64", "memberName": "validatorWorkerAddresses", "nodeType": "MemberAccess", - "referencedDeclaration": 42663, - "src": "3107:26:68", + "referencedDeclaration": 37802, + "src": "3107:26:64", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_FvmAddress_$44253_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_FvmAddress_$39431_storage_$", "typeString": "mapping(address => struct FvmAddress storage ref)" } }, - "id": 44929, + "id": 40173, "indexExpression": { - "id": 44927, + "id": 40171, "name": "validator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44870, - "src": "3134:9:68", + "referencedDeclaration": 40114, + "src": "3134:9:64", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3927,35 +3927,35 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3107:37:68", + "src": "3107:37:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_FvmAddress_$44253_storage", + "typeIdentifier": "t_struct$_FvmAddress_$39431_storage", "typeString": "struct FvmAddress storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 44930, + "id": 40174, "name": "workerAddr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44857, - "src": "3147:10:68", + "referencedDeclaration": 40101, + "src": "3147:10:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_FvmAddress_$44253_calldata_ptr", + "typeIdentifier": "t_struct$_FvmAddress_$39431_calldata_ptr", "typeString": "struct FvmAddress calldata" } }, - "src": "3107:50:68", + "src": "3107:50:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_FvmAddress_$44253_storage", + "typeIdentifier": "t_struct$_FvmAddress_$39431_storage", "typeString": "struct FvmAddress storage ref" } }, - "id": 44932, + "id": 40176, "nodeType": "ExpressionStatement", - "src": "3107:50:68" + "src": "3107:50:64" } ] } @@ -3966,39 +3966,39 @@ { "condition": { "commonType": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" }, - "id": 44941, + "id": 40185, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 44937, + "id": 40181, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "3196:1:68", + "referencedDeclaration": 37869, + "src": "3196:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 44938, + "id": 40182, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3198:6:68", + "memberLocation": "3198:6:64", "memberName": "status", "nodeType": "MemberAccess", - "referencedDeclaration": 42623, - "src": "3196:8:68", + "referencedDeclaration": 37844, + "src": "3196:8:64", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, @@ -4006,79 +4006,79 @@ "operator": "==", "rightExpression": { "expression": { - "id": 44939, + "id": 40183, "name": "Status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38137, - "src": "3208:6:68", + "referencedDeclaration": 33153, + "src": "3208:6:64", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Status_$38137_$", + "typeIdentifier": "t_type$_t_enum$_Status_$33153_$", "typeString": "type(enum Status)" } }, - "id": 44940, + "id": 40184, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "3215:12:68", + "memberLocation": "3215:12:64", "memberName": "Instantiated", "nodeType": "MemberAccess", - "referencedDeclaration": 38136, - "src": "3208:19:68", + "referencedDeclaration": 33152, + "src": "3208:19:64", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, - "src": "3196:31:68", + "src": "3196:31:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 44997, + "id": 40241, "nodeType": "Block", - "src": "3439:275:68", + "src": "3439:275:64", "statements": [ { "condition": { "commonType": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" }, - "id": 44971, + "id": 40215, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 44967, + "id": 40211, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "3457:1:68", + "referencedDeclaration": 37869, + "src": "3457:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 44968, + "id": 40212, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3459:6:68", + "memberLocation": "3459:6:64", "memberName": "status", "nodeType": "MemberAccess", - "referencedDeclaration": 42623, - "src": "3457:8:68", + "referencedDeclaration": 37844, + "src": "3457:8:64", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, @@ -4086,45 +4086,45 @@ "operator": "==", "rightExpression": { "expression": { - "id": 44969, + "id": 40213, "name": "Status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38137, - "src": "3469:6:68", + "referencedDeclaration": 33153, + "src": "3469:6:64", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Status_$38137_$", + "typeIdentifier": "t_type$_t_enum$_Status_$33153_$", "typeString": "type(enum Status)" } }, - "id": 44970, + "id": 40214, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "3476:8:68", + "memberLocation": "3476:8:64", "memberName": "Inactive", "nodeType": "MemberAccess", - "referencedDeclaration": 38133, - "src": "3469:15:68", + "referencedDeclaration": 33149, + "src": "3469:15:64", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, - "src": "3457:27:68", + "src": "3457:27:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 44987, + "id": 40231, "nodeType": "IfStatement", - "src": "3453:177:68", + "src": "3453:177:64", "trueBody": { - "id": 44986, + "id": 40230, "nodeType": "Block", - "src": "3486:144:68", + "src": "3486:144:64", "statements": [ { "condition": { @@ -4132,34 +4132,34 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 44976, + "id": 40220, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 44972, + "id": 40216, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "3508:1:68", + "referencedDeclaration": 37869, + "src": "3508:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 44973, + "id": 40217, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3510:10:68", + "memberLocation": "3510:10:64", "memberName": "totalStake", "nodeType": "MemberAccess", - "referencedDeclaration": 42616, - "src": "3508:12:68", + "referencedDeclaration": 37814, + "src": "3508:12:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4169,78 +4169,78 @@ "operator": ">=", "rightExpression": { "expression": { - "id": 44974, + "id": 40218, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "3524:1:68", + "referencedDeclaration": 37869, + "src": "3524:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 44975, + "id": 40219, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3526:23:68", + "memberLocation": "3526:23:64", "memberName": "minActivationCollateral", "nodeType": "MemberAccess", - "referencedDeclaration": 42693, - "src": "3524:25:68", + "referencedDeclaration": 37817, + "src": "3524:25:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3508:41:68", + "src": "3508:41:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 44985, + "id": 40229, "nodeType": "IfStatement", - "src": "3504:112:68", + "src": "3504:112:64", "trueBody": { - "id": 44984, + "id": 40228, "nodeType": "Block", - "src": "3551:65:68", + "src": "3551:65:64", "statements": [ { "expression": { - "id": 44982, + "id": 40226, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 44977, + "id": 40221, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "3573:1:68", + "referencedDeclaration": 37869, + "src": "3573:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 44979, + "id": 40223, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3575:6:68", + "memberLocation": "3575:6:64", "memberName": "status", "nodeType": "MemberAccess", - "referencedDeclaration": 42623, - "src": "3573:8:68", + "referencedDeclaration": 37844, + "src": "3573:8:64", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, @@ -4248,41 +4248,41 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 44980, + "id": 40224, "name": "Status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38137, - "src": "3584:6:68", + "referencedDeclaration": 33153, + "src": "3584:6:64", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Status_$38137_$", + "typeIdentifier": "t_type$_t_enum$_Status_$33153_$", "typeString": "type(enum Status)" } }, - "id": 44981, + "id": 40225, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "3591:6:68", + "memberLocation": "3591:6:64", "memberName": "Active", "nodeType": "MemberAccess", - "referencedDeclaration": 38132, - "src": "3584:13:68", + "referencedDeclaration": 33148, + "src": "3584:13:64", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, - "src": "3573:24:68", + "src": "3573:24:64", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, - "id": 44983, + "id": 40227, "nodeType": "ExpressionStatement", - "src": "3573:24:68" + "src": "3573:24:64" } ] } @@ -4301,27 +4301,27 @@ "arguments": [ { "expression": { - "id": 44989, + "id": 40233, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "3652:1:68", + "referencedDeclaration": 37869, + "src": "3652:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 44990, + "id": 40234, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3654:14:68", + "memberLocation": "3654:14:64", "memberName": "ipcGatewayAddr", "nodeType": "MemberAccess", - "referencedDeclaration": 42683, - "src": "3652:16:68", + "referencedDeclaration": 37840, + "src": "3652:16:64", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4335,18 +4335,18 @@ "typeString": "address" } ], - "id": 44988, + "id": 40232, "name": "IGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40421, - "src": "3643:8:68", + "referencedDeclaration": 35577, + "src": "3643:8:64", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IGateway_$40421_$", + "typeIdentifier": "t_type$_t_contract$_IGateway_$35577_$", "typeString": "type(contract IGateway)" } }, - "id": 44991, + "id": 40235, "isConstant": false, "isLValue": false, "isPure": false, @@ -4355,29 +4355,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3643:26:68", + "src": "3643:26:64", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IGateway_$40421", + "typeIdentifier": "t_contract$_IGateway_$35577", "typeString": "contract IGateway" } }, - "id": 44992, + "id": 40236, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3670:8:68", + "memberLocation": "3670:8:64", "memberName": "addStake", "nodeType": "MemberAccess", - "referencedDeclaration": 40353, - "src": "3643:35:68", + "referencedDeclaration": 35509, + "src": "3643:35:64", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$__$returns$__$", "typeString": "function () payable external" } }, - "id": 44994, + "id": 40238, "isConstant": false, "isLValue": false, "isPure": false, @@ -4388,25 +4388,25 @@ "nodeType": "FunctionCallOptions", "options": [ { - "id": 44993, + "id": 40237, "name": "validatorStake", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 44865, - "src": "3686:14:68", + "referencedDeclaration": 40109, + "src": "3686:14:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "src": "3643:58:68", + "src": "3643:58:64", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$__$returns$__$value", "typeString": "function () payable external" } }, - "id": 44995, + "id": 40239, "isConstant": false, "isLValue": false, "isPure": false, @@ -4415,26 +4415,26 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3643:60:68", + "src": "3643:60:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 44996, + "id": 40240, "nodeType": "ExpressionStatement", - "src": "3643:60:68" + "src": "3643:60:64" } ] }, - "id": 44998, + "id": 40242, "nodeType": "IfStatement", - "src": "3192:522:68", + "src": "3192:522:64", "trueBody": { - "id": 44966, + "id": 40210, "nodeType": "Block", - "src": "3229:204:68", + "src": "3229:204:64", "statements": [ { "condition": { @@ -4442,34 +4442,34 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 44946, + "id": 40190, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 44942, + "id": 40186, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "3247:1:68", + "referencedDeclaration": 37869, + "src": "3247:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 44943, + "id": 40187, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3249:10:68", + "memberLocation": "3249:10:64", "memberName": "totalStake", "nodeType": "MemberAccess", - "referencedDeclaration": 42616, - "src": "3247:12:68", + "referencedDeclaration": 37814, + "src": "3247:12:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4479,78 +4479,78 @@ "operator": ">=", "rightExpression": { "expression": { - "id": 44944, + "id": 40188, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "3263:1:68", + "referencedDeclaration": 37869, + "src": "3263:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 44945, + "id": 40189, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3265:23:68", + "memberLocation": "3265:23:64", "memberName": "minActivationCollateral", "nodeType": "MemberAccess", - "referencedDeclaration": 42693, - "src": "3263:25:68", + "referencedDeclaration": 37817, + "src": "3263:25:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3247:41:68", + "src": "3247:41:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 44965, + "id": 40209, "nodeType": "IfStatement", - "src": "3243:180:68", + "src": "3243:180:64", "trueBody": { - "id": 44964, + "id": 40208, "nodeType": "Block", - "src": "3290:133:68", + "src": "3290:133:64", "statements": [ { "expression": { - "id": 44952, + "id": 40196, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 44947, + "id": 40191, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "3308:1:68", + "referencedDeclaration": 37869, + "src": "3308:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 44949, + "id": 40193, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3310:6:68", + "memberLocation": "3310:6:64", "memberName": "status", "nodeType": "MemberAccess", - "referencedDeclaration": 42623, - "src": "3308:8:68", + "referencedDeclaration": 37844, + "src": "3308:8:64", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, @@ -4558,41 +4558,41 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 44950, + "id": 40194, "name": "Status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38137, - "src": "3319:6:68", + "referencedDeclaration": 33153, + "src": "3319:6:64", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Status_$38137_$", + "typeIdentifier": "t_type$_t_enum$_Status_$33153_$", "typeString": "type(enum Status)" } }, - "id": 44951, + "id": 40195, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "3326:6:68", + "memberLocation": "3326:6:64", "memberName": "Active", "nodeType": "MemberAccess", - "referencedDeclaration": 38132, - "src": "3319:13:68", + "referencedDeclaration": 33148, + "src": "3319:13:64", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, - "src": "3308:24:68", + "src": "3308:24:64", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, - "id": 44953, + "id": 40197, "nodeType": "ExpressionStatement", - "src": "3308:24:68" + "src": "3308:24:64" }, { "expression": { @@ -4605,27 +4605,27 @@ "arguments": [ { "expression": { - "id": 44955, + "id": 40199, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "3359:1:68", + "referencedDeclaration": 37869, + "src": "3359:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 44956, + "id": 40200, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3361:14:68", + "memberLocation": "3361:14:64", "memberName": "ipcGatewayAddr", "nodeType": "MemberAccess", - "referencedDeclaration": 42683, - "src": "3359:16:68", + "referencedDeclaration": 37840, + "src": "3359:16:64", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4639,18 +4639,18 @@ "typeString": "address" } ], - "id": 44954, + "id": 40198, "name": "IGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40421, - "src": "3350:8:68", + "referencedDeclaration": 35577, + "src": "3350:8:64", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IGateway_$40421_$", + "typeIdentifier": "t_type$_t_contract$_IGateway_$35577_$", "typeString": "type(contract IGateway)" } }, - "id": 44957, + "id": 40201, "isConstant": false, "isLValue": false, "isPure": false, @@ -4659,29 +4659,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3350:26:68", + "src": "3350:26:64", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IGateway_$40421", + "typeIdentifier": "t_contract$_IGateway_$35577", "typeString": "contract IGateway" } }, - "id": 44958, + "id": 40202, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3377:8:68", + "memberLocation": "3377:8:64", "memberName": "register", "nodeType": "MemberAccess", - "referencedDeclaration": 40349, - "src": "3350:35:68", + "referencedDeclaration": 35505, + "src": "3350:35:64", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$__$returns$__$", "typeString": "function () payable external" } }, - "id": 44961, + "id": 40205, "isConstant": false, "isLValue": false, "isPure": false, @@ -4693,40 +4693,40 @@ "options": [ { "expression": { - "id": 44959, + "id": 40203, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "3393:1:68", + "referencedDeclaration": 37869, + "src": "3393:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 44960, + "id": 40204, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3395:10:68", + "memberLocation": "3395:10:64", "memberName": "totalStake", "nodeType": "MemberAccess", - "referencedDeclaration": 42616, - "src": "3393:12:68", + "referencedDeclaration": 37814, + "src": "3393:12:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "src": "3350:56:68", + "src": "3350:56:64", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$__$returns$__$value", "typeString": "function () payable external" } }, - "id": 44962, + "id": 40206, "isConstant": false, "isLValue": false, "isPure": false, @@ -4735,16 +4735,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3350:58:68", + "src": "3350:58:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 44963, + "id": 40207, "nodeType": "ExpressionStatement", - "src": "3350:58:68" + "src": "3350:58:64" } ] } @@ -4755,12 +4755,12 @@ ] }, "baseFunctions": [ - 40437 + 35593 ], "documentation": { - "id": 44852, + "id": 40096, "nodeType": "StructuredDocumentation", - "src": "2312:123:68", + "src": "2312:123:64", "text": "@notice method that allows a validator to join the subnet\n @param netAddr - the network address of the validator" }, "functionSelector": "6cf6970a", @@ -4768,53 +4768,53 @@ "kind": "function", "modifiers": [ { - "id": 44860, + "id": 40104, "kind": "modifierInvocation", "modifierName": { - "id": 44859, + "id": 40103, "name": "signableOnly", "nameLocations": [ - "2528:12:68" + "2528:12:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 42799, - "src": "2528:12:68" + "referencedDeclaration": 37962, + "src": "2528:12:64" }, "nodeType": "ModifierInvocation", - "src": "2528:12:68" + "src": "2528:12:64" }, { - "id": 44862, + "id": 40106, "kind": "modifierInvocation", "modifierName": { - "id": 44861, + "id": 40105, "name": "notKilled", "nameLocations": [ - "2541:9:68" + "2541:9:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 42806, - "src": "2541:9:68" + "referencedDeclaration": 37969, + "src": "2541:9:64" }, "nodeType": "ModifierInvocation", - "src": "2541:9:68" + "src": "2541:9:64" } ], "name": "join", - "nameLocation": "2449:4:68", + "nameLocation": "2449:4:64", "parameters": { - "id": 44858, + "id": 40102, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 44854, + "id": 40098, "mutability": "mutable", "name": "netAddr", - "nameLocation": "2470:7:68", + "nameLocation": "2470:7:64", "nodeType": "VariableDeclaration", - "scope": 45000, - "src": "2454:23:68", + "scope": 40244, + "src": "2454:23:64", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -4822,10 +4822,10 @@ "typeString": "string" }, "typeName": { - "id": 44853, + "id": 40097, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2454:6:68", + "src": "2454:6:64", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -4835,80 +4835,80 @@ }, { "constant": false, - "id": 44857, + "id": 40101, "mutability": "mutable", "name": "workerAddr", - "nameLocation": "2499:10:68", + "nameLocation": "2499:10:64", "nodeType": "VariableDeclaration", - "scope": 45000, - "src": "2479:30:68", + "scope": 40244, + "src": "2479:30:64", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_struct$_FvmAddress_$44253_calldata_ptr", + "typeIdentifier": "t_struct$_FvmAddress_$39431_calldata_ptr", "typeString": "struct FvmAddress" }, "typeName": { - "id": 44856, + "id": 40100, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 44855, + "id": 40099, "name": "FvmAddress", "nameLocations": [ - "2479:10:68" + "2479:10:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44253, - "src": "2479:10:68" + "referencedDeclaration": 39431, + "src": "2479:10:64" }, - "referencedDeclaration": 44253, - "src": "2479:10:68", + "referencedDeclaration": 39431, + "src": "2479:10:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_FvmAddress_$44253_storage_ptr", + "typeIdentifier": "t_struct$_FvmAddress_$39431_storage_ptr", "typeString": "struct FvmAddress" } }, "visibility": "internal" } ], - "src": "2453:57:68" + "src": "2453:57:64" }, "returnParameters": { - "id": 44863, + "id": 40107, "nodeType": "ParameterList", "parameters": [], - "src": "2551:0:68" + "src": "2551:0:64" }, - "scope": 45623, + "scope": 40867, "stateMutability": "payable", "virtual": false, "visibility": "external" }, { - "id": 45089, + "id": 40333, "nodeType": "FunctionDefinition", - "src": "3793:621:68", + "src": "3793:621:64", "nodes": [], "body": { - "id": 45088, + "id": 40332, "nodeType": "Block", - "src": "3855:559:68", + "src": "3855:559:64", "nodes": [], "statements": [ { "assignments": [ - 45011 + 40255 ], "declarations": [ { "constant": false, - "id": 45011, + "id": 40255, "mutability": "mutable", "name": "amount", - "nameLocation": "3873:6:68", + "nameLocation": "3873:6:64", "nodeType": "VariableDeclaration", - "scope": 45088, - "src": "3865:14:68", + "scope": 40332, + "src": "3865:14:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4916,10 +4916,10 @@ "typeString": "uint256" }, "typeName": { - "id": 45010, + "id": 40254, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3865:7:68", + "src": "3865:7:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4928,59 +4928,59 @@ "visibility": "internal" } ], - "id": 45017, + "id": 40261, "initialValue": { "baseExpression": { "expression": { - "id": 45012, + "id": 40256, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "3882:1:68", + "referencedDeclaration": 37869, + "src": "3882:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45013, + "id": 40257, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3884:5:68", + "memberLocation": "3884:5:64", "memberName": "stake", "nodeType": "MemberAccess", - "referencedDeclaration": 42647, - "src": "3882:7:68", + "referencedDeclaration": 37786, + "src": "3882:7:64", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 45016, + "id": 40260, "indexExpression": { "expression": { - "id": 45014, + "id": 40258, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "3890:3:68", + "src": "3890:3:64", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 45015, + "id": 40259, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3894:6:68", + "memberLocation": "3894:6:64", "memberName": "sender", "nodeType": "MemberAccess", - "src": "3890:10:68", + "src": "3890:10:64", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4991,14 +4991,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3882:19:68", + "src": "3882:19:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "3865:36:68" + "src": "3865:36:64" }, { "condition": { @@ -5006,18 +5006,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 45020, + "id": 40264, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 45018, + "id": 40262, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45011, - "src": "3916:6:68", + "referencedDeclaration": 40255, + "src": "3916:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5027,51 +5027,51 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 45019, + "id": 40263, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3926:1:68", + "src": "3926:1:64", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "3916:11:68", + "src": "3916:11:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 45025, + "id": 40269, "nodeType": "IfStatement", - "src": "3912:63:68", + "src": "3912:63:64", "trueBody": { - "id": 45024, + "id": 40268, "nodeType": "Block", - "src": "3929:46:68", + "src": "3929:46:64", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 45021, + "id": 40265, "name": "NotValidator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38222, - "src": "3950:12:68", + "referencedDeclaration": 33238, + "src": "3950:12:64", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 45022, + "id": 40266, "isConstant": false, "isLValue": false, "isPure": false, @@ -5080,23 +5080,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3950:14:68", + "src": "3950:14:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 45023, + "id": 40267, "nodeType": "RevertStatement", - "src": "3943:21:68" + "src": "3943:21:64" } ] } }, { "expression": { - "id": 45033, + "id": 40277, "isConstant": false, "isLValue": false, "isPure": false, @@ -5104,55 +5104,55 @@ "leftHandSide": { "baseExpression": { "expression": { - "id": 45026, + "id": 40270, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "3985:1:68", + "referencedDeclaration": 37869, + "src": "3985:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45030, + "id": 40274, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3987:5:68", + "memberLocation": "3987:5:64", "memberName": "stake", "nodeType": "MemberAccess", - "referencedDeclaration": 42647, - "src": "3985:7:68", + "referencedDeclaration": 37786, + "src": "3985:7:64", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 45031, + "id": 40275, "indexExpression": { "expression": { - "id": 45028, + "id": 40272, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "3993:3:68", + "src": "3993:3:64", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 45029, + "id": 40273, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3997:6:68", + "memberLocation": "3997:6:64", "memberName": "sender", "nodeType": "MemberAccess", - "src": "3993:10:68", + "src": "3993:10:64", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5163,7 +5163,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3985:19:68", + "src": "3985:19:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5173,60 +5173,60 @@ "operator": "=", "rightHandSide": { "hexValue": "30", - "id": 45032, + "id": 40276, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4007:1:68", + "src": "4007:1:64", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "3985:23:68", + "src": "3985:23:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 45034, + "id": 40278, "nodeType": "ExpressionStatement", - "src": "3985:23:68" + "src": "3985:23:64" }, { "expression": { - "id": 45039, + "id": 40283, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 45035, + "id": 40279, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "4018:1:68", + "referencedDeclaration": 37869, + "src": "4018:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45037, + "id": 40281, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "4020:10:68", + "memberLocation": "4020:10:64", "memberName": "totalStake", "nodeType": "MemberAccess", - "referencedDeclaration": 42616, - "src": "4018:12:68", + "referencedDeclaration": 37814, + "src": "4018:12:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5235,52 +5235,52 @@ "nodeType": "Assignment", "operator": "-=", "rightHandSide": { - "id": 45038, + "id": 40282, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45011, - "src": "4034:6:68", + "referencedDeclaration": 40255, + "src": "4034:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4018:22:68", + "src": "4018:22:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 45040, + "id": 40284, "nodeType": "ExpressionStatement", - "src": "4018:22:68" + "src": "4018:22:64" }, { "expression": { "arguments": [ { "expression": { - "id": 45046, + "id": 40290, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4121:3:68", + "src": "4121:3:64", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 45047, + "id": 40291, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4125:6:68", + "memberLocation": "4125:6:64", "memberName": "sender", "nodeType": "MemberAccess", - "src": "4121:10:68", + "src": "4121:10:64", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5296,48 +5296,48 @@ ], "expression": { "expression": { - "id": 45041, + "id": 40285, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "4101:1:68", + "referencedDeclaration": 37869, + "src": "4101:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45044, + "id": 40288, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4103:10:68", + "memberLocation": "4103:10:64", "memberName": "validators", "nodeType": "MemberAccess", - "referencedDeclaration": 42636, - "src": "4101:12:68", + "referencedDeclaration": 37848, + "src": "4101:12:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$32722_storage", + "typeIdentifier": "t_struct$_AddressSet_$31590_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 45045, + "id": 40289, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4114:6:68", + "memberLocation": "4114:6:64", "memberName": "remove", "nodeType": "MemberAccess", - "referencedDeclaration": 32776, - "src": "4101:19:68", + "referencedDeclaration": 31644, + "src": "4101:19:64", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$32722_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$32722_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$31590_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$31590_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" } }, - "id": 45048, + "id": 40292, "isConstant": false, "isLValue": false, "isPure": false, @@ -5346,53 +5346,53 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4101:31:68", + "src": "4101:31:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 45049, + "id": 40293, "nodeType": "ExpressionStatement", - "src": "4101:31:68" + "src": "4101:31:64" }, { "condition": { "commonType": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" }, - "id": 45054, + "id": 40298, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 45050, + "id": 40294, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "4146:1:68", + "referencedDeclaration": 37869, + "src": "4146:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45051, + "id": 40295, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4148:6:68", + "memberLocation": "4148:6:64", "memberName": "status", "nodeType": "MemberAccess", - "referencedDeclaration": 42623, - "src": "4146:8:68", + "referencedDeclaration": 37844, + "src": "4146:8:64", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, @@ -5400,45 +5400,45 @@ "operator": "==", "rightExpression": { "expression": { - "id": 45052, + "id": 40296, "name": "Status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38137, - "src": "4158:6:68", + "referencedDeclaration": 33153, + "src": "4158:6:64", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Status_$38137_$", + "typeIdentifier": "t_type$_t_enum$_Status_$33153_$", "typeString": "type(enum Status)" } }, - "id": 45053, + "id": 40297, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "4165:6:68", + "memberLocation": "4165:6:64", "memberName": "Active", "nodeType": "MemberAccess", - "referencedDeclaration": 38132, - "src": "4158:13:68", + "referencedDeclaration": 33148, + "src": "4158:13:64", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, - "src": "4146:25:68", + "src": "4146:25:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 45070, + "id": 40314, "nodeType": "IfStatement", - "src": "4142:160:68", + "src": "4142:160:64", "trueBody": { - "id": 45069, + "id": 40313, "nodeType": "Block", - "src": "4173:129:68", + "src": "4173:129:64", "statements": [ { "condition": { @@ -5446,34 +5446,34 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 45059, + "id": 40303, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 45055, + "id": 40299, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "4191:1:68", + "referencedDeclaration": 37869, + "src": "4191:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45056, + "id": 40300, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4193:10:68", + "memberLocation": "4193:10:64", "memberName": "totalStake", "nodeType": "MemberAccess", - "referencedDeclaration": 42616, - "src": "4191:12:68", + "referencedDeclaration": 37814, + "src": "4191:12:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5483,78 +5483,78 @@ "operator": "<", "rightExpression": { "expression": { - "id": 45057, + "id": 40301, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "4206:1:68", + "referencedDeclaration": 37869, + "src": "4206:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45058, + "id": 40302, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4208:23:68", + "memberLocation": "4208:23:64", "memberName": "minActivationCollateral", "nodeType": "MemberAccess", - "referencedDeclaration": 42693, - "src": "4206:25:68", + "referencedDeclaration": 37817, + "src": "4206:25:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4191:40:68", + "src": "4191:40:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 45068, + "id": 40312, "nodeType": "IfStatement", - "src": "4187:105:68", + "src": "4187:105:64", "trueBody": { - "id": 45067, + "id": 40311, "nodeType": "Block", - "src": "4233:59:68", + "src": "4233:59:64", "statements": [ { "expression": { - "id": 45065, + "id": 40309, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 45060, + "id": 40304, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "4251:1:68", + "referencedDeclaration": 37869, + "src": "4251:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45062, + "id": 40306, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "4253:6:68", + "memberLocation": "4253:6:64", "memberName": "status", "nodeType": "MemberAccess", - "referencedDeclaration": 42623, - "src": "4251:8:68", + "referencedDeclaration": 37844, + "src": "4251:8:64", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, @@ -5562,41 +5562,41 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 45063, + "id": 40307, "name": "Status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38137, - "src": "4262:6:68", + "referencedDeclaration": 33153, + "src": "4262:6:64", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Status_$38137_$", + "typeIdentifier": "t_type$_t_enum$_Status_$33153_$", "typeString": "type(enum Status)" } }, - "id": 45064, + "id": 40308, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "4269:8:68", + "memberLocation": "4269:8:64", "memberName": "Inactive", "nodeType": "MemberAccess", - "referencedDeclaration": 38133, - "src": "4262:15:68", + "referencedDeclaration": 33149, + "src": "4262:15:64", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, - "src": "4251:26:68", + "src": "4251:26:64", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, - "id": 45066, + "id": 40310, "nodeType": "ExpressionStatement", - "src": "4251:26:68" + "src": "4251:26:64" } ] } @@ -5608,12 +5608,12 @@ "expression": { "arguments": [ { - "id": 45076, + "id": 40320, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45011, - "src": "4352:6:68", + "referencedDeclaration": 40255, + "src": "4352:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5631,27 +5631,27 @@ "arguments": [ { "expression": { - "id": 45072, + "id": 40316, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "4321:1:68", + "referencedDeclaration": 37869, + "src": "4321:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45073, + "id": 40317, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4323:14:68", + "memberLocation": "4323:14:64", "memberName": "ipcGatewayAddr", "nodeType": "MemberAccess", - "referencedDeclaration": 42683, - "src": "4321:16:68", + "referencedDeclaration": 37840, + "src": "4321:16:64", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5665,18 +5665,18 @@ "typeString": "address" } ], - "id": 45071, + "id": 40315, "name": "IGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40421, - "src": "4312:8:68", + "referencedDeclaration": 35577, + "src": "4312:8:64", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IGateway_$40421_$", + "typeIdentifier": "t_type$_t_contract$_IGateway_$35577_$", "typeString": "type(contract IGateway)" } }, - "id": 45074, + "id": 40318, "isConstant": false, "isLValue": false, "isPure": false, @@ -5685,29 +5685,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4312:26:68", + "src": "4312:26:64", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IGateway_$40421", + "typeIdentifier": "t_contract$_IGateway_$35577", "typeString": "contract IGateway" } }, - "id": 45075, + "id": 40319, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4339:12:68", + "memberLocation": "4339:12:64", "memberName": "releaseStake", "nodeType": "MemberAccess", - "referencedDeclaration": 40359, - "src": "4312:39:68", + "referencedDeclaration": 35515, + "src": "4312:39:64", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256) external" } }, - "id": 45077, + "id": 40321, "isConstant": false, "isLValue": false, "isPure": false, @@ -5716,27 +5716,27 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4312:47:68", + "src": "4312:47:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 45078, + "id": 40322, "nodeType": "ExpressionStatement", - "src": "4312:47:68" + "src": "4312:47:64" }, { "expression": { "arguments": [ { - "id": 45085, + "id": 40329, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45011, - "src": "4400:6:68", + "referencedDeclaration": 40255, + "src": "4400:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5754,26 +5754,26 @@ "arguments": [ { "expression": { - "id": 45081, + "id": 40325, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4378:3:68", + "src": "4378:3:64", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 45082, + "id": 40326, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4382:6:68", + "memberLocation": "4382:6:64", "memberName": "sender", "nodeType": "MemberAccess", - "src": "4378:10:68", + "src": "4378:10:64", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5787,27 +5787,27 @@ "typeString": "address" } ], - "id": 45080, + "id": 40324, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4370:8:68", + "src": "4370:8:64", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_payable_$", "typeString": "type(address payable)" }, "typeName": { - "id": 45079, + "id": 40323, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4370:8:68", + "src": "4370:8:64", "stateMutability": "payable", "typeDescriptions": {} } }, - "id": 45083, + "id": 40327, "isConstant": false, "isLValue": false, "isPure": false, @@ -5816,29 +5816,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4370:19:68", + "src": "4370:19:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 45084, + "id": 40328, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4390:9:68", + "memberLocation": "4390:9:64", "memberName": "sendValue", "nodeType": "MemberAccess", "referencedDeclaration": 29541, - "src": "4370:29:68", + "src": "4370:29:64", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$", "typeString": "function (address payable,uint256)" } }, - "id": 45086, + "id": 40330, "isConstant": false, "isLValue": false, "isPure": false, @@ -5847,26 +5847,26 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4370:37:68", + "src": "4370:37:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 45087, + "id": 40331, "nodeType": "ExpressionStatement", - "src": "4370:37:68" + "src": "4370:37:64" } ] }, "baseFunctions": [ - 40441 + 35597 ], "documentation": { - "id": 45001, + "id": 40245, "nodeType": "StructuredDocumentation", - "src": "3726:62:68", + "src": "3726:62:64", "text": "@notice method that allows a validator to leave the subnet" }, "functionSelector": "d66d9e19", @@ -5874,82 +5874,82 @@ "kind": "function", "modifiers": [ { - "id": 45004, + "id": 40248, "kind": "modifierInvocation", "modifierName": { - "id": 45003, + "id": 40247, "name": "nonReentrant", "nameLocations": [ - "3819:12:68" + "3819:12:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 42553, - "src": "3819:12:68" + "referencedDeclaration": 37715, + "src": "3819:12:64" }, "nodeType": "ModifierInvocation", - "src": "3819:12:68" + "src": "3819:12:64" }, { - "id": 45006, + "id": 40250, "kind": "modifierInvocation", "modifierName": { - "id": 45005, + "id": 40249, "name": "signableOnly", "nameLocations": [ - "3832:12:68" + "3832:12:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 42799, - "src": "3832:12:68" + "referencedDeclaration": 37962, + "src": "3832:12:64" }, "nodeType": "ModifierInvocation", - "src": "3832:12:68" + "src": "3832:12:64" }, { - "id": 45008, + "id": 40252, "kind": "modifierInvocation", "modifierName": { - "id": 45007, + "id": 40251, "name": "notKilled", "nameLocations": [ - "3845:9:68" + "3845:9:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 42806, - "src": "3845:9:68" + "referencedDeclaration": 37969, + "src": "3845:9:64" }, "nodeType": "ModifierInvocation", - "src": "3845:9:68" + "src": "3845:9:64" } ], "name": "leave", - "nameLocation": "3802:5:68", + "nameLocation": "3802:5:64", "parameters": { - "id": 45002, + "id": 40246, "nodeType": "ParameterList", "parameters": [], - "src": "3807:2:68" + "src": "3807:2:64" }, "returnParameters": { - "id": 45009, + "id": 40253, "nodeType": "ParameterList", "parameters": [], - "src": "3855:0:68" + "src": "3855:0:64" }, - "scope": 45623, + "scope": 40867, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 45128, + "id": 40372, "nodeType": "FunctionDefinition", - "src": "4506:254:68", + "src": "4506:254:64", "nodes": [], "body": { - "id": 45127, + "id": 40371, "nodeType": "Block", - "src": "4554:206:68", + "src": "4554:206:64", "nodes": [], "statements": [ { @@ -5958,7 +5958,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 45107, + "id": 40351, "isConstant": false, "isLValue": false, "isPure": false, @@ -5968,7 +5968,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 45102, + "id": 40346, "isConstant": false, "isLValue": false, "isPure": false, @@ -5979,48 +5979,48 @@ "argumentTypes": [], "expression": { "expression": { - "id": 45097, + "id": 40341, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "4568:1:68", + "referencedDeclaration": 37869, + "src": "4568:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45098, + "id": 40342, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4570:10:68", + "memberLocation": "4570:10:64", "memberName": "validators", "nodeType": "MemberAccess", - "referencedDeclaration": 42636, - "src": "4568:12:68", + "referencedDeclaration": 37848, + "src": "4568:12:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$32722_storage", + "typeIdentifier": "t_struct$_AddressSet_$31590_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 45099, + "id": 40343, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4581:6:68", + "memberLocation": "4581:6:64", "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": 32818, - "src": "4568:19:68", + "referencedDeclaration": 31686, + "src": "4568:19:64", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32722_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$32722_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$31590_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$31590_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)" } }, - "id": 45100, + "id": 40344, "isConstant": false, "isLValue": false, "isPure": false, @@ -6029,7 +6029,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4568:21:68", + "src": "4568:21:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6040,21 +6040,21 @@ "operator": "!=", "rightExpression": { "hexValue": "30", - "id": 45101, + "id": 40345, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4593:1:68", + "src": "4593:1:64", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "4568:26:68", + "src": "4568:26:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6067,34 +6067,34 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 45106, + "id": 40350, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 45103, + "id": 40347, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "4598:1:68", + "referencedDeclaration": 37869, + "src": "4598:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45104, + "id": 40348, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4600:10:68", + "memberLocation": "4600:10:64", "memberName": "totalStake", "nodeType": "MemberAccess", - "referencedDeclaration": 42616, - "src": "4598:12:68", + "referencedDeclaration": 37814, + "src": "4598:12:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6104,57 +6104,57 @@ "operator": "!=", "rightExpression": { "hexValue": "30", - "id": 45105, + "id": 40349, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4614:1:68", + "src": "4614:1:64", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "4598:17:68", + "src": "4598:17:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4568:47:68", + "src": "4568:47:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 45112, + "id": 40356, "nodeType": "IfStatement", - "src": "4564:111:68", + "src": "4564:111:64", "trueBody": { - "id": 45111, + "id": 40355, "nodeType": "Block", - "src": "4617:58:68", + "src": "4617:58:64", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 45108, + "id": 40352, "name": "NotAllValidatorsHaveLeft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38196, - "src": "4638:24:68", + "referencedDeclaration": 33212, + "src": "4638:24:64", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 45109, + "id": 40353, "isConstant": false, "isLValue": false, "isPure": false, @@ -6163,52 +6163,52 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4638:26:68", + "src": "4638:26:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 45110, + "id": 40354, "nodeType": "RevertStatement", - "src": "4631:33:68" + "src": "4631:33:64" } ] } }, { "expression": { - "id": 45118, + "id": 40362, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 45113, + "id": 40357, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "4685:1:68", + "referencedDeclaration": 37869, + "src": "4685:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45115, + "id": 40359, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "4687:6:68", + "memberLocation": "4687:6:64", "memberName": "status", "nodeType": "MemberAccess", - "referencedDeclaration": 42623, - "src": "4685:8:68", + "referencedDeclaration": 37844, + "src": "4685:8:64", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, @@ -6216,41 +6216,41 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 45116, + "id": 40360, "name": "Status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38137, - "src": "4696:6:68", + "referencedDeclaration": 33153, + "src": "4696:6:64", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Status_$38137_$", + "typeIdentifier": "t_type$_t_enum$_Status_$33153_$", "typeString": "type(enum Status)" } }, - "id": 45117, + "id": 40361, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "4703:6:68", + "memberLocation": "4703:6:64", "memberName": "Killed", "nodeType": "MemberAccess", - "referencedDeclaration": 38134, - "src": "4696:13:68", + "referencedDeclaration": 33150, + "src": "4696:13:64", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, - "src": "4685:24:68", + "src": "4685:24:64", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, - "id": 45119, + "id": 40363, "nodeType": "ExpressionStatement", - "src": "4685:24:68" + "src": "4685:24:64" }, { "expression": { @@ -6261,27 +6261,27 @@ "arguments": [ { "expression": { - "id": 45121, + "id": 40365, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "4729:1:68", + "referencedDeclaration": 37869, + "src": "4729:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45122, + "id": 40366, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4731:14:68", + "memberLocation": "4731:14:64", "memberName": "ipcGatewayAddr", "nodeType": "MemberAccess", - "referencedDeclaration": 42683, - "src": "4729:16:68", + "referencedDeclaration": 37840, + "src": "4729:16:64", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6295,18 +6295,18 @@ "typeString": "address" } ], - "id": 45120, + "id": 40364, "name": "IGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40421, - "src": "4720:8:68", + "referencedDeclaration": 35577, + "src": "4720:8:64", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IGateway_$40421_$", + "typeIdentifier": "t_type$_t_contract$_IGateway_$35577_$", "typeString": "type(contract IGateway)" } }, - "id": 45123, + "id": 40367, "isConstant": false, "isLValue": false, "isPure": false, @@ -6315,29 +6315,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4720:26:68", + "src": "4720:26:64", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IGateway_$40421", + "typeIdentifier": "t_contract$_IGateway_$35577", "typeString": "contract IGateway" } }, - "id": 45124, + "id": 40368, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4747:4:68", + "memberLocation": "4747:4:64", "memberName": "kill", "nodeType": "MemberAccess", - "referencedDeclaration": 40368, - "src": "4720:31:68", + "referencedDeclaration": 35524, + "src": "4720:31:64", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", "typeString": "function () external" } }, - "id": 45125, + "id": 40369, "isConstant": false, "isLValue": false, "isPure": false, @@ -6346,26 +6346,26 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4720:33:68", + "src": "4720:33:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 45126, + "id": 40370, "nodeType": "ExpressionStatement", - "src": "4720:33:68" + "src": "4720:33:64" } ] }, "baseFunctions": [ - 40445 + 35601 ], "documentation": { - "id": 45090, + "id": 40334, "nodeType": "StructuredDocumentation", - "src": "4420:81:68", + "src": "4420:81:64", "text": "@notice method that allows the subnet no be killed after all validators leave" }, "functionSelector": "41c0e1b5", @@ -6373,66 +6373,66 @@ "kind": "function", "modifiers": [ { - "id": 45093, + "id": 40337, "kind": "modifierInvocation", "modifierName": { - "id": 45092, + "id": 40336, "name": "signableOnly", "nameLocations": [ - "4531:12:68" + "4531:12:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 42799, - "src": "4531:12:68" + "referencedDeclaration": 37962, + "src": "4531:12:64" }, "nodeType": "ModifierInvocation", - "src": "4531:12:68" + "src": "4531:12:64" }, { - "id": 45095, + "id": 40339, "kind": "modifierInvocation", "modifierName": { - "id": 45094, + "id": 40338, "name": "notKilled", "nameLocations": [ - "4544:9:68" + "4544:9:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 42806, - "src": "4544:9:68" + "referencedDeclaration": 37969, + "src": "4544:9:64" }, "nodeType": "ModifierInvocation", - "src": "4544:9:68" + "src": "4544:9:64" } ], "name": "kill", - "nameLocation": "4515:4:68", + "nameLocation": "4515:4:64", "parameters": { - "id": 45091, + "id": 40335, "nodeType": "ParameterList", "parameters": [], - "src": "4519:2:68" + "src": "4519:2:64" }, "returnParameters": { - "id": 45096, + "id": 40340, "nodeType": "ParameterList", "parameters": [], - "src": "4554:0:68" + "src": "4554:0:64" }, - "scope": 45623, + "scope": 40867, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 45244, + "id": 40488, "nodeType": "FunctionDefinition", - "src": "4953:1319:68", + "src": "4953:1319:64", "nodes": [], "body": { - "id": 45243, + "id": 40487, "nodeType": "Block", - "src": "5041:1231:68", + "src": "5041:1231:64", "nodes": [], "statements": [ { @@ -6440,27 +6440,27 @@ "arguments": [ { "expression": { - "id": 45140, + "id": 40384, "name": "checkpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45132, - "src": "5081:10:68", + "referencedDeclaration": 40376, + "src": "5081:10:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_calldata_ptr", "typeString": "struct BottomUpCheckpoint calldata" } }, - "id": 45141, + "id": 40385, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5092:5:68", + "memberLocation": "5092:5:64", "memberName": "epoch", "nodeType": "MemberAccess", - "referencedDeclaration": 44141, - "src": "5081:16:68", + "referencedDeclaration": 39317, + "src": "5081:16:64", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -6475,33 +6475,33 @@ } ], "expression": { - "id": 45137, + "id": 40381, "name": "LibVoting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 43438, - "src": "5051:9:68", + "referencedDeclaration": 38614, + "src": "5051:9:64", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibVoting_$43438_$", + "typeIdentifier": "t_type$_t_contract$_LibVoting_$38614_$", "typeString": "type(library LibVoting)" } }, - "id": 45139, + "id": 40383, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5061:19:68", + "memberLocation": "5061:19:64", "memberName": "applyValidEpochOnly", "nodeType": "MemberAccess", - "referencedDeclaration": 42889, - "src": "5051:29:68", + "referencedDeclaration": 38054, + "src": "5051:29:64", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint64_$returns$__$", "typeString": "function (uint64) view" } }, - "id": 45142, + "id": 40386, "isConstant": false, "isLValue": false, "isPure": false, @@ -6510,53 +6510,53 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5051:47:68", + "src": "5051:47:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 45143, + "id": 40387, "nodeType": "ExpressionStatement", - "src": "5051:47:68" + "src": "5051:47:64" }, { "condition": { "commonType": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" }, - "id": 45148, + "id": 40392, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 45144, + "id": 40388, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "5113:1:68", + "referencedDeclaration": 37869, + "src": "5113:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45145, + "id": 40389, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5115:6:68", + "memberLocation": "5115:6:64", "memberName": "status", "nodeType": "MemberAccess", - "referencedDeclaration": 42623, - "src": "5113:8:68", + "referencedDeclaration": 37844, + "src": "5113:8:64", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, @@ -6564,63 +6564,63 @@ "operator": "!=", "rightExpression": { "expression": { - "id": 45146, + "id": 40390, "name": "Status", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38137, - "src": "5125:6:68", + "referencedDeclaration": 33153, + "src": "5125:6:64", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Status_$38137_$", + "typeIdentifier": "t_type$_t_enum$_Status_$33153_$", "typeString": "type(enum Status)" } }, - "id": 45147, + "id": 40391, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "5132:6:68", + "memberLocation": "5132:6:64", "memberName": "Active", "nodeType": "MemberAccess", - "referencedDeclaration": 38132, - "src": "5125:13:68", + "referencedDeclaration": 33148, + "src": "5125:13:64", "typeDescriptions": { - "typeIdentifier": "t_enum$_Status_$38137", + "typeIdentifier": "t_enum$_Status_$33153", "typeString": "enum Status" } }, - "src": "5113:25:68", + "src": "5113:25:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 45153, + "id": 40397, "nodeType": "IfStatement", - "src": "5109:80:68", + "src": "5109:80:64", "trueBody": { - "id": 45152, + "id": 40396, "nodeType": "Block", - "src": "5140:49:68", + "src": "5140:49:64", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 45149, + "id": 40393, "name": "SubnetNotActive", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38228, - "src": "5161:15:68", + "referencedDeclaration": 33244, + "src": "5161:15:64", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 45150, + "id": 40394, "isConstant": false, "isLValue": false, "isPure": false, @@ -6629,23 +6629,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5161:17:68", + "src": "5161:17:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 45151, + "id": 40395, "nodeType": "RevertStatement", - "src": "5154:24:68" + "src": "5154:24:64" } ] } }, { "condition": { - "id": 45160, + "id": 40404, "isConstant": false, "isLValue": false, "isPure": false, @@ -6653,31 +6653,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "5202:34:68", + "src": "5202:34:64", "subExpression": { "arguments": [ { "expression": { - "id": 45157, + "id": 40401, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5225:3:68", + "src": "5225:3:64", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 45158, + "id": 40402, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5229:6:68", + "memberLocation": "5229:6:64", "memberName": "sender", "nodeType": "MemberAccess", - "src": "5225:10:68", + "src": "5225:10:64", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6693,48 +6693,48 @@ ], "expression": { "expression": { - "id": 45154, + "id": 40398, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "5203:1:68", + "referencedDeclaration": 37869, + "src": "5203:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45155, + "id": 40399, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5205:10:68", + "memberLocation": "5205:10:64", "memberName": "validators", "nodeType": "MemberAccess", - "referencedDeclaration": 42636, - "src": "5203:12:68", + "referencedDeclaration": 37848, + "src": "5203:12:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$32722_storage", + "typeIdentifier": "t_struct$_AddressSet_$31590_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 45156, + "id": 40400, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5216:8:68", + "memberLocation": "5216:8:64", "memberName": "contains", "nodeType": "MemberAccess", - "referencedDeclaration": 32803, - "src": "5203:21:68", + "referencedDeclaration": 31671, + "src": "5203:21:64", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32722_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$32722_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$31590_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$31590_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" } }, - "id": 45159, + "id": 40403, "isConstant": false, "isLValue": false, "isPure": false, @@ -6743,7 +6743,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5203:33:68", + "src": "5203:33:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6755,31 +6755,31 @@ "typeString": "bool" } }, - "id": 45165, + "id": 40409, "nodeType": "IfStatement", - "src": "5198:86:68", + "src": "5198:86:64", "trueBody": { - "id": 45164, + "id": 40408, "nodeType": "Block", - "src": "5238:46:68", + "src": "5238:46:64", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 45161, + "id": 40405, "name": "NotValidator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38222, - "src": "5259:12:68", + "referencedDeclaration": 33238, + "src": "5259:12:64", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 45162, + "id": 40406, "isConstant": false, "isLValue": false, "isPure": false, @@ -6788,16 +6788,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5259:14:68", + "src": "5259:14:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 45163, + "id": 40407, "nodeType": "RevertStatement", - "src": "5252:21:68" + "src": "5252:21:64" } ] } @@ -6808,7 +6808,7 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 45172, + "id": 40416, "isConstant": false, "isLValue": false, "isPure": false, @@ -6819,48 +6819,48 @@ "argumentTypes": [], "expression": { "expression": { - "id": 45166, + "id": 40410, "name": "checkpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45132, - "src": "5297:10:68", + "referencedDeclaration": 40376, + "src": "5297:10:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_calldata_ptr", "typeString": "struct BottomUpCheckpoint calldata" } }, - "id": 45167, + "id": 40411, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5308:6:68", + "memberLocation": "5308:6:64", "memberName": "source", "nodeType": "MemberAccess", - "referencedDeclaration": 44139, - "src": "5297:17:68", + "referencedDeclaration": 39315, + "src": "5297:17:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_calldata_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_calldata_ptr", "typeString": "struct SubnetID calldata" } }, - "id": 45168, + "id": 40412, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5315:6:68", + "memberLocation": "5315:6:64", "memberName": "toHash", "nodeType": "MemberAccess", - "referencedDeclaration": 43703, - "src": "5297:24:68", + "referencedDeclaration": 38879, + "src": "5297:24:64", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39457_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$39457_memory_ptr_$", "typeString": "function (struct SubnetID memory) pure returns (bytes32)" } }, - "id": 45169, + "id": 40413, "isConstant": false, "isLValue": false, "isPure": false, @@ -6869,7 +6869,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5297:26:68", + "src": "5297:26:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6880,63 +6880,63 @@ "operator": "!=", "rightExpression": { "expression": { - "id": 45170, + "id": 40414, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "5327:1:68", + "referencedDeclaration": 37869, + "src": "5327:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45171, + "id": 40415, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5329:17:68", + "memberLocation": "5329:17:64", "memberName": "currentSubnetHash", "nodeType": "MemberAccess", - "referencedDeclaration": 42688, - "src": "5327:19:68", + "referencedDeclaration": 37834, + "src": "5327:19:64", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "5297:49:68", + "src": "5297:49:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 45177, + "id": 40421, "nodeType": "IfStatement", - "src": "5293:110:68", + "src": "5293:110:64", "trueBody": { - "id": 45176, + "id": 40420, "nodeType": "Block", - "src": "5348:55:68", + "src": "5348:55:64", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 45173, + "id": 40417, "name": "WrongCheckpointSource", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38238, - "src": "5369:21:68", + "referencedDeclaration": 33254, + "src": "5369:21:64", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 45174, + "id": 40418, "isConstant": false, "isLValue": false, "isPure": false, @@ -6945,23 +6945,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5369:23:68", + "src": "5369:23:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 45175, + "id": 40419, "nodeType": "RevertStatement", - "src": "5362:30:68" + "src": "5362:30:64" } ] } }, { "condition": { - "id": 45183, + "id": 40427, "isConstant": false, "isLValue": false, "isPure": false, @@ -6969,34 +6969,34 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "5416:46:68", + "src": "5416:46:64", "subExpression": { "arguments": [ { "expression": { - "id": 45180, + "id": 40424, "name": "checkpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45132, - "src": "5441:10:68", + "referencedDeclaration": 40376, + "src": "5441:10:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_calldata_ptr", "typeString": "struct BottomUpCheckpoint calldata" } }, - "id": 45181, + "id": 40425, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5452:9:68", + "memberLocation": "5452:9:64", "memberName": "crossMsgs", "nodeType": "MemberAccess", - "referencedDeclaration": 44147, - "src": "5441:20:68", + "referencedDeclaration": 39323, + "src": "5441:20:64", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_calldata_ptr_$dyn_calldata_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_calldata_ptr_$dyn_calldata_ptr", "typeString": "struct CrossMsg calldata[] calldata" } } @@ -7004,38 +7004,38 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_array$_t_struct$_CrossMsg_$44176_calldata_ptr_$dyn_calldata_ptr", + "typeIdentifier": "t_array$_t_struct$_CrossMsg_$39352_calldata_ptr_$dyn_calldata_ptr", "typeString": "struct CrossMsg calldata[] calldata" } ], "expression": { - "id": 45178, + "id": 40422, "name": "CrossMsgHelper", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 41103, - "src": "5417:14:68", + "referencedDeclaration": 36259, + "src": "5417:14:64", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_CrossMsgHelper_$41103_$", + "typeIdentifier": "t_type$_t_contract$_CrossMsgHelper_$36259_$", "typeString": "type(library CrossMsgHelper)" } }, - "id": 45179, + "id": 40423, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5432:8:68", + "memberLocation": "5432:8:64", "memberName": "isSorted", "nodeType": "MemberAccess", - "referencedDeclaration": 41102, - "src": "5417:23:68", + "referencedDeclaration": 36258, + "src": "5417:23:64", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_struct$_CrossMsg_$44176_memory_ptr_$dyn_memory_ptr_$returns$_t_bool_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_struct$_CrossMsg_$39352_memory_ptr_$dyn_memory_ptr_$returns$_t_bool_$", "typeString": "function (struct CrossMsg memory[] memory) pure returns (bool)" } }, - "id": 45182, + "id": 40426, "isConstant": false, "isLValue": false, "isPure": false, @@ -7044,7 +7044,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5417:45:68", + "src": "5417:45:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -7056,31 +7056,31 @@ "typeString": "bool" } }, - "id": 45188, + "id": 40432, "nodeType": "IfStatement", - "src": "5412:103:68", + "src": "5412:103:64", "trueBody": { - "id": 45187, + "id": 40431, "nodeType": "Block", - "src": "5464:51:68", + "src": "5464:51:64", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 45184, + "id": 40428, "name": "MessagesNotSorted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38188, - "src": "5485:17:68", + "referencedDeclaration": 33204, + "src": "5485:17:64", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 45185, + "id": 40429, "isConstant": false, "isLValue": false, "isPure": false, @@ -7089,117 +7089,117 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5485:19:68", + "src": "5485:19:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 45186, + "id": 40430, "nodeType": "RevertStatement", - "src": "5478:26:68" + "src": "5478:26:64" } ] } }, { "assignments": [ - 45191 + 40435 ], "declarations": [ { "constant": false, - "id": 45191, + "id": 40435, "mutability": "mutable", "name": "voteSubmission", - "nameLocation": "5561:14:68", + "nameLocation": "5561:14:64", "nodeType": "VariableDeclaration", - "scope": 45243, - "src": "5525:50:68", + "scope": 40487, + "src": "5525:50:64", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39409_storage_ptr", "typeString": "struct EpochVoteBottomUpSubmission" }, "typeName": { - "id": 45190, + "id": 40434, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 45189, + "id": 40433, "name": "EpochVoteBottomUpSubmission", "nameLocations": [ - "5525:27:68" + "5525:27:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44233, - "src": "5525:27:68" + "referencedDeclaration": 39409, + "src": "5525:27:64" }, - "referencedDeclaration": 44233, - "src": "5525:27:68", + "referencedDeclaration": 39409, + "src": "5525:27:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39409_storage_ptr", "typeString": "struct EpochVoteBottomUpSubmission" } }, "visibility": "internal" } ], - "id": 45197, + "id": 40441, "initialValue": { "baseExpression": { "expression": { - "id": 45192, + "id": 40436, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "5578:1:68", + "referencedDeclaration": 37869, + "src": "5578:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45193, + "id": 40437, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5580:20:68", + "memberLocation": "5580:20:64", "memberName": "epochVoteSubmissions", "nodeType": "MemberAccess", - "referencedDeclaration": 42642, - "src": "5578:22:68", + "referencedDeclaration": 37781, + "src": "5578:22:64", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_EpochVoteBottomUpSubmission_$44233_storage_$", + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_EpochVoteBottomUpSubmission_$39409_storage_$", "typeString": "mapping(uint64 => struct EpochVoteBottomUpSubmission storage ref)" } }, - "id": 45196, + "id": 40440, "indexExpression": { "expression": { - "id": 45194, + "id": 40438, "name": "checkpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45132, - "src": "5601:10:68", + "referencedDeclaration": 40376, + "src": "5601:10:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_calldata_ptr", "typeString": "struct BottomUpCheckpoint calldata" } }, - "id": 45195, + "id": 40439, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5612:5:68", + "memberLocation": "5612:5:64", "memberName": "epoch", "nodeType": "MemberAccess", - "referencedDeclaration": 44141, - "src": "5601:16:68", + "referencedDeclaration": 39317, + "src": "5601:16:64", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -7210,29 +7210,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5578:40:68", + "src": "5578:40:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage", + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39409_storage", "typeString": "struct EpochVoteBottomUpSubmission storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "5525:93:68" + "src": "5525:93:64" }, { "assignments": [ - 45199 + 40443 ], "declarations": [ { "constant": false, - "id": 45199, + "id": 40443, "mutability": "mutable", "name": "shouldExecuteVote", - "nameLocation": "5661:17:68", + "nameLocation": "5661:17:64", "nodeType": "VariableDeclaration", - "scope": 45243, - "src": "5656:22:68", + "scope": 40487, + "src": "5656:22:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7240,10 +7240,10 @@ "typeString": "bool" }, "typeName": { - "id": 45198, + "id": 40442, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5656:4:68", + "src": "5656:4:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7252,55 +7252,55 @@ "visibility": "internal" } ], - "id": 45211, + "id": 40455, "initialValue": { "arguments": [ { - "id": 45201, + "id": 40445, "name": "voteSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45191, - "src": "5701:14:68", + "referencedDeclaration": 40435, + "src": "5701:14:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39409_storage_ptr", "typeString": "struct EpochVoteBottomUpSubmission storage pointer" } }, { - "id": 45202, + "id": 40446, "name": "checkpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45132, - "src": "5717:10:68", + "referencedDeclaration": 40376, + "src": "5717:10:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_calldata_ptr", "typeString": "struct BottomUpCheckpoint calldata" } }, { "expression": { - "id": 45203, + "id": 40447, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5729:3:68", + "src": "5729:3:64", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 45204, + "id": 40448, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5733:6:68", + "memberLocation": "5733:6:64", "memberName": "sender", "nodeType": "MemberAccess", - "src": "5729:10:68", + "src": "5729:10:64", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7309,55 +7309,55 @@ { "baseExpression": { "expression": { - "id": 45205, + "id": 40449, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "5741:1:68", + "referencedDeclaration": 37869, + "src": "5741:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45206, + "id": 40450, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5743:5:68", + "memberLocation": "5743:5:64", "memberName": "stake", "nodeType": "MemberAccess", - "referencedDeclaration": 42647, - "src": "5741:7:68", + "referencedDeclaration": 37786, + "src": "5741:7:64", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 45209, + "id": 40453, "indexExpression": { "expression": { - "id": 45207, + "id": 40451, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5749:3:68", + "src": "5749:3:64", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 45208, + "id": 40452, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5753:6:68", + "memberLocation": "5753:6:64", "memberName": "sender", "nodeType": "MemberAccess", - "src": "5749:10:68", + "src": "5749:10:64", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7368,7 +7368,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5741:19:68", + "src": "5741:19:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7378,11 +7378,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39409_storage_ptr", "typeString": "struct EpochVoteBottomUpSubmission storage pointer" }, { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_calldata_ptr", "typeString": "struct BottomUpCheckpoint calldata" }, { @@ -7394,18 +7394,18 @@ "typeString": "uint256" } ], - "id": 45200, + "id": 40444, "name": "_submitBottomUpVote", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45550, - "src": "5681:19:68", + "referencedDeclaration": 40794, + "src": "5681:19:64", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr_$_t_struct$_BottomUpCheckpoint_$44156_calldata_ptr_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_EpochVoteBottomUpSubmission_$39409_storage_ptr_$_t_struct$_BottomUpCheckpoint_$39332_calldata_ptr_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (struct EpochVoteBottomUpSubmission storage pointer,struct BottomUpCheckpoint calldata,address,uint256) returns (bool)" } }, - "id": 45210, + "id": 40454, "isConstant": false, "isLValue": false, "isPure": false, @@ -7414,7 +7414,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5681:80:68", + "src": "5681:80:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -7422,41 +7422,41 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5656:105:68" + "src": "5656:105:64" }, { "condition": { - "id": 45212, + "id": 40456, "name": "shouldExecuteVote", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45199, - "src": "5776:17:68", + "referencedDeclaration": 40443, + "src": "5776:17:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 45241, + "id": 40485, "nodeType": "Block", - "src": "5859:407:68", + "src": "5859:407:64", "statements": [ { "assignments": [ - 45219, - 45221 + 40463, + 40465 ], "declarations": [ { "constant": false, - "id": 45219, + "id": 40463, "mutability": "mutable", "name": "nextExecutableEpoch", - "nameLocation": "5948:19:68", + "nameLocation": "5948:19:64", "nodeType": "VariableDeclaration", - "scope": 45241, - "src": "5941:26:68", + "scope": 40485, + "src": "5941:26:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7464,10 +7464,10 @@ "typeString": "uint64" }, "typeName": { - "id": 45218, + "id": 40462, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "5941:6:68", + "src": "5941:6:64", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -7477,13 +7477,13 @@ }, { "constant": false, - "id": 45221, + "id": 40465, "mutability": "mutable", "name": "isExecutableEpoch", - "nameLocation": "5974:17:68", + "nameLocation": "5974:17:64", "nodeType": "VariableDeclaration", - "scope": 45241, - "src": "5969:22:68", + "scope": 40485, + "src": "5969:22:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7491,10 +7491,10 @@ "typeString": "bool" }, "typeName": { - "id": 45220, + "id": 40464, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5969:4:68", + "src": "5969:4:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7503,39 +7503,39 @@ "visibility": "internal" } ], - "id": 45225, + "id": 40469, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 45222, + "id": 40466, "name": "LibVoting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 43438, - "src": "5995:9:68", + "referencedDeclaration": 38614, + "src": "5995:9:64", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibVoting_$43438_$", + "typeIdentifier": "t_type$_t_contract$_LibVoting_$38614_$", "typeString": "type(library LibVoting)" } }, - "id": 45223, + "id": 40467, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6005:22:68", + "memberLocation": "6005:22:64", "memberName": "getNextExecutableEpoch", "nodeType": "MemberAccess", - "referencedDeclaration": 43219, - "src": "5995:32:68", + "referencedDeclaration": 38395, + "src": "5995:32:64", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint64_$_t_bool_$", "typeString": "function () view returns (uint64,bool)" } }, - "id": 45224, + "id": 40468, "isConstant": false, "isLValue": false, "isPure": false, @@ -7544,7 +7544,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5995:34:68", + "src": "5995:34:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint64_$_t_bool_$", @@ -7552,110 +7552,110 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5940:89:68" + "src": "5940:89:64" }, { "condition": { - "id": 45226, + "id": 40470, "name": "isExecutableEpoch", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45221, - "src": "6048:17:68", + "referencedDeclaration": 40465, + "src": "6048:17:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 45240, + "id": 40484, "nodeType": "IfStatement", - "src": "6044:212:68", + "src": "6044:212:64", "trueBody": { - "id": 45239, + "id": 40483, "nodeType": "Block", - "src": "6067:189:68", + "src": "6067:189:64", "statements": [ { "assignments": [ - 45229 + 40473 ], "declarations": [ { "constant": false, - "id": 45229, + "id": 40473, "mutability": "mutable", "name": "nextVoteSubmission", - "nameLocation": "6121:18:68", + "nameLocation": "6121:18:64", "nodeType": "VariableDeclaration", - "scope": 45239, - "src": "6085:54:68", + "scope": 40483, + "src": "6085:54:64", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39409_storage_ptr", "typeString": "struct EpochVoteBottomUpSubmission" }, "typeName": { - "id": 45228, + "id": 40472, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 45227, + "id": 40471, "name": "EpochVoteBottomUpSubmission", "nameLocations": [ - "6085:27:68" + "6085:27:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44233, - "src": "6085:27:68" + "referencedDeclaration": 39409, + "src": "6085:27:64" }, - "referencedDeclaration": 44233, - "src": "6085:27:68", + "referencedDeclaration": 39409, + "src": "6085:27:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39409_storage_ptr", "typeString": "struct EpochVoteBottomUpSubmission" } }, "visibility": "internal" } ], - "id": 45234, + "id": 40478, "initialValue": { "baseExpression": { "expression": { - "id": 45230, + "id": 40474, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "6142:1:68", + "referencedDeclaration": 37869, + "src": "6142:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45231, + "id": 40475, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6144:20:68", + "memberLocation": "6144:20:64", "memberName": "epochVoteSubmissions", "nodeType": "MemberAccess", - "referencedDeclaration": 42642, - "src": "6142:22:68", + "referencedDeclaration": 37781, + "src": "6142:22:64", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_EpochVoteBottomUpSubmission_$44233_storage_$", + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_EpochVoteBottomUpSubmission_$39409_storage_$", "typeString": "mapping(uint64 => struct EpochVoteBottomUpSubmission storage ref)" } }, - "id": 45233, + "id": 40477, "indexExpression": { - "id": 45232, + "id": 40476, "name": "nextExecutableEpoch", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45219, - "src": "6165:19:68", + "referencedDeclaration": 40463, + "src": "6165:19:64", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -7666,27 +7666,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6142:43:68", + "src": "6142:43:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage", + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39409_storage", "typeString": "struct EpochVoteBottomUpSubmission storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "6085:100:68" + "src": "6085:100:64" }, { "expression": { "arguments": [ { - "id": 45236, + "id": 40480, "name": "nextVoteSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45229, - "src": "6222:18:68", + "referencedDeclaration": 40473, + "src": "6222:18:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39409_storage_ptr", "typeString": "struct EpochVoteBottomUpSubmission storage pointer" } } @@ -7694,22 +7694,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39409_storage_ptr", "typeString": "struct EpochVoteBottomUpSubmission storage pointer" } ], - "id": 45235, + "id": 40479, "name": "_commitCheckpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45622, - "src": "6204:17:68", + "referencedDeclaration": 40866, + "src": "6204:17:64", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_EpochVoteBottomUpSubmission_$39409_storage_ptr_$returns$__$", "typeString": "function (struct EpochVoteBottomUpSubmission storage pointer)" } }, - "id": 45237, + "id": 40481, "isConstant": false, "isLValue": false, "isPure": false, @@ -7718,42 +7718,42 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6204:37:68", + "src": "6204:37:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 45238, + "id": 40482, "nodeType": "ExpressionStatement", - "src": "6204:37:68" + "src": "6204:37:64" } ] } } ] }, - "id": 45242, + "id": 40486, "nodeType": "IfStatement", - "src": "5772:494:68", + "src": "5772:494:64", "trueBody": { - "id": 45217, + "id": 40461, "nodeType": "Block", - "src": "5795:58:68", + "src": "5795:58:64", "statements": [ { "expression": { "arguments": [ { - "id": 45214, + "id": 40458, "name": "voteSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45191, - "src": "5827:14:68", + "referencedDeclaration": 40435, + "src": "5827:14:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39409_storage_ptr", "typeString": "struct EpochVoteBottomUpSubmission storage pointer" } } @@ -7761,22 +7761,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39409_storage_ptr", "typeString": "struct EpochVoteBottomUpSubmission storage pointer" } ], - "id": 45213, + "id": 40457, "name": "_commitCheckpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45622, - "src": "5809:17:68", + "referencedDeclaration": 40866, + "src": "5809:17:64", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_EpochVoteBottomUpSubmission_$39409_storage_ptr_$returns$__$", "typeString": "function (struct EpochVoteBottomUpSubmission storage pointer)" } }, - "id": 45215, + "id": 40459, "isConstant": false, "isLValue": false, "isPure": false, @@ -7785,16 +7785,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5809:33:68", + "src": "5809:33:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 45216, + "id": 40460, "nodeType": "ExpressionStatement", - "src": "5809:33:68" + "src": "5809:33:64" } ] } @@ -7802,12 +7802,12 @@ ] }, "baseFunctions": [ - 40452 + 35608 ], "documentation": { - "id": 45129, + "id": 40373, "nodeType": "StructuredDocumentation", - "src": "4766:182:68", + "src": "4766:182:64", "text": "@notice methods that allows a validator to submit a checkpoint (batch of messages) and vote for it with it's own voting power.\n @param checkpoint - the batch messages data" }, "functionSelector": "f6fd8381", @@ -7815,104 +7815,104 @@ "kind": "function", "modifiers": [ { - "id": 45135, + "id": 40379, "kind": "modifierInvocation", "modifierName": { - "id": 45134, + "id": 40378, "name": "signableOnly", "nameLocations": [ - "5028:12:68" + "5028:12:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 42799, - "src": "5028:12:68" + "referencedDeclaration": 37962, + "src": "5028:12:64" }, "nodeType": "ModifierInvocation", - "src": "5028:12:68" + "src": "5028:12:64" } ], "name": "submitCheckpoint", - "nameLocation": "4962:16:68", + "nameLocation": "4962:16:64", "parameters": { - "id": 45133, + "id": 40377, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 45132, + "id": 40376, "mutability": "mutable", "name": "checkpoint", - "nameLocation": "5007:10:68", + "nameLocation": "5007:10:64", "nodeType": "VariableDeclaration", - "scope": 45244, - "src": "4979:38:68", + "scope": 40488, + "src": "4979:38:64", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_calldata_ptr", "typeString": "struct BottomUpCheckpoint" }, "typeName": { - "id": 45131, + "id": 40375, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 45130, + "id": 40374, "name": "BottomUpCheckpoint", "nameLocations": [ - "4979:18:68" + "4979:18:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44156, - "src": "4979:18:68" + "referencedDeclaration": 39332, + "src": "4979:18:64" }, - "referencedDeclaration": 44156, - "src": "4979:18:68", + "referencedDeclaration": 39332, + "src": "4979:18:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage_ptr", "typeString": "struct BottomUpCheckpoint" } }, "visibility": "internal" } ], - "src": "4978:40:68" + "src": "4978:40:64" }, "returnParameters": { - "id": 45136, + "id": 40380, "nodeType": "ParameterList", "parameters": [], - "src": "5041:0:68" + "src": "5041:0:64" }, - "scope": 45623, + "scope": 40867, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 45307, + "id": 40551, "nodeType": "FunctionDefinition", - "src": "6360:562:68", + "src": "6360:562:64", "nodes": [], "body": { - "id": 45306, + "id": 40550, "nodeType": "Block", - "src": "6413:509:68", + "src": "6413:509:64", "nodes": [], "statements": [ { "assignments": [ - 45253 + 40497 ], "declarations": [ { "constant": false, - "id": 45253, + "id": 40497, "mutability": "mutable", "name": "validatorsLength", - "nameLocation": "6431:16:68", + "nameLocation": "6431:16:64", "nodeType": "VariableDeclaration", - "scope": 45306, - "src": "6423:24:68", + "scope": 40550, + "src": "6423:24:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7920,10 +7920,10 @@ "typeString": "uint256" }, "typeName": { - "id": 45252, + "id": 40496, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6423:7:68", + "src": "6423:7:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7932,55 +7932,55 @@ "visibility": "internal" } ], - "id": 45258, + "id": 40502, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "expression": { - "id": 45254, + "id": 40498, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "6450:1:68", + "referencedDeclaration": 37869, + "src": "6450:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45255, + "id": 40499, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6452:10:68", + "memberLocation": "6452:10:64", "memberName": "validators", "nodeType": "MemberAccess", - "referencedDeclaration": 42636, - "src": "6450:12:68", + "referencedDeclaration": 37848, + "src": "6450:12:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$32722_storage", + "typeIdentifier": "t_struct$_AddressSet_$31590_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 45256, + "id": 40500, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6463:6:68", + "memberLocation": "6463:6:64", "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": 32818, - "src": "6450:19:68", + "referencedDeclaration": 31686, + "src": "6450:19:64", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32722_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$32722_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$31590_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$31590_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)" } }, - "id": 45257, + "id": 40501, "isConstant": false, "isLValue": false, "isPure": false, @@ -7989,7 +7989,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6450:21:68", + "src": "6450:21:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7997,7 +7997,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6423:48:68" + "src": "6423:48:64" }, { "condition": { @@ -8005,18 +8005,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 45261, + "id": 40505, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 45259, + "id": 40503, "name": "validatorsLength", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45253, - "src": "6486:16:68", + "referencedDeclaration": 40497, + "src": "6486:16:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8026,51 +8026,51 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 45260, + "id": 40504, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6506:1:68", + "src": "6506:1:64", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "6486:21:68", + "src": "6486:21:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 45266, + "id": 40510, "nodeType": "IfStatement", - "src": "6482:81:68", + "src": "6482:81:64", "trueBody": { - "id": 45265, + "id": 40509, "nodeType": "Block", - "src": "6509:54:68", + "src": "6509:54:64", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 45262, + "id": 40506, "name": "NoValidatorsInSubnet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38192, - "src": "6530:20:68", + "referencedDeclaration": 33208, + "src": "6530:20:64", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 45263, + "id": 40507, "isConstant": false, "isLValue": false, "isPure": false, @@ -8079,16 +8079,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6530:22:68", + "src": "6530:22:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 45264, + "id": 40508, "nodeType": "RevertStatement", - "src": "6523:29:68" + "src": "6523:29:64" } ] } @@ -8099,18 +8099,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 45269, + "id": 40513, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 45267, + "id": 40511, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45247, - "src": "6576:6:68", + "referencedDeclaration": 40491, + "src": "6576:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8119,48 +8119,48 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 45268, + "id": 40512, "name": "validatorsLength", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45253, - "src": "6585:16:68", + "referencedDeclaration": 40497, + "src": "6585:16:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6576:25:68", + "src": "6576:25:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 45274, + "id": 40518, "nodeType": "IfStatement", - "src": "6572:91:68", + "src": "6572:91:64", "trueBody": { - "id": 45273, + "id": 40517, "nodeType": "Block", - "src": "6603:60:68", + "src": "6603:60:64", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 45270, + "id": 40514, "name": "NotEnoughBalanceForRewards", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38202, - "src": "6624:26:68", + "referencedDeclaration": 33218, + "src": "6624:26:64", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 45271, + "id": 40515, "isConstant": false, "isLValue": false, "isPure": false, @@ -8169,34 +8169,34 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6624:28:68", + "src": "6624:28:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 45272, + "id": 40516, "nodeType": "RevertStatement", - "src": "6617:35:68" + "src": "6617:35:64" } ] } }, { "assignments": [ - 45276 + 40520 ], "declarations": [ { "constant": false, - "id": 45276, + "id": 40520, "mutability": "mutable", "name": "rewardAmount", - "nameLocation": "6681:12:68", + "nameLocation": "6681:12:64", "nodeType": "VariableDeclaration", - "scope": 45306, - "src": "6673:20:68", + "scope": 40550, + "src": "6673:20:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8204,10 +8204,10 @@ "typeString": "uint256" }, "typeName": { - "id": 45275, + "id": 40519, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6673:7:68", + "src": "6673:7:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8216,24 +8216,24 @@ "visibility": "internal" } ], - "id": 45280, + "id": 40524, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 45279, + "id": 40523, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 45277, + "id": 40521, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45247, - "src": "6696:6:68", + "referencedDeclaration": 40491, + "src": "6696:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8242,35 +8242,35 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 45278, + "id": 40522, "name": "validatorsLength", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45253, - "src": "6705:16:68", + "referencedDeclaration": 40497, + "src": "6705:16:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6696:25:68", + "src": "6696:25:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "6673:48:68" + "src": "6673:48:64" }, { "body": { - "id": 45304, + "id": 40548, "nodeType": "Block", - "src": "6776:140:68", + "src": "6776:140:64", "statements": [ { "expression": { - "id": 45298, + "id": 40542, "isConstant": false, "isLValue": false, "isPure": false, @@ -8278,42 +8278,42 @@ "leftHandSide": { "baseExpression": { "expression": { - "id": 45288, + "id": 40532, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "6790:1:68", + "referencedDeclaration": 37869, + "src": "6790:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45295, + "id": 40539, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6792:18:68", + "memberLocation": "6792:18:64", "memberName": "accumulatedRewards", "nodeType": "MemberAccess", - "referencedDeclaration": 42652, - "src": "6790:20:68", + "referencedDeclaration": 37791, + "src": "6790:20:64", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 45296, + "id": 40540, "indexExpression": { "arguments": [ { - "id": 45293, + "id": 40537, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45282, - "src": "6827:1:68", + "referencedDeclaration": 40526, + "src": "6827:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8329,48 +8329,48 @@ ], "expression": { "expression": { - "id": 45290, + "id": 40534, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "6811:1:68", + "referencedDeclaration": 37869, + "src": "6811:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45291, + "id": 40535, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6813:10:68", + "memberLocation": "6813:10:64", "memberName": "validators", "nodeType": "MemberAccess", - "referencedDeclaration": 42636, - "src": "6811:12:68", + "referencedDeclaration": 37848, + "src": "6811:12:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_AddressSet_$32722_storage", + "typeIdentifier": "t_struct$_AddressSet_$31590_storage", "typeString": "struct EnumerableSet.AddressSet storage ref" } }, - "id": 45292, + "id": 40536, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6824:2:68", + "memberLocation": "6824:2:64", "memberName": "at", "nodeType": "MemberAccess", - "referencedDeclaration": 32845, - "src": "6811:15:68", + "referencedDeclaration": 31713, + "src": "6811:15:64", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$32722_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$32722_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$31590_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$31590_storage_ptr_$", "typeString": "function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)" } }, - "id": 45294, + "id": 40538, "isConstant": false, "isLValue": false, "isPure": false, @@ -8379,7 +8379,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6811:18:68", + "src": "6811:18:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -8391,7 +8391,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6790:40:68", + "src": "6790:40:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8400,35 +8400,35 @@ "nodeType": "Assignment", "operator": "+=", "rightHandSide": { - "id": 45297, + "id": 40541, "name": "rewardAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45276, - "src": "6834:12:68", + "referencedDeclaration": 40520, + "src": "6834:12:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6790:56:68", + "src": "6790:56:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 45299, + "id": 40543, "nodeType": "ExpressionStatement", - "src": "6790:56:68" + "src": "6790:56:64" }, { - "id": 45303, + "id": 40547, "nodeType": "UncheckedBlock", - "src": "6860:46:68", + "src": "6860:46:64", "statements": [ { "expression": { - "id": 45301, + "id": 40545, "isConstant": false, "isLValue": false, "isPure": false, @@ -8436,14 +8436,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": true, - "src": "6888:3:68", + "src": "6888:3:64", "subExpression": { - "id": 45300, + "id": 40544, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45282, - "src": "6890:1:68", + "referencedDeclaration": 40526, + "src": "6890:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8454,9 +8454,9 @@ "typeString": "uint256" } }, - "id": 45302, + "id": 40546, "nodeType": "ExpressionStatement", - "src": "6888:3:68" + "src": "6888:3:64" } ] } @@ -8467,18 +8467,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 45287, + "id": 40531, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 45285, + "id": 40529, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45282, - "src": "6752:1:68", + "referencedDeclaration": 40526, + "src": "6752:1:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8487,38 +8487,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 45286, + "id": 40530, "name": "validatorsLength", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45253, - "src": "6756:16:68", + "referencedDeclaration": 40497, + "src": "6756:16:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6752:20:68", + "src": "6752:20:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 45305, + "id": 40549, "initializationExpression": { "assignments": [ - 45282 + 40526 ], "declarations": [ { "constant": false, - "id": 45282, + "id": 40526, "mutability": "mutable", "name": "i", - "nameLocation": "6745:1:68", + "nameLocation": "6745:1:64", "nodeType": "VariableDeclaration", - "scope": 45305, - "src": "6737:9:68", + "scope": 40549, + "src": "6737:9:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8526,10 +8526,10 @@ "typeString": "uint256" }, "typeName": { - "id": 45281, + "id": 40525, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6737:7:68", + "src": "6737:7:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8538,17 +8538,17 @@ "visibility": "internal" } ], - "id": 45284, + "id": 40528, "initialValue": { "hexValue": "30", - "id": 45283, + "id": 40527, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6749:1:68", + "src": "6749:1:64", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -8556,20 +8556,20 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "6737:13:68" + "src": "6737:13:64" }, "nodeType": "ForStatement", - "src": "6732:184:68" + "src": "6732:184:64" } ] }, "baseFunctions": [ - 40458 + 35614 ], "documentation": { - "id": 45245, + "id": 40489, "nodeType": "StructuredDocumentation", - "src": "6278:77:68", + "src": "6278:77:64", "text": "@notice method that distributes the rewards for the subnet to validators." }, "functionSelector": "a9fb763c", @@ -8577,37 +8577,37 @@ "kind": "function", "modifiers": [ { - "id": 45250, + "id": 40494, "kind": "modifierInvocation", "modifierName": { - "id": 45249, + "id": 40493, "name": "onlyGateway", "nameLocations": [ - "6401:11:68" + "6401:11:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 42792, - "src": "6401:11:68" + "referencedDeclaration": 37955, + "src": "6401:11:64" }, "nodeType": "ModifierInvocation", - "src": "6401:11:68" + "src": "6401:11:64" } ], "name": "reward", - "nameLocation": "6369:6:68", + "nameLocation": "6369:6:64", "parameters": { - "id": 45248, + "id": 40492, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 45247, + "id": 40491, "mutability": "mutable", "name": "amount", - "nameLocation": "6384:6:68", + "nameLocation": "6384:6:64", "nodeType": "VariableDeclaration", - "scope": 45307, - "src": "6376:14:68", + "scope": 40551, + "src": "6376:14:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8615,10 +8615,10 @@ "typeString": "uint256" }, "typeName": { - "id": 45246, + "id": 40490, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6376:7:68", + "src": "6376:7:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8627,44 +8627,44 @@ "visibility": "internal" } ], - "src": "6375:16:68" + "src": "6375:16:64" }, "returnParameters": { - "id": 45251, + "id": 40495, "nodeType": "ParameterList", "parameters": [], - "src": "6413:0:68" + "src": "6413:0:64" }, - "scope": 45623, + "scope": 40867, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 45356, + "id": 40600, "nodeType": "FunctionDefinition", - "src": "7038:342:68", + "src": "7038:342:64", "nodes": [], "body": { - "id": 45355, + "id": 40599, "nodeType": "Block", - "src": "7080:300:68", + "src": "7080:300:64", "nodes": [], "statements": [ { "assignments": [ - 45314 + 40558 ], "declarations": [ { "constant": false, - "id": 45314, + "id": 40558, "mutability": "mutable", "name": "amount", - "nameLocation": "7098:6:68", + "nameLocation": "7098:6:64", "nodeType": "VariableDeclaration", - "scope": 45355, - "src": "7090:14:68", + "scope": 40599, + "src": "7090:14:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8672,10 +8672,10 @@ "typeString": "uint256" }, "typeName": { - "id": 45313, + "id": 40557, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7090:7:68", + "src": "7090:7:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8684,59 +8684,59 @@ "visibility": "internal" } ], - "id": 45320, + "id": 40564, "initialValue": { "baseExpression": { "expression": { - "id": 45315, + "id": 40559, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "7107:1:68", + "referencedDeclaration": 37869, + "src": "7107:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45316, + "id": 40560, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7109:18:68", + "memberLocation": "7109:18:64", "memberName": "accumulatedRewards", "nodeType": "MemberAccess", - "referencedDeclaration": 42652, - "src": "7107:20:68", + "referencedDeclaration": 37791, + "src": "7107:20:64", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 45319, + "id": 40563, "indexExpression": { "expression": { - "id": 45317, + "id": 40561, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "7128:3:68", + "src": "7128:3:64", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 45318, + "id": 40562, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7132:6:68", + "memberLocation": "7132:6:64", "memberName": "sender", "nodeType": "MemberAccess", - "src": "7128:10:68", + "src": "7128:10:64", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8747,14 +8747,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7107:32:68", + "src": "7107:32:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "7090:49:68" + "src": "7090:49:64" }, { "condition": { @@ -8762,18 +8762,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 45323, + "id": 40567, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 45321, + "id": 40565, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45314, - "src": "7154:6:68", + "referencedDeclaration": 40558, + "src": "7154:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8783,51 +8783,51 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 45322, + "id": 40566, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7164:1:68", + "src": "7164:1:64", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "7154:11:68", + "src": "7154:11:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 45328, + "id": 40572, "nodeType": "IfStatement", - "src": "7150:69:68", + "src": "7150:69:64", "trueBody": { - "id": 45327, + "id": 40571, "nodeType": "Block", - "src": "7167:52:68", + "src": "7167:52:64", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 45324, + "id": 40568, "name": "NoRewardToWithdraw", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 38190, - "src": "7188:18:68", + "referencedDeclaration": 33206, + "src": "7188:18:64", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 45325, + "id": 40569, "isConstant": false, "isLValue": false, "isPure": false, @@ -8836,23 +8836,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7188:20:68", + "src": "7188:20:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 45326, + "id": 40570, "nodeType": "RevertStatement", - "src": "7181:27:68" + "src": "7181:27:64" } ] } }, { "expression": { - "id": 45336, + "id": 40580, "isConstant": false, "isLValue": false, "isPure": false, @@ -8860,55 +8860,55 @@ "leftHandSide": { "baseExpression": { "expression": { - "id": 45329, + "id": 40573, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "7229:1:68", + "referencedDeclaration": 37869, + "src": "7229:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45333, + "id": 40577, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7231:18:68", + "memberLocation": "7231:18:64", "memberName": "accumulatedRewards", "nodeType": "MemberAccess", - "referencedDeclaration": 42652, - "src": "7229:20:68", + "referencedDeclaration": 37791, + "src": "7229:20:64", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 45334, + "id": 40578, "indexExpression": { "expression": { - "id": 45331, + "id": 40575, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "7250:3:68", + "src": "7250:3:64", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 45332, + "id": 40576, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7254:6:68", + "memberLocation": "7254:6:64", "memberName": "sender", "nodeType": "MemberAccess", - "src": "7250:10:68", + "src": "7250:10:64", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8919,7 +8919,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7229:32:68", + "src": "7229:32:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8929,40 +8929,40 @@ "operator": "=", "rightHandSide": { "hexValue": "30", - "id": 45335, + "id": 40579, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7264:1:68", + "src": "7264:1:64", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "7229:36:68", + "src": "7229:36:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 45337, + "id": 40581, "nodeType": "ExpressionStatement", - "src": "7229:36:68" + "src": "7229:36:64" }, { "expression": { "arguments": [ { - "id": 45343, + "id": 40587, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45314, - "src": "7318:6:68", + "referencedDeclaration": 40558, + "src": "7318:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8980,27 +8980,27 @@ "arguments": [ { "expression": { - "id": 45339, + "id": 40583, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "7285:1:68", + "referencedDeclaration": 37869, + "src": "7285:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45340, + "id": 40584, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7287:14:68", + "memberLocation": "7287:14:64", "memberName": "ipcGatewayAddr", "nodeType": "MemberAccess", - "referencedDeclaration": 42683, - "src": "7285:16:68", + "referencedDeclaration": 37840, + "src": "7285:16:64", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9014,18 +9014,18 @@ "typeString": "address" } ], - "id": 45338, + "id": 40582, "name": "IGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40421, - "src": "7276:8:68", + "referencedDeclaration": 35577, + "src": "7276:8:64", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IGateway_$40421_$", + "typeIdentifier": "t_type$_t_contract$_IGateway_$35577_$", "typeString": "type(contract IGateway)" } }, - "id": 45341, + "id": 40585, "isConstant": false, "isLValue": false, "isPure": false, @@ -9034,29 +9034,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7276:26:68", + "src": "7276:26:64", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IGateway_$40421", + "typeIdentifier": "t_contract$_IGateway_$35577", "typeString": "contract IGateway" } }, - "id": 45342, + "id": 40586, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7303:14:68", + "memberLocation": "7303:14:64", "memberName": "releaseRewards", "nodeType": "MemberAccess", - "referencedDeclaration": 40364, - "src": "7276:41:68", + "referencedDeclaration": 35520, + "src": "7276:41:64", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256) external" } }, - "id": 45344, + "id": 40588, "isConstant": false, "isLValue": false, "isPure": false, @@ -9065,27 +9065,27 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7276:49:68", + "src": "7276:49:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 45345, + "id": 40589, "nodeType": "ExpressionStatement", - "src": "7276:49:68" + "src": "7276:49:64" }, { "expression": { "arguments": [ { - "id": 45352, + "id": 40596, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45314, - "src": "7366:6:68", + "referencedDeclaration": 40558, + "src": "7366:6:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9103,26 +9103,26 @@ "arguments": [ { "expression": { - "id": 45348, + "id": 40592, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "7344:3:68", + "src": "7344:3:64", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 45349, + "id": 40593, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7348:6:68", + "memberLocation": "7348:6:64", "memberName": "sender", "nodeType": "MemberAccess", - "src": "7344:10:68", + "src": "7344:10:64", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9136,27 +9136,27 @@ "typeString": "address" } ], - "id": 45347, + "id": 40591, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7336:8:68", + "src": "7336:8:64", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_payable_$", "typeString": "type(address payable)" }, "typeName": { - "id": 45346, + "id": 40590, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7336:8:68", + "src": "7336:8:64", "stateMutability": "payable", "typeDescriptions": {} } }, - "id": 45350, + "id": 40594, "isConstant": false, "isLValue": false, "isPure": false, @@ -9165,29 +9165,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7336:19:68", + "src": "7336:19:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 45351, + "id": 40595, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7356:9:68", + "memberLocation": "7356:9:64", "memberName": "sendValue", "nodeType": "MemberAccess", "referencedDeclaration": 29541, - "src": "7336:29:68", + "src": "7336:29:64", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$", "typeString": "function (address payable,uint256)" } }, - "id": 45353, + "id": 40597, "isConstant": false, "isLValue": false, "isPure": false, @@ -9196,23 +9196,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7336:37:68", + "src": "7336:37:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 45354, + "id": 40598, "nodeType": "ExpressionStatement", - "src": "7336:37:68" + "src": "7336:37:64" } ] }, "documentation": { - "id": 45308, + "id": 40552, "nodeType": "StructuredDocumentation", - "src": "6928:105:68", + "src": "6928:105:64", "text": "@notice method that allows a validator to withdraw it's accumulated rewards using pull-based transfer" }, "functionSelector": "3ccfd60b", @@ -9220,68 +9220,68 @@ "kind": "function", "modifiers": [ { - "id": 45311, + "id": 40555, "kind": "modifierInvocation", "modifierName": { - "id": 45310, + "id": 40554, "name": "signableOnly", "nameLocations": [ - "7067:12:68" + "7067:12:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 42799, - "src": "7067:12:68" + "referencedDeclaration": 37962, + "src": "7067:12:64" }, "nodeType": "ModifierInvocation", - "src": "7067:12:68" + "src": "7067:12:64" } ], "name": "withdraw", - "nameLocation": "7047:8:68", + "nameLocation": "7047:8:64", "parameters": { - "id": 45309, + "id": 40553, "nodeType": "ParameterList", "parameters": [], - "src": "7055:2:68" + "src": "7055:2:64" }, "returnParameters": { - "id": 45312, + "id": 40556, "nodeType": "ParameterList", "parameters": [], - "src": "7080:0:68" + "src": "7080:0:64" }, - "scope": 45623, + "scope": 40867, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 45414, + "id": 40658, "nodeType": "FunctionDefinition", - "src": "7422:422:68", + "src": "7422:422:64", "nodes": [], "body": { - "id": 45413, + "id": 40657, "nodeType": "Block", - "src": "7588:256:68", + "src": "7588:256:64", "nodes": [], "statements": [ { "expression": { - "id": 45379, + "id": 40623, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 45373, + "id": 40617, "name": "source", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45363, - "src": "7598:6:68", + "referencedDeclaration": 40607, + "src": "7598:6:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" } }, @@ -9291,40 +9291,40 @@ "expression": { "baseExpression": { "expression": { - "id": 45374, + "id": 40618, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "7607:1:68", + "referencedDeclaration": 37869, + "src": "7607:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45375, + "id": 40619, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7609:20:68", + "memberLocation": "7609:20:64", "memberName": "committedCheckpoints", "nodeType": "MemberAccess", - "referencedDeclaration": 42632, - "src": "7607:22:68", + "referencedDeclaration": 37808, + "src": "7607:22:64", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$44156_storage_$", + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$39332_storage_$", "typeString": "mapping(uint64 => struct BottomUpCheckpoint storage ref)" } }, - "id": 45377, + "id": 40621, "indexExpression": { - "id": 45376, + "id": 40620, "name": "e", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45359, - "src": "7630:1:68", + "referencedDeclaration": 40603, + "src": "7630:1:64", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -9335,51 +9335,51 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7607:25:68", + "src": "7607:25:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage", "typeString": "struct BottomUpCheckpoint storage ref" } }, - "id": 45378, + "id": 40622, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7633:6:68", + "memberLocation": "7633:6:64", "memberName": "source", "nodeType": "MemberAccess", - "referencedDeclaration": 44139, - "src": "7607:32:68", + "referencedDeclaration": 39315, + "src": "7607:32:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage", "typeString": "struct SubnetID storage ref" } }, - "src": "7598:41:68", + "src": "7598:41:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" } }, - "id": 45380, + "id": 40624, "nodeType": "ExpressionStatement", - "src": "7598:41:68" + "src": "7598:41:64" }, { "expression": { - "id": 45387, + "id": 40631, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 45381, + "id": 40625, "name": "epoch", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45365, - "src": "7649:5:68", + "referencedDeclaration": 40609, + "src": "7649:5:64", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -9391,40 +9391,40 @@ "expression": { "baseExpression": { "expression": { - "id": 45382, + "id": 40626, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "7657:1:68", + "referencedDeclaration": 37869, + "src": "7657:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45383, + "id": 40627, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7659:20:68", + "memberLocation": "7659:20:64", "memberName": "committedCheckpoints", "nodeType": "MemberAccess", - "referencedDeclaration": 42632, - "src": "7657:22:68", + "referencedDeclaration": 37808, + "src": "7657:22:64", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$44156_storage_$", + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$39332_storage_$", "typeString": "mapping(uint64 => struct BottomUpCheckpoint storage ref)" } }, - "id": 45385, + "id": 40629, "indexExpression": { - "id": 45384, + "id": 40628, "name": "e", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45359, - "src": "7680:1:68", + "referencedDeclaration": 40603, + "src": "7680:1:64", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -9435,51 +9435,51 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7657:25:68", + "src": "7657:25:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage", "typeString": "struct BottomUpCheckpoint storage ref" } }, - "id": 45386, + "id": 40630, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7683:5:68", + "memberLocation": "7683:5:64", "memberName": "epoch", "nodeType": "MemberAccess", - "referencedDeclaration": 44141, - "src": "7657:31:68", + "referencedDeclaration": 39317, + "src": "7657:31:64", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "src": "7649:39:68", + "src": "7649:39:64", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, - "id": 45388, + "id": 40632, "nodeType": "ExpressionStatement", - "src": "7649:39:68" + "src": "7649:39:64" }, { "expression": { - "id": 45395, + "id": 40639, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 45389, + "id": 40633, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45367, - "src": "7698:3:68", + "referencedDeclaration": 40611, + "src": "7698:3:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9491,40 +9491,40 @@ "expression": { "baseExpression": { "expression": { - "id": 45390, + "id": 40634, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "7704:1:68", + "referencedDeclaration": 37869, + "src": "7704:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45391, + "id": 40635, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7706:20:68", + "memberLocation": "7706:20:64", "memberName": "committedCheckpoints", "nodeType": "MemberAccess", - "referencedDeclaration": 42632, - "src": "7704:22:68", + "referencedDeclaration": 37808, + "src": "7704:22:64", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$44156_storage_$", + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$39332_storage_$", "typeString": "mapping(uint64 => struct BottomUpCheckpoint storage ref)" } }, - "id": 45393, + "id": 40637, "indexExpression": { - "id": 45392, + "id": 40636, "name": "e", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45359, - "src": "7727:1:68", + "referencedDeclaration": 40603, + "src": "7727:1:64", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -9535,51 +9535,51 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7704:25:68", + "src": "7704:25:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage", "typeString": "struct BottomUpCheckpoint storage ref" } }, - "id": 45394, + "id": 40638, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7730:3:68", + "memberLocation": "7730:3:64", "memberName": "fee", "nodeType": "MemberAccess", - "referencedDeclaration": 44143, - "src": "7704:29:68", + "referencedDeclaration": 39319, + "src": "7704:29:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7698:35:68", + "src": "7698:35:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 45396, + "id": 40640, "nodeType": "ExpressionStatement", - "src": "7698:35:68" + "src": "7698:35:64" }, { "expression": { - "id": 45403, + "id": 40647, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 45397, + "id": 40641, "name": "prevHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45369, - "src": "7743:8:68", + "referencedDeclaration": 40613, + "src": "7743:8:64", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9591,40 +9591,40 @@ "expression": { "baseExpression": { "expression": { - "id": 45398, + "id": 40642, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "7754:1:68", + "referencedDeclaration": 37869, + "src": "7754:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45399, + "id": 40643, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7756:20:68", + "memberLocation": "7756:20:64", "memberName": "committedCheckpoints", "nodeType": "MemberAccess", - "referencedDeclaration": 42632, - "src": "7754:22:68", + "referencedDeclaration": 37808, + "src": "7754:22:64", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$44156_storage_$", + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$39332_storage_$", "typeString": "mapping(uint64 => struct BottomUpCheckpoint storage ref)" } }, - "id": 45401, + "id": 40645, "indexExpression": { - "id": 45400, + "id": 40644, "name": "e", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45359, - "src": "7777:1:68", + "referencedDeclaration": 40603, + "src": "7777:1:64", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -9635,51 +9635,51 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7754:25:68", + "src": "7754:25:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage", "typeString": "struct BottomUpCheckpoint storage ref" } }, - "id": 45402, + "id": 40646, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7780:8:68", + "memberLocation": "7780:8:64", "memberName": "prevHash", "nodeType": "MemberAccess", - "referencedDeclaration": 44153, - "src": "7754:34:68", + "referencedDeclaration": 39329, + "src": "7754:34:64", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "7743:45:68", + "src": "7743:45:64", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 45404, + "id": 40648, "nodeType": "ExpressionStatement", - "src": "7743:45:68" + "src": "7743:45:64" }, { "expression": { - "id": 45411, + "id": 40655, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 45405, + "id": 40649, "name": "proof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45371, - "src": "7798:5:68", + "referencedDeclaration": 40615, + "src": "7798:5:64", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -9691,40 +9691,40 @@ "expression": { "baseExpression": { "expression": { - "id": 45406, + "id": 40650, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "7806:1:68", + "referencedDeclaration": 37869, + "src": "7806:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45407, + "id": 40651, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7808:20:68", + "memberLocation": "7808:20:64", "memberName": "committedCheckpoints", "nodeType": "MemberAccess", - "referencedDeclaration": 42632, - "src": "7806:22:68", + "referencedDeclaration": 37808, + "src": "7806:22:64", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$44156_storage_$", + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$39332_storage_$", "typeString": "mapping(uint64 => struct BottomUpCheckpoint storage ref)" } }, - "id": 45409, + "id": 40653, "indexExpression": { - "id": 45408, + "id": 40652, "name": "e", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45359, - "src": "7829:1:68", + "referencedDeclaration": 40603, + "src": "7829:1:64", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -9735,43 +9735,43 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7806:25:68", + "src": "7806:25:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage", "typeString": "struct BottomUpCheckpoint storage ref" } }, - "id": 45410, + "id": 40654, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7832:5:68", + "memberLocation": "7832:5:64", "memberName": "proof", "nodeType": "MemberAccess", - "referencedDeclaration": 44155, - "src": "7806:31:68", + "referencedDeclaration": 39331, + "src": "7806:31:64", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, - "src": "7798:39:68", + "src": "7798:39:64", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 45412, + "id": 40656, "nodeType": "ExpressionStatement", - "src": "7798:39:68" + "src": "7798:39:64" } ] }, "documentation": { - "id": 45357, + "id": 40601, "nodeType": "StructuredDocumentation", - "src": "7386:31:68", + "src": "7386:31:64", "text": "@notice get the total stake" }, "functionSelector": "98903748", @@ -9779,20 +9779,20 @@ "kind": "function", "modifiers": [], "name": "committedCheckpoints", - "nameLocation": "7431:20:68", + "nameLocation": "7431:20:64", "parameters": { - "id": 45360, + "id": 40604, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 45359, + "id": 40603, "mutability": "mutable", "name": "e", - "nameLocation": "7468:1:68", + "nameLocation": "7468:1:64", "nodeType": "VariableDeclaration", - "scope": 45414, - "src": "7461:8:68", + "scope": 40658, + "src": "7461:8:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9800,10 +9800,10 @@ "typeString": "uint64" }, "typeName": { - "id": 45358, + "id": 40602, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "7461:6:68", + "src": "7461:6:64", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -9812,44 +9812,44 @@ "visibility": "internal" } ], - "src": "7451:24:68" + "src": "7451:24:64" }, "returnParameters": { - "id": 45372, + "id": 40616, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 45363, + "id": 40607, "mutability": "mutable", "name": "source", - "nameLocation": "7515:6:68", + "nameLocation": "7515:6:64", "nodeType": "VariableDeclaration", - "scope": 45414, - "src": "7499:22:68", + "scope": 40658, + "src": "7499:22:64", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID" }, "typeName": { - "id": 45362, + "id": 40606, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 45361, + "id": 40605, "name": "SubnetID", "nameLocations": [ - "7499:8:68" + "7499:8:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44279, - "src": "7499:8:68" + "referencedDeclaration": 39457, + "src": "7499:8:64" }, - "referencedDeclaration": 44279, - "src": "7499:8:68", + "referencedDeclaration": 39457, + "src": "7499:8:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_storage_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_storage_ptr", "typeString": "struct SubnetID" } }, @@ -9857,13 +9857,13 @@ }, { "constant": false, - "id": 45365, + "id": 40609, "mutability": "mutable", "name": "epoch", - "nameLocation": "7530:5:68", + "nameLocation": "7530:5:64", "nodeType": "VariableDeclaration", - "scope": 45414, - "src": "7523:12:68", + "scope": 40658, + "src": "7523:12:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9871,10 +9871,10 @@ "typeString": "uint64" }, "typeName": { - "id": 45364, + "id": 40608, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "7523:6:68", + "src": "7523:6:64", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -9884,13 +9884,13 @@ }, { "constant": false, - "id": 45367, + "id": 40611, "mutability": "mutable", "name": "fee", - "nameLocation": "7545:3:68", + "nameLocation": "7545:3:64", "nodeType": "VariableDeclaration", - "scope": 45414, - "src": "7537:11:68", + "scope": 40658, + "src": "7537:11:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9898,10 +9898,10 @@ "typeString": "uint256" }, "typeName": { - "id": 45366, + "id": 40610, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7537:7:68", + "src": "7537:7:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9911,13 +9911,13 @@ }, { "constant": false, - "id": 45369, + "id": 40613, "mutability": "mutable", "name": "prevHash", - "nameLocation": "7558:8:68", + "nameLocation": "7558:8:64", "nodeType": "VariableDeclaration", - "scope": 45414, - "src": "7550:16:68", + "scope": 40658, + "src": "7550:16:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9925,10 +9925,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 45368, + "id": 40612, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7550:7:68", + "src": "7550:7:64", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9938,13 +9938,13 @@ }, { "constant": false, - "id": 45371, + "id": 40615, "mutability": "mutable", "name": "proof", - "nameLocation": "7581:5:68", + "nameLocation": "7581:5:64", "nodeType": "VariableDeclaration", - "scope": 45414, - "src": "7568:18:68", + "scope": 40658, + "src": "7568:18:64", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -9952,10 +9952,10 @@ "typeString": "bytes" }, "typeName": { - "id": 45370, + "id": 40614, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7568:5:68", + "src": "7568:5:64", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -9964,105 +9964,105 @@ "visibility": "internal" } ], - "src": "7498:89:68" + "src": "7498:89:64" }, - "scope": 45623, + "scope": 40867, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 45443, + "id": 40687, "nodeType": "FunctionDefinition", - "src": "8032:287:68", + "src": "8032:287:64", "nodes": [], "body": { - "id": 45442, + "id": 40686, "nodeType": "Block", - "src": "8134:185:68", + "src": "8134:185:64", "nodes": [], "statements": [ { "assignments": [ - 45426 + 40670 ], "declarations": [ { "constant": false, - "id": 45426, + "id": 40670, "mutability": "mutable", "name": "voteSubmission", - "nameLocation": "8180:14:68", + "nameLocation": "8180:14:64", "nodeType": "VariableDeclaration", - "scope": 45442, - "src": "8144:50:68", + "scope": 40686, + "src": "8144:50:64", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39409_storage_ptr", "typeString": "struct EpochVoteBottomUpSubmission" }, "typeName": { - "id": 45425, + "id": 40669, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 45424, + "id": 40668, "name": "EpochVoteBottomUpSubmission", "nameLocations": [ - "8144:27:68" + "8144:27:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44233, - "src": "8144:27:68" + "referencedDeclaration": 39409, + "src": "8144:27:64" }, - "referencedDeclaration": 44233, - "src": "8144:27:68", + "referencedDeclaration": 39409, + "src": "8144:27:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39409_storage_ptr", "typeString": "struct EpochVoteBottomUpSubmission" } }, "visibility": "internal" } ], - "id": 45431, + "id": 40675, "initialValue": { "baseExpression": { "expression": { - "id": 45427, + "id": 40671, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "8197:1:68", + "referencedDeclaration": 37869, + "src": "8197:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45428, + "id": 40672, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8199:20:68", + "memberLocation": "8199:20:64", "memberName": "epochVoteSubmissions", "nodeType": "MemberAccess", - "referencedDeclaration": 42642, - "src": "8197:22:68", + "referencedDeclaration": 37781, + "src": "8197:22:64", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_EpochVoteBottomUpSubmission_$44233_storage_$", + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_EpochVoteBottomUpSubmission_$39409_storage_$", "typeString": "mapping(uint64 => struct EpochVoteBottomUpSubmission storage ref)" } }, - "id": 45430, + "id": 40674, "indexExpression": { - "id": 45429, + "id": 40673, "name": "epoch", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45417, - "src": "8220:5:68", + "referencedDeclaration": 40661, + "src": "8220:5:64", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -10073,14 +10073,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8197:29:68", + "src": "8197:29:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage", + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39409_storage", "typeString": "struct EpochVoteBottomUpSubmission storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "8144:82:68" + "src": "8144:82:64" }, { "expression": { @@ -10088,87 +10088,87 @@ "baseExpression": { "expression": { "expression": { - "id": 45432, + "id": 40676, "name": "voteSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45426, - "src": "8244:14:68", + "referencedDeclaration": 40670, + "src": "8244:14:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39409_storage_ptr", "typeString": "struct EpochVoteBottomUpSubmission storage pointer" } }, - "id": 45433, + "id": 40677, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8259:4:68", + "memberLocation": "8259:4:64", "memberName": "vote", "nodeType": "MemberAccess", - "referencedDeclaration": 44227, - "src": "8244:19:68", + "referencedDeclaration": 39403, + "src": "8244:19:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteSubmission_$44215_storage", + "typeIdentifier": "t_struct$_EpochVoteSubmission_$39391_storage", "typeString": "struct EpochVoteSubmission storage ref" } }, - "id": 45434, + "id": 40678, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8264:10:68", + "memberLocation": "8264:10:64", "memberName": "submitters", "nodeType": "MemberAccess", - "referencedDeclaration": 44208, - "src": "8244:30:68", + "referencedDeclaration": 39384, + "src": "8244:30:64", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(uint256 => mapping(address => bool))" } }, - "id": 45438, + "id": 40682, "indexExpression": { "expression": { "expression": { - "id": 45435, + "id": 40679, "name": "voteSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45426, - "src": "8275:14:68", + "referencedDeclaration": 40670, + "src": "8275:14:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39409_storage_ptr", "typeString": "struct EpochVoteBottomUpSubmission storage pointer" } }, - "id": 45436, + "id": 40680, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8290:4:68", + "memberLocation": "8290:4:64", "memberName": "vote", "nodeType": "MemberAccess", - "referencedDeclaration": 44227, - "src": "8275:19:68", + "referencedDeclaration": 39403, + "src": "8275:19:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteSubmission_$44215_storage", + "typeIdentifier": "t_struct$_EpochVoteSubmission_$39391_storage", "typeString": "struct EpochVoteSubmission storage ref" } }, - "id": 45437, + "id": 40681, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8295:5:68", + "memberLocation": "8295:5:64", "memberName": "nonce", "nodeType": "MemberAccess", - "referencedDeclaration": 44198, - "src": "8275:25:68", + "referencedDeclaration": 39374, + "src": "8275:25:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10179,20 +10179,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8244:57:68", + "src": "8244:57:64", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 45440, + "id": 40684, "indexExpression": { - "id": 45439, + "id": 40683, "name": "submitter", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45419, - "src": "8302:9:68", + "referencedDeclaration": 40663, + "src": "8302:9:64", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10203,23 +10203,23 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8244:68:68", + "src": "8244:68:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 45423, - "id": 45441, + "functionReturnParameters": 40667, + "id": 40685, "nodeType": "Return", - "src": "8237:75:68" + "src": "8237:75:64" } ] }, "documentation": { - "id": 45415, + "id": 40659, "nodeType": "StructuredDocumentation", - "src": "7850:177:68", + "src": "7850:177:64", "text": "@notice whether a validator has voted for a checkpoint submission during an epoch\n @param epoch - the epoch to check\n @param submitter - the validator to check" }, "functionSelector": "66d7bbbc", @@ -10227,20 +10227,20 @@ "kind": "function", "modifiers": [], "name": "hasValidatorVotedForSubmission", - "nameLocation": "8041:30:68", + "nameLocation": "8041:30:64", "parameters": { - "id": 45420, + "id": 40664, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 45417, + "id": 40661, "mutability": "mutable", "name": "epoch", - "nameLocation": "8079:5:68", + "nameLocation": "8079:5:64", "nodeType": "VariableDeclaration", - "scope": 45443, - "src": "8072:12:68", + "scope": 40687, + "src": "8072:12:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10248,10 +10248,10 @@ "typeString": "uint64" }, "typeName": { - "id": 45416, + "id": 40660, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "8072:6:68", + "src": "8072:6:64", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -10261,13 +10261,13 @@ }, { "constant": false, - "id": 45419, + "id": 40663, "mutability": "mutable", "name": "submitter", - "nameLocation": "8094:9:68", + "nameLocation": "8094:9:64", "nodeType": "VariableDeclaration", - "scope": 45443, - "src": "8086:17:68", + "scope": 40687, + "src": "8086:17:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10275,10 +10275,10 @@ "typeString": "address" }, "typeName": { - "id": 45418, + "id": 40662, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8086:7:68", + "src": "8086:7:64", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10288,21 +10288,21 @@ "visibility": "internal" } ], - "src": "8071:33:68" + "src": "8071:33:64" }, "returnParameters": { - "id": 45423, + "id": 40667, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 45422, + "id": 40666, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 45443, - "src": "8128:4:68", + "scope": 40687, + "src": "8128:4:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10310,10 +10310,10 @@ "typeString": "bool" }, "typeName": { - "id": 45421, + "id": 40665, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8128:4:68", + "src": "8128:4:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10322,40 +10322,40 @@ "visibility": "internal" } ], - "src": "8127:6:68" + "src": "8127:6:64" }, - "scope": 45623, + "scope": 40867, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 45470, + "id": 40714, "nodeType": "FunctionDefinition", - "src": "8550:241:68", + "src": "8550:241:64", "nodes": [], "body": { - "id": 45469, + "id": 40713, "nodeType": "Block", - "src": "8685:106:68", + "src": "8685:106:64", "nodes": [], "statements": [ { "expression": { - "id": 45459, + "id": 40703, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 45454, + "id": 40698, "name": "checkpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45452, - "src": "8695:10:68", + "referencedDeclaration": 40696, + "src": "8695:10:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_memory_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_memory_ptr", "typeString": "struct BottomUpCheckpoint memory" } }, @@ -10364,40 +10364,40 @@ "rightHandSide": { "baseExpression": { "expression": { - "id": 45455, + "id": 40699, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "8708:1:68", + "referencedDeclaration": 37869, + "src": "8708:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45456, + "id": 40700, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8710:20:68", + "memberLocation": "8710:20:64", "memberName": "committedCheckpoints", "nodeType": "MemberAccess", - "referencedDeclaration": 42632, - "src": "8708:22:68", + "referencedDeclaration": 37808, + "src": "8708:22:64", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$44156_storage_$", + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$39332_storage_$", "typeString": "mapping(uint64 => struct BottomUpCheckpoint storage ref)" } }, - "id": 45458, + "id": 40702, "indexExpression": { - "id": 45457, + "id": 40701, "name": "epoch", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45446, - "src": "8731:5:68", + "referencedDeclaration": 40690, + "src": "8731:5:64", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -10408,36 +10408,36 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8708:29:68", + "src": "8708:29:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage", "typeString": "struct BottomUpCheckpoint storage ref" } }, - "src": "8695:42:68", + "src": "8695:42:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_memory_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_memory_ptr", "typeString": "struct BottomUpCheckpoint memory" } }, - "id": 45460, + "id": 40704, "nodeType": "ExpressionStatement", - "src": "8695:42:68" + "src": "8695:42:64" }, { "expression": { - "id": 45467, + "id": 40711, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 45461, + "id": 40705, "name": "exists", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45449, - "src": "8747:6:68", + "referencedDeclaration": 40693, + "src": "8747:6:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10446,7 +10446,7 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 45466, + "id": 40710, "isConstant": false, "isLValue": false, "isPure": false, @@ -10454,55 +10454,55 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "8756:28:68", + "src": "8756:28:64", "subExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "expression": { - "id": 45462, + "id": 40706, "name": "checkpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45452, - "src": "8757:10:68", + "referencedDeclaration": 40696, + "src": "8757:10:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_memory_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_memory_ptr", "typeString": "struct BottomUpCheckpoint memory" } }, - "id": 45463, + "id": 40707, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8768:6:68", + "memberLocation": "8768:6:64", "memberName": "source", "nodeType": "MemberAccess", - "referencedDeclaration": 44139, - "src": "8757:17:68", + "referencedDeclaration": 39315, + "src": "8757:17:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetID_$44279_memory_ptr", + "typeIdentifier": "t_struct$_SubnetID_$39457_memory_ptr", "typeString": "struct SubnetID memory" } }, - "id": 45464, + "id": 40708, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8775:7:68", + "memberLocation": "8775:7:64", "memberName": "isEmpty", "nodeType": "MemberAccess", - "referencedDeclaration": 44130, - "src": "8757:25:68", + "referencedDeclaration": 39306, + "src": "8757:25:64", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$44279_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$44279_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_SubnetID_$39457_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$39457_memory_ptr_$", "typeString": "function (struct SubnetID memory) pure returns (bool)" } }, - "id": 45465, + "id": 40709, "isConstant": false, "isLValue": false, "isPure": false, @@ -10511,7 +10511,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8757:27:68", + "src": "8757:27:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -10523,22 +10523,22 @@ "typeString": "bool" } }, - "src": "8747:37:68", + "src": "8747:37:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 45468, + "id": 40712, "nodeType": "ExpressionStatement", - "src": "8747:37:68" + "src": "8747:37:64" } ] }, "documentation": { - "id": 45444, + "id": 40688, "nodeType": "StructuredDocumentation", - "src": "8325:220:68", + "src": "8325:220:64", "text": "@notice returns the committed bottom-up checkpoint at specific epoch\n @param epoch - the epoch to check\n @return exists - whether the checkpoint exists\n @return checkpoint - the checkpoint struct" }, "functionSelector": "6cb2ecee", @@ -10546,20 +10546,20 @@ "kind": "function", "modifiers": [], "name": "bottomUpCheckpointAtEpoch", - "nameLocation": "8559:25:68", + "nameLocation": "8559:25:64", "parameters": { - "id": 45447, + "id": 40691, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 45446, + "id": 40690, "mutability": "mutable", "name": "epoch", - "nameLocation": "8601:5:68", + "nameLocation": "8601:5:64", "nodeType": "VariableDeclaration", - "scope": 45470, - "src": "8594:12:68", + "scope": 40714, + "src": "8594:12:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10567,10 +10567,10 @@ "typeString": "uint64" }, "typeName": { - "id": 45445, + "id": 40689, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "8594:6:68", + "src": "8594:6:64", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -10579,21 +10579,21 @@ "visibility": "internal" } ], - "src": "8584:28:68" + "src": "8584:28:64" }, "returnParameters": { - "id": 45453, + "id": 40697, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 45449, + "id": 40693, "mutability": "mutable", "name": "exists", - "nameLocation": "8639:6:68", + "nameLocation": "8639:6:64", "nodeType": "VariableDeclaration", - "scope": 45470, - "src": "8634:11:68", + "scope": 40714, + "src": "8634:11:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10601,10 +10601,10 @@ "typeString": "bool" }, "typeName": { - "id": 45448, + "id": 40692, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8634:4:68", + "src": "8634:4:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10614,75 +10614,75 @@ }, { "constant": false, - "id": 45452, + "id": 40696, "mutability": "mutable", "name": "checkpoint", - "nameLocation": "8673:10:68", + "nameLocation": "8673:10:64", "nodeType": "VariableDeclaration", - "scope": 45470, - "src": "8647:36:68", + "scope": 40714, + "src": "8647:36:64", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_memory_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_memory_ptr", "typeString": "struct BottomUpCheckpoint" }, "typeName": { - "id": 45451, + "id": 40695, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 45450, + "id": 40694, "name": "BottomUpCheckpoint", "nameLocations": [ - "8647:18:68" + "8647:18:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44156, - "src": "8647:18:68" + "referencedDeclaration": 39332, + "src": "8647:18:64" }, - "referencedDeclaration": 44156, - "src": "8647:18:68", + "referencedDeclaration": 39332, + "src": "8647:18:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage_ptr", "typeString": "struct BottomUpCheckpoint" } }, "visibility": "internal" } ], - "src": "8633:51:68" + "src": "8633:51:64" }, - "scope": 45623, + "scope": 40867, "stateMutability": "view", "virtual": false, "visibility": "public" }, { - "id": 45496, + "id": 40740, "nodeType": "FunctionDefinition", - "src": "9019:240:68", + "src": "9019:240:64", "nodes": [], "body": { - "id": 45495, + "id": 40739, "nodeType": "Block", - "src": "9110:149:68", + "src": "9110:149:64", "nodes": [], "statements": [ { "assignments": [ - 45481, - 45484 + 40725, + 40728 ], "declarations": [ { "constant": false, - "id": 45481, + "id": 40725, "mutability": "mutable", "name": "exists", - "nameLocation": "9126:6:68", + "nameLocation": "9126:6:64", "nodeType": "VariableDeclaration", - "scope": 45495, - "src": "9121:11:68", + "scope": 40739, + "src": "9121:11:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10690,10 +10690,10 @@ "typeString": "bool" }, "typeName": { - "id": 45480, + "id": 40724, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "9121:4:68", + "src": "9121:4:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10703,52 +10703,52 @@ }, { "constant": false, - "id": 45484, + "id": 40728, "mutability": "mutable", "name": "checkpoint", - "nameLocation": "9160:10:68", + "nameLocation": "9160:10:64", "nodeType": "VariableDeclaration", - "scope": 45495, - "src": "9134:36:68", + "scope": 40739, + "src": "9134:36:64", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_memory_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_memory_ptr", "typeString": "struct BottomUpCheckpoint" }, "typeName": { - "id": 45483, + "id": 40727, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 45482, + "id": 40726, "name": "BottomUpCheckpoint", "nameLocations": [ - "9134:18:68" + "9134:18:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44156, - "src": "9134:18:68" + "referencedDeclaration": 39332, + "src": "9134:18:64" }, - "referencedDeclaration": 44156, - "src": "9134:18:68", + "referencedDeclaration": 39332, + "src": "9134:18:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage_ptr", "typeString": "struct BottomUpCheckpoint" } }, "visibility": "internal" } ], - "id": 45488, + "id": 40732, "initialValue": { "arguments": [ { - "id": 45486, + "id": 40730, "name": "epoch", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45473, - "src": "9200:5:68", + "referencedDeclaration": 40717, + "src": "9200:5:64", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -10762,18 +10762,18 @@ "typeString": "uint64" } ], - "id": 45485, + "id": 40729, "name": "bottomUpCheckpointAtEpoch", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45470, - "src": "9174:25:68", + "referencedDeclaration": 40714, + "src": "9174:25:64", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint64_$returns$_t_bool_$_t_struct$_BottomUpCheckpoint_$44156_memory_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_uint64_$returns$_t_bool_$_t_struct$_BottomUpCheckpoint_$39332_memory_ptr_$", "typeString": "function (uint64) view returns (bool,struct BottomUpCheckpoint memory)" } }, - "id": 45487, + "id": 40731, "isConstant": false, "isLValue": false, "isPure": false, @@ -10782,26 +10782,26 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9174:32:68", + "src": "9174:32:64", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_BottomUpCheckpoint_$44156_memory_ptr_$", + "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_BottomUpCheckpoint_$39332_memory_ptr_$", "typeString": "tuple(bool,struct BottomUpCheckpoint memory)" } }, "nodeType": "VariableDeclarationStatement", - "src": "9120:86:68" + "src": "9120:86:64" }, { "expression": { "components": [ { - "id": 45489, + "id": 40733, "name": "exists", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45481, - "src": "9224:6:68", + "referencedDeclaration": 40725, + "src": "9224:6:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10812,33 +10812,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 45490, + "id": 40734, "name": "checkpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45484, - "src": "9232:10:68", + "referencedDeclaration": 40728, + "src": "9232:10:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_memory_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_memory_ptr", "typeString": "struct BottomUpCheckpoint memory" } }, - "id": 45491, + "id": 40735, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9243:6:68", + "memberLocation": "9243:6:64", "memberName": "toHash", "nodeType": "MemberAccess", - "referencedDeclaration": 40594, - "src": "9232:17:68", + "referencedDeclaration": 35750, + "src": "9232:17:64", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_BottomUpCheckpoint_$44156_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_BottomUpCheckpoint_$44156_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_BottomUpCheckpoint_$39332_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_BottomUpCheckpoint_$39332_memory_ptr_$", "typeString": "function (struct BottomUpCheckpoint memory) pure returns (bytes32)" } }, - "id": 45492, + "id": 40736, "isConstant": false, "isLValue": false, "isPure": false, @@ -10847,7 +10847,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9232:19:68", + "src": "9232:19:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -10855,30 +10855,30 @@ } } ], - "id": 45493, + "id": 40737, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "9223:29:68", + "src": "9223:29:64", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$", "typeString": "tuple(bool,bytes32)" } }, - "functionReturnParameters": 45479, - "id": 45494, + "functionReturnParameters": 40723, + "id": 40738, "nodeType": "Return", - "src": "9216:36:68" + "src": "9216:36:64" } ] }, "documentation": { - "id": 45471, + "id": 40715, "nodeType": "StructuredDocumentation", - "src": "8797:217:68", + "src": "8797:217:64", "text": "@notice returns the historical committed bottom-up checkpoint hash\n @param epoch - the epoch to check\n @return exists - whether the checkpoint exists\n @return hash - the hash of the checkpoint" }, "functionSelector": "133f74ea", @@ -10886,20 +10886,20 @@ "kind": "function", "modifiers": [], "name": "bottomUpCheckpointHashAtEpoch", - "nameLocation": "9028:29:68", + "nameLocation": "9028:29:64", "parameters": { - "id": 45474, + "id": 40718, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 45473, + "id": 40717, "mutability": "mutable", "name": "epoch", - "nameLocation": "9065:5:68", + "nameLocation": "9065:5:64", "nodeType": "VariableDeclaration", - "scope": 45496, - "src": "9058:12:68", + "scope": 40740, + "src": "9058:12:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10907,10 +10907,10 @@ "typeString": "uint64" }, "typeName": { - "id": 45472, + "id": 40716, "name": "uint64", "nodeType": "ElementaryTypeName", - "src": "9058:6:68", + "src": "9058:6:64", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -10919,21 +10919,21 @@ "visibility": "internal" } ], - "src": "9057:14:68" + "src": "9057:14:64" }, "returnParameters": { - "id": 45479, + "id": 40723, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 45476, + "id": 40720, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 45496, - "src": "9095:4:68", + "scope": 40740, + "src": "9095:4:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10941,10 +10941,10 @@ "typeString": "bool" }, "typeName": { - "id": 45475, + "id": 40719, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "9095:4:68", + "src": "9095:4:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10954,13 +10954,13 @@ }, { "constant": false, - "id": 45478, + "id": 40722, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 45496, - "src": "9101:7:68", + "scope": 40740, + "src": "9101:7:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10968,10 +10968,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 45477, + "id": 40721, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "9101:7:68", + "src": "9101:7:64", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10980,38 +10980,38 @@ "visibility": "internal" } ], - "src": "9094:15:68" + "src": "9094:15:64" }, - "scope": 45623, + "scope": 40867, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 45550, + "id": 40794, "nodeType": "FunctionDefinition", - "src": "9501:750:68", + "src": "9501:750:64", "nodes": [], "body": { - "id": 45549, + "id": 40793, "nodeType": "Block", - "src": "9753:498:68", + "src": "9753:498:64", "nodes": [], "statements": [ { "assignments": [ - 45513 + 40757 ], "declarations": [ { "constant": false, - "id": 45513, + "id": 40757, "mutability": "mutable", "name": "submissionHash", - "nameLocation": "9771:14:68", + "nameLocation": "9771:14:64", "nodeType": "VariableDeclaration", - "scope": 45549, - "src": "9763:22:68", + "scope": 40793, + "src": "9763:22:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11019,10 +11019,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 45512, + "id": 40756, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "9763:7:68", + "src": "9763:7:64", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -11031,39 +11031,39 @@ "visibility": "internal" } ], - "id": 45517, + "id": 40761, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 45514, + "id": 40758, "name": "submission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45503, - "src": "9788:10:68", + "referencedDeclaration": 40747, + "src": "9788:10:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_calldata_ptr", "typeString": "struct BottomUpCheckpoint calldata" } }, - "id": 45515, + "id": 40759, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "9799:6:68", + "memberLocation": "9799:6:64", "memberName": "toHash", "nodeType": "MemberAccess", - "referencedDeclaration": 40594, - "src": "9788:17:68", + "referencedDeclaration": 35750, + "src": "9788:17:64", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_BottomUpCheckpoint_$44156_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_BottomUpCheckpoint_$44156_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_BottomUpCheckpoint_$39332_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_BottomUpCheckpoint_$39332_memory_ptr_$", "typeString": "function (struct BottomUpCheckpoint memory) pure returns (bytes32)" } }, - "id": 45516, + "id": 40760, "isConstant": false, "isLValue": false, "isPure": false, @@ -11072,7 +11072,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9788:19:68", + "src": "9788:19:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -11080,22 +11080,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "9763:44:68" + "src": "9763:44:64" }, { "expression": { - "id": 45531, + "id": 40775, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 45518, + "id": 40762, "name": "shouldExecuteVote", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45510, - "src": "9818:17:68", + "referencedDeclaration": 40754, + "src": "9818:17:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11107,63 +11107,63 @@ "arguments": [ { "expression": { - "id": 45521, + "id": 40765, "name": "voteSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45500, - "src": "9872:14:68", + "referencedDeclaration": 40744, + "src": "9872:14:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39409_storage_ptr", "typeString": "struct EpochVoteBottomUpSubmission storage pointer" } }, - "id": 45522, + "id": 40766, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9887:4:68", + "memberLocation": "9887:4:64", "memberName": "vote", "nodeType": "MemberAccess", - "referencedDeclaration": 44227, - "src": "9872:19:68", + "referencedDeclaration": 39403, + "src": "9872:19:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteSubmission_$44215_storage", + "typeIdentifier": "t_struct$_EpochVoteSubmission_$39391_storage", "typeString": "struct EpochVoteSubmission storage ref" } }, { - "id": 45523, + "id": 40767, "name": "submissionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45513, - "src": "9905:14:68", + "referencedDeclaration": 40757, + "src": "9905:14:64", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 45524, + "id": 40768, "name": "submitterAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45505, - "src": "9933:16:68", + "referencedDeclaration": 40749, + "src": "9933:16:64", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 45525, + "id": 40769, "name": "submitterWeight", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45507, - "src": "9963:15:68", + "referencedDeclaration": 40751, + "src": "9963:15:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11171,27 +11171,27 @@ }, { "expression": { - "id": 45526, + "id": 40770, "name": "submission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45503, - "src": "9992:10:68", + "referencedDeclaration": 40747, + "src": "9992:10:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_calldata_ptr", "typeString": "struct BottomUpCheckpoint calldata" } }, - "id": 45527, + "id": 40771, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "10003:5:68", + "memberLocation": "10003:5:64", "memberName": "epoch", "nodeType": "MemberAccess", - "referencedDeclaration": 44141, - "src": "9992:16:68", + "referencedDeclaration": 39317, + "src": "9992:16:64", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -11199,27 +11199,27 @@ }, { "expression": { - "id": 45528, + "id": 40772, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "10022:1:68", + "referencedDeclaration": 37869, + "src": "10022:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45529, + "id": 40773, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10024:10:68", + "memberLocation": "10024:10:64", "memberName": "totalStake", "nodeType": "MemberAccess", - "referencedDeclaration": 42616, - "src": "10022:12:68", + "referencedDeclaration": 37814, + "src": "10022:12:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11229,7 +11229,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_EpochVoteSubmission_$44215_storage", + "typeIdentifier": "t_struct$_EpochVoteSubmission_$39391_storage", "typeString": "struct EpochVoteSubmission storage ref" }, { @@ -11254,33 +11254,33 @@ } ], "expression": { - "id": 45519, + "id": 40763, "name": "LibVoting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 43438, - "src": "9838:9:68", + "referencedDeclaration": 38614, + "src": "9838:9:64", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibVoting_$43438_$", + "typeIdentifier": "t_type$_t_contract$_LibVoting_$38614_$", "typeString": "type(library LibVoting)" } }, - "id": 45520, + "id": 40764, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "9848:10:68", + "memberLocation": "9848:10:64", "memberName": "submitVote", "nodeType": "MemberAccess", - "referencedDeclaration": 43360, - "src": "9838:20:68", + "referencedDeclaration": 38536, + "src": "9838:20:64", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_EpochVoteSubmission_$44215_storage_ptr_$_t_bytes32_$_t_address_$_t_uint256_$_t_uint64_$_t_uint256_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_EpochVoteSubmission_$39391_storage_ptr_$_t_bytes32_$_t_address_$_t_uint256_$_t_uint64_$_t_uint256_$returns$_t_bool_$", "typeString": "function (struct EpochVoteSubmission storage pointer,bytes32,address,uint256,uint64,uint256) returns (bool)" } }, - "id": 45530, + "id": 40774, "isConstant": false, "isLValue": false, "isPure": false, @@ -11289,22 +11289,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9838:206:68", + "src": "9838:206:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "9818:226:68", + "src": "9818:226:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 45532, + "id": 40776, "nodeType": "ExpressionStatement", - "src": "9818:226:68" + "src": "9818:226:64" }, { "condition": { @@ -11314,40 +11314,40 @@ "expression": { "baseExpression": { "expression": { - "id": 45533, + "id": 40777, "name": "voteSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45500, - "src": "10111:14:68", + "referencedDeclaration": 40744, + "src": "10111:14:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39409_storage_ptr", "typeString": "struct EpochVoteBottomUpSubmission storage pointer" } }, - "id": 45534, + "id": 40778, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10126:11:68", + "memberLocation": "10126:11:64", "memberName": "submissions", "nodeType": "MemberAccess", - "referencedDeclaration": 44232, - "src": "10111:26:68", + "referencedDeclaration": 39408, + "src": "10111:26:64", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BottomUpCheckpoint_$44156_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BottomUpCheckpoint_$39332_storage_$", "typeString": "mapping(bytes32 => struct BottomUpCheckpoint storage ref)" } }, - "id": 45536, + "id": 40780, "indexExpression": { - "id": 45535, + "id": 40779, "name": "submissionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45513, - "src": "10138:14:68", + "referencedDeclaration": 40757, + "src": "10138:14:64", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -11358,28 +11358,28 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10111:42:68", + "src": "10111:42:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage", "typeString": "struct BottomUpCheckpoint storage ref" } }, - "id": 45537, + "id": 40781, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10154:7:68", + "memberLocation": "10154:7:64", "memberName": "isEmpty", "nodeType": "MemberAccess", - "referencedDeclaration": 40640, - "src": "10111:50:68", + "referencedDeclaration": 35796, + "src": "10111:50:64", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_BottomUpCheckpoint_$44156_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_BottomUpCheckpoint_$44156_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_BottomUpCheckpoint_$39332_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_BottomUpCheckpoint_$39332_memory_ptr_$", "typeString": "function (struct BottomUpCheckpoint memory) pure returns (bool)" } }, - "id": 45538, + "id": 40782, "isConstant": false, "isLValue": false, "isPure": false, @@ -11388,24 +11388,24 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10111:52:68", + "src": "10111:52:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 45548, + "id": 40792, "nodeType": "IfStatement", - "src": "10107:138:68", + "src": "10107:138:64", "trueBody": { - "id": 45547, + "id": 40791, "nodeType": "Block", - "src": "10165:80:68", + "src": "10165:80:64", "statements": [ { "expression": { - "id": 45545, + "id": 40789, "isConstant": false, "isLValue": false, "isPure": false, @@ -11413,40 +11413,40 @@ "leftHandSide": { "baseExpression": { "expression": { - "id": 45539, + "id": 40783, "name": "voteSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45500, - "src": "10179:14:68", + "referencedDeclaration": 40744, + "src": "10179:14:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39409_storage_ptr", "typeString": "struct EpochVoteBottomUpSubmission storage pointer" } }, - "id": 45542, + "id": 40786, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10194:11:68", + "memberLocation": "10194:11:64", "memberName": "submissions", "nodeType": "MemberAccess", - "referencedDeclaration": 44232, - "src": "10179:26:68", + "referencedDeclaration": 39408, + "src": "10179:26:64", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BottomUpCheckpoint_$44156_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BottomUpCheckpoint_$39332_storage_$", "typeString": "mapping(bytes32 => struct BottomUpCheckpoint storage ref)" } }, - "id": 45543, + "id": 40787, "indexExpression": { - "id": 45541, + "id": 40785, "name": "submissionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45513, - "src": "10206:14:68", + "referencedDeclaration": 40757, + "src": "10206:14:64", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -11457,35 +11457,35 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "10179:42:68", + "src": "10179:42:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage", "typeString": "struct BottomUpCheckpoint storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 45544, + "id": 40788, "name": "submission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45503, - "src": "10224:10:68", + "referencedDeclaration": 40747, + "src": "10224:10:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_calldata_ptr", "typeString": "struct BottomUpCheckpoint calldata" } }, - "src": "10179:55:68", + "src": "10179:55:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage", "typeString": "struct BottomUpCheckpoint storage ref" } }, - "id": 45546, + "id": 40790, "nodeType": "ExpressionStatement", - "src": "10179:55:68" + "src": "10179:55:64" } ] } @@ -11493,52 +11493,52 @@ ] }, "documentation": { - "id": 45497, + "id": 40741, "nodeType": "StructuredDocumentation", - "src": "9265:231:68", + "src": "9265:231:64", "text": "@notice submits a vote for a checkpoint\n @param voteSubmission - the vote submission data\n @param submitterAddress - the validator that submits the vote\n @param submitterWeight - the weight of the validator" }, "implemented": true, "kind": "function", "modifiers": [], "name": "_submitBottomUpVote", - "nameLocation": "9510:19:68", + "nameLocation": "9510:19:64", "parameters": { - "id": 45508, + "id": 40752, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 45500, + "id": 40744, "mutability": "mutable", "name": "voteSubmission", - "nameLocation": "9575:14:68", + "nameLocation": "9575:14:64", "nodeType": "VariableDeclaration", - "scope": 45550, - "src": "9539:50:68", + "scope": 40794, + "src": "9539:50:64", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39409_storage_ptr", "typeString": "struct EpochVoteBottomUpSubmission" }, "typeName": { - "id": 45499, + "id": 40743, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 45498, + "id": 40742, "name": "EpochVoteBottomUpSubmission", "nameLocations": [ - "9539:27:68" + "9539:27:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44233, - "src": "9539:27:68" + "referencedDeclaration": 39409, + "src": "9539:27:64" }, - "referencedDeclaration": 44233, - "src": "9539:27:68", + "referencedDeclaration": 39409, + "src": "9539:27:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39409_storage_ptr", "typeString": "struct EpochVoteBottomUpSubmission" } }, @@ -11546,36 +11546,36 @@ }, { "constant": false, - "id": 45503, + "id": 40747, "mutability": "mutable", "name": "submission", - "nameLocation": "9627:10:68", + "nameLocation": "9627:10:64", "nodeType": "VariableDeclaration", - "scope": 45550, - "src": "9599:38:68", + "scope": 40794, + "src": "9599:38:64", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_calldata_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_calldata_ptr", "typeString": "struct BottomUpCheckpoint" }, "typeName": { - "id": 45502, + "id": 40746, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 45501, + "id": 40745, "name": "BottomUpCheckpoint", "nameLocations": [ - "9599:18:68" + "9599:18:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44156, - "src": "9599:18:68" + "referencedDeclaration": 39332, + "src": "9599:18:64" }, - "referencedDeclaration": 44156, - "src": "9599:18:68", + "referencedDeclaration": 39332, + "src": "9599:18:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage_ptr", "typeString": "struct BottomUpCheckpoint" } }, @@ -11583,13 +11583,13 @@ }, { "constant": false, - "id": 45505, + "id": 40749, "mutability": "mutable", "name": "submitterAddress", - "nameLocation": "9655:16:68", + "nameLocation": "9655:16:64", "nodeType": "VariableDeclaration", - "scope": 45550, - "src": "9647:24:68", + "scope": 40794, + "src": "9647:24:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11597,10 +11597,10 @@ "typeString": "address" }, "typeName": { - "id": 45504, + "id": 40748, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9647:7:68", + "src": "9647:7:64", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11611,13 +11611,13 @@ }, { "constant": false, - "id": 45507, + "id": 40751, "mutability": "mutable", "name": "submitterWeight", - "nameLocation": "9689:15:68", + "nameLocation": "9689:15:64", "nodeType": "VariableDeclaration", - "scope": 45550, - "src": "9681:23:68", + "scope": 40794, + "src": "9681:23:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11625,10 +11625,10 @@ "typeString": "uint256" }, "typeName": { - "id": 45506, + "id": 40750, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9681:7:68", + "src": "9681:7:64", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11637,21 +11637,21 @@ "visibility": "internal" } ], - "src": "9529:181:68" + "src": "9529:181:64" }, "returnParameters": { - "id": 45511, + "id": 40755, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 45510, + "id": 40754, "mutability": "mutable", "name": "shouldExecuteVote", - "nameLocation": "9734:17:68", + "nameLocation": "9734:17:64", "nodeType": "VariableDeclaration", - "scope": 45550, - "src": "9729:22:68", + "scope": 40794, + "src": "9729:22:64", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11659,10 +11659,10 @@ "typeString": "bool" }, "typeName": { - "id": 45509, + "id": 40753, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "9729:4:68", + "src": "9729:4:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11671,137 +11671,137 @@ "visibility": "internal" } ], - "src": "9728:24:68" + "src": "9728:24:64" }, - "scope": 45623, + "scope": 40867, "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { - "id": 45622, + "id": 40866, "nodeType": "FunctionDefinition", - "src": "10420:763:68", + "src": "10420:763:64", "nodes": [], "body": { - "id": 45621, + "id": 40865, "nodeType": "Block", - "src": "10508:675:68", + "src": "10508:675:64", "nodes": [], "statements": [ { "assignments": [ - 45559 + 40803 ], "declarations": [ { "constant": false, - "id": 45559, + "id": 40803, "mutability": "mutable", "name": "checkpoint", - "nameLocation": "10545:10:68", + "nameLocation": "10545:10:64", "nodeType": "VariableDeclaration", - "scope": 45621, - "src": "10518:37:68", + "scope": 40865, + "src": "10518:37:64", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage_ptr", "typeString": "struct BottomUpCheckpoint" }, "typeName": { - "id": 45558, + "id": 40802, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 45557, + "id": 40801, "name": "BottomUpCheckpoint", "nameLocations": [ - "10518:18:68" + "10518:18:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44156, - "src": "10518:18:68" + "referencedDeclaration": 39332, + "src": "10518:18:64" }, - "referencedDeclaration": 44156, - "src": "10518:18:68", + "referencedDeclaration": 39332, + "src": "10518:18:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage_ptr", "typeString": "struct BottomUpCheckpoint" } }, "visibility": "internal" } ], - "id": 45566, + "id": 40810, "initialValue": { "baseExpression": { "expression": { - "id": 45560, + "id": 40804, "name": "voteSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45554, - "src": "10558:14:68", + "referencedDeclaration": 40798, + "src": "10558:14:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39409_storage_ptr", "typeString": "struct EpochVoteBottomUpSubmission storage pointer" } }, - "id": 45561, + "id": 40805, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10573:11:68", + "memberLocation": "10573:11:64", "memberName": "submissions", "nodeType": "MemberAccess", - "referencedDeclaration": 44232, - "src": "10558:26:68", + "referencedDeclaration": 39408, + "src": "10558:26:64", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BottomUpCheckpoint_$44156_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BottomUpCheckpoint_$39332_storage_$", "typeString": "mapping(bytes32 => struct BottomUpCheckpoint storage ref)" } }, - "id": 45565, + "id": 40809, "indexExpression": { "expression": { "expression": { - "id": 45562, + "id": 40806, "name": "voteSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45554, - "src": "10585:14:68", + "referencedDeclaration": 40798, + "src": "10585:14:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39409_storage_ptr", "typeString": "struct EpochVoteBottomUpSubmission storage pointer" } }, - "id": 45563, + "id": 40807, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10600:4:68", + "memberLocation": "10600:4:64", "memberName": "vote", "nodeType": "MemberAccess", - "referencedDeclaration": 44227, - "src": "10585:19:68", + "referencedDeclaration": 39403, + "src": "10585:19:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteSubmission_$44215_storage", + "typeIdentifier": "t_struct$_EpochVoteSubmission_$39391_storage", "typeString": "struct EpochVoteSubmission storage ref" } }, - "id": 45564, + "id": 40808, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10605:19:68", + "memberLocation": "10605:19:64", "memberName": "mostVotedSubmission", "nodeType": "MemberAccess", - "referencedDeclaration": 44202, - "src": "10585:39:68", + "referencedDeclaration": 39378, + "src": "10585:39:64", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -11812,14 +11812,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10558:67:68", + "src": "10558:67:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage", "typeString": "struct BottomUpCheckpoint storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "10518:107:68" + "src": "10518:107:64" }, { "condition": { @@ -11827,34 +11827,34 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 45571, + "id": 40815, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 45567, + "id": 40811, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "10734:1:68", + "referencedDeclaration": 37869, + "src": "10734:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45568, + "id": 40812, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10736:26:68", + "memberLocation": "10736:26:64", "memberName": "prevExecutedCheckpointHash", "nodeType": "MemberAccess", - "referencedDeclaration": 42626, - "src": "10734:28:68", + "referencedDeclaration": 37837, + "src": "10734:28:64", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -11864,46 +11864,46 @@ "operator": "!=", "rightExpression": { "expression": { - "id": 45569, + "id": 40813, "name": "checkpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45559, - "src": "10766:10:68", + "referencedDeclaration": 40803, + "src": "10766:10:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage_ptr", "typeString": "struct BottomUpCheckpoint storage pointer" } }, - "id": 45570, + "id": 40814, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10777:8:68", + "memberLocation": "10777:8:64", "memberName": "prevHash", "nodeType": "MemberAccess", - "referencedDeclaration": 44153, - "src": "10766:19:68", + "referencedDeclaration": 39329, + "src": "10766:19:64", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "10734:51:68", + "src": "10734:51:64", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "documentation": "Ensures the checkpoints are chained. If not, should abort the current checkpoint.", - "id": 45588, + "id": 40832, "nodeType": "IfStatement", - "src": "10730:196:68", + "src": "10730:196:64", "trueBody": { - "id": 45587, + "id": 40831, "nodeType": "Block", - "src": "10787:139:68", + "src": "10787:139:64", "statements": [ { "expression": { @@ -11912,48 +11912,48 @@ "argumentTypes": [], "expression": { "expression": { - "id": 45572, + "id": 40816, "name": "voteSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45554, - "src": "10801:14:68", + "referencedDeclaration": 40798, + "src": "10801:14:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39409_storage_ptr", "typeString": "struct EpochVoteBottomUpSubmission storage pointer" } }, - "id": 45575, + "id": 40819, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10816:4:68", + "memberLocation": "10816:4:64", "memberName": "vote", "nodeType": "MemberAccess", - "referencedDeclaration": 44227, - "src": "10801:19:68", + "referencedDeclaration": 39403, + "src": "10801:19:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteSubmission_$44215_storage", + "typeIdentifier": "t_struct$_EpochVoteSubmission_$39391_storage", "typeString": "struct EpochVoteSubmission storage ref" } }, - "id": 45576, + "id": 40820, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10821:5:68", + "memberLocation": "10821:5:64", "memberName": "reset", "nodeType": "MemberAccess", - "referencedDeclaration": 41132, - "src": "10801:25:68", + "referencedDeclaration": 36288, + "src": "10801:25:64", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_EpochVoteSubmission_$44215_storage_ptr_$returns$__$attached_to$_t_struct$_EpochVoteSubmission_$44215_storage_ptr_$", + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_EpochVoteSubmission_$39391_storage_ptr_$returns$__$attached_to$_t_struct$_EpochVoteSubmission_$39391_storage_ptr_$", "typeString": "function (struct EpochVoteSubmission storage pointer)" } }, - "id": 45577, + "id": 40821, "isConstant": false, "isLValue": false, "isPure": false, @@ -11962,43 +11962,43 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10801:27:68", + "src": "10801:27:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 45578, + "id": 40822, "nodeType": "ExpressionStatement", - "src": "10801:27:68" + "src": "10801:27:64" }, { "expression": { "arguments": [ { "expression": { - "id": 45582, + "id": 40826, "name": "checkpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45559, - "src": "10878:10:68", + "referencedDeclaration": 40803, + "src": "10878:10:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage_ptr", "typeString": "struct BottomUpCheckpoint storage pointer" } }, - "id": 45583, + "id": 40827, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10889:5:68", + "memberLocation": "10889:5:64", "memberName": "epoch", "nodeType": "MemberAccess", - "referencedDeclaration": 44141, - "src": "10878:16:68", + "referencedDeclaration": 39317, + "src": "10878:16:64", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -12013,33 +12013,33 @@ } ], "expression": { - "id": 45579, + "id": 40823, "name": "LibVoting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 43438, - "src": "10842:9:68", + "referencedDeclaration": 38614, + "src": "10842:9:64", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibVoting_$43438_$", + "typeIdentifier": "t_type$_t_contract$_LibVoting_$38614_$", "typeString": "type(library LibVoting)" } }, - "id": 45581, + "id": 40825, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "10852:25:68", + "memberLocation": "10852:25:64", "memberName": "removeFromExecutableQueue", "nodeType": "MemberAccess", - "referencedDeclaration": 43437, - "src": "10842:35:68", + "referencedDeclaration": 38613, + "src": "10842:35:64", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint64_$returns$__$", "typeString": "function (uint64)" } }, - "id": 45584, + "id": 40828, "isConstant": false, "isLValue": false, "isPure": false, @@ -12048,22 +12048,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10842:53:68", + "src": "10842:53:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 45585, + "id": 40829, "nodeType": "ExpressionStatement", - "src": "10842:53:68" + "src": "10842:53:64" }, { - "functionReturnParameters": 45556, - "id": 45586, + "functionReturnParameters": 40800, + "id": 40830, "nodeType": "Return", - "src": "10909:7:68" + "src": "10909:7:64" } ] } @@ -12073,27 +12073,27 @@ "arguments": [ { "expression": { - "id": 45592, + "id": 40836, "name": "checkpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45559, - "src": "10969:10:68", + "referencedDeclaration": 40803, + "src": "10969:10:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage_ptr", "typeString": "struct BottomUpCheckpoint storage pointer" } }, - "id": 45593, + "id": 40837, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10980:5:68", + "memberLocation": "10980:5:64", "memberName": "epoch", "nodeType": "MemberAccess", - "referencedDeclaration": 44141, - "src": "10969:16:68", + "referencedDeclaration": 39317, + "src": "10969:16:64", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -12108,33 +12108,33 @@ } ], "expression": { - "id": 45589, + "id": 40833, "name": "LibVoting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 43438, - "src": "10936:9:68", + "referencedDeclaration": 38614, + "src": "10936:9:64", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibVoting_$43438_$", + "typeIdentifier": "t_type$_t_contract$_LibVoting_$38614_$", "typeString": "type(library LibVoting)" } }, - "id": 45591, + "id": 40835, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "10946:22:68", + "memberLocation": "10946:22:64", "memberName": "markSubmissionExecuted", "nodeType": "MemberAccess", - "referencedDeclaration": 43169, - "src": "10936:32:68", + "referencedDeclaration": 38345, + "src": "10936:32:64", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint64_$returns$__$", "typeString": "function (uint64)" } }, - "id": 45594, + "id": 40838, "isConstant": false, "isLValue": false, "isPure": false, @@ -12143,20 +12143,20 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10936:50:68", + "src": "10936:50:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 45595, + "id": 40839, "nodeType": "ExpressionStatement", - "src": "10936:50:68" + "src": "10936:50:64" }, { "expression": { - "id": 45603, + "id": 40847, "isConstant": false, "isLValue": false, "isPure": false, @@ -12164,56 +12164,56 @@ "leftHandSide": { "baseExpression": { "expression": { - "id": 45596, + "id": 40840, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "10997:1:68", + "referencedDeclaration": 37869, + "src": "10997:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45600, + "id": 40844, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10999:20:68", + "memberLocation": "10999:20:64", "memberName": "committedCheckpoints", "nodeType": "MemberAccess", - "referencedDeclaration": 42632, - "src": "10997:22:68", + "referencedDeclaration": 37808, + "src": "10997:22:64", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$44156_storage_$", + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_BottomUpCheckpoint_$39332_storage_$", "typeString": "mapping(uint64 => struct BottomUpCheckpoint storage ref)" } }, - "id": 45601, + "id": 40845, "indexExpression": { "expression": { - "id": 45598, + "id": 40842, "name": "checkpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45559, - "src": "11020:10:68", + "referencedDeclaration": 40803, + "src": "11020:10:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage_ptr", "typeString": "struct BottomUpCheckpoint storage pointer" } }, - "id": 45599, + "id": 40843, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11031:5:68", + "memberLocation": "11031:5:64", "memberName": "epoch", "nodeType": "MemberAccess", - "referencedDeclaration": 44141, - "src": "11020:16:68", + "referencedDeclaration": 39317, + "src": "11020:16:64", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -12224,66 +12224,66 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "10997:40:68", + "src": "10997:40:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage", "typeString": "struct BottomUpCheckpoint storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 45602, + "id": 40846, "name": "checkpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45559, - "src": "11040:10:68", + "referencedDeclaration": 40803, + "src": "11040:10:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage_ptr", "typeString": "struct BottomUpCheckpoint storage pointer" } }, - "src": "10997:53:68", + "src": "10997:53:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage", "typeString": "struct BottomUpCheckpoint storage ref" } }, - "id": 45604, + "id": 40848, "nodeType": "ExpressionStatement", - "src": "10997:53:68" + "src": "10997:53:64" }, { "expression": { - "id": 45611, + "id": 40855, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 45605, + "id": 40849, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "11060:1:68", + "referencedDeclaration": 37869, + "src": "11060:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45607, + "id": 40851, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "11062:26:68", + "memberLocation": "11062:26:64", "memberName": "prevExecutedCheckpointHash", "nodeType": "MemberAccess", - "referencedDeclaration": 42626, - "src": "11060:28:68", + "referencedDeclaration": 37837, + "src": "11060:28:64", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12296,33 +12296,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 45608, + "id": 40852, "name": "checkpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45559, - "src": "11091:10:68", + "referencedDeclaration": 40803, + "src": "11091:10:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage_ptr", "typeString": "struct BottomUpCheckpoint storage pointer" } }, - "id": 45609, + "id": 40853, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11102:6:68", + "memberLocation": "11102:6:64", "memberName": "toHash", "nodeType": "MemberAccess", - "referencedDeclaration": 40594, - "src": "11091:17:68", + "referencedDeclaration": 35750, + "src": "11091:17:64", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_BottomUpCheckpoint_$44156_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_BottomUpCheckpoint_$44156_memory_ptr_$", + "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_BottomUpCheckpoint_$39332_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_BottomUpCheckpoint_$39332_memory_ptr_$", "typeString": "function (struct BottomUpCheckpoint memory) pure returns (bytes32)" } }, - "id": 45610, + "id": 40854, "isConstant": false, "isLValue": false, "isPure": false, @@ -12331,35 +12331,35 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11091:19:68", + "src": "11091:19:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "11060:50:68", + "src": "11060:50:64", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 45612, + "id": 40856, "nodeType": "ExpressionStatement", - "src": "11060:50:68" + "src": "11060:50:64" }, { "expression": { "arguments": [ { - "id": 45618, + "id": 40862, "name": "checkpoint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45559, - "src": "11165:10:68", + "referencedDeclaration": 40803, + "src": "11165:10:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage_ptr", "typeString": "struct BottomUpCheckpoint storage pointer" } } @@ -12367,7 +12367,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_BottomUpCheckpoint_$44156_storage_ptr", + "typeIdentifier": "t_struct$_BottomUpCheckpoint_$39332_storage_ptr", "typeString": "struct BottomUpCheckpoint storage pointer" } ], @@ -12375,27 +12375,27 @@ "arguments": [ { "expression": { - "id": 45614, + "id": 40858, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42706, - "src": "11130:1:68", + "referencedDeclaration": 37869, + "src": "11130:1:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_SubnetActorStorage_$42694_storage", + "typeIdentifier": "t_struct$_SubnetActorStorage_$37857_storage", "typeString": "struct SubnetActorStorage storage ref" } }, - "id": 45615, + "id": 40859, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11132:14:68", + "memberLocation": "11132:14:64", "memberName": "ipcGatewayAddr", "nodeType": "MemberAccess", - "referencedDeclaration": 42683, - "src": "11130:16:68", + "referencedDeclaration": 37840, + "src": "11130:16:64", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12409,18 +12409,18 @@ "typeString": "address" } ], - "id": 45613, + "id": 40857, "name": "IGateway", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40421, - "src": "11121:8:68", + "referencedDeclaration": 35577, + "src": "11121:8:64", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IGateway_$40421_$", + "typeIdentifier": "t_type$_t_contract$_IGateway_$35577_$", "typeString": "type(contract IGateway)" } }, - "id": 45616, + "id": 40860, "isConstant": false, "isLValue": false, "isPure": false, @@ -12429,29 +12429,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11121:26:68", + "src": "11121:26:64", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IGateway_$40421", + "typeIdentifier": "t_contract$_IGateway_$35577", "typeString": "contract IGateway" } }, - "id": 45617, + "id": 40861, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "11148:16:68", + "memberLocation": "11148:16:64", "memberName": "commitChildCheck", "nodeType": "MemberAccess", - "referencedDeclaration": 40375, - "src": "11121:43:68", + "referencedDeclaration": 35531, + "src": "11121:43:64", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_struct$_BottomUpCheckpoint_$44156_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_external_nonpayable$_t_struct$_BottomUpCheckpoint_$39332_memory_ptr_$returns$__$", "typeString": "function (struct BottomUpCheckpoint memory) external" } }, - "id": 45619, + "id": 40863, "isConstant": false, "isLValue": false, "isPure": false, @@ -12460,81 +12460,81 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11121:55:68", + "src": "11121:55:64", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 45620, + "id": 40864, "nodeType": "ExpressionStatement", - "src": "11121:55:68" + "src": "11121:55:64" } ] }, "documentation": { - "id": 45551, + "id": 40795, "nodeType": "StructuredDocumentation", - "src": "10257:158:68", + "src": "10257:158:64", "text": "@notice method that commits a checkpoint after reaching majority\n @param voteSubmission - the last vote submission that reached majority for commit" }, "implemented": true, "kind": "function", "modifiers": [], "name": "_commitCheckpoint", - "nameLocation": "10429:17:68", + "nameLocation": "10429:17:64", "parameters": { - "id": 45555, + "id": 40799, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 45554, + "id": 40798, "mutability": "mutable", "name": "voteSubmission", - "nameLocation": "10483:14:68", + "nameLocation": "10483:14:64", "nodeType": "VariableDeclaration", - "scope": 45622, - "src": "10447:50:68", + "scope": 40866, + "src": "10447:50:64", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39409_storage_ptr", "typeString": "struct EpochVoteBottomUpSubmission" }, "typeName": { - "id": 45553, + "id": 40797, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 45552, + "id": 40796, "name": "EpochVoteBottomUpSubmission", "nameLocations": [ - "10447:27:68" + "10447:27:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 44233, - "src": "10447:27:68" + "referencedDeclaration": 39409, + "src": "10447:27:64" }, - "referencedDeclaration": 44233, - "src": "10447:27:68", + "referencedDeclaration": 39409, + "src": "10447:27:64", "typeDescriptions": { - "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$44233_storage_ptr", + "typeIdentifier": "t_struct$_EpochVoteBottomUpSubmission_$39409_storage_ptr", "typeString": "struct EpochVoteBottomUpSubmission" } }, "visibility": "internal" } ], - "src": "10446:52:68" + "src": "10446:52:64" }, "returnParameters": { - "id": 45556, + "id": 40800, "nodeType": "ParameterList", "parameters": [], - "src": "10508:0:68" + "src": "10508:0:64" }, - "scope": 45623, + "scope": 40867, "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" @@ -12544,48 +12544,48 @@ "baseContracts": [ { "baseName": { - "id": 44809, + "id": 40053, "name": "ISubnetActor", "nameLocations": [ - "1803:12:68" + "1803:12:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 40459, - "src": "1803:12:68" + "referencedDeclaration": 35615, + "src": "1803:12:64" }, - "id": 44810, + "id": 40054, "nodeType": "InheritanceSpecifier", - "src": "1803:12:68" + "src": "1803:12:64" }, { "baseName": { - "id": 44811, + "id": 40055, "name": "SubnetActorModifiers", "nameLocations": [ - "1817:20:68" + "1817:20:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 42807, - "src": "1817:20:68" + "referencedDeclaration": 37970, + "src": "1817:20:64" }, - "id": 44812, + "id": 40056, "nodeType": "InheritanceSpecifier", - "src": "1817:20:68" + "src": "1817:20:64" }, { "baseName": { - "id": 44813, + "id": 40057, "name": "ReentrancyGuard", "nameLocations": [ - "1839:15:68" + "1839:15:64" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 42567, - "src": "1839:15:68" + "referencedDeclaration": 37729, + "src": "1839:15:64" }, - "id": 44814, + "id": 40058, "nodeType": "InheritanceSpecifier", - "src": "1839:15:68" + "src": "1839:15:64" } ], "canonicalName": "SubnetActorManagerFacet", @@ -12593,37 +12593,37 @@ "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ - 45623, - 42567, - 42807, - 40459 + 40867, + 37729, + 37970, + 35615 ], "name": "SubnetActorManagerFacet", - "nameLocation": "1776:23:68", - "scope": 45624, + "nameLocation": "1776:23:64", + "scope": 40868, "usedErrors": [ 29492, 29500, - 38160, - 38164, - 38166, - 38188, - 38190, - 38192, - 38194, - 38196, - 38202, - 38212, - 38222, - 38226, - 38228, - 38230, - 38238, - 42517 + 33176, + 33180, + 33182, + 33204, + 33206, + 33208, + 33210, + 33212, + 33218, + 33228, + 33238, + 33242, + 33244, + 33246, + 33254, + 37679 ] } ], "license": "UNLICENSED" }, - "id": 68 + "id": 64 } \ No newline at end of file From 8a0192402557d7aff3e5656e0c87462afbb0c5cb Mon Sep 17 00:00:00 2001 From: cryptoAtwill Date: Thu, 27 Jul 2023 19:40:03 +0800 Subject: [PATCH 15/17] more logs --- src/server/handlers/manager/list_checkpoints.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/server/handlers/manager/list_checkpoints.rs b/src/server/handlers/manager/list_checkpoints.rs index 45b43ff1..363f075c 100644 --- a/src/server/handlers/manager/list_checkpoints.rs +++ b/src/server/handlers/manager/list_checkpoints.rs @@ -57,6 +57,7 @@ impl JsonRPCRequestHandler for ListBottomUpCheckpointsHandler { .manager() .list_checkpoints(child_subnet_id, request.from_epoch, request.to_epoch) .await?; + log::debug!("list of bottom up checkpoints: {checkpoints:?}"); Ok(checkpoints) } From f2f79e2d6725ade2c2820244ed1fd765960f739a Mon Sep 17 00:00:00 2001 From: cryptoAtwill Date: Thu, 27 Jul 2023 19:55:01 +0800 Subject: [PATCH 16/17] more logs --- src/manager/evm/manager.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/manager/evm/manager.rs b/src/manager/evm/manager.rs index f06e8de0..524a359b 100644 --- a/src/manager/evm/manager.rs +++ b/src/manager/evm/manager.rs @@ -370,7 +370,10 @@ impl SubnetManager for EthSubnetManager { let checkpoints = contract .list_bottom_up_checkpoints(from_epoch as u64, to_epoch as u64) .call() - .await? + .await?; + log::debug!("list of bottom up checkpoints from evm: {checkpoints:?}"); + + let checkpoints = checkpoints .into_iter() .map(NativeBottomUpCheckpoint::try_from) .collect::>>()?; From ad9331044f41aec60cd34641074697f5a14ac0c9 Mon Sep 17 00:00:00 2001 From: cryptoAtwill Date: Thu, 27 Jul 2023 20:13:46 +0800 Subject: [PATCH 17/17] list checkpoints cli --- src/cli/commands/checkpoint/list_checkpoints.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/cli/commands/checkpoint/list_checkpoints.rs b/src/cli/commands/checkpoint/list_checkpoints.rs index 35f41b16..23bf9c3a 100644 --- a/src/cli/commands/checkpoint/list_checkpoints.rs +++ b/src/cli/commands/checkpoint/list_checkpoints.rs @@ -29,7 +29,6 @@ impl CommandLineHandler for ListBottomUpCheckpoints { .await?; for c in checkpoints.iter() { - let c = &c["data"]; log::info!( "epoch {} - prev_check={}, cross_msgs={}, child_checks={}", c["epoch"],