From 8e2b13462f3319770d8bb8bd4321c02685d984b8 Mon Sep 17 00:00:00 2001 From: Derek Cofausper <256792747+decofe@users.noreply.github.com> Date: Wed, 15 Jul 2026 01:15:20 +0000 Subject: [PATCH 1/3] fix: require delegatecall portal initialization --- specs/ref-impls/src/interfaces/IZone.sol | 1 + specs/ref-impls/src/tempo/ZonePortal.sol | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/specs/ref-impls/src/interfaces/IZone.sol b/specs/ref-impls/src/interfaces/IZone.sol index 1f45eccfb..cfe652953 100644 --- a/specs/ref-impls/src/interfaces/IZone.sol +++ b/specs/ref-impls/src/interfaces/IZone.sol @@ -601,6 +601,7 @@ interface IZonePortal { error NotAdmin(); error NotFactory(); error AlreadyInitialized(); + error MustDelegateCall(); error NotPendingSequencer(); error NotPendingAdmin(); error InvalidProof(); diff --git a/specs/ref-impls/src/tempo/ZonePortal.sol b/specs/ref-impls/src/tempo/ZonePortal.sol index 762cddd39..b88e36b21 100644 --- a/specs/ref-impls/src/tempo/ZonePortal.sol +++ b/specs/ref-impls/src/tempo/ZonePortal.sol @@ -63,6 +63,9 @@ contract ZonePortal is IZonePortal { /// @notice Maximum allowed gas fee rate to prevent overflows uint128 public constant MAX_GAS_FEE_RATE = 1e18; + /// @dev The fixed account holding the shared portal logic contract runtime. + address internal constant ZONE_PORTAL_LOGIC_ADDRESS = + 0x5AD1000000000000000000000000000000000000; /*////////////////////////////////////////////////////////////// STORAGE //////////////////////////////////////////////////////////////*/ @@ -152,6 +155,7 @@ contract ZonePortal is IZonePortal { string calldata _rpcUrl ) external + onlyDelegateCall { if (msg.sender != ZONE_FACTORY_ADDRESS) revert NotFactory(); if (_initialized) revert AlreadyInitialized(); @@ -174,6 +178,12 @@ contract ZonePortal is IZonePortal { MODIFIERS //////////////////////////////////////////////////////////////*/ + /// @dev Initialization is valid only in a portal proxy's storage context. + modifier onlyDelegateCall() { + if (address(this) == ZONE_PORTAL_LOGIC_ADDRESS) revert MustDelegateCall(); + _; + } + modifier onlySequencer() { if (msg.sender != sequencer) revert NotSequencer(); _; From f1e48c2499d31aaf963c71af4a263e751c5811d3 Mon Sep 17 00:00:00 2001 From: Derek Cofausper <256792747+decofe@users.noreply.github.com> Date: Wed, 15 Jul 2026 16:52:01 +0000 Subject: [PATCH 2/3] fix: refresh ZoneFactory genesis bytecode --- crates/node/assets/zone-dev-genesis.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/node/assets/zone-dev-genesis.json b/crates/node/assets/zone-dev-genesis.json index 979f293e9..47bdd6bbd 100644 --- a/crates/node/assets/zone-dev-genesis.json +++ b/crates/node/assets/zone-dev-genesis.json @@ -138,5 +138,5 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x42", "timestamp": "0x0", - "zoneFactoryBytecode": "0x608080604052346100fe575f805463ffffffff1916600117905560036006556101a28181016001600160401b038111838210176100ea578291614ad1833903905ff080156100df576001600160a01b03165f8181526003602052604090819020805460ff19166001179055600480546001600160a01b031916909217909155516105a2808201906001600160401b038211838310176100ea576020918391614c7383393081520301905ff080156100df57600580546001600160a01b0319166001600160a01b03929092169190911790556040516149ce90816101038239f35b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f905f3560e01c90816301b290d314610de7575080632b7ac3f314610dbf5780632d45796a146103ad5780633cb747bf1461038457806374134d371461036657806376628f831461032457806390b7f6fd146100c55763eee8349914610076575f80fd5b346100c257806003193601126100c2575f1963ffffffff825416019063ffffffff82116100ae5760208263ffffffff60405191168152f35b634e487b7160e01b81526011600452602490fd5b80fd5b50346100c25760203660031901126100c25760043563ffffffff81168091036103205760606101206040516100f981610e39565b84815284602082015284604082015284838201528460808201528460a08201528460c08201528460e08201528461010082015201528152600160205260408120906040519061014782610e39565b825463ffffffff811683526001600160a01b03602091821c811691840191825260018501548116604080860191825260028701548316606087019081526003880154841660808801908152600489015490941660a08801908152600589015460c0890190815260068a015460e08a0190815260078b01546001600160401b03166101008b0190815294516008909b018054989b989597919692959394919391929189918b91906101f682610ebc565b808552916001811690811561030257506001146102c8575b50500361021b9089610e55565b6101208a81019889526040805160208082529c5163ffffffff168d8201529c516001600160a01b03908116918e01919091529151821660608d01529151811660808c01529151821660a08b015291511660c0890152905160e0880152905161010087015290516001600160401b031690850152516101408085015280516101608501819052849390929183910161018085015e8183016101800152601f1990601f01168101036101800190f35b8c5260208c208c92505b8183106102e757505081016020015f8061020e565b80602092948385600194549201015201910190918a926102d2565b9150506020925060ff191682840152151560051b8201015f8061020e565b5080fd5b50346100c25760203660031901126100c2576004356001600160a01b038116908190036103205760408260ff9260209452600384522054166040519015158152f35b50346100c257806003193601126100c257602060405162e4e1c08152f35b50346100c257806003193601126100c2576005546040516001600160a01b039091168152602090f35b5034610b56576020366003190112610b56576001600160401b0360043511610b565761010060043536036003190112610b56576103ee600435600401610e25565b6040516335ec42c960e01b81526001600160a01b03909116600482015260208160248161083f60921b5afa908115610b4b575f91610d84575b5015610d75576001600160a01b03610443600435602401610e25565b1615610d66576001600160a01b0361045f600435604401610e25565b1615610d57576001600160a01b0361047b600435606401610e25565b165f52600360205260ff60405f20541615610d485762e4e1c05a10610d39575f5463ffffffff80821614610d2a57600163ffffffff82160163ffffffff8111610d165763ffffffff1663ffffffff198216175f5560065460018101808211610d1657600655606081610b6e575050604051606b60f91b6020820152602560fa1b60218201523060601b6022820152600160ff1b603682015260178152610522603782610e55565b60018060a01b03906020815191012016604051613aa48082018281106001600160401b03821117610b5a578291610ef5833903905ff0908115610b4b5761056d600435600401610e25565b6005546001600160a01b0316610587600435602401610e25565b610595604460043501610e25565b6105a3606460043501610e25565b906105b260c460043501610e76565b926105c760e460043501600435600401610e8a565b91906001600160a01b038a163b15610b56576001600160401b0363ffffffff96610144968d9686955f9b6040519d8e9c8d9b633fd2490760e01b8d521660048c015260018060a01b031660248b015260448a015260018060a01b0316606489015260018060a01b0316608488015260018060a01b031660a48701526084600435013560c48701521660e485015261012061010485015281610124850152848401378181018301859052601f01601f19168101030181836001600160a01b0388165af18015610b4b57610b36575b506001600160a01b03821603610ada576106b2600435600401610e25565b6106c0602460043501610e25565b6106ce604460043501610e25565b906001600160401b036106e5606460043501610e25565b6106f360c460043501610e76565b9061070860e460043501600435600401610e8a565b9590946040519761071889610e39565b63ffffffff8b1689526001600160a01b038a811660208b015290811660408a0152908116606089015290811660808801521660a0860152600435608481013560c087015260a4013560e0860152166101008401526001600160401b038211610ac2578590604051926107946020601f19601f8401160185610e55565b8084523681830111610ad657806020928386013783010152610120820190815263ffffffff848116865260016020818152604080892086518154848901516001600160c01b031990911691909616179490921b640100000000600160c01b03169390931781559184015190820180546001600160a01b03199081166001600160a01b0393841617909155606085015160028401805483169184169190911790556080850151600384018054831691841691909117905560a0850151600484018054909216921691909117905560c0830151600582015560e083015160068201556101009092015160078301805467ffffffffffffffff19166001600160401b0392831617905590518051918211610ac2576108b26008840154610ebc565b601f8111610a6d575b50602090601f83116001146109fc57828793604098936008938a9795926109f1575b50508160011b915f199060031b1c1916179101555b6001600160a01b0383168152600260205220805460ff1916600117905561091c6004803501610e25565b6001600160401b03610932602460043501610e25565b610940604460043501610e25565b61094e606460043501610e25565b9061095d60c460043501610e76565b88516001600160a01b03968716815293861660208501529085168389015290841660608301526004356084810135608084015260a4013560a08301529190911660c08201529082169063ffffffff8416907fa0d8b561b80ba334b8b367f1fd53ab8d8719fa1c348a8de4bbfd8bbffa90b3379060e090a3825163ffffffff9290921682526001600160a01b03166020820152f35b015190505f806108dd565b9060088401875280872091875b601f1985168110610a5557508360409894936008936001938b9896601f19811610610a3d575b505050811b019101556108f2565b01515f1960f88460031b161c191690555f8080610a2f565b91926020600181928685015181550194019201610a09565b828111156108bb5760088401875260208720601f840160051c9060208510610aba575b81601f9101920160051c0390875b828110610aac5750506108bb565b808960019284015501610a9e565b889150610a90565b634e487b7160e01b86526041600452602486fd5b8280fd5b60405162461bcd60e51b815260206004820152602e60248201527f506f7274616c2061646472657373206d69736d61746368202d206e6f6e63652060448201526d3a3930b1b5b4b7339032b93937b960911b6064820152608490fd5b610b439194505f90610e55565b5f925f610694565b6040513d5f823e3d90fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b607f8211610bc05750604051606b60f91b6020820152602560fa1b60218201523060601b602282015260f89190911b6001600160f81b031916603682015260178152610bbb603782610e55565b610522565b60ff8211610c17575060405160d760f81b6020820152602560fa1b60218201523060601b6022820152608160f81b603682015260f89190911b6001600160f81b031916603782015260188152610bbb603882610e55565b61ffff8211610c6f5750604051601b60fb1b6020820152602560fa1b60218201523060601b6022820152604160f91b603682015260f09190911b6001600160f01b031916603782015260198152610bbb603982610e55565b62ffffff8211610cc8575060405160d960f81b6020820152602560fa1b60218201523060601b6022820152608360f81b603682015260e89190911b6001600160e81b0319166037820152601a8152610bbb603a82610e55565b604051606d60f91b6020820152602560fa1b60218201523090911b6022820152602160fa1b603682015260e09190911b6001600160e01b0319166037820152601b8152610bbb603b82610e55565b634e487b7160e01b5f52601160045260245ffd5b63e558bfa360e01b5f5260045ffd5b6307099c5360e21b5f5260045ffd5b63baa3de5f60e01b5f5260045ffd5b633c9f858360e21b5f5260045ffd5b630b5eba9f60e41b5f5260045ffd5b63c1ab6dc160e01b5f5260045ffd5b90506020813d602011610db7575b81610d9f60209383610e55565b81010312610b5657518015158103610b56575f610427565b3d9150610d92565b34610b56575f366003190112610b56576004546040516001600160a01b039091168152602090f35b34610b56576020366003190112610b56576004356001600160a01b0381169190829003610b56576020915f526002825260ff60405f20541615158152f35b356001600160a01b0381168103610b565790565b61014081019081106001600160401b03821117610b5a57604052565b90601f801991011681019081106001600160401b03821117610b5a57604052565b356001600160401b0381168103610b565790565b903590601e1981360301821215610b5657018035906001600160401b038211610b5657602001918136038313610b5657565b90600182811c92168015610eea575b6020831014610ed657565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610ecb56fe60808060405234601557613a8a908161001a8239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f905f3560e01c9081625d97ef1461261e57508062ebfdb41461259457806309a0a234146122c65780630d0c743e14611e925780630e18b68114611e035780630e86bbdc14611d6e5780632678224714611d4557806327c71b5014611cbf5780632b7ac3f314611c965780632c37826e14611c6c5780632dfdf0b514611c455780633488ce0d14611bda57806337f981d814611b8557806339dc015d14611a1c5780633cb747bf146119f35780633fd249071461173f5780634256ce381461172157806345c5d2fb14611703578063580bbcfc146116d95780635c1bba38146116b2578063652ef10b146114d7578063748538d91461149857806375829def146114135780638081a8b2146113f557806383a146b3146113da578063857e85f81461137e57806386f47e55146113605780638976248d1461133457806394ce88b014611316578063959f47c3146112425780639a97784b1461119f5780639ecd4cc014611167578063b01f22e414610b5c578063b02690f214610b24578063be2a63ee14610afa578063bf8e244014610a76578063bffa55d5146109b7578063c13a2d4b1461092f578063c690908a1461083b578063cfaabb4d14610811578063d179978a146107ed578063e202d995146107c4578063e4643e8514610737578063e471784914610719578063e84abe69146106ef578063ecf79a4e146106c8578063ef10b18714610380578063f22a195e14610362578063f490ca961461033f578063f706cfbf14610321578063f851a440146102f8578063fe136c4e146102835763ff16ff6214610263575f80fd5b346102805780600319360112610280576020604051620493e08152f35b80fd5b503461028057602036600319011261028057604080916102a16127c4565b81602084516102af81612933565b82815201526001600160a01b031681526008602052208151906102d182612933565b5460ff6020818316151593848152019160081c161515815282519182525115156020820152f35b50346102805780600319360112610280576001546040516001600160a01b039091168152602090f35b50346102805780600319360112610280576020604051620186a08152f35b50346102805780600319360112610280576020604051670de0b6b3a76400008152f35b50346102805780600319360112610280576020600454604051908152f35b50346102805760a03660031901126102805760043560243560ff8116908181036106c4576044359060ff82168092036106c05784546001600160a01b031633036106b1576103cd906137c0565b156106a2576103db836137fc565b156106a257836080602092604051848101903082528760408201528660608201526060815261040a848261294e565b51902090604051918252848201526064356040820152608435606082015282805260015afa1561069757825183806401000003d019600781878181800909086040516020810191602083526020604083015260206060830152608082015263400000f4600160fe1b0360a08201526401000003d01960c082015260c0815261049360e08261294e565b519060055afa6104a16134b5565b908061068c575b15610657576104b6906137da565b6002831460018216150361062d575b6040519060208201908582526040830152604082526104e560608361294e565b905190206001600160a01b03918216801592909116908215610622575b5050610613576001600160401b0343169060405161051f81612918565b83815260208101908282526040810190848252600754600160401b8110156105ff578060016105519201600755612a3c565b9190916105eb5760ff916001915181550192511668ffffffffffffffff008354925160081b169168ffffffffffffffffff191617179055600754905f1982019182116105d757917f82b5f4090f18a082bc8156b956154bfe0319307f5e5a7e903ef33f14ad2cb17e9391608093604051938452602084015260408301526060820152a180f35b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b88526004889052602488fd5b634e487b7160e01b88526041600452602488fd5b6392536faf60e01b8352600483fd5b141590505f80610502565b6401000003d019036401000003d0198111156104c557634e487b7160e01b85526011600452602485fd5b60405162461bcd60e51b815260206004820152600d60248201526c1b5bd9195e1c0819985a5b1959609a1b6044820152606490fd5b5060208151146104a8565b6040513d84823e3d90fd5b632f0be49b60e11b8452600484fd5b6314f8a09f60e21b8552600485fd5b8480fd5b8380fd5b503461028057806003193601126102805760206001600160801b0360035416604051908152f35b503461028057806003193601126102805760206001600160401b0360065460401c16604051908152f35b50346102805780600319360112610280576020600954604051908152f35b50346102805780600319360112610280576002546001600160a01b03811690811580156107ba575b6107ab5782546001600160a01b0319808216841785559091166002556001600160a01b03167f9945af900637995146537e5ea7a7be455dfd08bbb46fdd79e9c3a2bad0c4eef88380a380f35b63d71402d960e01b8352600483fd5b508133141561075f565b50346102805780600319360112610280576002546040516001600160a01b039091168152602090f35b5034610280578060031936011261028057602063ffffffff60115416604051908152f35b50346102805760203660031901126102805760406020916004358152600d83522054604051908152f35b5034610280576020366003190112610280576108556127c4565b6001546001600160a01b03163303610920576001600160a01b0381168083526008602052604083205460ff16610911576040516335ec42c960e01b8152600481019190915260208160248161083f60921b5afa9081156109065783916108d7575b50156108c8576108c590613608565b80f35b631fcf8c4760e11b8252600482fd5b6108f9915060203d6020116108ff575b6108f1818361294e565b810190612993565b5f6108b6565b503d6108e7565b6040513d85823e3d90fd5b632909298f60e11b8352600483fd5b637bfa4b9f60e01b8252600482fd5b5034610280576040366003190112610280576004356001600160401b0381116109b35761014060031982360301126109b35781546001600160a01b031633036109a4576010546109955761098e90600160105560243590600401612c04565b8060105580f35b630b5c738160e01b8252600482fd5b6314f8a09f60e21b8252600482fd5b5080fd5b5034610280576020366003190112610280576109d16127c4565b6001600160a01b038116808352600a60208181526040808620335f818152918452828220548689529484528288208183529093522080546001600160801b03191690556001600160801b0390911692610a2b9184916138b5565b15610a6757602092506040518281527fffd3bbab073ab4b2d0792c270104924c14c285a153b9acddabae166395d2eb5c843392a3604051908152f35b63be51ced360e01b8352600483fd5b503461028057602036600319011261028057610a906127c4565b81546001600160a01b03169033829003610aeb57600280546001600160a01b0319166001600160a01b03929092169182179055907f12cf9e4d760566fb6a3e0193406f2295fc4b53f2b60817145a61f29e470cf7d68380a380f35b6314f8a09f60e21b8352600483fd5b503461028057806003193601126102805760206001600160401b0360065460801c16604051908152f35b5034610280576020366003190112610280576020610b43600435612bc4565b905460405160039290921b1c6001600160a01b03168152f35b50346102805760a036600319011261028057610b766127c4565b906024356001600160801b03811681036109b3576001600160401b03606435116109b35760a0606435360360031901126109b357610bb26127f0565b906001600160a01b0382161561115857610bcb84613246565b604051639c4bad2960e01b81526020816004816001600160a01b0389165afa9081156111205783610c3a92602092879161112b575b506040516337de09eb60e11b81526001600160401b0390911660048201526001600160a01b03909116602482015291829081906044820190565b038161100f60921b5afa908115611120578491611101575b50156110f257610c6e610c69602460643501612b69565b6137c0565b156110e357610c82606435600401356137fc565b156110e3576040610c9d604460643501606435600401612b77565b9050036110b857610caf604435612ad5565b501561102657610cbf90846132d1565b9060405192610ccd846128e9565b6001600160a01b0386811685523360208601526001600160801b03841660408087019190915290821660608601526044356080860152519360a085016001600160401b03811186821017611012576040526064356004013585526024606435013560ff8116810361100e5760208601526001600160401b03604460643501351161100a5736606435604481013501602301121561100a57610d7960643560448101350160040135612ba9565b610d86604051918261294e565b606435604481013501600481013580835236602491909201011161100e5760643560448101350160048101359060240160208301376064803560448101358101600401358301602001899052604088019290925201356001600160a01b03198116900361100a57606480350135606086015260846064350135946001600160801b03198616958681036110065792610fc3886080610f3a6001600160401b03968660209e99847f4debdbd2891da07eb466d2025028a25aab636034cf3c941afd1025a0c590a07a9c99015260a082019081526005549060405194602093869485019750600188526060604086015260018060a01b038151168286015260018060a01b0360208201511660a08601526001600160801b0360408201511660c086015260018060a01b0360608201511660e08601520151610100840152519060c061012084015281516101408401528f60ff9083015116610160840152610efc604083015160a06101808601526101e085019061296f565b6060808401516001600160a01b0319166101a08601526080909301516001600160801b0319166101c08501529183015203601f19810183528261294e565b51902098899760ff610f4b8a61347f565b956001600160801b03610f62602460643501612b69565b9181610f78604460643501606435600401612b77565b969097506040519c60018060a01b03168d521660208c01521660408a015260443560608a01526064356004013560808a01521660a088015261016060c08801526101608701916129ab565b6064803501356001600160a01b03191660e08601526101008501979097526001600160a01b031661012084015216610140820152339381900390a3604051908152f35b8780fd5b8580fd5b8680fd5b634e487b7160e01b87526041600452602487fd5b8260075460443510156110a35761103e604435612a3c565b509060016044350191826044351161108f576001600160401b0360018181611067606497612a3c565b5094015460081c1692015460081c169063034dff0f60e01b8352604435600452602452604452fd5b634e487b7160e01b82526011600452602482fd5b637f455d3760e11b8152604435600452602490fd5b6044836110ce8260643501606435600401612b77565b632331a96360e11b8352600452506040602452fd5b632f0be49b60e11b8352600483fd5b6354cfe65960e01b8352600483fd5b61111a915060203d6020116108ff576108f1818361294e565b5f610c52565b6040513d86823e3d90fd5b61114b9150833d8511611151575b611143818361294e565b810190612b4a565b5f610c00565b503d611139565b638dc30b3960e01b8352600483fd5b50346102805760203660031901126102805760406001600160401b0361118e600435612ad5565b835191151582529091166020820152f35b5034610280576020366003190112610280576004359080604080516111c381612918565b82815282602082015201526007548210156112305760606111e383612a3c565b506001600160401b036040516111f881612918565b60ff600184549485845201549183604060208301928486168452019360081c1683526040519485525116602084015251166040820152f35b602491637f455d3760e11b8252600452fd5b50346102805780600319360112610280576040519080600e5490611265826128b1565b80855291600181169081156112ef57506001146112a5575b6112a18461128d8186038261294e565b60405191829160208352602083019061296f565b0390f35b600e81525f516020613a155f395f51905f52939250905b8082106112d55750909150810160200161128d8261127d565b9192600181602092548385880101520191019092916112bc565b60ff191660208087019190915292151560051b8501909201925061128d915083905061127d565b50346102805780600319360112610280576020600b54604051908152f35b5034610280578060031936011261028057602061134f612ab0565b6001600160801b0360405191168152f35b50346102805780600319360112610280576020604051629896808152f35b503461028057604036600319011261028057604061139a6127c4565b916113a36127da565b9260018060a01b03168152600a602052209060018060a01b03165f5260205260206001600160801b0360405f205416604051908152f35b5034610280578060031936011261028057602061134f612a6c565b50346102805780600319360112610280576020600c54604051908152f35b50346102805760203660031901126102805761142d6127c4565b6001546001600160a01b0316903382900361148957600f80546001600160a01b0319166001600160a01b03929092169182179055907fe5cd1c804f1c9cc6d7009e4c0fb532f0e2d8863524c3323a6b3790c3f80bf25c8380a380f35b637bfa4b9f60e01b8352600483fd5b50346102805760203660031901126102805760209060ff906040906001600160a01b036114c36127c4565b168152600884522054166040519015158152f35b5034610280576020366003190112610280576004356001600160401b0381116109b357611508903690600401612884565b8254909291906001600160a01b031633036109a4576001600160401b03831161169e57611536600e546128b1565b601f8111611642575b508192601f81116001146115b4578083947ff4e00967b25e707df96d88676243b33be84847ef27615af8ef91290b52294fc694916115a9575b508160011b905f198360031b1c191617600e555b6115a36040519283926020845260208401916129ab565b0390a180f35b90508201355f611578565b600e8352601f198116935f516020613a155f395f51905f5290845b86811061162a5750827ff4e00967b25e707df96d88676243b33be84847ef27615af8ef91290b52294fc6959610611611575b5050600181811b01600e5561158c565b8301355f19600384901b60f8161c191690555f80611601565b909160206001819285880135815501930191016115cf565b8381111561153f57600e8352601f840160051c9060208510611696575b601f82910160051c0390835b82811061167957505061153f565b80855f516020613a155f395f51905f52600193850101550161166b565b83915061165f565b634e487b7160e01b82526041600452602482fd5b5034610280578060031936011261028057546040516001600160a01b039091168152602090f35b503461028057806003193601126102805760206001600160401b0360125460a01c16604051908152f35b50346102805780600319360112610280576020600554604051908152f35b50346102805780600319360112610280576020600754604051908152f35b5034610280576101203660031901126102805760043563ffffffff81168091036109b35761176b6127da565b906044356001600160a01b03811681036106c4576064356001600160a01b03811692908390036106c05761179d6127f0565b60a4356001600160a01b038116919082900361100e576117bb61285a565b90610104356001600160401b0381116119ef576117dc903690600401612884565b969095735af1ffffffffffffffffffffffffffffffffffff1933016119e0576012549560ff8760e01c166119d257601180546001600160c01b0319169190911760209290921b640100000000600160c01b0316919091179055600180546001600160a01b03199081169290921790558854166001600160a01b039190911617875560c4356004556001600160e81b03199092161760a09190911b67ffffffffffffffff60a01b1617600160e01b176012556001600160401b0382116119be576118a6600e546128b1565b601f8111611962575b508390601f83116001146118ef576108c59392918591836118e4575b50508160011b915f199060031b1c191617600e55613608565b013590505f806118cb565b600e85525f516020613a155f395f51905f5291601f198416865b81811061194a57509160019391856108c597969410611931575b505050811b01600e55613608565b01355f19600384901b60f8161c191690555f8080611923565b91936020600181928787013581550195019201611909565b828111156118af57600e8552601f830160051c90602084106119b6575b601f82910160051c0390855b8281106119995750506118af565b80875f516020613a155f395f51905f52600193850101550161198b565b85915061197f565b634e487b7160e01b84526041600452602484fd5b62dc149f60e41b8b5260048bfd5b631966391b60e11b8a5260048afd5b8880fd5b5034610280578060031936011261028057601154604051602091821c6001600160a01b03168152f35b503461028057602036600319011261028057611a36612844565b906007549081158015611b2b575b611b0f5780915f19810190811161108f57836001600160401b0384929116925b818310611a9557606083611a7781612a3c565b509060ff600183549301541660405192835260208301526040820152f35b9091828101808211611afb5760018101809111611afb5760011c90846001600160401b036001611ac485612a3c565b50015460081c1611611ad95750915b90611a64565b92505f19810190811115611ad357634e487b7160e01b82526011600452602482fd5b634e487b7160e01b83526011600452602483fd5b63302c66ab60e21b81526001600160401b038316600452602490fd5b5060075415611b7157600781527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6895460081c6001600160401b0390811690841610611a44565b634e487b7160e01b81526032600452602490fd5b5034610280576020366003190112610280576020906040906001600160a01b03611bad6127c4565b16815260088352205460ff81169081611bcc575b506040519015158152f35b60ff915060081c165f611bc1565b5034610280578060031936011261028057600754908115611c36575f198201918211611c22576040611c0b83612a3c565b5060ff600182549201541682519182526020820152f35b634e487b7160e01b81526011600452602490fd5b630c322fb560e31b8152600490fd5b503461028057806003193601126102805760206001600160401b0360065416604051908152f35b503461028057806003193601126102805760206001600160401b0360035460801c16604051908152f35b50346102805780600319360112610280576012546040516001600160a01b039091168152602090f35b503461028057602036600319011261028057611cd96127c4565b6001546001600160a01b03163303610920576001600160a01b03168082526008602052604082205460ff16156108c857808252600860205260408220805461ff00191690557feb225a736fbfee3f85ccb72bdf84ff0396ab358b7970e2cc351ab3e3fd92358d8280a280f35b5034610280578060031936011261028057600f546040516001600160a01b039091168152602090f35b5034610280576020366003190112610280576004356001600160801b0381168091036109b35781546001600160a01b031633036109a457670de0b6b3a76400008111611df4576020817fc62141e607d6fcbf7d11fd2b6d8e18e5ebef6d3fff8136ca98822801abbaea38926001600160801b03196003541617600355604051908152a180f35b630d62f21160e11b8252600482fd5b5034610280578060031936011261028057600f546001600160a01b0381169081158015611e88575b611e7957600180546001600160a01b031980821685179092559116600f556001600160a01b03167ff8ccb027dfcd135e000e9d45e6cc2d662578a8825d4c45b5e32e0adf67e79ec68380a380f35b63058d9a1b60e01b8352600483fd5b5081331415611e2b565b50346102805761016036600319011261028057611ead612844565b6024356001600160401b038116918282036106c45760403660431901126106c45760803660831901126106c4576101043591610124356001600160401b03811161100a57611eff903690600401612884565b9094610144356001600160401b03811161100657611f21903690600401612884565b88546001600160a01b03169190338390036122b7576044359360045485036122a857601254906001600160401b038916976001600160401b038360a01c1689106122695781612287575050879443881161227857611f7e886134e4565b945b851561226957611f8e6129cb565b98600654996001600160401b03808c60401c16911614801590612246575b801561222a575b61221b57908d96959493929163ffffffff6011541696600354996001600160401b038b60801c16995060018a01926001600160401b038411612204576001600160401b0393929184916040519b632d8a30cd60e21b8d5260048d015260248c01521660448a0152606489015216608487015260a486015260c4850152606435968760e486015260843561010486015260a4359b8c61012487015260c435916001600160401b0383168093036122005760209587956120ac8f946120bf9489979688976101448901526001600160401b0361208b61285a565b166101648901526101848801526101e06101a48801526101e48701916129ab565b848103600319016101c4860152916129ab565b03916001600160a01b03165afa9081156121f55789916121d6575b50156121c75767ffffffffffffffff60801b906120f690612a0b565b60801b16906001600160401b0360801b1916176003556004556fffffffffffffffff00000000000000006121286129e1565b60401b16916001600160401b0360801b9060801b169077ffffffffffffffffffffffffffffffff0000000000000000191617176006557f5a66941dc92cb865480c966eff640c02b1d00d544b74332fd67c6f1cbfccdf39608061218a83613552565b936001600160401b03600354831c1693600454906001600160401b0360065460401c1691604051938452602084015260408301526060820152a380f35b6309bde33960e01b8852600488fd5b6121ef915060203d6020116108ff576108f1818361294e565b5f6120da565b6040513d8b823e3d90fd5b8e80fd5b50505060248f634e487b7160e01b81526011600452fd5b633d9dffbd60e01b8e5260048efd5b506122336129e1565b6001600160401b03808c16911611611fb3565b5061224f6129e1565b6001600160401b03806122606129cb565b16911610611fac565b632705871360e01b8d5260048dfd5b632705871360e01b8c5260048cfd5b88829792111561226957438711612269576122a290966134e4565b94611f80565b6309bde33960e01b8b5260048bfd5b6314f8a09f60e21b8a5260048afd5b50346102805760a0366003190112610280576122e06127c4565b6122e86127da565b906122f161281a565b606435906122fd6127f0565b6001600160a01b0381169590939086156125855761231a82613246565b604051639c4bad2960e01b81526001600160a01b03831695906020816004818a5afa908115610906578391612566575b506040516337de09eb60e11b81526001600160401b03821660048201526001600160a01b038916602482015260208160448161100f60921b5afa908115611120578491612547575b50156110f25760405163b389e30560e01b81526001600160401b03821660048201526001600160a01b038916602482015260208160448161100f60921b5afa908115611120578491612528575b50156110f2576040516337de09eb60e11b81526001600160401b039190911660048201526001600160a01b0391909116602482015260208160448161100f60921b5afa908115610697578291612509575b50156124fa5750946001600160401b03926124556001600160801b03936020986132d1565b939061249b82604051996124688b6128e9565b898b52338c8c015260018060a01b0316968760408c015216988960608201528560808201528460a08201526005546133fa565b976124a58961347f565b956040519889528a8901526040880152166060860152608085015260a08401521660c0820152817ffee50869847a4d073bfd83ec655472febff62beb46febf4ec48752f0686affd160e03393a3604051908152f35b6354cfe65960e01b8152600490fd5b612522915060203d6020116108ff576108f1818361294e565b5f612430565b612541915060203d6020116108ff576108f1818361294e565b5f6123df565b612560915060203d6020116108ff576108f1818361294e565b5f612392565b61257f915060203d60201161115157611143818361294e565b5f61234a565b638dc30b3960e01b8152600490fd5b5034610280576020366003190112610280576125ae6127c4565b6001546001600160a01b03163303610920576001600160a01b03168082526008602052604082205460ff16156108c857808252600860205260408220805461ff0019166101001790557f22ab73af03f04a21e91c7923327f99279b7f5d07d9551762c39bccdf051f1fe98280a280f35b9050346127835760c0366003190112612783576126396127c4565b6126416127da565b9161264a61281a565b6084356001600160401b0381168091036127835760a4356001600160401b0381116127835761267d903690600401612884565b9190943033036127b55760115463a9059cbb60e01b86526001600160a01b03602091821c811660048801526001600160801b0386166024880152919091169490816044815f895af1908115612778575f91612796575b501561278757601154602081901c6001600160a01b031693843b15612783575f9663ffffffff9488946001600160801b03612758946040519c8d9b8c9a8b996311da526160e01b8b521660048a01526024890152606435604489015260018060a01b0316606488015216608486015260a485015260e060c485015260e48401916129ab565b03925af180156127785761276a575080f35b61277691505f9061294e565b005b6040513d5f823e3d90fd5b5f80fd5b6312171d8360e31b5f5260045ffd5b6127af915060203d6020116108ff576108f1818361294e565b5f6126d3565b6314e1dbf760e11b5f5260045ffd5b600435906001600160a01b038216820361278357565b602435906001600160a01b038216820361278357565b608435906001600160a01b038216820361278357565b35906001600160a01b038216820361278357565b604435906001600160801b038216820361278357565b35906001600160801b038216820361278357565b600435906001600160401b038216820361278357565b60e435906001600160401b038216820361278357565b35906001600160401b038216820361278357565b9181601f84011215612783578235916001600160401b038311612783576020838186019501011161278357565b90600182811c921680156128df575b60208310146128cb57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916128c0565b60c081019081106001600160401b0382111761290457604052565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761290457604052565b604081019081106001600160401b0382111761290457604052565b90601f801991011681019081106001600160401b0382111761290457604052565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90816020910312612783575180151581036127835790565b908060209392818452848401375f828201840152601f01601f1916010190565b60c4356001600160401b03811681036127835790565b60e4356001600160401b03811681036127835790565b356001600160401b03811681036127835790565b6001600160401b03166001600160401b038114612a285760010190565b634e487b7160e01b5f52601160045260245ffd5b600754811015612a585760075f5260205f209060011b01905f90565b634e487b7160e01b5f52603260045260245ffd5b48620493e002620493e081044803612a285764e8d4a51000810190818111612a285764e8d4a50fff01908111612a285764e8d4a510006001600160801b0391041690565b6001600160801b0360035416620186a0026001600160801b038116908103612a285790565b60075480821015612b42575f198101908111612a28578114612b3a5760018101809111612a28576001600160401b036001612b136201518093612a3c565b50015460081c1601906001600160401b038211612a28576001600160401b03821643109190565b506001905f90565b50505f905f90565b9081602091031261278357516001600160401b03811681036127835790565b3560ff811681036127835790565b903590601e198136030182121561278357018035906001600160401b0382116127835760200191813603831361278357565b6001600160401b03811161290457601f01601f191660200190565b600954811015612a585760095f5260205f2001905f90565b356001600160a01b03811681036127835790565b356001600160801b03811681036127835790565b600b545f91600c548214613237576064820693845f52600d60205260405f2054905f198214801561322d575b613218578015938415613226575f19935b60408051602081019182529590926001600160a01b03612c6084612806565b1660608801526020830135608088018190529960408401956001600160a01b03612c8988612806565b1660a08a01526060850199612c9d8b612830565b6001600160801b031660c08b01526080860198612cb98a612830565b6001600160801b031660e08c015260a08701356101008c015260c0870197612ce089612870565b6001600160401b03166101208d015260e088019b612cfd8d612870565b6001600160401b0316610140820152806101008a0198612d1d8a8c613928565b610160840161014090526101a0840190612d36926129ab565b612d446101208d018d613928565b848303605f1901610180860152612d5b92916129ab565b90604083015203601f1981018252612d73908261294e565b51902003613218571561320557505f52600d6020525f1960405f205560018101809111612a2857600b555b612da782612bdc565b946001600160401b03612db9886129f7565b1615613055576001600160801b03612dd082612bf0565b16613030575b50629896806001600160401b03612dec856129f7565b1611612fc3576001600160401b03612e03846129f7565b16612ea857505050916001600160801b035f516020613a355f395f51905f529492612e5d612e5786612e49612e39606099612bdc565b612e4289612bf0565b90866138b5565b159586612e85575b50612bdc565b94612bf0565b90604051975060018060a01b0316875216602086015215604085015260018060a01b031692a3565b612ea290612e9b612e958a612bf0565b916129f7565b9086613959565b5f612e51565b612ecd612eb485612bdc565b91612ec7612ec18a612bf0565b956129f7565b93612b77565b9092303b1561278357604051625d97ef60e01b81526001600160a01b03808916600483015290931660248401526001600160801b03949094166044830152606482018a90526001600160401b0393909316608482015260c060a4820152915f9183918291612f3f9160c48401916129ab565b038183305af19081612f84575b505f516020613a355f395f51905f529492612e5d612e57606096946001600160801b0394155f14612f7d5789612e49565b6001612e49565b6001600160801b0391965092612e5d612e5760609694612fb35f5f516020613a355f395f51905f529a9861294e565b5f99945094965050509294612f4c565b5050508391945061300b6130056001600160801b0392613000606096612ff9612e955f516020613a355f395f51905f529a612bf0565b908a613959565b612bdc565b92612bf0565b604080516001600160a01b0397881681529290911660208301525f90820152931692a3565b61304e9061304760018060a01b035f541691612bf0565b90876138b5565b505f612dd6565b5050935050935050613068919350612bdc565b613070612a6c565b926001600160801b0361308282612bf0565b166001600160801b038516116131ea575b836130a06130a592612bf0565b6132b1565b906001600160801b0384166131cd575b6130c8826130c285612bdc565b836138b5565b1561313e577f0f7ef08806234f85aaee43d3ba4589c3bc6d5ac3fc8edd56fc3d91cc7553bdcb92613139906001600160a01b039061310590612bdc565b1694604051938493849160409194936001600160801b038092606086019760018060a01b0316865216602085015216910152565b0390a2565b6001600160a01b0381165f908152600a602052604090207f5fea28d0adb7d877ae3259768f41ad6741aa1784c4475746dd931364f62e68a1936131399161318482612bdc565b60018060a01b03165f5260205260405f206001600160801b036131aa8682845416613291565b82546001600160801b03191691161790556001600160a01b039061310590612bdc565b5f546131e49085906001600160a01b0316836138b5565b506130b5565b6130a09350806131fc6130a592612bf0565b94509050613093565b91505f52600d60205260405f2055612d9e565b626aee3160e51b5f5260045ffd5b8193612c41565b505f198114612c30565b63d7fa91d160e01b5f5260045ffd5b6001600160a01b03165f9081526008602052604090205460ff8116156132825760081c60ff161561327357565b63dec712ef60e01b5f5260045ffd5b631fcf8c4760e11b5f5260045ffd5b906001600160801b03809116911601906001600160801b038211612a2857565b906001600160801b03809116911603906001600160801b038211612a2857565b90916132db612ab0565b926001600160801b036132f56132ef612a6c565b86613291565b16906001600160801b0381169182106133eb5784613312916132b1565b6040516323b872dd60e01b81523360048201523060248201526044810192909252926001600160a01b03166020826064815f855af19182156127785785926133ce575b506001600160801b038216613368575050565b5f805460405163a9059cbb60e01b81526001600160a01b0390911660048201526001600160801b0393909316602484015260209183916044918391905af18015612778576133b35750565b6133cb9060203d6020116108ff576108f1818361294e565b50565b6133e69060203d6020116108ff576108f1818361294e565b613355565b636ba4a1c760e01b5f5260045ffd5b6040519060a060208301935f8552600180831b038151166040850152600180831b036020820151166060850152600180831b0360408201511660808501526001600160801b0360608201511682850152600180831b0360808201511660c0850152015160e083015261010082015261010081526134796101208261294e565b51902090565b6005556006546134976001600160401b038216612a0b565b67ffffffffffffffff199091166001600160401b0382161760065590565b3d156134df573d906134c682612ba9565b916134d4604051938461294e565b82523d5f602084013e565b606090565b905f808093604051602081019182526020815261350260408261294e565b519071f90827f1c53a10cb7a02335b1753200029355afa6135216134b5565b9080613546575b61352f5750565b909150602081805181010312612783576020015190565b50602081511015613528565b80156135a057600c5490600b548203828111612a28576064111561359157606482065f52600d60205260405f205560018101808211612a2857600c5590565b632764e20b60e01b5f5260045ffd5b505f1990565b602081830312612783578051906001600160401b038211612783570181601f82011215612783578051906135d982612ba9565b926135e7604051948561294e565b8284526020838301011161278357815f9260208093018386015e8301015290565b60405161361481612933565b600180825260208083019182526001600160a01b039093165f8181526008948590526040902092518354925161ffff1990931660ff911515919091161791151590931b61ff0016179055600954600160401b8110156129045780600161367d9201600955612bc4565b81546001600160a01b0360039290921b91821b19169083901b1790556040516306fdde0360e01b81525f81600481855afa908115612778575f916137a6575b506040516395d89b4160e01b81525f81600481865afa908115612778575f9161378c575b5060405163e5a6b10f60e01b8152915f83600481875afa928315612778577f4ac4dcc08b0c26c3fb6b58c64c1392b7934b1ce6b0382a5986ea5c3de795e0539361374893613139925f92613764575b506137569060405195869560608752606087019061296f565b90858203602087015261296f565b90838203604085015261296f565b613756919250613785903d805f833e61377d818361294e565b8101906135a6565b919061372f565b6137a091503d805f833e61377d818361294e565b5f6136e0565b6137ba91503d805f833e61377d818361294e565b5f6136bc565b60ff16600281149081156137d2575090565b600391501490565b6020815191015190602081106137ee575090565b5f199060200360031b1b1690565b801580156138a5575b613894575f9081906401000003d0199060079082908181800909086040516020810191602083526020604083015260206060830152608082015263800001e9600160ff1b0360a08201526401000003d01960c082015260c0815261386a60e08261294e565b519060055afa6138786134b5565b90158015613899575b613894576138906001916137da565b1490565b505f90565b50602081511415613881565b506401000003d019811015613805565b60405163a9059cbb60e01b81526001600160a01b0392831660048201526001600160801b03939093166024840152602091839160449183915f91165af15f9181613907575b5061390457505f90565b90565b61392191925060203d6020116108ff576108f1818361294e565b905f6138fa565b9035601e19823603018112156127835701602081359101916001600160401b03821161278357813603831361278357565b909160606001600160401b037fadf6f2901dd7af2f28a594f47a925894a08d4de10609dff591a80642648775c59216936139d46001600160801b03604051956139a1876128e9565b60018060a01b031692838752306020880152876040880152169485848201525f60808201525f60a08201526005546133fa565b9384600555600654906001600160401b036139f0818416612a0b565b1680926001600160401b0319161760065560405192835260208301526040820152a356febb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd65042ea6dad60c26f055e80ec401b3437c854ed586a0704d305bb4e9ea4518cfa26469706673582212206eb189ce2ce09beb3bdcd11a2c8eee4f35d99a98ae9f8f0a8a19c4257802d5fe64736f6c63430008230033a26469706673582212200fd9c87562be2da4e77d9a141c54187fea012655247a44c293e912438821baf064736f6c6343000823003360808060405234601557610188908161001a8239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c63b628c33414610025575f80fd5b346100db576101e03660031901126100db5760043563ffffffff8116036100db5761004e6100df565b506100576100f6565b5061006061010d565b5060a4356001600160a01b038116036100db5760403660c31901126100db576080366101031901126100db576101a43567ffffffffffffffff81116100db576100ad903690600401610124565b50506101c4359067ffffffffffffffff82116100db576100d36020923690600401610124565b505060018152f35b5f80fd5b6024359067ffffffffffffffff821682036100db57565b6044359067ffffffffffffffff821682036100db57565b6084359067ffffffffffffffff821682036100db57565b9181601f840112156100db5782359167ffffffffffffffff83116100db57602083818601950101116100db5756fea2646970667358221220c2a4c63e61eb26a2478be5fb861484a1b4e072b4a3c592f927a31561a18499d164736f6c6343000823003360a034606e57601f6105a238819003918201601f19168301916001600160401b03831184841017607257808492602094604052833981010312606e57516001600160a01b03811690819003606e5760805260405161051b908161008782396080518181816047015261015e0152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c90816311da52611461007a5750637b9a730114610032575f80fd5b34610076575f366003190112610076576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b346100765760e0366003190112610076576004359063ffffffff8216809203610076576024356001600160a01b03811690819003610076576064356001600160a01b038116939084900361007657608435916fffffffffffffffffffffffffffffffff83168093036100765760a4359167ffffffffffffffff83168093036100765760c4359567ffffffffffffffff871161007657366023880112156100765786600401359567ffffffffffffffff871161007657366024888a010111610076575f546104a05760015f9081556390b7f6fd60e01b825260048201849052816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156102bf575f91610323575b50602001516001600160a01b031633036103145760405163a9059cbb60e01b81528160048201528560248201526020816044815f885af19081156102bf575f916102d9575b50156102ca5760e45f928760209860246040519b8c9a8b998a96630a137ff560e01b88526004880152338488015260443560448801526064870152608486015260c060a48601528260c486015201848401378181018301859052601f01601f19168101030193f19081156102bf575f9161027c575b506001600160e01b03191663f5ec800b60e01b0161026d575f8055005b63be51ced360e01b5f5260045ffd5b90506020813d6020116102b7575b81610297602093836104af565b8101031261007657516001600160e01b0319811681036100765781610250565b3d915061028a565b6040513d5f823e3d90fd5b6312171d8360e31b5f5260045ffd5b90506020813d60201161030c575b816102f4602093836104af565b810103126100765751801515810361007657886101db565b3d91506102e7565b63efc26b5760e01b5f5260045ffd5b90503d805f833e61033481836104af565b8101906020818303126100765780519067ffffffffffffffff8211610076570190610140828203126100765760405191610140830183811067ffffffffffffffff82111761048c57604052805163ffffffff8116810361007657835261039c602082016104d1565b60208401526103ad604082016104d1565b60408401526103be606082016104d1565b60608401526103cf608082016104d1565b60808401526103e060a082016104d1565b60a084015260c081015160c084015260e081015160e084015261010081015167ffffffffffffffff81168103610076576101008401526101208101519067ffffffffffffffff8211610076570181601f820112156100765780519067ffffffffffffffff821161048c5760405192610462601f8401601f1916602001856104af565b8284526020838301011161007657815f9260208093018386015e8301015261012082015288610196565b634e487b7160e01b5f52604160045260245ffd5b6336a4d21b60e11b5f5260045ffd5b90601f8019910116810190811067ffffffffffffffff82111761048c57604052565b51906001600160a01b03821682036100765756fea26469706673582212208d1e97169f0e5bd54ebee6d4548d7a397f3efa8d29e07cd28f472cdfd64c209464736f6c63430008230033" + "zoneFactoryBytecode": "0x608080604052346100fe575f805463ffffffff1916600117905560036006556101a28181016001600160401b038111838210176100ea578291614aec833903905ff080156100df576001600160a01b03165f8181526003602052604090819020805460ff19166001179055600480546001600160a01b031916909217909155516105a2808201906001600160401b038211838310176100ea576020918391614c8e83393081520301905ff080156100df57600580546001600160a01b0319166001600160a01b03929092169190911790556040516149e990816101038239f35b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f905f3560e01c90816301b290d314610de7575080632b7ac3f314610dbf5780632d45796a146103ad5780633cb747bf1461038457806374134d371461036657806376628f831461032457806390b7f6fd146100c55763eee8349914610076575f80fd5b346100c257806003193601126100c2575f1963ffffffff825416019063ffffffff82116100ae5760208263ffffffff60405191168152f35b634e487b7160e01b81526011600452602490fd5b80fd5b50346100c25760203660031901126100c25760043563ffffffff81168091036103205760606101206040516100f981610e39565b84815284602082015284604082015284838201528460808201528460a08201528460c08201528460e08201528461010082015201528152600160205260408120906040519061014782610e39565b825463ffffffff811683526001600160a01b03602091821c811691840191825260018501548116604080860191825260028701548316606087019081526003880154841660808801908152600489015490941660a08801908152600589015460c0890190815260068a015460e08a0190815260078b01546001600160401b03166101008b0190815294516008909b018054989b989597919692959394919391929189918b91906101f682610ebc565b808552916001811690811561030257506001146102c8575b50500361021b9089610e55565b6101208a81019889526040805160208082529c5163ffffffff168d8201529c516001600160a01b03908116918e01919091529151821660608d01529151811660808c01529151821660a08b015291511660c0890152905160e0880152905161010087015290516001600160401b031690850152516101408085015280516101608501819052849390929183910161018085015e8183016101800152601f1990601f01168101036101800190f35b8c5260208c208c92505b8183106102e757505081016020015f8061020e565b80602092948385600194549201015201910190918a926102d2565b9150506020925060ff191682840152151560051b8201015f8061020e565b5080fd5b50346100c25760203660031901126100c2576004356001600160a01b038116908190036103205760408260ff9260209452600384522054166040519015158152f35b50346100c257806003193601126100c257602060405162e4e1c08152f35b50346100c257806003193601126100c2576005546040516001600160a01b039091168152602090f35b5034610b56576020366003190112610b56576001600160401b0360043511610b565761010060043536036003190112610b56576103ee600435600401610e25565b6040516335ec42c960e01b81526001600160a01b03909116600482015260208160248161083f60921b5afa908115610b4b575f91610d84575b5015610d75576001600160a01b03610443600435602401610e25565b1615610d66576001600160a01b0361045f600435604401610e25565b1615610d57576001600160a01b0361047b600435606401610e25565b165f52600360205260ff60405f20541615610d485762e4e1c05a10610d39575f5463ffffffff80821614610d2a57600163ffffffff82160163ffffffff8111610d165763ffffffff1663ffffffff198216175f5560065460018101808211610d1657600655606081610b6e575050604051606b60f91b6020820152602560fa1b60218201523060601b6022820152600160ff1b603682015260178152610522603782610e55565b60018060a01b03906020815191012016604051613abf8082018281106001600160401b03821117610b5a578291610ef5833903905ff0908115610b4b5761056d600435600401610e25565b6005546001600160a01b0316610587600435602401610e25565b610595604460043501610e25565b6105a3606460043501610e25565b906105b260c460043501610e76565b926105c760e460043501600435600401610e8a565b91906001600160a01b038a163b15610b56576001600160401b0363ffffffff96610144968d9686955f9b6040519d8e9c8d9b633fd2490760e01b8d521660048c015260018060a01b031660248b015260448a015260018060a01b0316606489015260018060a01b0316608488015260018060a01b031660a48701526084600435013560c48701521660e485015261012061010485015281610124850152848401378181018301859052601f01601f19168101030181836001600160a01b0388165af18015610b4b57610b36575b506001600160a01b03821603610ada576106b2600435600401610e25565b6106c0602460043501610e25565b6106ce604460043501610e25565b906001600160401b036106e5606460043501610e25565b6106f360c460043501610e76565b9061070860e460043501600435600401610e8a565b9590946040519761071889610e39565b63ffffffff8b1689526001600160a01b038a811660208b015290811660408a0152908116606089015290811660808801521660a0860152600435608481013560c087015260a4013560e0860152166101008401526001600160401b038211610ac2578590604051926107946020601f19601f8401160185610e55565b8084523681830111610ad657806020928386013783010152610120820190815263ffffffff848116865260016020818152604080892086518154848901516001600160c01b031990911691909616179490921b640100000000600160c01b03169390931781559184015190820180546001600160a01b03199081166001600160a01b0393841617909155606085015160028401805483169184169190911790556080850151600384018054831691841691909117905560a0850151600484018054909216921691909117905560c0830151600582015560e083015160068201556101009092015160078301805467ffffffffffffffff19166001600160401b0392831617905590518051918211610ac2576108b26008840154610ebc565b601f8111610a6d575b50602090601f83116001146109fc57828793604098936008938a9795926109f1575b50508160011b915f199060031b1c1916179101555b6001600160a01b0383168152600260205220805460ff1916600117905561091c6004803501610e25565b6001600160401b03610932602460043501610e25565b610940604460043501610e25565b61094e606460043501610e25565b9061095d60c460043501610e76565b88516001600160a01b03968716815293861660208501529085168389015290841660608301526004356084810135608084015260a4013560a08301529190911660c08201529082169063ffffffff8416907fa0d8b561b80ba334b8b367f1fd53ab8d8719fa1c348a8de4bbfd8bbffa90b3379060e090a3825163ffffffff9290921682526001600160a01b03166020820152f35b015190505f806108dd565b9060088401875280872091875b601f1985168110610a5557508360409894936008936001938b9896601f19811610610a3d575b505050811b019101556108f2565b01515f1960f88460031b161c191690555f8080610a2f565b91926020600181928685015181550194019201610a09565b828111156108bb5760088401875260208720601f840160051c9060208510610aba575b81601f9101920160051c0390875b828110610aac5750506108bb565b808960019284015501610a9e565b889150610a90565b634e487b7160e01b86526041600452602486fd5b8280fd5b60405162461bcd60e51b815260206004820152602e60248201527f506f7274616c2061646472657373206d69736d61746368202d206e6f6e63652060448201526d3a3930b1b5b4b7339032b93937b960911b6064820152608490fd5b610b439194505f90610e55565b5f925f610694565b6040513d5f823e3d90fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b607f8211610bc05750604051606b60f91b6020820152602560fa1b60218201523060601b602282015260f89190911b6001600160f81b031916603682015260178152610bbb603782610e55565b610522565b60ff8211610c17575060405160d760f81b6020820152602560fa1b60218201523060601b6022820152608160f81b603682015260f89190911b6001600160f81b031916603782015260188152610bbb603882610e55565b61ffff8211610c6f5750604051601b60fb1b6020820152602560fa1b60218201523060601b6022820152604160f91b603682015260f09190911b6001600160f01b031916603782015260198152610bbb603982610e55565b62ffffff8211610cc8575060405160d960f81b6020820152602560fa1b60218201523060601b6022820152608360f81b603682015260e89190911b6001600160e81b0319166037820152601a8152610bbb603a82610e55565b604051606d60f91b6020820152602560fa1b60218201523090911b6022820152602160fa1b603682015260e09190911b6001600160e01b0319166037820152601b8152610bbb603b82610e55565b634e487b7160e01b5f52601160045260245ffd5b63e558bfa360e01b5f5260045ffd5b6307099c5360e21b5f5260045ffd5b63baa3de5f60e01b5f5260045ffd5b633c9f858360e21b5f5260045ffd5b630b5eba9f60e41b5f5260045ffd5b63c1ab6dc160e01b5f5260045ffd5b90506020813d602011610db7575b81610d9f60209383610e55565b81010312610b5657518015158103610b56575f610427565b3d9150610d92565b34610b56575f366003190112610b56576004546040516001600160a01b039091168152602090f35b34610b56576020366003190112610b56576004356001600160a01b0381169190829003610b56576020915f526002825260ff60405f20541615158152f35b356001600160a01b0381168103610b565790565b61014081019081106001600160401b03821117610b5a57604052565b90601f801991011681019081106001600160401b03821117610b5a57604052565b356001600160401b0381168103610b565790565b903590601e1981360301821215610b5657018035906001600160401b038211610b5657602001918136038313610b5657565b90600182811c92168015610eea575b6020831014610ed657565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610ecb56fe60808060405234601557613aa5908161001a8239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f905f3560e01c9081625d97ef1461263957508062ebfdb4146125af57806309a0a234146122e15780630d0c743e14611ead5780630e18b68114611e1e5780630e86bbdc14611d895780632678224714611d6057806327c71b5014611cda5780632b7ac3f314611cb15780632c37826e14611c875780632dfdf0b514611c605780633488ce0d14611bf557806337f981d814611ba057806339dc015d14611a375780633cb747bf14611a0e5780633fd249071461173f5780634256ce381461172157806345c5d2fb14611703578063580bbcfc146116d95780635c1bba38146116b2578063652ef10b146114d7578063748538d91461149857806375829def146114135780638081a8b2146113f557806383a146b3146113da578063857e85f81461137e57806386f47e55146113605780638976248d1461133457806394ce88b014611316578063959f47c3146112425780639a97784b1461119f5780639ecd4cc014611167578063b01f22e414610b5c578063b02690f214610b24578063be2a63ee14610afa578063bf8e244014610a76578063bffa55d5146109b7578063c13a2d4b1461092f578063c690908a1461083b578063cfaabb4d14610811578063d179978a146107ed578063e202d995146107c4578063e4643e8514610737578063e471784914610719578063e84abe69146106ef578063ecf79a4e146106c8578063ef10b18714610380578063f22a195e14610362578063f490ca961461033f578063f706cfbf14610321578063f851a440146102f8578063fe136c4e146102835763ff16ff6214610263575f80fd5b346102805780600319360112610280576020604051620493e08152f35b80fd5b503461028057602036600319011261028057604080916102a16127df565b81602084516102af8161294e565b82815201526001600160a01b031681526008602052208151906102d18261294e565b5460ff6020818316151593848152019160081c161515815282519182525115156020820152f35b50346102805780600319360112610280576001546040516001600160a01b039091168152602090f35b50346102805780600319360112610280576020604051620186a08152f35b50346102805780600319360112610280576020604051670de0b6b3a76400008152f35b50346102805780600319360112610280576020600454604051908152f35b50346102805760a03660031901126102805760043560243560ff8116908181036106c4576044359060ff82168092036106c05784546001600160a01b031633036106b1576103cd906137db565b156106a2576103db83613817565b156106a257836080602092604051848101903082528760408201528660608201526060815261040a8482612969565b51902090604051918252848201526064356040820152608435606082015282805260015afa1561069757825183806401000003d019600781878181800909086040516020810191602083526020604083015260206060830152608082015263400000f4600160fe1b0360a08201526401000003d01960c082015260c0815261049360e082612969565b519060055afa6104a16134d0565b908061068c575b15610657576104b6906137f5565b6002831460018216150361062d575b6040519060208201908582526040830152604082526104e5606083612969565b905190206001600160a01b03918216801592909116908215610622575b5050610613576001600160401b0343169060405161051f81612933565b83815260208101908282526040810190848252600754600160401b8110156105ff578060016105519201600755612a57565b9190916105eb5760ff916001915181550192511668ffffffffffffffff008354925160081b169168ffffffffffffffffff191617179055600754905f1982019182116105d757917f82b5f4090f18a082bc8156b956154bfe0319307f5e5a7e903ef33f14ad2cb17e9391608093604051938452602084015260408301526060820152a180f35b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b88526004889052602488fd5b634e487b7160e01b88526041600452602488fd5b6392536faf60e01b8352600483fd5b141590505f80610502565b6401000003d019036401000003d0198111156104c557634e487b7160e01b85526011600452602485fd5b60405162461bcd60e51b815260206004820152600d60248201526c1b5bd9195e1c0819985a5b1959609a1b6044820152606490fd5b5060208151146104a8565b6040513d84823e3d90fd5b632f0be49b60e11b8452600484fd5b6314f8a09f60e21b8552600485fd5b8480fd5b8380fd5b503461028057806003193601126102805760206001600160801b0360035416604051908152f35b503461028057806003193601126102805760206001600160401b0360065460401c16604051908152f35b50346102805780600319360112610280576020600954604051908152f35b50346102805780600319360112610280576002546001600160a01b03811690811580156107ba575b6107ab5782546001600160a01b0319808216841785559091166002556001600160a01b03167f9945af900637995146537e5ea7a7be455dfd08bbb46fdd79e9c3a2bad0c4eef88380a380f35b63d71402d960e01b8352600483fd5b508133141561075f565b50346102805780600319360112610280576002546040516001600160a01b039091168152602090f35b5034610280578060031936011261028057602063ffffffff60115416604051908152f35b50346102805760203660031901126102805760406020916004358152600d83522054604051908152f35b5034610280576020366003190112610280576108556127df565b6001546001600160a01b03163303610920576001600160a01b0381168083526008602052604083205460ff16610911576040516335ec42c960e01b8152600481019190915260208160248161083f60921b5afa9081156109065783916108d7575b50156108c8576108c590613623565b80f35b631fcf8c4760e11b8252600482fd5b6108f9915060203d6020116108ff575b6108f18183612969565b8101906129ae565b5f6108b6565b503d6108e7565b6040513d85823e3d90fd5b632909298f60e11b8352600483fd5b637bfa4b9f60e01b8252600482fd5b5034610280576040366003190112610280576004356001600160401b0381116109b35761014060031982360301126109b35781546001600160a01b031633036109a4576010546109955761098e90600160105560243590600401612c1f565b8060105580f35b630b5c738160e01b8252600482fd5b6314f8a09f60e21b8252600482fd5b5080fd5b5034610280576020366003190112610280576109d16127df565b6001600160a01b038116808352600a60208181526040808620335f818152918452828220548689529484528288208183529093522080546001600160801b03191690556001600160801b0390911692610a2b9184916138d0565b15610a6757602092506040518281527fffd3bbab073ab4b2d0792c270104924c14c285a153b9acddabae166395d2eb5c843392a3604051908152f35b63be51ced360e01b8352600483fd5b503461028057602036600319011261028057610a906127df565b81546001600160a01b03169033829003610aeb57600280546001600160a01b0319166001600160a01b03929092169182179055907f12cf9e4d760566fb6a3e0193406f2295fc4b53f2b60817145a61f29e470cf7d68380a380f35b6314f8a09f60e21b8352600483fd5b503461028057806003193601126102805760206001600160401b0360065460801c16604051908152f35b5034610280576020366003190112610280576020610b43600435612bdf565b905460405160039290921b1c6001600160a01b03168152f35b50346102805760a036600319011261028057610b766127df565b906024356001600160801b03811681036109b3576001600160401b03606435116109b35760a0606435360360031901126109b357610bb261280b565b906001600160a01b0382161561115857610bcb84613261565b604051639c4bad2960e01b81526020816004816001600160a01b0389165afa9081156111205783610c3a92602092879161112b575b506040516337de09eb60e11b81526001600160401b0390911660048201526001600160a01b03909116602482015291829081906044820190565b038161100f60921b5afa908115611120578491611101575b50156110f257610c6e610c69602460643501612b84565b6137db565b156110e357610c8260643560040135613817565b156110e3576040610c9d604460643501606435600401612b92565b9050036110b857610caf604435612af0565b501561102657610cbf90846132ec565b9060405192610ccd84612904565b6001600160a01b0386811685523360208601526001600160801b03841660408087019190915290821660608601526044356080860152519360a085016001600160401b03811186821017611012576040526064356004013585526024606435013560ff8116810361100e5760208601526001600160401b03604460643501351161100a5736606435604481013501602301121561100a57610d7960643560448101350160040135612bc4565b610d866040519182612969565b606435604481013501600481013580835236602491909201011161100e5760643560448101350160048101359060240160208301376064803560448101358101600401358301602001899052604088019290925201356001600160a01b03198116900361100a57606480350135606086015260846064350135946001600160801b03198616958681036110065792610fc3886080610f3a6001600160401b03968660209e99847f4debdbd2891da07eb466d2025028a25aab636034cf3c941afd1025a0c590a07a9c99015260a082019081526005549060405194602093869485019750600188526060604086015260018060a01b038151168286015260018060a01b0360208201511660a08601526001600160801b0360408201511660c086015260018060a01b0360608201511660e08601520151610100840152519060c061012084015281516101408401528f60ff9083015116610160840152610efc604083015160a06101808601526101e085019061298a565b6060808401516001600160a01b0319166101a08601526080909301516001600160801b0319166101c08501529183015203601f198101835282612969565b51902098899760ff610f4b8a61349a565b956001600160801b03610f62602460643501612b84565b9181610f78604460643501606435600401612b92565b969097506040519c60018060a01b03168d521660208c01521660408a015260443560608a01526064356004013560808a01521660a088015261016060c08801526101608701916129c6565b6064803501356001600160a01b03191660e08601526101008501979097526001600160a01b031661012084015216610140820152339381900390a3604051908152f35b8780fd5b8580fd5b8680fd5b634e487b7160e01b87526041600452602487fd5b8260075460443510156110a35761103e604435612a57565b509060016044350191826044351161108f576001600160401b0360018181611067606497612a57565b5094015460081c1692015460081c169063034dff0f60e01b8352604435600452602452604452fd5b634e487b7160e01b82526011600452602482fd5b637f455d3760e11b8152604435600452602490fd5b6044836110ce8260643501606435600401612b92565b632331a96360e11b8352600452506040602452fd5b632f0be49b60e11b8352600483fd5b6354cfe65960e01b8352600483fd5b61111a915060203d6020116108ff576108f18183612969565b5f610c52565b6040513d86823e3d90fd5b61114b9150833d8511611151575b6111438183612969565b810190612b65565b5f610c00565b503d611139565b638dc30b3960e01b8352600483fd5b50346102805760203660031901126102805760406001600160401b0361118e600435612af0565b835191151582529091166020820152f35b5034610280576020366003190112610280576004359080604080516111c381612933565b82815282602082015201526007548210156112305760606111e383612a57565b506001600160401b036040516111f881612933565b60ff600184549485845201549183604060208301928486168452019360081c1683526040519485525116602084015251166040820152f35b602491637f455d3760e11b8252600452fd5b50346102805780600319360112610280576040519080600e5490611265826128cc565b80855291600181169081156112ef57506001146112a5575b6112a18461128d81860382612969565b60405191829160208352602083019061298a565b0390f35b600e81525f516020613a305f395f51905f52939250905b8082106112d55750909150810160200161128d8261127d565b9192600181602092548385880101520191019092916112bc565b60ff191660208087019190915292151560051b8501909201925061128d915083905061127d565b50346102805780600319360112610280576020600b54604051908152f35b5034610280578060031936011261028057602061134f612acb565b6001600160801b0360405191168152f35b50346102805780600319360112610280576020604051629896808152f35b503461028057604036600319011261028057604061139a6127df565b916113a36127f5565b9260018060a01b03168152600a602052209060018060a01b03165f5260205260206001600160801b0360405f205416604051908152f35b5034610280578060031936011261028057602061134f612a87565b50346102805780600319360112610280576020600c54604051908152f35b50346102805760203660031901126102805761142d6127df565b6001546001600160a01b0316903382900361148957600f80546001600160a01b0319166001600160a01b03929092169182179055907fe5cd1c804f1c9cc6d7009e4c0fb532f0e2d8863524c3323a6b3790c3f80bf25c8380a380f35b637bfa4b9f60e01b8352600483fd5b50346102805760203660031901126102805760209060ff906040906001600160a01b036114c36127df565b168152600884522054166040519015158152f35b5034610280576020366003190112610280576004356001600160401b0381116109b35761150890369060040161289f565b8254909291906001600160a01b031633036109a4576001600160401b03831161169e57611536600e546128cc565b601f8111611642575b508192601f81116001146115b4578083947ff4e00967b25e707df96d88676243b33be84847ef27615af8ef91290b52294fc694916115a9575b508160011b905f198360031b1c191617600e555b6115a36040519283926020845260208401916129c6565b0390a180f35b90508201355f611578565b600e8352601f198116935f516020613a305f395f51905f5290845b86811061162a5750827ff4e00967b25e707df96d88676243b33be84847ef27615af8ef91290b52294fc6959610611611575b5050600181811b01600e5561158c565b8301355f19600384901b60f8161c191690555f80611601565b909160206001819285880135815501930191016115cf565b8381111561153f57600e8352601f840160051c9060208510611696575b601f82910160051c0390835b82811061167957505061153f565b80855f516020613a305f395f51905f52600193850101550161166b565b83915061165f565b634e487b7160e01b82526041600452602482fd5b5034610280578060031936011261028057546040516001600160a01b039091168152602090f35b503461028057806003193601126102805760206001600160401b0360125460a01c16604051908152f35b50346102805780600319360112610280576020600554604051908152f35b50346102805780600319360112610280576020600754604051908152f35b5034610280576101203660031901126102805760043563ffffffff81168091036109b35761176b6127f5565b906044356001600160a01b03811681036106c4576064356001600160a01b03811692908390036106c05761179d61280b565b60a4356001600160a01b038116919082900361100e576117bb612875565b90610104356001600160401b038111611a0a576117dc90369060040161289f565b96909530615ad160901b146119fb57735af1ffffffffffffffffffffffffffffffffffff1933016119ec576012549560ff8760e01c166119de57601180546001600160c01b0319169190911760209290921b640100000000600160c01b0316919091179055600180546001600160a01b03199081169290921790558854166001600160a01b039190911617875560c4356004556001600160e81b03199092161760a09190911b67ffffffffffffffff60a01b1617600160e01b176012556001600160401b0382116119ca576118b2600e546128cc565b601f811161196e575b508390601f83116001146118fb576108c59392918591836118f0575b50508160011b915f199060031b1c191617600e55613623565b013590505f806118d7565b600e85525f516020613a305f395f51905f5291601f198416865b81811061195657509160019391856108c59796941061193d575b505050811b01600e55613623565b01355f19600384901b60f8161c191690555f808061192f565b91936020600181928787013581550195019201611915565b828111156118bb57600e8552601f830160051c90602084106119c2575b601f82910160051c0390855b8281106119a55750506118bb565b80875f516020613a305f395f51905f526001938501015501611997565b85915061198b565b634e487b7160e01b84526041600452602484fd5b62dc149f60e41b8b5260048bfd5b631966391b60e11b8a5260048afd5b63b25caa5160e01b8a5260048afd5b8880fd5b5034610280578060031936011261028057601154604051602091821c6001600160a01b03168152f35b503461028057602036600319011261028057611a5161285f565b906007549081158015611b46575b611b2a5780915f19810190811161108f57836001600160401b0384929116925b818310611ab057606083611a9281612a57565b509060ff600183549301541660405192835260208301526040820152f35b9091828101808211611b165760018101809111611b165760011c90846001600160401b036001611adf85612a57565b50015460081c1611611af45750915b90611a7f565b92505f19810190811115611aee57634e487b7160e01b82526011600452602482fd5b634e487b7160e01b83526011600452602483fd5b63302c66ab60e21b81526001600160401b038316600452602490fd5b5060075415611b8c57600781527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6895460081c6001600160401b0390811690841610611a5f565b634e487b7160e01b81526032600452602490fd5b5034610280576020366003190112610280576020906040906001600160a01b03611bc86127df565b16815260088352205460ff81169081611be7575b506040519015158152f35b60ff915060081c165f611bdc565b5034610280578060031936011261028057600754908115611c51575f198201918211611c3d576040611c2683612a57565b5060ff600182549201541682519182526020820152f35b634e487b7160e01b81526011600452602490fd5b630c322fb560e31b8152600490fd5b503461028057806003193601126102805760206001600160401b0360065416604051908152f35b503461028057806003193601126102805760206001600160401b0360035460801c16604051908152f35b50346102805780600319360112610280576012546040516001600160a01b039091168152602090f35b503461028057602036600319011261028057611cf46127df565b6001546001600160a01b03163303610920576001600160a01b03168082526008602052604082205460ff16156108c857808252600860205260408220805461ff00191690557feb225a736fbfee3f85ccb72bdf84ff0396ab358b7970e2cc351ab3e3fd92358d8280a280f35b5034610280578060031936011261028057600f546040516001600160a01b039091168152602090f35b5034610280576020366003190112610280576004356001600160801b0381168091036109b35781546001600160a01b031633036109a457670de0b6b3a76400008111611e0f576020817fc62141e607d6fcbf7d11fd2b6d8e18e5ebef6d3fff8136ca98822801abbaea38926001600160801b03196003541617600355604051908152a180f35b630d62f21160e11b8252600482fd5b5034610280578060031936011261028057600f546001600160a01b0381169081158015611ea3575b611e9457600180546001600160a01b031980821685179092559116600f556001600160a01b03167ff8ccb027dfcd135e000e9d45e6cc2d662578a8825d4c45b5e32e0adf67e79ec68380a380f35b63058d9a1b60e01b8352600483fd5b5081331415611e46565b50346102805761016036600319011261028057611ec861285f565b6024356001600160401b038116918282036106c45760403660431901126106c45760803660831901126106c4576101043591610124356001600160401b03811161100a57611f1a90369060040161289f565b9094610144356001600160401b03811161100657611f3c90369060040161289f565b88546001600160a01b03169190338390036122d2576044359360045485036122c357601254906001600160401b038916976001600160401b038360a01c16891061228457816122a2575050879443881161229357611f99886134ff565b945b851561228457611fa96129e6565b98600654996001600160401b03808c60401c16911614801590612261575b8015612245575b61223657908d96959493929163ffffffff6011541696600354996001600160401b038b60801c16995060018a01926001600160401b03841161221f576001600160401b0393929184916040519b632d8a30cd60e21b8d5260048d015260248c01521660448a0152606489015216608487015260a486015260c4850152606435968760e486015260843561010486015260a4359b8c61012487015260c435916001600160401b03831680930361221b5760209587956120c78f946120da9489979688976101448901526001600160401b036120a6612875565b166101648901526101848801526101e06101a48801526101e48701916129c6565b848103600319016101c4860152916129c6565b03916001600160a01b03165afa9081156122105789916121f1575b50156121e25767ffffffffffffffff60801b9061211190612a26565b60801b16906001600160401b0360801b1916176003556004556fffffffffffffffff00000000000000006121436129fc565b60401b16916001600160401b0360801b9060801b169077ffffffffffffffffffffffffffffffff0000000000000000191617176006557f5a66941dc92cb865480c966eff640c02b1d00d544b74332fd67c6f1cbfccdf3960806121a58361356d565b936001600160401b03600354831c1693600454906001600160401b0360065460401c1691604051938452602084015260408301526060820152a380f35b6309bde33960e01b8852600488fd5b61220a915060203d6020116108ff576108f18183612969565b5f6120f5565b6040513d8b823e3d90fd5b8e80fd5b50505060248f634e487b7160e01b81526011600452fd5b633d9dffbd60e01b8e5260048efd5b5061224e6129fc565b6001600160401b03808c16911611611fce565b5061226a6129fc565b6001600160401b038061227b6129e6565b16911610611fc7565b632705871360e01b8d5260048dfd5b632705871360e01b8c5260048cfd5b88829792111561228457438711612284576122bd90966134ff565b94611f9b565b6309bde33960e01b8b5260048bfd5b6314f8a09f60e21b8a5260048afd5b50346102805760a0366003190112610280576122fb6127df565b6123036127f5565b9061230c612835565b6064359061231861280b565b6001600160a01b0381169590939086156125a05761233582613261565b604051639c4bad2960e01b81526001600160a01b03831695906020816004818a5afa908115610906578391612581575b506040516337de09eb60e11b81526001600160401b03821660048201526001600160a01b038916602482015260208160448161100f60921b5afa908115611120578491612562575b50156110f25760405163b389e30560e01b81526001600160401b03821660048201526001600160a01b038916602482015260208160448161100f60921b5afa908115611120578491612543575b50156110f2576040516337de09eb60e11b81526001600160401b039190911660048201526001600160a01b0391909116602482015260208160448161100f60921b5afa908115610697578291612524575b50156125155750946001600160401b03926124706001600160801b03936020986132ec565b93906124b682604051996124838b612904565b898b52338c8c015260018060a01b0316968760408c015216988960608201528560808201528460a0820152600554613415565b976124c08961349a565b956040519889528a8901526040880152166060860152608085015260a08401521660c0820152817ffee50869847a4d073bfd83ec655472febff62beb46febf4ec48752f0686affd160e03393a3604051908152f35b6354cfe65960e01b8152600490fd5b61253d915060203d6020116108ff576108f18183612969565b5f61244b565b61255c915060203d6020116108ff576108f18183612969565b5f6123fa565b61257b915060203d6020116108ff576108f18183612969565b5f6123ad565b61259a915060203d602011611151576111438183612969565b5f612365565b638dc30b3960e01b8152600490fd5b5034610280576020366003190112610280576125c96127df565b6001546001600160a01b03163303610920576001600160a01b03168082526008602052604082205460ff16156108c857808252600860205260408220805461ff0019166101001790557f22ab73af03f04a21e91c7923327f99279b7f5d07d9551762c39bccdf051f1fe98280a280f35b90503461279e5760c036600319011261279e576126546127df565b61265c6127f5565b91612665612835565b6084356001600160401b03811680910361279e5760a4356001600160401b03811161279e5761269890369060040161289f565b9190943033036127d05760115463a9059cbb60e01b86526001600160a01b03602091821c811660048801526001600160801b0386166024880152919091169490816044815f895af1908115612793575f916127b1575b50156127a257601154602081901c6001600160a01b031693843b1561279e575f9663ffffffff9488946001600160801b03612773946040519c8d9b8c9a8b996311da526160e01b8b521660048a01526024890152606435604489015260018060a01b0316606488015216608486015260a485015260e060c485015260e48401916129c6565b03925af1801561279357612785575080f35b61279191505f90612969565b005b6040513d5f823e3d90fd5b5f80fd5b6312171d8360e31b5f5260045ffd5b6127ca915060203d6020116108ff576108f18183612969565b5f6126ee565b6314e1dbf760e11b5f5260045ffd5b600435906001600160a01b038216820361279e57565b602435906001600160a01b038216820361279e57565b608435906001600160a01b038216820361279e57565b35906001600160a01b038216820361279e57565b604435906001600160801b038216820361279e57565b35906001600160801b038216820361279e57565b600435906001600160401b038216820361279e57565b60e435906001600160401b038216820361279e57565b35906001600160401b038216820361279e57565b9181601f8401121561279e578235916001600160401b03831161279e576020838186019501011161279e57565b90600182811c921680156128fa575b60208310146128e657565b634e487b7160e01b5f52602260045260245ffd5b91607f16916128db565b60c081019081106001600160401b0382111761291f57604052565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761291f57604052565b604081019081106001600160401b0382111761291f57604052565b90601f801991011681019081106001600160401b0382111761291f57604052565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9081602091031261279e5751801515810361279e5790565b908060209392818452848401375f828201840152601f01601f1916010190565b60c4356001600160401b038116810361279e5790565b60e4356001600160401b038116810361279e5790565b356001600160401b038116810361279e5790565b6001600160401b03166001600160401b038114612a435760010190565b634e487b7160e01b5f52601160045260245ffd5b600754811015612a735760075f5260205f209060011b01905f90565b634e487b7160e01b5f52603260045260245ffd5b48620493e002620493e081044803612a435764e8d4a51000810190818111612a435764e8d4a50fff01908111612a435764e8d4a510006001600160801b0391041690565b6001600160801b0360035416620186a0026001600160801b038116908103612a435790565b60075480821015612b5d575f198101908111612a43578114612b555760018101809111612a43576001600160401b036001612b2e6201518093612a57565b50015460081c1601906001600160401b038211612a43576001600160401b03821643109190565b506001905f90565b50505f905f90565b9081602091031261279e57516001600160401b038116810361279e5790565b3560ff8116810361279e5790565b903590601e198136030182121561279e57018035906001600160401b03821161279e5760200191813603831361279e57565b6001600160401b03811161291f57601f01601f191660200190565b600954811015612a735760095f5260205f2001905f90565b356001600160a01b038116810361279e5790565b356001600160801b038116810361279e5790565b600b545f91600c548214613252576064820693845f52600d60205260405f2054905f1982148015613248575b613233578015938415613241575f19935b60408051602081019182529590926001600160a01b03612c7b84612821565b1660608801526020830135608088018190529960408401956001600160a01b03612ca488612821565b1660a08a01526060850199612cb88b61284b565b6001600160801b031660c08b01526080860198612cd48a61284b565b6001600160801b031660e08c015260a08701356101008c015260c0870197612cfb8961288b565b6001600160401b03166101208d015260e088019b612d188d61288b565b6001600160401b0316610140820152806101008a0198612d388a8c613943565b610160840161014090526101a0840190612d51926129c6565b612d5f6101208d018d613943565b848303605f1901610180860152612d7692916129c6565b90604083015203601f1981018252612d8e9082612969565b51902003613233571561322057505f52600d6020525f1960405f205560018101809111612a4357600b555b612dc282612bf7565b946001600160401b03612dd488612a12565b1615613070576001600160801b03612deb82612c0b565b1661304b575b50629896806001600160401b03612e0785612a12565b1611612fde576001600160401b03612e1e84612a12565b16612ec357505050916001600160801b035f516020613a505f395f51905f529492612e78612e7286612e64612e54606099612bf7565b612e5d89612c0b565b90866138d0565b159586612ea0575b50612bf7565b94612c0b565b90604051975060018060a01b0316875216602086015215604085015260018060a01b031692a3565b612ebd90612eb6612eb08a612c0b565b91612a12565b9086613974565b5f612e6c565b612ee8612ecf85612bf7565b91612ee2612edc8a612c0b565b95612a12565b93612b92565b9092303b1561279e57604051625d97ef60e01b81526001600160a01b03808916600483015290931660248401526001600160801b03949094166044830152606482018a90526001600160401b0393909316608482015260c060a4820152915f9183918291612f5a9160c48401916129c6565b038183305af19081612f9f575b505f516020613a505f395f51905f529492612e78612e72606096946001600160801b0394155f14612f985789612e64565b6001612e64565b6001600160801b0391965092612e78612e7260609694612fce5f5f516020613a505f395f51905f529a98612969565b5f99945094965050509294612f67565b505050839194506130266130206001600160801b039261301b606096613014612eb05f516020613a505f395f51905f529a612c0b565b908a613974565b612bf7565b92612c0b565b604080516001600160a01b0397881681529290911660208301525f90820152931692a3565b6130699061306260018060a01b035f541691612c0b565b90876138d0565b505f612df1565b5050935050935050613083919350612bf7565b61308b612a87565b926001600160801b0361309d82612c0b565b166001600160801b03851611613205575b836130bb6130c092612c0b565b6132cc565b906001600160801b0384166131e8575b6130e3826130dd85612bf7565b836138d0565b15613159577f0f7ef08806234f85aaee43d3ba4589c3bc6d5ac3fc8edd56fc3d91cc7553bdcb92613154906001600160a01b039061312090612bf7565b1694604051938493849160409194936001600160801b038092606086019760018060a01b0316865216602085015216910152565b0390a2565b6001600160a01b0381165f908152600a602052604090207f5fea28d0adb7d877ae3259768f41ad6741aa1784c4475746dd931364f62e68a1936131549161319f82612bf7565b60018060a01b03165f5260205260405f206001600160801b036131c586828454166132ac565b82546001600160801b03191691161790556001600160a01b039061312090612bf7565b5f546131ff9085906001600160a01b0316836138d0565b506130d0565b6130bb9350806132176130c092612c0b565b945090506130ae565b91505f52600d60205260405f2055612db9565b626aee3160e51b5f5260045ffd5b8193612c5c565b505f198114612c4b565b63d7fa91d160e01b5f5260045ffd5b6001600160a01b03165f9081526008602052604090205460ff81161561329d5760081c60ff161561328e57565b63dec712ef60e01b5f5260045ffd5b631fcf8c4760e11b5f5260045ffd5b906001600160801b03809116911601906001600160801b038211612a4357565b906001600160801b03809116911603906001600160801b038211612a4357565b90916132f6612acb565b926001600160801b0361331061330a612a87565b866132ac565b16906001600160801b038116918210613406578461332d916132cc565b6040516323b872dd60e01b81523360048201523060248201526044810192909252926001600160a01b03166020826064815f855af19182156127935785926133e9575b506001600160801b038216613383575050565b5f805460405163a9059cbb60e01b81526001600160a01b0390911660048201526001600160801b0393909316602484015260209183916044918391905af18015612793576133ce5750565b6133e69060203d6020116108ff576108f18183612969565b50565b6134019060203d6020116108ff576108f18183612969565b613370565b636ba4a1c760e01b5f5260045ffd5b6040519060a060208301935f8552600180831b038151166040850152600180831b036020820151166060850152600180831b0360408201511660808501526001600160801b0360608201511682850152600180831b0360808201511660c0850152015160e0830152610100820152610100815261349461012082612969565b51902090565b6005556006546134b26001600160401b038216612a26565b67ffffffffffffffff199091166001600160401b0382161760065590565b3d156134fa573d906134e182612bc4565b916134ef6040519384612969565b82523d5f602084013e565b606090565b905f808093604051602081019182526020815261351d604082612969565b519071f90827f1c53a10cb7a02335b1753200029355afa61353c6134d0565b9080613561575b61354a5750565b90915060208180518101031261279e576020015190565b50602081511015613543565b80156135bb57600c5490600b548203828111612a4357606411156135ac57606482065f52600d60205260405f205560018101808211612a4357600c5590565b632764e20b60e01b5f5260045ffd5b505f1990565b60208183031261279e578051906001600160401b03821161279e570181601f8201121561279e578051906135f482612bc4565b926136026040519485612969565b8284526020838301011161279e57815f9260208093018386015e8301015290565b60405161362f8161294e565b600180825260208083019182526001600160a01b039093165f8181526008948590526040902092518354925161ffff1990931660ff911515919091161791151590931b61ff0016179055600954600160401b81101561291f578060016136989201600955612bdf565b81546001600160a01b0360039290921b91821b19169083901b1790556040516306fdde0360e01b81525f81600481855afa908115612793575f916137c1575b506040516395d89b4160e01b81525f81600481865afa908115612793575f916137a7575b5060405163e5a6b10f60e01b8152915f83600481875afa928315612793577f4ac4dcc08b0c26c3fb6b58c64c1392b7934b1ce6b0382a5986ea5c3de795e0539361376393613154925f9261377f575b506137719060405195869560608752606087019061298a565b90858203602087015261298a565b90838203604085015261298a565b6137719192506137a0903d805f833e6137988183612969565b8101906135c1565b919061374a565b6137bb91503d805f833e6137988183612969565b5f6136fb565b6137d591503d805f833e6137988183612969565b5f6136d7565b60ff16600281149081156137ed575090565b600391501490565b602081519101519060208110613809575090565b5f199060200360031b1b1690565b801580156138c0575b6138af575f9081906401000003d0199060079082908181800909086040516020810191602083526020604083015260206060830152608082015263800001e9600160ff1b0360a08201526401000003d01960c082015260c0815261388560e082612969565b519060055afa6138936134d0565b901580156138b4575b6138af576138ab6001916137f5565b1490565b505f90565b5060208151141561389c565b506401000003d019811015613820565b60405163a9059cbb60e01b81526001600160a01b0392831660048201526001600160801b03939093166024840152602091839160449183915f91165af15f9181613922575b5061391f57505f90565b90565b61393c91925060203d6020116108ff576108f18183612969565b905f613915565b9035601e198236030181121561279e5701602081359101916001600160401b03821161279e57813603831361279e57565b909160606001600160401b037fadf6f2901dd7af2f28a594f47a925894a08d4de10609dff591a80642648775c59216936139ef6001600160801b03604051956139bc87612904565b60018060a01b031692838752306020880152876040880152169485848201525f60808201525f60a0820152600554613415565b9384600555600654906001600160401b03613a0b818416612a26565b1680926001600160401b0319161760065560405192835260208301526040820152a356febb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd65042ea6dad60c26f055e80ec401b3437c854ed586a0704d305bb4e9ea4518cfa264697066735822122057fe7aa64d21fa9a7f22433c750269973a39e919847ec97b79bcec06052ecb3964736f6c63430008230033a2646970667358221220108a734ea3848fa64045e81b8a388b4ac0e2b933d22b244d6418c2f09e37306f64736f6c6343000823003360808060405234601557610188908161001a8239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c63b628c33414610025575f80fd5b346100db576101e03660031901126100db5760043563ffffffff8116036100db5761004e6100df565b506100576100f6565b5061006061010d565b5060a4356001600160a01b038116036100db5760403660c31901126100db576080366101031901126100db576101a43567ffffffffffffffff81116100db576100ad903690600401610124565b50506101c4359067ffffffffffffffff82116100db576100d36020923690600401610124565b505060018152f35b5f80fd5b6024359067ffffffffffffffff821682036100db57565b6044359067ffffffffffffffff821682036100db57565b6084359067ffffffffffffffff821682036100db57565b9181601f840112156100db5782359167ffffffffffffffff83116100db57602083818601950101116100db5756fea2646970667358221220c755eb4079e0608a49b4e02a4c283bec8ca2fd395e1e0d24fe6c38ff761e355f64736f6c6343000823003360a034606e57601f6105a238819003918201601f19168301916001600160401b03831184841017607257808492602094604052833981010312606e57516001600160a01b03811690819003606e5760805260405161051b908161008782396080518181816047015261015e0152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c90816311da52611461007a5750637b9a730114610032575f80fd5b34610076575f366003190112610076576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b346100765760e0366003190112610076576004359063ffffffff8216809203610076576024356001600160a01b03811690819003610076576064356001600160a01b038116939084900361007657608435916fffffffffffffffffffffffffffffffff83168093036100765760a4359167ffffffffffffffff83168093036100765760c4359567ffffffffffffffff871161007657366023880112156100765786600401359567ffffffffffffffff871161007657366024888a010111610076575f546104a05760015f9081556390b7f6fd60e01b825260048201849052816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156102bf575f91610323575b50602001516001600160a01b031633036103145760405163a9059cbb60e01b81528160048201528560248201526020816044815f885af19081156102bf575f916102d9575b50156102ca5760e45f928760209860246040519b8c9a8b998a96630a137ff560e01b88526004880152338488015260443560448801526064870152608486015260c060a48601528260c486015201848401378181018301859052601f01601f19168101030193f19081156102bf575f9161027c575b506001600160e01b03191663f5ec800b60e01b0161026d575f8055005b63be51ced360e01b5f5260045ffd5b90506020813d6020116102b7575b81610297602093836104af565b8101031261007657516001600160e01b0319811681036100765781610250565b3d915061028a565b6040513d5f823e3d90fd5b6312171d8360e31b5f5260045ffd5b90506020813d60201161030c575b816102f4602093836104af565b810103126100765751801515810361007657886101db565b3d91506102e7565b63efc26b5760e01b5f5260045ffd5b90503d805f833e61033481836104af565b8101906020818303126100765780519067ffffffffffffffff8211610076570190610140828203126100765760405191610140830183811067ffffffffffffffff82111761048c57604052805163ffffffff8116810361007657835261039c602082016104d1565b60208401526103ad604082016104d1565b60408401526103be606082016104d1565b60608401526103cf608082016104d1565b60808401526103e060a082016104d1565b60a084015260c081015160c084015260e081015160e084015261010081015167ffffffffffffffff81168103610076576101008401526101208101519067ffffffffffffffff8211610076570181601f820112156100765780519067ffffffffffffffff821161048c5760405192610462601f8401601f1916602001856104af565b8284526020838301011161007657815f9260208093018386015e8301015261012082015288610196565b634e487b7160e01b5f52604160045260245ffd5b6336a4d21b60e11b5f5260045ffd5b90601f8019910116810190811067ffffffffffffffff82111761048c57604052565b51906001600160a01b03821682036100765756fea2646970667358221220e7f4e3d30aa74de3dc6a89933f0dfdc72adfb779d1af209a582fda89793c0a8764736f6c63430008230033" } From 24eec3dfccc28c222cfaf9b74e375ae3f2671238 Mon Sep 17 00:00:00 2001 From: Derek Cofausper <256792747+decofe@users.noreply.github.com> Date: Tue, 21 Jul 2026 03:36:01 +0000 Subject: [PATCH 3/3] fix: refresh ZonePortal storage layout snapshot --- .../ref-impls/storage-layouts/ZonePortal.json | 58 +++++++++---------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/specs/ref-impls/storage-layouts/ZonePortal.json b/specs/ref-impls/storage-layouts/ZonePortal.json index 2acbfd763..415385e11 100644 --- a/specs/ref-impls/storage-layouts/ZonePortal.json +++ b/specs/ref-impls/storage-layouts/ZonePortal.json @@ -1,7 +1,7 @@ { "storage": [ { - "astId": 4978, + "astId": 4984, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "sequencer", "offset": 0, @@ -9,7 +9,7 @@ "type": "t_address" }, { - "astId": 4981, + "astId": 4987, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "admin", "offset": 0, @@ -17,7 +17,7 @@ "type": "t_address" }, { - "astId": 4984, + "astId": 4990, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "pendingSequencer", "offset": 0, @@ -25,7 +25,7 @@ "type": "t_address" }, { - "astId": 4987, + "astId": 4993, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "zoneGasRate", "offset": 0, @@ -33,7 +33,7 @@ "type": "t_uint128" }, { - "astId": 4989, + "astId": 4995, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "withdrawalBatchIndex", "offset": 16, @@ -41,7 +41,7 @@ "type": "t_uint64" }, { - "astId": 4991, + "astId": 4997, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "blockHash", "offset": 0, @@ -49,7 +49,7 @@ "type": "t_bytes32" }, { - "astId": 4994, + "astId": 5000, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "currentDepositQueueHash", "offset": 0, @@ -57,7 +57,7 @@ "type": "t_bytes32" }, { - "astId": 4997, + "astId": 5003, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "depositCount", "offset": 0, @@ -65,7 +65,7 @@ "type": "t_uint64" }, { - "astId": 5000, + "astId": 5006, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "lastProcessedDepositNumber", "offset": 8, @@ -73,7 +73,7 @@ "type": "t_uint64" }, { - "astId": 5003, + "astId": 5009, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "lastSyncedTempoBlockNumber", "offset": 16, @@ -81,7 +81,7 @@ "type": "t_uint64" }, { - "astId": 5006, + "astId": 5012, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "bouncebackGas", "offset": 24, @@ -89,7 +89,7 @@ "type": "t_uint64" }, { - "astId": 5011, + "astId": 5017, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "_encryptionKeys", "offset": 0, @@ -97,7 +97,7 @@ "type": "t_array(t_struct(EncryptionKeyEntry)2600_storage)dyn_storage" }, { - "astId": 5017, + "astId": 5023, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "_tokenConfigs", "offset": 0, @@ -105,7 +105,7 @@ "type": "t_mapping(t_address,t_struct(TokenConfig)3005_storage)" }, { - "astId": 5021, + "astId": 5027, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "_enabledTokens", "offset": 0, @@ -113,7 +113,7 @@ "type": "t_array(t_address)dyn_storage" }, { - "astId": 5028, + "astId": 5034, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "refunds", "offset": 0, @@ -121,15 +121,15 @@ "type": "t_mapping(t_address,t_mapping(t_address,t_uint128))" }, { - "astId": 5032, + "astId": 5038, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "_withdrawalQueue", "offset": 0, "slot": "11", - "type": "t_struct(WithdrawalQueue)4679_storage" + "type": "t_struct(WithdrawalQueue)4681_storage" }, { - "astId": 5035, + "astId": 5041, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "rpcUrl", "offset": 0, @@ -137,7 +137,7 @@ "type": "t_string_storage" }, { - "astId": 5038, + "astId": 5044, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "pendingAdmin", "offset": 0, @@ -145,7 +145,7 @@ "type": "t_address" }, { - "astId": 5041, + "astId": 5047, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "_withdrawalReentrancyStatus", "offset": 0, @@ -153,7 +153,7 @@ "type": "t_uint256" }, { - "astId": 5044, + "astId": 5050, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "zoneId", "offset": 0, @@ -161,7 +161,7 @@ "type": "t_uint32" }, { - "astId": 5046, + "astId": 5052, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "messenger", "offset": 4, @@ -169,7 +169,7 @@ "type": "t_address" }, { - "astId": 5048, + "astId": 5054, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "verifier", "offset": 0, @@ -177,7 +177,7 @@ "type": "t_address" }, { - "astId": 5050, + "astId": 5056, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "genesisTempoBlockNumber", "offset": 20, @@ -185,7 +185,7 @@ "type": "t_uint64" }, { - "astId": 5052, + "astId": 5058, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "_initialized", "offset": 28, @@ -308,13 +308,13 @@ } ] }, - "t_struct(WithdrawalQueue)4679_storage": { + "t_struct(WithdrawalQueue)4681_storage": { "encoding": "inplace", "label": "struct WithdrawalQueue", "numberOfBytes": "96", "members": [ { - "astId": 4672, + "astId": 4674, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "head", "offset": 0, @@ -322,7 +322,7 @@ "type": "t_uint256" }, { - "astId": 4674, + "astId": 4676, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "tail", "offset": 0, @@ -330,7 +330,7 @@ "type": "t_uint256" }, { - "astId": 4678, + "astId": 4680, "contract": "src/tempo/ZonePortal.sol:ZonePortal", "label": "slots", "offset": 0,