diff --git a/.gitmodules b/.gitmodules index 4d78a10c..ef878cad 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ -[submodule "contracts/lib/eigenlayer-contracts"] - path = contracts/lib/eigenlayer-contracts - url = https://github.com/Layr-Labs/eigenlayer-contracts.git +[submodule "contracts/lib/eigenlayer-middleware"] + path = contracts/lib/eigenlayer-middleware + url = git@github.com:Layr-Labs/eigenlayer-middleware.git diff --git a/contracts/bindings/BLSOperatorStateRetriever/binding.go b/contracts/bindings/BLSOperatorStateRetriever/binding.go index 49b879f9..11e98933 100644 --- a/contracts/bindings/BLSOperatorStateRetriever/binding.go +++ b/contracts/bindings/BLSOperatorStateRetriever/binding.go @@ -46,7 +46,7 @@ type BLSOperatorStateRetrieverOperator struct { // ContractBLSOperatorStateRetrieverMetaData contains all meta data concerning the ContractBLSOperatorStateRetriever contract. var ContractBLSOperatorStateRetrieverMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"contractIBLSRegistryCoordinatorWithIndices\",\"name\":\"registryCoordinator\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"referenceBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"nonSignerOperatorIds\",\"type\":\"bytes32[]\"}],\"name\":\"getCheckSignaturesIndices\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32[]\",\"name\":\"nonSignerQuorumBitmapIndices\",\"type\":\"uint32[]\"},{\"internalType\":\"uint32[]\",\"name\":\"quorumApkIndices\",\"type\":\"uint32[]\"},{\"internalType\":\"uint32[]\",\"name\":\"totalStakeIndices\",\"type\":\"uint32[]\"},{\"internalType\":\"uint32[][]\",\"name\":\"nonSignerStakeIndices\",\"type\":\"uint32[][]\"}],\"internalType\":\"structBLSOperatorStateRetriever.CheckSignaturesIndices\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBLSRegistryCoordinatorWithIndices\",\"name\":\"registryCoordinator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"},{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"}],\"name\":\"getOperatorState\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint96\",\"name\":\"stake\",\"type\":\"uint96\"}],\"internalType\":\"structBLSOperatorStateRetriever.Operator[][]\",\"name\":\"\",\"type\":\"tuple[][]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBLSRegistryCoordinatorWithIndices\",\"name\":\"registryCoordinator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"}],\"name\":\"getOperatorState\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint96\",\"name\":\"stake\",\"type\":\"uint96\"}],\"internalType\":\"structBLSOperatorStateRetriever.Operator[][]\",\"name\":\"\",\"type\":\"tuple[][]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x608060405234801561001057600080fd5b506114cc806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80633563b0d1146100465780634f739f741461006f578063cefdc1d41461008f575b600080fd5b610059610054366004610d22565b6100b0565b6040516100669190610e6a565b60405180910390f35b61008261007d366004610ed0565b61042b565b6040516100669190610fd4565b6100a261009d36600461108f565b610ab2565b6040516100669291906110d1565b60606000846001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061011691906110f2565b90506000856001600160a01b0316639e9923c26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610158573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061017c91906110f2565b90506000855167ffffffffffffffff81111561019a5761019a610cb9565b6040519080825280602002602001820160405280156101cd57816020015b60608152602001906001900390816101b85790505b50905060005b86518110156104205760008782815181106101f0576101f061110f565b016020015160405163889ae3e560e01b815260f89190911c6004820181905263ffffffff8916602483015291506000906001600160a01b0386169063889ae3e590604401600060405180830381865afa158015610251573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102799190810190611149565b9050805167ffffffffffffffff81111561029557610295610cb9565b6040519080825280602002602001820160405280156102da57816020015b60408051808201909152600080825260208201528152602001906001900390816102b35790505b508484815181106102ed576102ed61110f565b602002602001018190525060005b815181101561040a5760008282815181106103185761031861110f565b6020908102919091018101516040805180820182528281529051631b32722560e01b81526004810183905260ff8816602482015263ffffffff8e166044820152919350918201906001600160a01b038b1690631b32722590606401602060405180830381865afa158015610390573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b491906111df565b6001600160601b03168152508686815181106103d2576103d261110f565b602002602001015183815181106103eb576103eb61110f565b60200260200101819052505080806104029061121e565b9150506102fb565b50505080806104189061121e565b9150506101d3565b509695505050505050565b6104566040518060800160405280606081526020016060815260200160608152602001606081525090565b6000876001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015610496573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ba91906110f2565b90506104e76040518060800160405280606081526020016060815260200160608152602001606081525090565b6040516385020d4960e01b81526001600160a01b038a16906385020d4990610517908b9089908990600401611239565b600060405180830381865afa158015610534573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261055c9190810190611283565b815260405163e192e9ad60e01b81526001600160a01b0383169063e192e9ad9061058e908b908b908b9060040161133b565b600060405180830381865afa1580156105ab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105d39190810190611283565b60408201528567ffffffffffffffff8111156105f1576105f1610cb9565b60405190808252806020026020018201604052801561062457816020015b606081526020019060019003908161060f5790505b50606082015260005b60ff81168711156109c35760008567ffffffffffffffff81111561065357610653610cb9565b60405190808252806020026020018201604052801561067c578160200160208202803683370190505b5083606001518360ff16815181106106965761069661110f565b602002602001018190525060005b868110156108c25760008c6001600160a01b0316633064620d8a8a858181106106cf576106cf61110f565b905060200201358e886000015186815181106106ed576106ed61110f565b60200260200101516040518463ffffffff1660e01b815260040161072a9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610747573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076b9190611364565b90508a8a8560ff168181106107825761078261110f565b6001600160c01b03841692013560f81c9190911c6001908116141590506108af57856001600160a01b031663480858668a8a858181106107c4576107c461110f565b905060200201358d8d8860ff168181106107e0576107e061110f565b6040516001600160e01b031960e087901b1681526004810194909452919091013560f81c60248301525063ffffffff8f166044820152606401602060405180830381865afa158015610836573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085a919061138d565b85606001518560ff16815181106108735761087361110f565b6020026020010151848151811061088c5761088c61110f565b63ffffffff90921660209283029190910190910152826108ab8161121e565b9350505b50806108ba8161121e565b9150506106a4565b5060008167ffffffffffffffff8111156108de576108de610cb9565b604051908082528060200260200182016040528015610907578160200160208202803683370190505b50905060005b828110156109885784606001518460ff168151811061092e5761092e61110f565b602002602001015181815181106109475761094761110f565b60200260200101518282815181106109615761096161110f565b63ffffffff90921660209283029190910190910152806109808161121e565b91505061090d565b508084606001518460ff16815181106109a3576109a361110f565b6020026020010181905250505080806109bb906113aa565b91505061062d565b506000896001600160a01b0316633561deb16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2891906110f2565b60405163eda1076360e01b81529091506001600160a01b0382169063eda1076390610a5b908b908b908e906004016113ca565b600060405180830381865afa158015610a78573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610aa09190810190611283565b60208301525098975050505050505050565b6040805160018082528183019092526000916060918391602080830190803683370190505090508481600081518110610aed57610aed61110f565b60209081029190910101526040516385020d4960e01b81526000906001600160a01b038816906385020d4990610b2990889086906004016113f4565b600060405180830381865afa158015610b46573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b6e9190810190611283565b600081518110610b8057610b8061110f565b6020908102919091010151604051633064620d60e01b81526004810188905263ffffffff87811660248301529091166044820181905291506000906001600160a01b03891690633064620d90606401602060405180830381865afa158015610bec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c109190611364565b6001600160c01b031690506000610c2682610c44565b905081610c348a838a6100b0565b9550955050505050935093915050565b60606000805b610100811015610c9a576001811b915083821615610c8a57828160f81b604051602001610c78929190611448565b60405160208183030381529060405292505b610c938161121e565b9050610c4a565b5050919050565b6001600160a01b0381168114610cb657600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610cf857610cf8610cb9565b604052919050565b63ffffffff81168114610cb657600080fd5b8035610d1d81610d00565b919050565b600080600060608486031215610d3757600080fd5b8335610d4281610ca1565b925060208481013567ffffffffffffffff80821115610d6057600080fd5b818701915087601f830112610d7457600080fd5b813581811115610d8657610d86610cb9565b610d98601f8201601f19168501610ccf565b91508082528884828501011115610dae57600080fd5b8084840185840137600084828401015250809450505050610dd160408501610d12565b90509250925092565b600081518084526020808501808196508360051b810191508286016000805b86811015610e5c578385038a52825180518087529087019087870190845b81811015610e47578351805184528a01516001600160601b03168a84015292890192604090920191600101610e17565b50509a87019a95505091850191600101610df9565b509298975050505050505050565b602081526000610e7d6020830184610dda565b9392505050565b60008083601f840112610e9657600080fd5b50813567ffffffffffffffff811115610eae57600080fd5b6020830191508360208260051b8501011115610ec957600080fd5b9250929050565b60008060008060008060808789031215610ee957600080fd5b8635610ef481610ca1565b95506020870135610f0481610d00565b9450604087013567ffffffffffffffff80821115610f2157600080fd5b818901915089601f830112610f3557600080fd5b813581811115610f4457600080fd5b8a6020828501011115610f5657600080fd5b602083019650809550506060890135915080821115610f7457600080fd5b50610f8189828a01610e84565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b83811015610fc957815163ffffffff1687529582019590820190600101610fa7565b509495945050505050565b600060208083528351608082850152610ff060a0850182610f93565b905081850151601f198086840301604087015261100d8383610f93565b9250604087015191508086840301606087015261102a8383610f93565b60608801518782038301608089015280518083529194508501925084840190600581901b8501860160005b82811015611081578487830301845261106f828751610f93565b95880195938801939150600101611055565b509998505050505050505050565b6000806000606084860312156110a457600080fd5b83356110af81610ca1565b92506020840135915060408401356110c681610d00565b809150509250925092565b8281526040602082015260006110ea6040830184610dda565b949350505050565b60006020828403121561110457600080fd5b8151610e7d81610ca1565b634e487b7160e01b600052603260045260246000fd5b600067ffffffffffffffff82111561113f5761113f610cb9565b5060051b60200190565b6000602080838503121561115c57600080fd5b825167ffffffffffffffff81111561117357600080fd5b8301601f8101851361118457600080fd5b805161119761119282611125565b610ccf565b81815260059190911b820183019083810190878311156111b657600080fd5b928401925b828410156111d4578351825292840192908401906111bb565b979650505050505050565b6000602082840312156111f157600080fd5b81516001600160601b0381168114610e7d57600080fd5b634e487b7160e01b600052601160045260246000fd5b600060001982141561123257611232611208565b5060010190565b63ffffffff84168152604060208201819052810182905260006001600160fb1b0383111561126657600080fd5b8260051b8085606085013760009201606001918252509392505050565b6000602080838503121561129657600080fd5b825167ffffffffffffffff8111156112ad57600080fd5b8301601f810185136112be57600080fd5b80516112cc61119282611125565b81815260059190911b820183019083810190878311156112eb57600080fd5b928401925b828410156111d457835161130381610d00565b825292840192908401906112f0565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b63ffffffff8416815260406020820152600061135b604083018486611312565b95945050505050565b60006020828403121561137657600080fd5b81516001600160c01b0381168114610e7d57600080fd5b60006020828403121561139f57600080fd5b8151610e7d81610d00565b600060ff821660ff8114156113c1576113c1611208565b60010192915050565b6040815260006113de604083018587611312565b905063ffffffff83166020830152949350505050565b60006040820163ffffffff851683526020604081850152818551808452606086019150828701935060005b8181101561143b5784518352938301939183019160010161141f565b5090979650505050505050565b6000835160005b81811015611469576020818701810151858301520161144f565b81811115611478576000828501525b506001600160f81b031993909316919092019081526001019291505056fea26469706673582212200e88dc11d96a0ae74e22174b9f96da7b513638575d2e28219e693fb2bfd58ff064736f6c634300080c0033", + Bin: "0x608060405234801561001057600080fd5b506114cc806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80633563b0d1146100465780634f739f741461006f578063cefdc1d41461008f575b600080fd5b610059610054366004610d22565b6100b0565b6040516100669190610e6a565b60405180910390f35b61008261007d366004610ed0565b61042b565b6040516100669190610fd4565b6100a261009d36600461108f565b610ab2565b6040516100669291906110d1565b60606000846001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061011691906110f2565b90506000856001600160a01b0316639e9923c26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610158573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061017c91906110f2565b90506000855167ffffffffffffffff81111561019a5761019a610cb9565b6040519080825280602002602001820160405280156101cd57816020015b60608152602001906001900390816101b85790505b50905060005b86518110156104205760008782815181106101f0576101f061110f565b016020015160405163889ae3e560e01b815260f89190911c6004820181905263ffffffff8916602483015291506000906001600160a01b0386169063889ae3e590604401600060405180830381865afa158015610251573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102799190810190611149565b9050805167ffffffffffffffff81111561029557610295610cb9565b6040519080825280602002602001820160405280156102da57816020015b60408051808201909152600080825260208201528152602001906001900390816102b35790505b508484815181106102ed576102ed61110f565b602002602001018190525060005b815181101561040a5760008282815181106103185761031861110f565b6020908102919091018101516040805180820182528281529051631b32722560e01b81526004810183905260ff8816602482015263ffffffff8e166044820152919350918201906001600160a01b038b1690631b32722590606401602060405180830381865afa158015610390573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b491906111df565b6001600160601b03168152508686815181106103d2576103d261110f565b602002602001015183815181106103eb576103eb61110f565b60200260200101819052505080806104029061121e565b9150506102fb565b50505080806104189061121e565b9150506101d3565b509695505050505050565b6104566040518060800160405280606081526020016060815260200160608152602001606081525090565b6000876001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015610496573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ba91906110f2565b90506104e76040518060800160405280606081526020016060815260200160608152602001606081525090565b6040516385020d4960e01b81526001600160a01b038a16906385020d4990610517908b9089908990600401611239565b600060405180830381865afa158015610534573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261055c9190810190611283565b815260405163e192e9ad60e01b81526001600160a01b0383169063e192e9ad9061058e908b908b908b9060040161133b565b600060405180830381865afa1580156105ab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105d39190810190611283565b60408201528567ffffffffffffffff8111156105f1576105f1610cb9565b60405190808252806020026020018201604052801561062457816020015b606081526020019060019003908161060f5790505b50606082015260005b60ff81168711156109c35760008567ffffffffffffffff81111561065357610653610cb9565b60405190808252806020026020018201604052801561067c578160200160208202803683370190505b5083606001518360ff16815181106106965761069661110f565b602002602001018190525060005b868110156108c25760008c6001600160a01b0316633064620d8a8a858181106106cf576106cf61110f565b905060200201358e886000015186815181106106ed576106ed61110f565b60200260200101516040518463ffffffff1660e01b815260040161072a9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610747573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076b9190611364565b90508a8a8560ff168181106107825761078261110f565b6001600160c01b03841692013560f81c9190911c6001908116141590506108af57856001600160a01b031663480858668a8a858181106107c4576107c461110f565b905060200201358d8d8860ff168181106107e0576107e061110f565b6040516001600160e01b031960e087901b1681526004810194909452919091013560f81c60248301525063ffffffff8f166044820152606401602060405180830381865afa158015610836573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085a919061138d565b85606001518560ff16815181106108735761087361110f565b6020026020010151848151811061088c5761088c61110f565b63ffffffff90921660209283029190910190910152826108ab8161121e565b9350505b50806108ba8161121e565b9150506106a4565b5060008167ffffffffffffffff8111156108de576108de610cb9565b604051908082528060200260200182016040528015610907578160200160208202803683370190505b50905060005b828110156109885784606001518460ff168151811061092e5761092e61110f565b602002602001015181815181106109475761094761110f565b60200260200101518282815181106109615761096161110f565b63ffffffff90921660209283029190910190910152806109808161121e565b91505061090d565b508084606001518460ff16815181106109a3576109a361110f565b6020026020010181905250505080806109bb906113aa565b91505061062d565b506000896001600160a01b0316633561deb16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2891906110f2565b60405163eda1076360e01b81529091506001600160a01b0382169063eda1076390610a5b908b908b908e906004016113ca565b600060405180830381865afa158015610a78573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610aa09190810190611283565b60208301525098975050505050505050565b6040805160018082528183019092526000916060918391602080830190803683370190505090508481600081518110610aed57610aed61110f565b60209081029190910101526040516385020d4960e01b81526000906001600160a01b038816906385020d4990610b2990889086906004016113f4565b600060405180830381865afa158015610b46573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b6e9190810190611283565b600081518110610b8057610b8061110f565b6020908102919091010151604051633064620d60e01b81526004810188905263ffffffff87811660248301529091166044820181905291506000906001600160a01b03891690633064620d90606401602060405180830381865afa158015610bec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c109190611364565b6001600160c01b031690506000610c2682610c44565b905081610c348a838a6100b0565b9550955050505050935093915050565b60606000805b610100811015610c9a576001811b915083821615610c8a57828160f81b604051602001610c78929190611448565b60405160208183030381529060405292505b610c938161121e565b9050610c4a565b5050919050565b6001600160a01b0381168114610cb657600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610cf857610cf8610cb9565b604052919050565b63ffffffff81168114610cb657600080fd5b8035610d1d81610d00565b919050565b600080600060608486031215610d3757600080fd5b8335610d4281610ca1565b925060208481013567ffffffffffffffff80821115610d6057600080fd5b818701915087601f830112610d7457600080fd5b813581811115610d8657610d86610cb9565b610d98601f8201601f19168501610ccf565b91508082528884828501011115610dae57600080fd5b8084840185840137600084828401015250809450505050610dd160408501610d12565b90509250925092565b600081518084526020808501808196508360051b810191508286016000805b86811015610e5c578385038a52825180518087529087019087870190845b81811015610e47578351805184528a01516001600160601b03168a84015292890192604090920191600101610e17565b50509a87019a95505091850191600101610df9565b509298975050505050505050565b602081526000610e7d6020830184610dda565b9392505050565b60008083601f840112610e9657600080fd5b50813567ffffffffffffffff811115610eae57600080fd5b6020830191508360208260051b8501011115610ec957600080fd5b9250929050565b60008060008060008060808789031215610ee957600080fd5b8635610ef481610ca1565b95506020870135610f0481610d00565b9450604087013567ffffffffffffffff80821115610f2157600080fd5b818901915089601f830112610f3557600080fd5b813581811115610f4457600080fd5b8a6020828501011115610f5657600080fd5b602083019650809550506060890135915080821115610f7457600080fd5b50610f8189828a01610e84565b979a9699509497509295939492505050565b600081518084526020808501945080840160005b83811015610fc957815163ffffffff1687529582019590820190600101610fa7565b509495945050505050565b600060208083528351608082850152610ff060a0850182610f93565b905081850151601f198086840301604087015261100d8383610f93565b9250604087015191508086840301606087015261102a8383610f93565b60608801518782038301608089015280518083529194508501925084840190600581901b8501860160005b82811015611081578487830301845261106f828751610f93565b95880195938801939150600101611055565b509998505050505050505050565b6000806000606084860312156110a457600080fd5b83356110af81610ca1565b92506020840135915060408401356110c681610d00565b809150509250925092565b8281526040602082015260006110ea6040830184610dda565b949350505050565b60006020828403121561110457600080fd5b8151610e7d81610ca1565b634e487b7160e01b600052603260045260246000fd5b600067ffffffffffffffff82111561113f5761113f610cb9565b5060051b60200190565b6000602080838503121561115c57600080fd5b825167ffffffffffffffff81111561117357600080fd5b8301601f8101851361118457600080fd5b805161119761119282611125565b610ccf565b81815260059190911b820183019083810190878311156111b657600080fd5b928401925b828410156111d4578351825292840192908401906111bb565b979650505050505050565b6000602082840312156111f157600080fd5b81516001600160601b0381168114610e7d57600080fd5b634e487b7160e01b600052601160045260246000fd5b600060001982141561123257611232611208565b5060010190565b63ffffffff84168152604060208201819052810182905260006001600160fb1b0383111561126657600080fd5b8260051b8085606085013760009201606001918252509392505050565b6000602080838503121561129657600080fd5b825167ffffffffffffffff8111156112ad57600080fd5b8301601f810185136112be57600080fd5b80516112cc61119282611125565b81815260059190911b820183019083810190878311156112eb57600080fd5b928401925b828410156111d457835161130381610d00565b825292840192908401906112f0565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b63ffffffff8416815260406020820152600061135b604083018486611312565b95945050505050565b60006020828403121561137657600080fd5b81516001600160c01b0381168114610e7d57600080fd5b60006020828403121561139f57600080fd5b8151610e7d81610d00565b600060ff821660ff8114156113c1576113c1611208565b60010192915050565b6040815260006113de604083018587611312565b905063ffffffff83166020830152949350505050565b60006040820163ffffffff851683526020604081850152818551808452606086019150828701935060005b8181101561143b5784518352938301939183019160010161141f565b5090979650505050505050565b6000835160005b81811015611469576020818701810151858301520161144f565b81811115611478576000828501525b506001600160f81b031993909316919092019081526001019291505056fea26469706673582212200a6176a52797422df6f5125a4dcb11c859430335fb2181eddffe5254741193a564736f6c634300080c0033", } // ContractBLSOperatorStateRetrieverABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/BLSPubkeyRegistry/binding.go b/contracts/bindings/BLSPubkeyRegistry/binding.go index e56ee25c..192dbbc4 100644 --- a/contracts/bindings/BLSPubkeyRegistry/binding.go +++ b/contracts/bindings/BLSPubkeyRegistry/binding.go @@ -45,7 +45,7 @@ type IBLSPubkeyRegistryApkUpdate struct { // ContractBLSPubkeyRegistryMetaData contains all meta data concerning the ContractBLSPubkeyRegistry contract. var ContractBLSPubkeyRegistryMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"contractIRegistryCoordinator\",\"name\":\"_registryCoordinator\",\"type\":\"address\"},{\"internalType\":\"contractIBLSPublicKeyCompendium\",\"name\":\"_pubkeyCompendium\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"}],\"name\":\"OperatorAddedToQuorums\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"}],\"name\":\"OperatorRemovedFromQuorums\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"structBN254.G1Point\",\"name\":\"pubkey\",\"type\":\"tuple\"}],\"name\":\"deregisterOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"getApkForQuorum\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"structBN254.G1Point\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getApkHashForQuorumAtBlockNumberFromIndex\",\"outputs\":[{\"internalType\":\"bytes24\",\"name\":\"\",\"type\":\"bytes24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getApkIndicesForQuorumsAtBlockNumber\",\"outputs\":[{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getApkUpdateForQuorumByIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes24\",\"name\":\"apkHash\",\"type\":\"bytes24\"},{\"internalType\":\"uint32\",\"name\":\"updateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\"}],\"internalType\":\"structIBLSPubkeyRegistry.ApkUpdate\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubkeyHash\",\"type\":\"bytes32\"}],\"name\":\"getOperatorFromPubkeyHash\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"getQuorumApkHistoryLength\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pubkeyCompendium\",\"outputs\":[{\"internalType\":\"contractIBLSPublicKeyCompendium\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"quorumApk\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"quorumApkUpdates\",\"outputs\":[{\"internalType\":\"bytes24\",\"name\":\"apkHash\",\"type\":\"bytes24\"},{\"internalType\":\"uint32\",\"name\":\"updateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"structBN254.G1Point\",\"name\":\"pubkey\",\"type\":\"tuple\"}],\"name\":\"registerOperator\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registryCoordinator\",\"outputs\":[{\"internalType\":\"contractIRegistryCoordinator\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x60c06040523480156200001157600080fd5b506040516200158d3803806200158d833981016040819052620000349162000138565b6001600160a01b03808316608052811660a0528181620000536200005d565b5050505062000177565b600054610100900460ff1615620000ca5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156200011d576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200013557600080fd5b50565b600080604083850312156200014c57600080fd5b825162000159816200011f565b60208401519092506200016c816200011f565b809150509250929050565b60805160a0516113dc620001b16000396000818160e401526105990152600081816101f10152818161033401526104ac01526113dc6000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80636d14a987116100715780636d14a987146101ec5780637225057e146102135780637f5eccbb14610261578063c1af6b24146102a2578063eda10763146102cf578063fb81a7be146102ef57600080fd5b806303ce4bad146100b9578063187548c8146100df57806324369b2a1461011e57806332de63081461013357806347b314e81461016f57806363a9451014610182575b600080fd5b6100cc6100c7366004610f4d565b610327565b6040519081526020015b60405180910390f35b6101067f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100d6565b61013161012c366004610f4d565b6104a1565b005b61015a610141366004611017565b6002602052600090815260409020805460019091015482565b604080519283526020830191909152016100d6565b61010661017d366004611039565b610580565b6101d1610190366004611017565b60408051808201909152600080825260208201525060ff16600090815260026020908152604091829020825180840190935280548352600101549082015290565b604080518251815260209283015192810192909252016100d6565b6101067f000000000000000000000000000000000000000000000000000000000000000081565b610226610221366004611052565b610612565b60408051825167ffffffffffffffff1916815260208084015163ffffffff9081169183019190915292820151909216908201526060016100d6565b61027461026f366004611052565b6106a4565b6040805167ffffffffffffffff19909416845263ffffffff92831660208501529116908201526060016100d6565b6102b56102b036600461107c565b6106ef565b60405167ffffffffffffffff1990911681526020016100d6565b6102e26102dd3660046110c4565b610778565b6040516100d6919061113c565b6103126102fd366004611017565b60ff1660009081526001602052604090205490565b60405163ffffffff90911681526020016100d6565b6000336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461037a5760405162461bcd60e51b815260040161037190611186565b60405180910390fd5b6000610385836109d4565b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb581141561041d5760405162461bcd60e51b815260206004820152603f60248201527f424c535075626b657952656769737472792e72656769737465724f706572617460448201527f6f723a2063616e6e6f74207265676973746572207a65726f207075626b6579006064820152608401610371565b846001600160a01b031661043082610580565b6001600160a01b0316146104565760405162461bcd60e51b8152600401610371906111fd565b6104608484610a17565b7f5358c5b42179178c8fc757734ac2a3198f9071c765ee0d8389211525f5005246858560405161049192919061125b565b60405180910390a1949350505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104e95760405162461bcd60e51b815260040161037190611186565b60006104f4826109d4565b9050836001600160a01b031661050982610580565b6001600160a01b03161461052f5760405162461bcd60e51b8152600401610371906111fd565b6105418361053c84610bd6565b610a17565b7f14a5172b312e9d2c22b8468f9c70ec2caa9de934fe380734fbc6f3beff2b14ba848460405161057292919061125b565b60405180910390a150505050565b60405163745dcd7360e11b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e8bb9ae690602401602060405180830381865afa1580156105e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060c91906112c0565b92915050565b604080516060810182526000808252602080830182905282840182905260ff86168252600190529190912080548390811061064f5761064f6112dd565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b8204811694830194909452600160e01b900490921690820152905092915050565b600160205281600052604060002081815481106106c057600080fd5b600091825260209091200154604081901b925063ffffffff600160c01b820481169250600160e01b9091041683565b60ff83166000908152600160205260408120805482919084908110610716576107166112dd565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b8204811694830194909452600160e01b900490921690820152905061076f8185610c95565b51949350505050565b606060008367ffffffffffffffff81111561079557610795610eb7565b6040519080825280602002602001820160405280156107be578160200160208202803683370190505b50905060005b848110156109c75760008686838181106107e0576107e06112dd565b919091013560f81c600081815260016020526040902054909250905063ffffffff81161580610849575060ff82166000908152600160205260408120805490919061082d5761082d6112dd565b600091825260209091200154600160c01b900463ffffffff1686105b156108e25760405162461bcd60e51b815260206004820152605e60248201527f424c535075626b657952656769737472792e67657441706b496e64696365734660448201527f6f7251756f72756d734174426c6f636b4e756d6265723a20626c6f636b4e756d60648201527f626572206973206265666f726520746865206669727374207570646174650000608482015260a401610371565b60005b8163ffffffff168163ffffffff1610156109b15760ff83166000908152600160208190526040909120889161091a8486611309565b6109249190611309565b63ffffffff168154811061093a5761093a6112dd565b600091825260209091200154600160c01b900463ffffffff161161099f5760016109648284611309565b61096e9190611309565b858581518110610980576109806112dd565b602002602001019063ffffffff16908163ffffffff16815250506109b1565b806109a98161132e565b9150506108e5565b50505080806109bf90611352565b9150506107c4565b50949350505050565b5050565b6000816000015182602001516040516020016109fa929190918252602082015260400190565b604051602081830303815290604052805190602001209050919050565b604080518082019091526000808252602082015260005b8351811015610bd0576000848281518110610a4b57610a4b6112dd565b0160209081015160f81c600081815260019092526040909120549091508015610acb5760ff821660009081526001602081905260409091204391610a8f908461136d565b81548110610a9f57610a9f6112dd565b90600052602060002001600001601c6101000a81548163ffffffff021916908363ffffffff1602179055505b60ff82166000908152600260209081526040918290208251808401909352805483526001015490820152610aff9086610dde565b60ff8316600090815260026020908152604080832084518155828501516001909101558051606081018252838152918201839052810191909152909450610b45856109d4565b67ffffffffffffffff1916815263ffffffff438116602080840191825260ff90951660009081526001808752604080832080548084018255908452979092208551970180549351958301518516600160e01b026001600160e01b0396909516600160c01b026001600160e01b03199094169790921c9690961791909117929092161790555001610a2e565b50505050565b60408051808201909152600080825260208201528151158015610bfb57506020820151155b15610c19575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd478460200151610c5e9190611384565b610c88907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4761136d565b905292915050565b919050565b816020015163ffffffff168163ffffffff161015610d2e5760405162461bcd60e51b815260206004820152604a60248201527f424c535075626b657952656769737472792e5f76616c696461746541706b486160448201527f7368466f7251756f72756d4174426c6f636b4e756d6265723a20696e646578206064820152691d1bdbc81c9958d95b9d60b21b608482015260a401610371565b604082015163ffffffff161580610d545750816040015163ffffffff168163ffffffff16105b6109d05760405162461bcd60e51b815260206004820152604f60248201527f424c535075626b657952656769737472792e5f76616c696461746541706b486160448201527f7368466f7251756f72756d4174426c6f636b4e756d6265723a206e6f74206c6160648201526e746573742061706b2075706461746560881b608482015260a401610371565b6040805180820190915260008082526020820152610dfa610e81565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa9050808015610e3957610e3b565bfe5b5080610e795760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b6044820152606401610371565b505092915050565b60405180608001604052806004906020820280368337509192915050565b6001600160a01b0381168114610eb457600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610ef657610ef6610eb7565b604052919050565b600060408284031215610f1057600080fd5b6040516040810181811067ffffffffffffffff82111715610f3357610f33610eb7565b604052823581526020928301359281019290925250919050565b600080600060808486031215610f6257600080fd5b8335610f6d81610e9f565b925060208481013567ffffffffffffffff80821115610f8b57600080fd5b818701915087601f830112610f9f57600080fd5b813581811115610fb157610fb1610eb7565b610fc3601f8201601f19168501610ecd565b91508082528884828501011115610fd957600080fd5b8084840185840137600084828401015250809450505050610ffd8560408601610efe565b90509250925092565b803560ff81168114610c9057600080fd5b60006020828403121561102957600080fd5b61103282611006565b9392505050565b60006020828403121561104b57600080fd5b5035919050565b6000806040838503121561106557600080fd5b61106e83611006565b946020939093013593505050565b60008060006060848603121561109157600080fd5b61109a84611006565b9250602084013563ffffffff811681146110b357600080fd5b929592945050506040919091013590565b6000806000604084860312156110d957600080fd5b833567ffffffffffffffff808211156110f157600080fd5b818601915086601f83011261110557600080fd5b81358181111561111457600080fd5b87602082850101111561112657600080fd5b6020928301989097509590910135949350505050565b6020808252825182820181905260009190848201906040850190845b8181101561117a57835163ffffffff1683529284019291840191600101611158565b50909695505050505050565b60208082526051908201527f424c535075626b657952656769737472792e6f6e6c795265676973747279436f60408201527f6f7264696e61746f723a2063616c6c6572206973206e6f74207468652072656760608201527034b9ba393c9031b7b7b93234b730ba37b960791b608082015260a00190565b602080825260409082018190527f424c535075626b657952656769737472792e72656769737465724f7065726174908201527f6f723a206f70657261746f7220646f6573206e6f74206f776e207075626b6579606082015260800190565b60018060a01b038316815260006020604081840152835180604085015260005b818110156112975785810183015185820160600152820161127b565b818111156112a9576000606083870101525b50601f01601f191692909201606001949350505050565b6000602082840312156112d257600080fd5b815161103281610e9f565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600063ffffffff83811690831681811015611326576113266112f3565b039392505050565b600063ffffffff80831681811415611348576113486112f3565b6001019392505050565b6000600019821415611366576113666112f3565b5060010190565b60008282101561137f5761137f6112f3565b500390565b6000826113a157634e487b7160e01b600052601260045260246000fd5b50069056fea2646970667358221220ec606ed0158f4fd22dcac47c21f915b6162b6a7319df07782ab8d492adc5229664736f6c634300080c0033", + Bin: "0x60c06040523480156200001157600080fd5b506040516200158d3803806200158d833981016040819052620000349162000138565b6001600160a01b03808316608052811660a0528181620000536200005d565b5050505062000177565b600054610100900460ff1615620000ca5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156200011d576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200013557600080fd5b50565b600080604083850312156200014c57600080fd5b825162000159816200011f565b60208401519092506200016c816200011f565b809150509250929050565b60805160a0516113dc620001b16000396000818160e401526105990152600081816101f10152818161033401526104ac01526113dc6000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80636d14a987116100715780636d14a987146101ec5780637225057e146102135780637f5eccbb14610261578063c1af6b24146102a2578063eda10763146102cf578063fb81a7be146102ef57600080fd5b806303ce4bad146100b9578063187548c8146100df57806324369b2a1461011e57806332de63081461013357806347b314e81461016f57806363a9451014610182575b600080fd5b6100cc6100c7366004610f4d565b610327565b6040519081526020015b60405180910390f35b6101067f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100d6565b61013161012c366004610f4d565b6104a1565b005b61015a610141366004611017565b6002602052600090815260409020805460019091015482565b604080519283526020830191909152016100d6565b61010661017d366004611039565b610580565b6101d1610190366004611017565b60408051808201909152600080825260208201525060ff16600090815260026020908152604091829020825180840190935280548352600101549082015290565b604080518251815260209283015192810192909252016100d6565b6101067f000000000000000000000000000000000000000000000000000000000000000081565b610226610221366004611052565b610612565b60408051825167ffffffffffffffff1916815260208084015163ffffffff9081169183019190915292820151909216908201526060016100d6565b61027461026f366004611052565b6106a4565b6040805167ffffffffffffffff19909416845263ffffffff92831660208501529116908201526060016100d6565b6102b56102b036600461107c565b6106ef565b60405167ffffffffffffffff1990911681526020016100d6565b6102e26102dd3660046110c4565b610778565b6040516100d6919061113c565b6103126102fd366004611017565b60ff1660009081526001602052604090205490565b60405163ffffffff90911681526020016100d6565b6000336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461037a5760405162461bcd60e51b815260040161037190611186565b60405180910390fd5b6000610385836109d0565b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb581141561041d5760405162461bcd60e51b815260206004820152603f60248201527f424c535075626b657952656769737472792e72656769737465724f706572617460448201527f6f723a2063616e6e6f74207265676973746572207a65726f207075626b6579006064820152608401610371565b846001600160a01b031661043082610580565b6001600160a01b0316146104565760405162461bcd60e51b8152600401610371906111fd565b6104608484610a13565b7f5358c5b42179178c8fc757734ac2a3198f9071c765ee0d8389211525f5005246858560405161049192919061125b565b60405180910390a1949350505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104e95760405162461bcd60e51b815260040161037190611186565b60006104f4826109d0565b9050836001600160a01b031661050982610580565b6001600160a01b03161461052f5760405162461bcd60e51b8152600401610371906111fd565b6105418361053c84610bd2565b610a13565b7f14a5172b312e9d2c22b8468f9c70ec2caa9de934fe380734fbc6f3beff2b14ba848460405161057292919061125b565b60405180910390a150505050565b60405163745dcd7360e11b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e8bb9ae690602401602060405180830381865afa1580156105e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060c91906112c0565b92915050565b604080516060810182526000808252602080830182905282840182905260ff86168252600190529190912080548390811061064f5761064f6112dd565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b8204811694830194909452600160e01b900490921690820152905092915050565b600160205281600052604060002081815481106106c057600080fd5b600091825260209091200154604081901b925063ffffffff600160c01b820481169250600160e01b9091041683565b60ff83166000908152600160205260408120805482919084908110610716576107166112dd565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b8204811694830194909452600160e01b900490921690820152905061076f8185610c91565b51949350505050565b606060008367ffffffffffffffff81111561079557610795610eb7565b6040519080825280602002602001820160405280156107be578160200160208202803683370190505b50905060005b848110156109c75760008686838181106107e0576107e06112dd565b919091013560f81c600081815260016020526040902054909250905063ffffffff81161580610849575060ff82166000908152600160205260408120805490919061082d5761082d6112dd565b600091825260209091200154600160c01b900463ffffffff1686105b156108e25760405162461bcd60e51b815260206004820152605e60248201527f424c535075626b657952656769737472792e67657441706b496e64696365734660448201527f6f7251756f72756d734174426c6f636b4e756d6265723a20626c6f636b4e756d60648201527f626572206973206265666f726520746865206669727374207570646174650000608482015260a401610371565b60005b8163ffffffff168163ffffffff1610156109b15760ff83166000908152600160208190526040909120889161091a8486611309565b6109249190611309565b63ffffffff168154811061093a5761093a6112dd565b600091825260209091200154600160c01b900463ffffffff161161099f5760016109648284611309565b61096e9190611309565b858581518110610980576109806112dd565b602002602001019063ffffffff16908163ffffffff16815250506109b1565b806109a98161132e565b9150506108e5565b50505080806109bf90611352565b9150506107c4565b50949350505050565b6000816000015182602001516040516020016109f6929190918252602082015260400190565b604051602081830303815290604052805190602001209050919050565b604080518082019091526000808252602082015260005b8351811015610bcc576000848281518110610a4757610a476112dd565b0160209081015160f81c600081815260019092526040909120549091508015610ac75760ff821660009081526001602081905260409091204391610a8b908461136d565b81548110610a9b57610a9b6112dd565b90600052602060002001600001601c6101000a81548163ffffffff021916908363ffffffff1602179055505b60ff82166000908152600260209081526040918290208251808401909352805483526001015490820152610afb9086610dde565b60ff8316600090815260026020908152604080832084518155828501516001909101558051606081018252838152918201839052810191909152909450610b41856109d0565b67ffffffffffffffff1916815263ffffffff438116602080840191825260ff90951660009081526001808752604080832080548084018255908452979092208551970180549351958301518516600160e01b026001600160e01b0396909516600160c01b026001600160e01b03199094169790921c9690961791909117929092161790555001610a2a565b50505050565b60408051808201909152600080825260208201528151158015610bf757506020820151155b15610c15575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd478460200151610c5a9190611384565b610c84907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4761136d565b905292915050565b919050565b816020015163ffffffff168163ffffffff161015610d2a5760405162461bcd60e51b815260206004820152604a60248201527f424c535075626b657952656769737472792e5f76616c696461746541706b486160448201527f7368466f7251756f72756d4174426c6f636b4e756d6265723a20696e646578206064820152691d1bdbc81c9958d95b9d60b21b608482015260a401610371565b604082015163ffffffff161580610d505750816040015163ffffffff168163ffffffff16105b610dda5760405162461bcd60e51b815260206004820152604f60248201527f424c535075626b657952656769737472792e5f76616c696461746541706b486160448201527f7368466f7251756f72756d4174426c6f636b4e756d6265723a206e6f74206c6160648201526e746573742061706b2075706461746560881b608482015260a401610371565b5050565b6040805180820190915260008082526020820152610dfa610e81565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa9050808015610e3957610e3b565bfe5b5080610e795760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b6044820152606401610371565b505092915050565b60405180608001604052806004906020820280368337509192915050565b6001600160a01b0381168114610eb457600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610ef657610ef6610eb7565b604052919050565b600060408284031215610f1057600080fd5b6040516040810181811067ffffffffffffffff82111715610f3357610f33610eb7565b604052823581526020928301359281019290925250919050565b600080600060808486031215610f6257600080fd5b8335610f6d81610e9f565b925060208481013567ffffffffffffffff80821115610f8b57600080fd5b818701915087601f830112610f9f57600080fd5b813581811115610fb157610fb1610eb7565b610fc3601f8201601f19168501610ecd565b91508082528884828501011115610fd957600080fd5b8084840185840137600084828401015250809450505050610ffd8560408601610efe565b90509250925092565b803560ff81168114610c8c57600080fd5b60006020828403121561102957600080fd5b61103282611006565b9392505050565b60006020828403121561104b57600080fd5b5035919050565b6000806040838503121561106557600080fd5b61106e83611006565b946020939093013593505050565b60008060006060848603121561109157600080fd5b61109a84611006565b9250602084013563ffffffff811681146110b357600080fd5b929592945050506040919091013590565b6000806000604084860312156110d957600080fd5b833567ffffffffffffffff808211156110f157600080fd5b818601915086601f83011261110557600080fd5b81358181111561111457600080fd5b87602082850101111561112657600080fd5b6020928301989097509590910135949350505050565b6020808252825182820181905260009190848201906040850190845b8181101561117a57835163ffffffff1683529284019291840191600101611158565b50909695505050505050565b60208082526051908201527f424c535075626b657952656769737472792e6f6e6c795265676973747279436f60408201527f6f7264696e61746f723a2063616c6c6572206973206e6f74207468652072656760608201527034b9ba393c9031b7b7b93234b730ba37b960791b608082015260a00190565b602080825260409082018190527f424c535075626b657952656769737472792e72656769737465724f7065726174908201527f6f723a206f70657261746f7220646f6573206e6f74206f776e207075626b6579606082015260800190565b60018060a01b038316815260006020604081840152835180604085015260005b818110156112975785810183015185820160600152820161127b565b818111156112a9576000606083870101525b50601f01601f191692909201606001949350505050565b6000602082840312156112d257600080fd5b815161103281610e9f565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600063ffffffff83811690831681811015611326576113266112f3565b039392505050565b600063ffffffff80831681811415611348576113486112f3565b6001019392505050565b6000600019821415611366576113666112f3565b5060010190565b60008282101561137f5761137f6112f3565b500390565b6000826113a157634e487b7160e01b600052601260045260246000fd5b50069056fea2646970667358221220b5fbe08233c3d21babeced5fb8296aaa00110e88951fe5315f5f164c5f10610264736f6c634300080c0033", } // ContractBLSPubkeyRegistryABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/BLSPublicKeyCompendium/binding.go b/contracts/bindings/BLSPublicKeyCompendium/binding.go index 4aa24ba9..1bb5d2fd 100644 --- a/contracts/bindings/BLSPublicKeyCompendium/binding.go +++ b/contracts/bindings/BLSPublicKeyCompendium/binding.go @@ -44,7 +44,7 @@ type BN254G2Point struct { // ContractBLSPublicKeyCompendiumMetaData contains all meta data concerning the ContractBLSPublicKeyCompendium contract. var ContractBLSPublicKeyCompendiumMetaData = &bind.MetaData{ ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"structBN254.G1Point\",\"name\":\"pubkeyG1\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256[2]\",\"name\":\"X\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"Y\",\"type\":\"uint256[2]\"}],\"indexed\":false,\"internalType\":\"structBN254.G2Point\",\"name\":\"pubkeyG2\",\"type\":\"tuple\"}],\"name\":\"NewPubkeyRegistration\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getMessageHash\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"structBN254.G1Point\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"operatorToPubkeyHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"pubkeyHashToOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"structBN254.G1Point\",\"name\":\"signedMessageHash\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"structBN254.G1Point\",\"name\":\"pubkeyG1\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256[2]\",\"name\":\"X\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"Y\",\"type\":\"uint256[2]\"}],\"internalType\":\"structBN254.G2Point\",\"name\":\"pubkeyG2\",\"type\":\"tuple\"}],\"name\":\"registerBLSPublicKey\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x608060405234801561001057600080fd5b50610f56806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063161a334d146100515780631f5ac1b214610066578063de29fac01461008f578063e8bb9ae6146100bd575b600080fd5b61006461005f366004610cd8565b6100fe565b005b610079610074366004610d51565b610430565b6040516100869190610d81565b60405180910390f35b6100af61009d366004610d51565b60006020819052908152604090205481565b604051908152602001610086565b6100e66100cb366004610d98565b6001602052600090815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610086565b6000610109836104cb565b33600090815260208190526040902054909150156101ac5760405162461bcd60e51b815260206004820152604f60248201527f424c535075626c69634b6579436f6d70656e6469756d2e72656769737465724260448201527f4c535075626c69634b65793a206f70657261746f7220616c726561647920726560648201526e6769737465726564207075626b657960881b608482015260a4015b60405180910390fd5b6000818152600160205260409020546001600160a01b03161561024a5760405162461bcd60e51b815260206004820152604a60248201527f424c535075626c69634b6579436f6d70656e6469756d2e72656769737465724260448201527f4c535075626c69634b65793a207075626c6963206b657920616c7265616479206064820152691c9959da5cdd195c995960b21b608482015260a4016101a3565b600061025533610430565b8551602080880151875188830151885189850151875186890151604051999a506000997f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001996102ad9990989796959493929101610dda565b6040516020818303038152906040528051906020012060001c6102d09190610e26565b90506103376102e96102e2878461050e565b88906105a5565b6102f1610639565b61033161032a85610324604080518082018252600080825260209182015281518083019092526001825260029082015290565b9061050e565b86906105a5565b876106f9565b6103c15760405162461bcd60e51b815260206004820152604f60248201527f424c535075626c69634b6579436f6d70656e6469756d2e72656769737465724260448201527f4c535075626c69634b65793a20473120616e642047322070726976617465206b60648201526e0caf240c8de40dcdee840dac2e8c6d608b1b608482015260a4016101a3565b3360008181526020818152604080832087905586835260019091529081902080546001600160a01b03191683179055517fe3fb6613af2e8930cf85d47fcf6db10192224a64c6cbe8023e0eee1ba3828041906104209088908890610e48565b60405180910390a2505050505050565b60408051808201909152600080825260208201526040516bffffffffffffffffffffffff19606084811b8216602084015230901b1660348201524660488201527f456967656e4c617965725f424e3235345f5075626b65795f52656769737472616068820152633a34b7b760e11b60888201526104c590608c0160405160208183030381529060405280519060200120610966565b92915050565b6000816000015182602001516040516020016104f1929190918252602082015260400190565b604051602081830303815290604052805190602001209050919050565b604080518082019091526000808252602082015261052a610b20565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa905080801561055d5761055f565bfe5b508061059d5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016101a3565b505092915050565b60408051808201909152600080825260208201526105c1610b3e565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080801561055d57508061059d5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016101a3565b610641610b5c565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b604080518082018252858152602080820185905282518084019093528583528201839052600091610728610b81565b60005b60028110156108ed576000610741826006610eae565b905084826002811061075557610755610e82565b60200201515183610767836000610ecd565b600c811061077757610777610e82565b602002015284826002811061078e5761078e610e82565b602002015160200151838260016107a59190610ecd565b600c81106107b5576107b5610e82565b60200201528382600281106107cc576107cc610e82565b60200201515151836107df836002610ecd565b600c81106107ef576107ef610e82565b602002015283826002811061080657610806610e82565b602002015151600160200201518361081f836003610ecd565b600c811061082f5761082f610e82565b602002015283826002811061084657610846610e82565b60200201516020015160006002811061086157610861610e82565b602002015183610872836004610ecd565b600c811061088257610882610e82565b602002015283826002811061089957610899610e82565b6020020151602001516001600281106108b4576108b4610e82565b6020020151836108c5836005610ecd565b600c81106108d5576108d5610e82565b602002015250806108e581610ee5565b91505061072b565b506108f6610ba0565b60006020826101808560086107d05a03fa905080801561055d5750806109565760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016101a3565b5051151598975050505050505050565b604080518082019091526000808252602082015260008080610996600080516020610f0183398151915286610e26565b90505b6109a2816109f6565b9093509150600080516020610f018339815191528283098314156109dc576040805180820190915290815260208101919091529392505050565b600080516020610f01833981519152600182089050610999565b60008080600080516020610f018339815191526003600080516020610f0183398151915286600080516020610f01833981519152888909090890506000610a6c827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020610f01833981519152610a78565b91959194509092505050565b600080610a83610ba0565b610a8b610bbe565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa925082801561055d575082610b155760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c75726500000000000060448201526064016101a3565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060400160405280610b6f610bdc565b8152602001610b7c610bdc565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610c3357610c33610bfa565b60405290565b600060408284031215610c4b57600080fd5b6040516040810181811067ffffffffffffffff82111715610c6e57610c6e610bfa565b604052823581526020928301359281019290925250919050565b600082601f830112610c9957600080fd5b610ca1610c10565b806040840185811115610cb357600080fd5b845b81811015610ccd578035845260209384019301610cb5565b509095945050505050565b6000806000838503610100811215610cef57600080fd5b610cf98686610c39565b9350610d088660408701610c39565b92506080607f1982011215610d1c57600080fd5b50610d25610c10565b610d328660808701610c88565b8152610d418660c08701610c88565b6020820152809150509250925092565b600060208284031215610d6357600080fd5b81356001600160a01b0381168114610d7a57600080fd5b9392505050565b8151815260208083015190820152604081016104c5565b600060208284031215610daa57600080fd5b5035919050565b8060005b6002811015610dd4578151845260209384019390910190600101610db5565b50505050565b888152876020820152866040820152856060820152610dfc6080820186610db1565b610e0960c0820185610db1565b610100810192909252610120820152610140019695505050505050565b600082610e4357634e487b7160e01b600052601260045260246000fd5b500690565b825181526020808401519082015260c08101610e68604083018451610db1565b6020830151610e7a6080840182610db1565b509392505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615610ec857610ec8610e98565b500290565b60008219821115610ee057610ee0610e98565b500190565b6000600019821415610ef957610ef9610e98565b506001019056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47a2646970667358221220571b2cc632fe58248f560e92fcf23273c5bd065b6c8e83c7b38e775508b29c1864736f6c634300080c0033", + Bin: "0x608060405234801561001057600080fd5b50610f81806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063161a334d146100515780631f5ac1b214610066578063de29fac01461008f578063e8bb9ae6146100bd575b600080fd5b61006461005f366004610d03565b6100fe565b005b610079610074366004610d7c565b61045b565b6040516100869190610dac565b60405180910390f35b6100af61009d366004610d7c565b60006020819052908152604090205481565b604051908152602001610086565b6100e66100cb366004610dc3565b6001602052600090815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610086565b6000610109836104f6565b33600090815260208190526040902054909150156101ac5760405162461bcd60e51b815260206004820152604f60248201527f424c535075626c69634b6579436f6d70656e6469756d2e72656769737465724260448201527f4c535075626c69634b65793a206f70657261746f7220616c726561647920726560648201526e6769737465726564207075626b657960881b608482015260a4015b60405180910390fd5b6000818152600160205260409020546001600160a01b03161561024a5760405162461bcd60e51b815260206004820152604a60248201527f424c535075626c69634b6579436f6d70656e6469756d2e72656769737465724260448201527f4c535075626c69634b65793a207075626c6963206b657920616c7265616479206064820152691c9959da5cdd195c995960b21b608482015260a4016101a3565b60006102553361045b565b8551602080880151875188830151885189850151875186890151604051999a506000997f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001996102ad9990989796959493929101610e05565b6040516020818303038152906040528051906020012060001c6102d09190610e51565b90506103376102e96102e28784610539565b88906105d0565b6102f1610664565b61033161032a85610324604080518082018252600080825260209182015281518083019092526001825260029082015290565b90610539565b86906105d0565b87610724565b6103ec5760405162461bcd60e51b815260206004820152607460248201527f424c535075626c69634b6579436f6d70656e6469756d2e72656769737465724260448201527f4c535075626c69634b65793a2065697468657220746865204731207369676e6160648201527f747572652069732077726f6e672c206f7220473120616e6420473220707269766084820152730c2e8ca40d6caf240c8de40dcdee840dac2e8c6d60631b60a482015260c4016101a3565b3360008181526020818152604080832087905586835260019091529081902080546001600160a01b03191683179055517fe3fb6613af2e8930cf85d47fcf6db10192224a64c6cbe8023e0eee1ba38280419061044b9088908890610e73565b60405180910390a2505050505050565b60408051808201909152600080825260208201526040516bffffffffffffffffffffffff19606084811b8216602084015230901b1660348201524660488201527f456967656e4c617965725f424e3235345f5075626b65795f52656769737472616068820152633a34b7b760e11b60888201526104f090608c0160405160208183030381529060405280519060200120610991565b92915050565b60008160000151826020015160405160200161051c929190918252602082015260400190565b604051602081830303815290604052805190602001209050919050565b6040805180820190915260008082526020820152610555610b4b565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa90508080156105885761058a565bfe5b50806105c85760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016101a3565b505092915050565b60408051808201909152600080825260208201526105ec610b69565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa90508080156105885750806105c85760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016101a3565b61066c610b87565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b604080518082018252858152602080820185905282518084019093528583528201839052600091610753610bac565b60005b600281101561091857600061076c826006610ed9565b905084826002811061078057610780610ead565b60200201515183610792836000610ef8565b600c81106107a2576107a2610ead565b60200201528482600281106107b9576107b9610ead565b602002015160200151838260016107d09190610ef8565b600c81106107e0576107e0610ead565b60200201528382600281106107f7576107f7610ead565b602002015151518361080a836002610ef8565b600c811061081a5761081a610ead565b602002015283826002811061083157610831610ead565b602002015151600160200201518361084a836003610ef8565b600c811061085a5761085a610ead565b602002015283826002811061087157610871610ead565b60200201516020015160006002811061088c5761088c610ead565b60200201518361089d836004610ef8565b600c81106108ad576108ad610ead565b60200201528382600281106108c4576108c4610ead565b6020020151602001516001600281106108df576108df610ead565b6020020151836108f0836005610ef8565b600c811061090057610900610ead565b6020020152508061091081610f10565b915050610756565b50610921610bcb565b60006020826101808560086107d05a03fa90508080156105885750806109815760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016101a3565b5051151598975050505050505050565b6040805180820190915260008082526020820152600080806109c1600080516020610f2c83398151915286610e51565b90505b6109cd81610a21565b9093509150600080516020610f2c833981519152828309831415610a07576040805180820190915290815260208101919091529392505050565b600080516020610f2c8339815191526001820890506109c4565b60008080600080516020610f2c8339815191526003600080516020610f2c83398151915286600080516020610f2c833981519152888909090890506000610a97827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020610f2c833981519152610aa3565b91959194509092505050565b600080610aae610bcb565b610ab6610be9565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa9250828015610588575082610b405760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c75726500000000000060448201526064016101a3565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060400160405280610b9a610c07565b8152602001610ba7610c07565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610c5e57610c5e610c25565b60405290565b600060408284031215610c7657600080fd5b6040516040810181811067ffffffffffffffff82111715610c9957610c99610c25565b604052823581526020928301359281019290925250919050565b600082601f830112610cc457600080fd5b610ccc610c3b565b806040840185811115610cde57600080fd5b845b81811015610cf8578035845260209384019301610ce0565b509095945050505050565b6000806000838503610100811215610d1a57600080fd5b610d248686610c64565b9350610d338660408701610c64565b92506080607f1982011215610d4757600080fd5b50610d50610c3b565b610d5d8660808701610cb3565b8152610d6c8660c08701610cb3565b6020820152809150509250925092565b600060208284031215610d8e57600080fd5b81356001600160a01b0381168114610da557600080fd5b9392505050565b8151815260208083015190820152604081016104f0565b600060208284031215610dd557600080fd5b5035919050565b8060005b6002811015610dff578151845260209384019390910190600101610de0565b50505050565b888152876020820152866040820152856060820152610e276080820186610ddc565b610e3460c0820185610ddc565b610100810192909252610120820152610140019695505050505050565b600082610e6e57634e487b7160e01b600052601260045260246000fd5b500690565b825181526020808401519082015260c08101610e93604083018451610ddc565b6020830151610ea56080840182610ddc565b509392505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615610ef357610ef3610ec3565b500290565b60008219821115610f0b57610f0b610ec3565b500190565b6000600019821415610f2457610f24610ec3565b506001019056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47a264697066735822122077f5f60f7e746ac608a05d181a66caa39b1f066f7c956b6b32cd1e6d1e185abb64736f6c634300080c0033", } // ContractBLSPublicKeyCompendiumABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/BLSRegistryCoordinatorWithIndices/binding.go b/contracts/bindings/BLSRegistryCoordinatorWithIndices/binding.go index dc696915..a86730a7 100644 --- a/contracts/bindings/BLSRegistryCoordinatorWithIndices/binding.go +++ b/contracts/bindings/BLSRegistryCoordinatorWithIndices/binding.go @@ -71,8 +71,8 @@ type ISignatureUtilsSignatureWithSaltAndExpiry struct { // ContractBLSRegistryCoordinatorWithIndicesMetaData contains all meta data concerning the ContractBLSRegistryCoordinatorWithIndices contract. var ContractBLSRegistryCoordinatorWithIndicesMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"contractISlasher\",\"name\":\"_slasher\",\"type\":\"address\"},{\"internalType\":\"contractIServiceManager\",\"name\":\"_serviceManager\",\"type\":\"address\"},{\"internalType\":\"contractIStakeRegistry\",\"name\":\"_stakeRegistry\",\"type\":\"address\"},{\"internalType\":\"contractIBLSPubkeyRegistry\",\"name\":\"_blsPubkeyRegistry\",\"type\":\"address\"},{\"internalType\":\"contractIIndexRegistry\",\"name\":\"_indexRegistry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"prevChurnApprover\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newChurnApprover\",\"type\":\"address\"}],\"name\":\"ChurnApproverUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"prevEjector\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newEjector\",\"type\":\"address\"}],\"name\":\"EjectorUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"}],\"name\":\"OperatorDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"}],\"name\":\"OperatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxOperatorCount\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"kickBIPsOfOperatorStake\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"kickBIPsOfTotalStake\",\"type\":\"uint16\"}],\"indexed\":false,\"internalType\":\"structIBLSRegistryCoordinatorWithIndices.OperatorSetParam\",\"name\":\"operatorSetParams\",\"type\":\"tuple\"}],\"name\":\"OperatorSetParamsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"socket\",\"type\":\"string\"}],\"name\":\"OperatorSocketUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contractIPauserRegistry\",\"name\":\"pauserRegistry\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contractIPauserRegistry\",\"name\":\"newPauserRegistry\",\"type\":\"address\"}],\"name\":\"PauserRegistrySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"OPERATOR_CHURN_APPROVAL_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blsPubkeyRegistry\",\"outputs\":[{\"internalType\":\"contractIBLSPubkeyRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"registeringOperatorId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"structBN254.G1Point\",\"name\":\"pubkey\",\"type\":\"tuple\"}],\"internalType\":\"structIBLSRegistryCoordinatorWithIndices.OperatorKickParam[]\",\"name\":\"operatorKickParams\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"name\":\"calculateOperatorChurnApprovalDigestHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"churnApprover\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"deregistrationData\",\"type\":\"bytes\"}],\"name\":\"deregisterOperatorWithCoordinator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"structBN254.G1Point\",\"name\":\"pubkey\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"operatorIdsToSwap\",\"type\":\"bytes32[]\"}],\"name\":\"deregisterOperatorWithCoordinator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"structBN254.G1Point\",\"name\":\"pubkey\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"operatorIdsToSwap\",\"type\":\"bytes32[]\"}],\"name\":\"ejectOperatorFromCoordinator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ejector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"}],\"name\":\"getCurrentQuorumBitmapByOperatorId\",\"outputs\":[{\"internalType\":\"uint192\",\"name\":\"\",\"type\":\"uint192\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperator\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"enumIRegistryCoordinator.OperatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"internalType\":\"structIRegistryCoordinator.Operator\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"}],\"name\":\"getOperatorFromId\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"getOperatorSetParams\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxOperatorCount\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"kickBIPsOfOperatorStake\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"kickBIPsOfTotalStake\",\"type\":\"uint16\"}],\"internalType\":\"structIBLSRegistryCoordinatorWithIndices.OperatorSetParam\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorStatus\",\"outputs\":[{\"internalType\":\"enumIRegistryCoordinator.OperatorStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getQuorumBitmapByOperatorIdAtBlockNumberByIndex\",\"outputs\":[{\"internalType\":\"uint192\",\"name\":\"\",\"type\":\"uint192\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[]\",\"name\":\"operatorIds\",\"type\":\"bytes32[]\"}],\"name\":\"getQuorumBitmapIndicesByOperatorIdsAtBlockNumber\",\"outputs\":[{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getQuorumBitmapUpdateByOperatorIdByIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"updateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint192\",\"name\":\"quorumBitmap\",\"type\":\"uint192\"}],\"internalType\":\"structIRegistryCoordinator.QuorumBitmapUpdate\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"}],\"name\":\"getQuorumBitmapUpdateByOperatorIdLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"indexRegistry\",\"outputs\":[{\"internalType\":\"contractIIndexRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_churnApprover\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_ejector\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxOperatorCount\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"kickBIPsOfOperatorStake\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"kickBIPsOfTotalStake\",\"type\":\"uint16\"}],\"internalType\":\"structIBLSRegistryCoordinatorWithIndices.OperatorSetParam[]\",\"name\":\"_operatorSetParams\",\"type\":\"tuple[]\"},{\"internalType\":\"contractIPauserRegistry\",\"name\":\"_pauserRegistry\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_initialPausedStatus\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"isChurnApproverSaltUsed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"numRegistries\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauserRegistry\",\"outputs\":[{\"internalType\":\"contractIPauserRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"structBN254.G1Point\",\"name\":\"pubkey\",\"type\":\"tuple\"},{\"internalType\":\"string\",\"name\":\"socket\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"structBN254.G1Point\",\"name\":\"pubkey\",\"type\":\"tuple\"}],\"internalType\":\"structIBLSRegistryCoordinatorWithIndices.OperatorKickParam[]\",\"name\":\"operatorKickParams\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"internalType\":\"structISignatureUtils.SignatureWithSaltAndExpiry\",\"name\":\"signatureWithSaltAndExpiry\",\"type\":\"tuple\"}],\"name\":\"registerOperatorWithCoordinator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"registrationData\",\"type\":\"bytes\"}],\"name\":\"registerOperatorWithCoordinator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"structBN254.G1Point\",\"name\":\"pubkey\",\"type\":\"tuple\"},{\"internalType\":\"string\",\"name\":\"socket\",\"type\":\"string\"}],\"name\":\"registerOperatorWithCoordinator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"registries\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"serviceManager\",\"outputs\":[{\"internalType\":\"contractIServiceManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_churnApprover\",\"type\":\"address\"}],\"name\":\"setChurnApprover\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ejector\",\"type\":\"address\"}],\"name\":\"setEjector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxOperatorCount\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"kickBIPsOfOperatorStake\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"kickBIPsOfTotalStake\",\"type\":\"uint16\"}],\"internalType\":\"structIBLSRegistryCoordinatorWithIndices.OperatorSetParam\",\"name\":\"operatorSetParam\",\"type\":\"tuple\"}],\"name\":\"setOperatorSetParams\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIPauserRegistry\",\"name\":\"newPauserRegistry\",\"type\":\"address\"}],\"name\":\"setPauserRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"internalType\":\"contractISlasher\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakeRegistry\",\"outputs\":[{\"internalType\":\"contractIStakeRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"socket\",\"type\":\"string\"}],\"name\":\"updateSocket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x6101e06040523480156200001257600080fd5b506040516200530638038062005306833981016040819052620000359162000183565b604080518082018252601681527f4156535265676973747279436f6f7264696e61746f720000000000000000000060208083019182528351808501909452600684526576302e302e3160d01b908401528151902060e08190527f6bda7e3f385e48841048390444cced5cc795af87758af67622e5f4f0882c4a996101008190524660a0529192917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6200012d8184846040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b6080523060c05261012052505050506001600160a01b0394851661014052928416610160529083166101a052821661018052166101c05262000203565b6001600160a01b03811681146200018057600080fd5b50565b600080600080600060a086880312156200019c57600080fd5b8551620001a9816200016a565b6020870151909550620001bc816200016a565b6040870151909450620001cf816200016a565b6060870151909350620001e2816200016a565b6080870151909250620001f5816200016a565b809150509295509295909350565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c05161500c620002fa60003960008181610576015281816118400152818161279f015261307b01526000818161051601528181610d7b01528181610e6201528181610ed3015281816117ca0152818161271a0152612ffb01526000818161042d0152818161120a01528181611809015281816125710152612f7b0152600081816104540152818161127f0152818161133a0152611b69015260006105c301526000613a2801526000613a7701526000613a52015260006139ab015260006139d5015260006139ff015261500c6000f3fe608060405234801561001057600080fd5b50600436106102485760003560e01c8063595c6a671161013b578063ab269b2d116100b8578063d72d8dd61161007c578063d72d8dd614610632578063e65797ad1461063a578063f807d627146106dd578063fabc1cbc146106f0578063fd39105a1461070357600080fd5b8063ab269b2d146105ab578063b1344271146105be578063c66ab9ca146105e5578063c81b1ff4146105f8578063ca0de8821461060b57600080fd5b806368304835116100ff578063683048351461051157806385020d4914610538578063886f1195146105585780639e9923c214610571578063a79323f61461059857600080fd5b8063595c6a67146104bc5780635ac86ab7146104c45780635b0b829f146104e35780635c975abb146104f65780636347c900146104fe57600080fd5b8063296bb064116101c95780633561deb11161018d5780633561deb1146104285780633998fdd31461044f5780634b76b9d514610476578063526ea94e146104895780635865c60c1461049c57600080fd5b8063296bb064146103b157806329d1e0c3146103c45780632cdd1e86146103d75780633064620d146103ea5780633431af251461041557600080fd5b806313542a4e1161021057806313542a4e1461031c578063136439dd146103455780631478851f14610358578063250075761461038b57806328f61b311461039e57600080fd5b80630159f1ce1461024d578063054310e61461029b578063055a62b6146102c65780630cf4b767146102f457806310d67a2f14610309575b600080fd5b61026061025b366004613e32565b61073f565b60408051825163ffffffff908116825260208085015190911690820152918101516001600160c01b0316908201526060015b60405180910390f35b6037546102ae906001600160a01b031681565b6040516001600160a01b039091168152602001610292565b6102e66102d4366004613e54565b60009081526033602052604090205490565b604051908152602001610292565b610307610302366004613f59565b6107d0565b005b610307610317366004613fb2565b6108d1565b6102e661032a366004613fb2565b6001600160a01b031660009081526034602052604090205490565b610307610353366004613e54565b610984565b61037b610366366004613e54565b60356020526000908152604090205460ff1681565b6040519015158152602001610292565b6103076103993660046140cd565b610ac1565b6038546102ae906001600160a01b031681565b6102ae6103bf366004613e54565b6111f1565b6103076103d2366004613fb2565b61127d565b6103076103e5366004613fb2565b611338565b6103fd6103f83660046141e1565b6113f3565b6040516001600160c01b039091168152602001610292565b6103fd610423366004613e54565b6115f4565b6102ae7f000000000000000000000000000000000000000000000000000000000000000081565b6102ae7f000000000000000000000000000000000000000000000000000000000000000081565b6103076104843660046142a1565b6116aa565b61030761049736600461437e565b6119d6565b6104af6104aa366004613fb2565b611a27565b6040516102929190614421565b610307611a9b565b61037b6104d2366004614454565b6001805460ff9092161b9081161490565b6103076104f136600461446f565b611b67565b6001546102e6565b6102ae61050c366004613e54565b611c27565b6102ae7f000000000000000000000000000000000000000000000000000000000000000081565b61054b610546366004614509565b611c51565b6040516102929190614558565b6000546102ae906201000090046001600160a01b031681565b6102ae7f000000000000000000000000000000000000000000000000000000000000000081565b6103076105a63660046145a2565b611f8c565b6102e66105b9366004614679565b61201f565b6102ae7f000000000000000000000000000000000000000000000000000000000000000081565b6103076105f336600461472d565b612083565b61030761060636600461437e565b6120ee565b6102e67fae63aa1318751f64ef850e045417f86811eaecee1cebc226904d237b80704d9281565b6036546102e6565b6106a9610648366004614454565b60408051606080820183526000808352602080840182905292840181905260ff9490941684526032825292829020825193840183525463ffffffff8116845261ffff600160201b8204811692850192909252600160301b9004169082015290565b60408051825163ffffffff16815260208084015161ffff908116918301919091529282015190921690820152606001610292565b6103076106eb3660046147b1565b612135565b6103076106fe366004613e54565b612169565b610732610711366004613fb2565b6001600160a01b031660009081526034602052604090206001015460ff1690565b604051610292919061482e565b6040805160608101825260008082526020820181905291810191909152600083815260336020526040902080548390811061077c5761077c61483c565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160c01b03600160401b909304929092169082015290505b92915050565b60013360009081526034602052604090206001015460ff1660028111156107f9576107f96143e9565b146108855760405162461bcd60e51b815260206004820152604b60248201527f424c535265676973747279436f6f7264696e61746f7257697468496e6469636960448201527f65732e757064617465536f636b65743a206f70657261746f72206973206e6f7460648201526a081c9959da5cdd195c995960aa1b608482015260a4015b60405180910390fd5b33600090815260346020526040908190205490517fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa906108c69084906148ae565b60405180910390a250565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610924573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094891906148c1565b6001600160a01b0316336001600160a01b0316146109785760405162461bcd60e51b815260040161087c906148de565b610981816122c5565b50565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156109d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f59190614928565b610a115760405162461bcd60e51b815260040161087c9061494a565b60015481811614610a8a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161087c565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020016108c6565b600180546000919081161415610ae95760405162461bcd60e51b815260040161087c90614992565b6000610b2e338b8b8b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506123ca92505050565b6040805160018082528183019092529192506000919060208083019080368337019050509050610b5d89612a6b565b81600081518110610b7057610b7061483c565b602002602001018181525050610bf381600081518110610b9257610b9261483c565b60200260200101518787808060200260200160405190810160405280939291908181526020016000905b82821015610be857610bd9608083028601368190038101906149c9565b81526020019060010190610bbc565b505050505086612aae565b6000805b8b8110156111e25760008d8d83818110610c1357610c1361483c565b919091013560f81c6000818152603260209081526040918290208251606081018452905463ffffffff811680835261ffff600160201b8304811694840194909452600160301b90910490921692810192909252885192945090925090879085908110610c8157610c8161483c565b602002602001015163ffffffff1611610c9b5750506111d0565b8160ff168a8a86818110610cb157610cb161483c565b610cc79260206080909202019081019150614454565b60ff1614610d605760405162461bcd60e51b81526020600482015260666024820152600080516020614fb783398151915260448201527f732e72656769737465724f70657261746f7257697468436f6f7264696e61746f60648201527f723a2071756f72756d4e756d626572206e6f74207468652073616d65206173206084820152651cda59db995960d21b60a482015260c40161087c565b604051630c8f739d60e41b815260ff831660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c8f739d090602401602060405180830381865afa158015610dca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dee91906149e5565b90506000603460008d8d88818110610e0857610e0861483c565b9050608002016020016020810190610e209190613fb2565b6001600160a01b039081168252602082019290925260409081016000908120549151631aad4e3560e21b81526004810183905260ff88166024820152919350917f00000000000000000000000000000000000000000000000000000000000000001690636ab538d490604401602060405180830381865afa158015610ea9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecd91906149e5565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636ab538d48a600081518110610f1357610f1361483c565b6020026020010151886040518363ffffffff1660e01b8152600401610f4592919091825260ff16602082015260400190565b602060405180830381865afa158015610f62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8691906149e5565b602086015190915061271090610fa09061ffff1684614a24565b610faa9190614a53565b6001600160601b0316816001600160601b03161161106a5760405162461bcd60e51b815260206004820152607d6024820152600080516020614fb783398151915260448201527f732e72656769737465724f70657261746f7257697468436f6f7264696e61746f60648201527f723a207265676973746572696e67206f70657261746f7220686173206c65737360848201527f207468616e206b69636b424950734f664f70657261746f725374616b6500000060a482015260c40161087c565b6040850151612710906110819061ffff1686614a24565b61108b9190614a53565b6001600160601b0316826001600160601b0316106111445760405162461bcd60e51b81526020600482015260766024820152600080516020614fb783398151915260448201527f732e72656769737465724f70657261746f7257697468436f6f7264696e61746f60648201527f723a206f70657261746f7220746f206b69636b20686173206d6f7265207468616084820152756e206b69636b424950534f66546f74616c5374616b6560501b60a482015260c40161087c565b8761114e81614a87565b9850505050505050506111d088888381811061116c5761116c61483c565b90506080020160200160208101906111849190613fb2565b8e838f611192826001614aa2565b9261119f93929190614aba565b8b8b868181106111b1576111b161483c565b9050608002016040018036038101906111ca9190614ae4565b87612c7b565b806111da81614a87565b915050610bf7565b50505050505050505050505050565b6040516308f6629d60e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906347b314e890602401602060405180830381865afa158015611259573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ca91906148c1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ff91906148c1565b6001600160a01b0316336001600160a01b03161461132f5760405162461bcd60e51b815260040161087c90614b00565b6109818161322a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611396573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ba91906148c1565b6001600160a01b0316336001600160a01b0316146113ea5760405162461bcd60e51b815260040161087c90614b00565b61098181613293565b60008381526033602052604081208054829190849081106114165761141661483c565b600091825260209182902060408051606081018252929091015463ffffffff808216808552600160201b8304821695850195909552600160401b9091046001600160c01b031691830191909152909250851610156115165760405162461bcd60e51b815260206004820152607f6024820152600080516020614fb783398151915260448201527f732e67657451756f72756d4269746d617042794f70657261746f72496441744260648201527f6c6f636b4e756d6265724279496e6465783a2071756f72756d4269746d61705560848201527f70646174652069732066726f6d20616674657220626c6f636b4e756d6265720060a482015260c40161087c565b8363ffffffff16816020015163ffffffff16118061153c5750602081015163ffffffff16155b6115e85760405162461bcd60e51b81526020600482015260806024820152600080516020614fb783398151915260448201527f732e67657451756f72756d4269746d617042794f70657261746f72496441744260648201527f6c6f636b4e756d6265724279496e6465783a2071756f72756d4269746d61705560848201527f70646174652069732066726f6d206265666f726520626c6f636b4e756d62657260a482015260c40161087c565b60400151949350505050565b60008181526033602052604081205480158061165057506000838152603360205260409020611624600183614b7c565b815481106116345761163461483c565b600091825260209091200154600160201b900463ffffffff1615155b1561165e5750600092915050565b6000838152603360205260409020611677600183614b7c565b815481106116875761168761483c565b600091825260209091200154600160401b90046001600160c01b03169392505050565b600054610100900460ff16158080156116ca5750600054600160ff909116105b806116e45750303b1580156116e4575060005460ff166001145b6117475760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161087c565b6000805460ff19166001179055801561176a576000805461ff0019166101001790555b61177483836132fc565b61177d8661322a565b61178685613293565b603680546001808201835560008390527f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b891820180546001600160a01b03199081167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03908116918217909355855480850187558501805483167f0000000000000000000000000000000000000000000000000000000000000000851617905585549384019095559190920180549091167f0000000000000000000000000000000000000000000000000000000000000000909216919091179055845160408051639aa1653d60e01b81529051919291639aa1653d916004808201926020929091908290030181865afa1580156118a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118cc9190614b93565b61ffff16146119405760405162461bcd60e51b81526020600482015260466024820152600080516020614fb783398151915260448201527f733a206f70657261746f722073657420706172616d73206c656e677468206d696064820152650e6dac2e8c6d60d31b608482015260a40161087c565b60005b84518160ff1610156119875761197581868360ff16815181106119685761196861483c565b60200260200101516133e8565b8061197f81614bb0565b915050611943565b5080156119ce576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b6001805460009190811614156119fe5760405162461bcd60e51b815260040161087c90614992565b600080611a0d84860186614bd0565b91509150611a1e3388888585613495565b50505050505050565b60408051808201909152600080825260208201526001600160a01b0382166000908152603460209081526040918290208251808401909352805483526001810154909183019060ff166002811115611a8157611a816143e9565b6002811115611a9257611a926143e9565b90525092915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015611ae8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0c9190614928565b611b285760405162461bcd60e51b815260040161087c9061494a565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be991906148c1565b6001600160a01b0316336001600160a01b031614611c195760405162461bcd60e51b815260040161087c90614b00565b611c2382826133e8565b5050565b60368181548110611c3757600080fd5b6000918252602090912001546001600160a01b0316905081565b6060600082516001600160401b03811115611c6e57611c6e613e6d565b604051908082528060200260200182016040528015611c97578160200160208202803683370190505b50905060005b8351811015611f8457600060336000868481518110611cbe57611cbe61483c565b6020026020010151815260200190815260200160002080549050905060005b8163ffffffff168163ffffffff161015611f6f578663ffffffff1660336000888681518110611d0e57611d0e61483c565b6020026020010151815260200190815260200160002060018385611d329190614c14565b611d3c9190614c14565b63ffffffff1681548110611d5257611d5261483c565b60009182526020909120015463ffffffff1611611f5d5760336000878581518110611d7f57611d7f61483c565b6020026020010151815260200190815260200160002060018284611da39190614c14565b611dad9190614c14565b63ffffffff1681548110611dc357611dc361483c565b600091825260209091200154600160201b900463ffffffff161580611e5f57508663ffffffff1660336000888681518110611e0057611e0061483c565b6020026020010151815260200190815260200160002060018385611e249190614c14565b611e2e9190614c14565b63ffffffff1681548110611e4457611e4461483c565b600091825260209091200154600160201b900463ffffffff16115b611f165760405162461bcd60e51b81526020600482015260826024820152600080516020614fb783398151915260448201527f732e67657451756f72756d4269746d6170496e646963657342794f706572617460648201527f6f724964734174426c6f636b4e756d6265723a206f70657261746f724964206860848201527f6173206e6f2071756f72756d4269746d61707320617420626c6f636b4e756d6260a48201526132b960f11b60c482015260e40161087c565b6001611f228284614c14565b611f2c9190614c14565b848481518110611f3e57611f3e61483c565b602002602001019063ffffffff16908163ffffffff1681525050611f6f565b80611f6781614c39565b915050611cdd565b50508080611f7c90614a87565b915050611c9d565b509392505050565b6038546001600160a01b0316331461200b5760405162461bcd60e51b81526020600482015260486024820152600080516020614fb783398151915260448201527f732e6f6e6c79456a6563746f723a2063616c6c6572206973206e6f74207468656064820152671032b532b1ba37b960c11b608482015260a40161087c565b6120188585858585612c7b565b5050505050565b60006120787fae63aa1318751f64ef850e045417f86811eaecee1cebc226904d237b80704d928686868660405160200161205d959493929190614c5d565b604051602081830303815290604052805190602001206135ac565b90505b949350505050565b6001805460009190811614156120ab5760405162461bcd60e51b815260040161087c90614992565b6119ce3387878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061349592505050565b60018054600290811614156121155760405162461bcd60e51b815260040161087c90614992565b60008061212484860186614cf1565b91509150611a1e3388888585612c7b565b600180546002908116141561215c5760405162461bcd60e51b815260040161087c90614992565b6120183386868686612c7b565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e091906148c1565b6001600160a01b0316336001600160a01b0316146122105760405162461bcd60e51b815260040161087c906148de565b60015419811960015419161461228e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161087c565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016108c6565b6001600160a01b0381166123535760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161087c565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b606061240c8686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c2392505050565b600061244d86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506135fa92505050565b90506001600160c01b038111156124e25760405162461bcd60e51b815260206004820152606b6024820152600080516020614fb78339815191526044820152600080516020614f9783398151915260648201527f6f723a2071756f72756d4269746d61702065786365656473206f66206d61782060848201526a6269746d61702073697a6560a81b60a482015260c40161087c565b806125575760405162461bcd60e51b815260206004820152605c6024820152600080516020614fb78339815191526044820152600080516020614f9783398151915260648201527f6f723a2071756f72756d4269746d61702063616e6e6f74206265203000000000608482015260a40161087c565b6040516303ce4bad60e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906303ce4bad906125ac908b908b908b908b90600401614d52565b6020604051808303816000875af11580156125cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ef9190614d8f565b6000818152603360205260409020549091508015612703576000828152603360205260408120612620600184614b7c565b815481106126305761263061483c565b6000918252602090912001546001600160c01b03600160401b9091048181169250851616156126fd5760405162461bcd60e51b81526020600482015260856024820152600080516020614fb78339815191526044820152600080516020614f9783398151915260648201527f6f723a206f70657261746f7220616c726561647920726567697374657265642060848201527f666f7220736f6d652071756f72756d73206265696e672072656769737465726560a48201526432103337b960d91b60c482015260e40161087c565b92909217915b604051632550477760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632550477790612755908c9086908d908d90600401614da8565b600060405180830381600087803b15801561276f57600080fd5b505af1158015612783573d6000803e3d6000fd5b505060405162bff04d60e01b8152600092506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016915062bff04d906127d89086908d908d90600401614dda565b6000604051808303816000875af11580156127f7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261281f9190810190614df4565b600084815260336020526040902054909150801561288e5760008481526033602052604090204390612852600184614b7c565b815481106128625761286261483c565b9060005260206000200160000160046101000a81548163ffffffff021916908363ffffffff1602179055505b6000848152603360209081526040808320815160608101835263ffffffff43811682528185018681526001600160c01b038c8116848701908152855460018082018855968a52888a2095519501805493519151909216600160401b026001600160401b03918516600160201b0267ffffffffffffffff19909416959094169490941791909117929092161790556001600160a01b038f168452603490925290912081015460ff166002811115612946576129466143e9565b146129e3576040805180820190915284815260208101600190526001600160a01b038c166000908152603460209081526040909120825181559082015160018083018054909160ff19909116908360028111156129a5576129a56143e9565b0217905550506040518591506001600160a01b038d16907fe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe90600090a35b612a238b8b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c2392505050565b837fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa88604051612a5391906148ae565b60405180910390a25093505050505b95945050505050565b600081600001518260200151604051602001612a91929190918252602082015260400190565b604051602081830303815290604052805190602001209050919050565b60208082015160009081526035909152604090205460ff1615612b735760405162461bcd60e51b81526020600482015260776024820152600080516020614fb783398151915260448201527f732e5f766572696679436875726e417070726f7665725369676e61747572654f60648201527f6e4f70657261746f72436875726e417070726f76616c3a20636875726e41707060848201527f726f7665722073616c7420616c7265616479207573656400000000000000000060a482015260c40161087c565b4281604001511015612c275760405162461bcd60e51b81526020600482015260776024820152600080516020614fb783398151915260448201527f732e5f766572696679436875726e417070726f7665725369676e61747572654f60648201527f6e4f70657261746f72436875726e417070726f76616c3a20636875726e41707060848201527f726f766572207369676e6174757265206578706972656400000000000000000060a482015260c40161087c565b6020808201805160009081526035909252604091829020805460ff19166001179055603754905191830151612c76926001600160a01b0390921691612c6f918791879161201f565b8351613787565b505050565b60016001600160a01b03861660009081526034602052604090206001015460ff166002811115612cad57612cad6143e9565b14612d345760405162461bcd60e51b81526020600482015260606024820152600080516020614fb783398151915260448201527f732e5f646572656769737465724f70657261746f7257697468436f6f7264696e60648201527f61746f723a206f70657261746f72206973206e6f742072656769737465726564608482015260a40161087c565b6001600160a01b038516600090815260346020526040902054612d5683612a6b565b8114612df25760405162461bcd60e51b815260206004820152606b6024820152600080516020614fb783398151915260448201527f732e5f646572656769737465724f70657261746f7257697468436f6f7264696e60648201527f61746f723a206f70657261746f72496420646f6573206e6f74206d617463682060848201526a0e0eac4d6caf240d0c2e6d60ab1b60a482015260c40161087c565b6000612e3386868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506135fa92505050565b60008381526033602052604081205491925090612e5290600190614b7c565b60008481526033602052604081208054929350909183908110612e7757612e7761483c565b6000918252602082200154600160401b90049384166001600160c01b0390811694169150612ea484613941565b9050805160001415612f585760405162461bcd60e51b81526020600482015260806024820152600080516020614fb783398151915260448201527f732e5f646572656769737465724f70657261746f7257697468436f6f7264696e60648201527f61746f723a206f70657261746f72206973206e6f74207265676973746572656460848201527f20666f7220616e79206f66207468652070726f76696465642071756f72756d7360a482015260c40161087c565b6001600160c01b038216841460405163121b4d9560e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906324369b2a90612fb4908e9086908d90600401614e8d565b600060405180830381600087803b158015612fce57600080fd5b505af1158015612fe2573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd91506130349089908690600401614ec9565b600060405180830381600087803b15801561304e57600080fd5b505af1158015613062573d6000803e3d6000fd5b5050604051630854259f60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169250630854259f91506130b690899086908c90600401614ee2565b600060405180830381600087803b1580156130d057600080fd5b505af11580156130e4573d6000803e3d6000fd5b505050600087815260336020526040902080544392508690811061310a5761310a61483c565b9060005260206000200160000160046101000a81548163ffffffff021916908363ffffffff160217905550806131ce576000868152603360209081526040808320815160608101835263ffffffff43811682528185018681526001600160c01b038c198b168116958401958652845460018101865594885295909620915191909201805495519351909416600160401b026001600160401b03938316600160201b0267ffffffffffffffff199096169190921617939093171691909117905561321d565b6001600160a01b038b16600081815260346020526040808220600101805460ff19166002179055518892917f396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e491a35b5050505050505050505050565b603754604080516001600160a01b03928316815291831660208301527f315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c910160405180910390a1603780546001600160a01b0319166001600160a01b0392909216919091179055565b603854604080516001600160a01b03928316815291831660208301527f8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9910160405180910390a1603880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546201000090046001600160a01b031615801561332357506001600160a01b03821615155b6133a55760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161087c565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2611c23826122c5565b60ff8216600081815260326020908152604091829020845181548684018051888701805163ffffffff90951665ffffffffffff199094168417600160201b61ffff938416021767ffff0000000000001916600160301b95831695909502949094179094558551918252518316938101939093525116918101919091527f3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac9060600160405180910390a25050565b60006134a486868686866123ca565b905060005b8151811015611a1e57603260008787848181106134c8576134c861483c565b919091013560f81c825250602081019190915260400160002054825163ffffffff909116908390839081106134ff576134ff61483c565b602002602001015163ffffffff16111561359a5760405162461bcd60e51b815260206004820152606e6024820152600080516020614fb78339815191526044820152600080516020614f9783398151915260648201527f6f72416e644e6f4f76657266696c6c656451756f72756d733a2071756f72756d60848201526d081a5cc81bdd995c999a5b1b195960921b60a482015260c40161087c565b806135a481614a87565b9150506134a9565b60006107ca6135b961399e565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6000610100825111156136835760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a40161087c565b815161369157506000919050565b600080836000815181106136a7576136a761483c565b0160200151600160f89190911c81901b92505b845181101561377e578481815181106136d5576136d561483c565b0160200151600160f89190911c1b915082821161376a5760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a40161087c565b9181179161377781614a87565b90506136ba565b50909392505050565b6001600160a01b0383163b156138a157604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906137c79086908690600401614ec9565b602060405180830381865afa1580156137e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138089190614f3d565b6001600160e01b03191614612c765760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161087c565b826001600160a01b03166138b58383613ac5565b6001600160a01b031614612c765760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161087c565b60606000805b610100811015613997576001811b91508382161561398757828160f81b604051602001613975929190614f67565b60405160208183030381529060405292505b61399081614a87565b9050613947565b5050919050565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156139f757507f000000000000000000000000000000000000000000000000000000000000000046145b15613a2157507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6000806000613ad48585613ae1565b91509150611f8481613b51565b600080825160411415613b185760208301516040840151606085015160001a613b0c87828585613d0c565b94509450505050613b4a565b825160401415613b425760208301516040840151613b37868383613df9565b935093505050613b4a565b506000905060025b9250929050565b6000816004811115613b6557613b656143e9565b1415613b6e5750565b6001816004811115613b8257613b826143e9565b1415613bd05760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161087c565b6002816004811115613be457613be46143e9565b1415613c325760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161087c565b6003816004811115613c4657613c466143e9565b1415613c9f5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161087c565b6004816004811115613cb357613cb36143e9565b14156109815760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161087c565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115613d435750600090506003613df0565b8460ff16601b14158015613d5b57508460ff16601c14155b15613d6c5750600090506004613df0565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613dc0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116613de957600060019250925050613df0565b9150600090505b94509492505050565b6000806001600160ff1b03831681613e1660ff86901c601b614aa2565b9050613e2487828885613d0c565b935093505050935093915050565b60008060408385031215613e4557600080fd5b50508035926020909101359150565b600060208284031215613e6657600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715613ea557613ea5613e6d565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613ed357613ed3613e6d565b604052919050565b60006001600160401b03831115613ef457613ef4613e6d565b613f07601f8401601f1916602001613eab565b9050828152838383011115613f1b57600080fd5b828260208301376000602084830101529392505050565b600082601f830112613f4357600080fd5b613f5283833560208501613edb565b9392505050565b600060208284031215613f6b57600080fd5b81356001600160401b03811115613f8157600080fd5b61207b84828501613f32565b6001600160a01b038116811461098157600080fd5b8035613fad81613f8d565b919050565b600060208284031215613fc457600080fd5b8135613f5281613f8d565b60008083601f840112613fe157600080fd5b5081356001600160401b03811115613ff857600080fd5b602083019150836020828501011115613b4a57600080fd5b60006040828403121561402257600080fd5b604051604081018181106001600160401b038211171561404457614044613e6d565b604052823581526020928301359281019290925250919050565b60006060828403121561407057600080fd5b614078613e83565b905081356001600160401b0381111561409057600080fd5b8201601f810184136140a157600080fd5b6140b084823560208401613edb565b825250602082013560208201526040820135604082015292915050565b60008060008060008060008060c0898b0312156140e957600080fd5b88356001600160401b038082111561410057600080fd5b61410c8c838d01613fcf565b909a5098508891506141218c60208d01614010565b975060608b013591508082111561413757600080fd5b6141438c838d01613fcf565b909750955060808b013591508082111561415c57600080fd5b818b0191508b601f83011261417057600080fd5b81358181111561417f57600080fd5b8c60208260071b850101111561419457600080fd5b6020830195508094505060a08b01359150808211156141b257600080fd5b506141bf8b828c0161405e565b9150509295985092959890939650565b63ffffffff8116811461098157600080fd5b6000806000606084860312156141f657600080fd5b833592506020840135614208816141cf565b929592945050506040919091013590565b60006001600160401b0382111561423257614232613e6d565b5060051b60200190565b61ffff8116811461098157600080fd5b60006060828403121561425e57600080fd5b614266613e83565b90508135614273816141cf565b815260208201356142838161423c565b602082015260408201356142968161423c565b604082015292915050565b600080600080600060a086880312156142b957600080fd5b85356142c481613f8d565b94506020868101356142d581613f8d565b945060408701356001600160401b038111156142f057600080fd5b8701601f8101891361430157600080fd5b803561431461430f82614219565b613eab565b8181526060918202830184019184820191908c84111561433357600080fd5b938501935b838510156143595761434a8d8661424c565b83529384019391850191614338565b819850614367818d01613fa2565b9a9d999c50979a6080013598975050505050505050565b6000806000806040858703121561439457600080fd5b84356001600160401b03808211156143ab57600080fd5b6143b788838901613fcf565b909650945060208701359150808211156143d057600080fd5b506143dd87828801613fcf565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b6003811061441d57634e487b7160e01b600052602160045260246000fd5b9052565b81518152602080830151604083019161443c908401826143ff565b5092915050565b803560ff81168114613fad57600080fd5b60006020828403121561446657600080fd5b613f5282614443565b6000806080838503121561448257600080fd5b61448b83614443565b915061449a846020850161424c565b90509250929050565b600082601f8301126144b457600080fd5b813560206144c461430f83614219565b82815260059290921b840181019181810190868411156144e357600080fd5b8286015b848110156144fe57803583529183019183016144e7565b509695505050505050565b6000806040838503121561451c57600080fd5b8235614527816141cf565b915060208301356001600160401b0381111561454257600080fd5b61454e858286016144a3565b9150509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561459657835163ffffffff1683529284019291840191600101614574565b50909695505050505050565b600080600080600060a086880312156145ba57600080fd5b85356145c581613f8d565b945060208601356001600160401b03808211156145e157600080fd5b6145ed89838a01613fcf565b90965094508491506146028960408a01614010565b9350608088013591508082111561461857600080fd5b50614625888289016144a3565b9150509295509295909350565b60006080828403121561464457600080fd5b61464c613e83565b905061465782614443565b8152602082013561466781613f8d565b60208201526142968360408401614010565b600080600080608080868803121561469057600080fd5b853594506020808701356001600160401b038111156146ae57600080fd5b8701601f810189136146bf57600080fd5b80356146cd61430f82614219565b81815260079190911b8201830190838101908b8311156146ec57600080fd5b928401925b82841015614712576147038c85614632565b825292850192908401906146f1565b989b989a505050506040870135966060013595945050505050565b60008060008060006080868803121561474557600080fd5b85356001600160401b038082111561475c57600080fd5b61476889838a01613fcf565b909750955085915061477d8960208a01614010565b9450606088013591508082111561479357600080fd5b506147a088828901613fcf565b969995985093965092949392505050565b600080600080608085870312156147c757600080fd5b84356001600160401b03808211156147de57600080fd5b6147ea88838901613fcf565b90965094508491506147ff8860208901614010565b9350606087013591508082111561481557600080fd5b50614822878288016144a3565b91505092959194509250565b602081016107ca82846143ff565b634e487b7160e01b600052603260045260246000fd5b60005b8381101561486d578181015183820152602001614855565b8381111561487c576000848401525b50505050565b6000815180845261489a816020860160208601614852565b601f01601f19169290920160200192915050565b602081526000613f526020830184614882565b6000602082840312156148d357600080fd5b8151613f5281613f8d565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561493a57600080fd5b81518015158114613f5257600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b6000608082840312156149db57600080fd5b613f528383614632565b6000602082840312156149f757600080fd5b81516001600160601b0381168114613f5257600080fd5b634e487b7160e01b600052601160045260246000fd5b60006001600160601b0380831681851681830481118215151615614a4a57614a4a614a0e565b02949350505050565b60006001600160601b0380841680614a7b57634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b6000600019821415614a9b57614a9b614a0e565b5060010190565b60008219821115614ab557614ab5614a0e565b500190565b60008085851115614aca57600080fd5b83861115614ad757600080fd5b5050820193919092039150565b600060408284031215614af657600080fd5b613f528383614010565b6020808252606290820152600080516020614fb783398151915260408201527f732e6f6e6c79536572766963654d616e616765724f776e65723a2063616c6c6560608201527f72206973206e6f74207468652073657276696365206d616e61676572206f776e60808201526132b960f11b60a082015260c00190565b600082821015614b8e57614b8e614a0e565b500390565b600060208284031215614ba557600080fd5b8151613f528161423c565b600060ff821660ff811415614bc757614bc7614a0e565b60010192915050565b60008060608385031215614be357600080fd5b614bed8484614010565b915060408301356001600160401b03811115614c0857600080fd5b61454e85828601613f32565b600063ffffffff83811690831681811015614c3157614c31614a0e565b039392505050565b600063ffffffff80831681811415614c5357614c53614a0e565b6001019392505050565b600060a0820187835260208781850152604060a08186015282885180855260c087019150838a01945060005b81811015614cd8578551805160ff168452858101516001600160a01b031686850152840151614cc48585018280518252602090810151910152565b509484019460809290920191600101614c89565b5050606086019790975250505050608001529392505050565b60008060608385031215614d0457600080fd5b614d0e8484614010565b915060408301356001600160401b0381111561454257600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b0385168152608060208201819052600090614d779083018587614d29565b83516040840152602084015160608401529050612a62565b600060208284031215614da157600080fd5b5051919050565b60018060a01b0385168152836020820152606060408201526000614dd0606083018486614d29565b9695505050505050565b838152604060208201526000612078604083018486614d29565b60006020808385031215614e0757600080fd5b82516001600160401b03811115614e1d57600080fd5b8301601f81018513614e2e57600080fd5b8051614e3c61430f82614219565b81815260059190911b82018301908381019087831115614e5b57600080fd5b928401925b82841015614e82578351614e73816141cf565b82529284019290840190614e60565b979650505050505050565b6001600160a01b0384168152608060208201819052600090614eb190830185614882565b8351604084015260208401516060840152905061207b565b82815260406020820152600061207b6040830184614882565b83815260006020606081840152614efc6060840186614882565b838103604085015284518082528286019183019060005b81811015614f2f57835183529284019291840191600101614f13565b509098975050505050505050565b600060208284031215614f4f57600080fd5b81516001600160e01b031981168114613f5257600080fd5b60008351614f79818460208801614852565b6001600160f81b031993909316919092019081526001019291505056fe732e5f72656769737465724f70657261746f7257697468436f6f7264696e6174424c535265676973747279436f6f7264696e61746f7257697468496e64696365a2646970667358221220100d24110093e7e70e8c60d3638edf9838d017b83797a62987b33fd0a461d49664736f6c634300080c0033", + ABI: "[{\"inputs\":[{\"internalType\":\"contractISlasher\",\"name\":\"_slasher\",\"type\":\"address\"},{\"internalType\":\"contractIServiceManager\",\"name\":\"_serviceManager\",\"type\":\"address\"},{\"internalType\":\"contractIStakeRegistry\",\"name\":\"_stakeRegistry\",\"type\":\"address\"},{\"internalType\":\"contractIBLSPubkeyRegistry\",\"name\":\"_blsPubkeyRegistry\",\"type\":\"address\"},{\"internalType\":\"contractIIndexRegistry\",\"name\":\"_indexRegistry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"prevChurnApprover\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newChurnApprover\",\"type\":\"address\"}],\"name\":\"ChurnApproverUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"prevEjector\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newEjector\",\"type\":\"address\"}],\"name\":\"EjectorUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"}],\"name\":\"OperatorDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"}],\"name\":\"OperatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxOperatorCount\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"kickBIPsOfOperatorStake\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"kickBIPsOfTotalStake\",\"type\":\"uint16\"}],\"indexed\":false,\"internalType\":\"structIBLSRegistryCoordinatorWithIndices.OperatorSetParam\",\"name\":\"operatorSetParams\",\"type\":\"tuple\"}],\"name\":\"OperatorSetParamsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"socket\",\"type\":\"string\"}],\"name\":\"OperatorSocketUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contractIPauserRegistry\",\"name\":\"pauserRegistry\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contractIPauserRegistry\",\"name\":\"newPauserRegistry\",\"type\":\"address\"}],\"name\":\"PauserRegistrySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"OPERATOR_CHURN_APPROVAL_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blsPubkeyRegistry\",\"outputs\":[{\"internalType\":\"contractIBLSPubkeyRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"registeringOperatorId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"structBN254.G1Point\",\"name\":\"pubkey\",\"type\":\"tuple\"}],\"internalType\":\"structIBLSRegistryCoordinatorWithIndices.OperatorKickParam[]\",\"name\":\"operatorKickParams\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"name\":\"calculateOperatorChurnApprovalDigestHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"churnApprover\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"structBN254.G1Point\",\"name\":\"pubkey\",\"type\":\"tuple\"}],\"name\":\"deregisterOperatorWithCoordinator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"deregistrationData\",\"type\":\"bytes\"}],\"name\":\"deregisterOperatorWithCoordinator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"structBN254.G1Point\",\"name\":\"pubkey\",\"type\":\"tuple\"}],\"name\":\"ejectOperatorFromCoordinator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ejector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"}],\"name\":\"getCurrentQuorumBitmapByOperatorId\",\"outputs\":[{\"internalType\":\"uint192\",\"name\":\"\",\"type\":\"uint192\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperator\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"enumIRegistryCoordinator.OperatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"internalType\":\"structIRegistryCoordinator.Operator\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"}],\"name\":\"getOperatorFromId\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"getOperatorSetParams\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxOperatorCount\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"kickBIPsOfOperatorStake\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"kickBIPsOfTotalStake\",\"type\":\"uint16\"}],\"internalType\":\"structIBLSRegistryCoordinatorWithIndices.OperatorSetParam\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorStatus\",\"outputs\":[{\"internalType\":\"enumIRegistryCoordinator.OperatorStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getQuorumBitmapByOperatorIdAtBlockNumberByIndex\",\"outputs\":[{\"internalType\":\"uint192\",\"name\":\"\",\"type\":\"uint192\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[]\",\"name\":\"operatorIds\",\"type\":\"bytes32[]\"}],\"name\":\"getQuorumBitmapIndicesByOperatorIdsAtBlockNumber\",\"outputs\":[{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getQuorumBitmapUpdateByOperatorIdByIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"updateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint192\",\"name\":\"quorumBitmap\",\"type\":\"uint192\"}],\"internalType\":\"structIRegistryCoordinator.QuorumBitmapUpdate\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"}],\"name\":\"getQuorumBitmapUpdateByOperatorIdLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"indexRegistry\",\"outputs\":[{\"internalType\":\"contractIIndexRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_churnApprover\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_ejector\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxOperatorCount\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"kickBIPsOfOperatorStake\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"kickBIPsOfTotalStake\",\"type\":\"uint16\"}],\"internalType\":\"structIBLSRegistryCoordinatorWithIndices.OperatorSetParam[]\",\"name\":\"_operatorSetParams\",\"type\":\"tuple[]\"},{\"internalType\":\"contractIPauserRegistry\",\"name\":\"_pauserRegistry\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_initialPausedStatus\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"isChurnApproverSaltUsed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"numRegistries\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauserRegistry\",\"outputs\":[{\"internalType\":\"contractIPauserRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"structBN254.G1Point\",\"name\":\"pubkey\",\"type\":\"tuple\"},{\"internalType\":\"string\",\"name\":\"socket\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"structBN254.G1Point\",\"name\":\"pubkey\",\"type\":\"tuple\"}],\"internalType\":\"structIBLSRegistryCoordinatorWithIndices.OperatorKickParam[]\",\"name\":\"operatorKickParams\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"internalType\":\"structISignatureUtils.SignatureWithSaltAndExpiry\",\"name\":\"signatureWithSaltAndExpiry\",\"type\":\"tuple\"}],\"name\":\"registerOperatorWithCoordinator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"registrationData\",\"type\":\"bytes\"}],\"name\":\"registerOperatorWithCoordinator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"structBN254.G1Point\",\"name\":\"pubkey\",\"type\":\"tuple\"},{\"internalType\":\"string\",\"name\":\"socket\",\"type\":\"string\"}],\"name\":\"registerOperatorWithCoordinator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"registries\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"serviceManager\",\"outputs\":[{\"internalType\":\"contractIServiceManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_churnApprover\",\"type\":\"address\"}],\"name\":\"setChurnApprover\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ejector\",\"type\":\"address\"}],\"name\":\"setEjector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"maxOperatorCount\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"kickBIPsOfOperatorStake\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"kickBIPsOfTotalStake\",\"type\":\"uint16\"}],\"internalType\":\"structIBLSRegistryCoordinatorWithIndices.OperatorSetParam\",\"name\":\"operatorSetParam\",\"type\":\"tuple\"}],\"name\":\"setOperatorSetParams\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIPauserRegistry\",\"name\":\"newPauserRegistry\",\"type\":\"address\"}],\"name\":\"setPauserRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"internalType\":\"contractISlasher\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakeRegistry\",\"outputs\":[{\"internalType\":\"contractIStakeRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"socket\",\"type\":\"string\"}],\"name\":\"updateSocket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x6101e06040523480156200001257600080fd5b50604051620051bf380380620051bf833981016040819052620000359162000183565b604080518082018252601681527f4156535265676973747279436f6f7264696e61746f720000000000000000000060208083019182528351808501909452600684526576302e302e3160d01b908401528151902060e08190527f6bda7e3f385e48841048390444cced5cc795af87758af67622e5f4f0882c4a996101008190524660a0529192917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6200012d8184846040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b6080523060c05261012052505050506001600160a01b0394851661014052928416610160529083166101a052821661018052166101c05262000203565b6001600160a01b03811681146200018057600080fd5b50565b600080600080600060a086880312156200019c57600080fd5b8551620001a9816200016a565b6020870151909550620001bc816200016a565b6040870151909450620001cf816200016a565b6060870151909350620001e2816200016a565b6080870151909250620001f5816200016a565b809150509295509295909350565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c051614ec5620002fa600039600081816105890152818161187801528181612646015261302601526000818161052901528181610d7b01528181610e6201528181610ed301528181611802015281816125c10152612fa601526000818161042d0152818161120901528181611841015281816125290152612f260152600081816104540152818161127e015281816113390152611ba1015260006105c3015260006139d001526000613a1f015260006139fa015260006139530152600061397d015260006139a70152614ec56000f3fe608060405234801561001057600080fd5b50600436106102485760003560e01c80635865c60c1161013b578063ab269b2d116100b8578063ca0de8821161007c578063ca0de8821461061e578063d72d8dd614610645578063e65797ad1461064d578063fabc1cbc146106f0578063fd39105a1461070357600080fd5b8063ab269b2d146105ab578063b1344271146105be578063b8347acc146105e5578063c66ab9ca146105f8578063c81b1ff41461060b57600080fd5b80636347c900116100ff5780636347c90014610511578063683048351461052457806385020d491461054b578063886f11951461056b5780639e9923c21461058457600080fd5b80635865c60c146104af578063595c6a67146104cf5780635ac86ab7146104d75780635b0b829f146104f65780635c975abb1461050957600080fd5b8063296bb064116101c95780633561deb11161018d5780633561deb1146104285780633998fdd31461044f578063455a43fc146104765780634b76b9d514610489578063526ea94e1461049c57600080fd5b8063296bb064146103b157806329d1e0c3146103c45780632cdd1e86146103d75780633064620d146103ea5780633431af251461041557600080fd5b806313542a4e1161021057806313542a4e1461031c578063136439dd146103455780631478851f14610358578063250075761461038b57806328f61b311461039e57600080fd5b80630159f1ce1461024d578063054310e61461029b578063055a62b6146102c65780630cf4b767146102f457806310d67a2f14610309575b600080fd5b61026061025b366004613dda565b61073f565b60408051825163ffffffff908116825260208085015190911690820152918101516001600160c01b0316908201526060015b60405180910390f35b6037546102ae906001600160a01b031681565b6040516001600160a01b039091168152602001610292565b6102e66102d4366004613dfc565b60009081526033602052604090205490565b604051908152602001610292565b610307610302366004613f01565b6107d0565b005b610307610317366004613f5a565b6108d1565b6102e661032a366004613f5a565b6001600160a01b031660009081526034602052604090205490565b610307610353366004613dfc565b610984565b61037b610366366004613dfc565b60356020526000908152604090205460ff1681565b6040519015158152602001610292565b610307610399366004614075565b610ac1565b6038546102ae906001600160a01b031681565b6102ae6103bf366004613dfc565b6111f0565b6103076103d2366004613f5a565b61127c565b6103076103e5366004613f5a565b611337565b6103fd6103f8366004614189565b6113f2565b6040516001600160c01b039091168152602001610292565b6103fd610423366004613dfc565b6115f3565b6102ae7f000000000000000000000000000000000000000000000000000000000000000081565b6102ae7f000000000000000000000000000000000000000000000000000000000000000081565b6103076104843660046141c1565b6116a9565b61030761049736600461429d565b6116e2565b6103076104aa36600461437a565b611a0e565b6104c26104bd366004613f5a565b611a5f565b604051610292919061441d565b610307611ad3565b61037b6104e5366004614450565b6001805460ff9092161b9081161490565b61030761050436600461446b565b611b9f565b6001546102e6565b6102ae61051f366004613dfc565b611c5f565b6102ae7f000000000000000000000000000000000000000000000000000000000000000081565b61055e61055936600461449f565b611c89565b6040516102929190614544565b6000546102ae906201000090046001600160a01b031681565b6102ae7f000000000000000000000000000000000000000000000000000000000000000081565b6102e66105b93660046145d5565b611fc4565b6102ae7f000000000000000000000000000000000000000000000000000000000000000081565b6103076105f3366004614689565b612028565b6103076106063660046146f0565b6120b3565b61030761061936600461437a565b61211e565b6102e67fae63aa1318751f64ef850e045417f86811eaecee1cebc226904d237b80704d9281565b6036546102e6565b6106bc61065b366004614450565b60408051606080820183526000808352602080840182905292840181905260ff9490941684526032825292829020825193840183525463ffffffff8116845261ffff600160201b8204811692850192909252600160301b9004169082015290565b60408051825163ffffffff16815260208084015161ffff908116918301919091529282015190921690820152606001610292565b6103076106fe366004613dfc565b612161565b610732610711366004613f5a565b6001600160a01b031660009081526034602052604090206001015460ff1690565b6040516102929190614774565b6040805160608101825260008082526020820181905291810191909152600083815260336020526040902080548390811061077c5761077c614782565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160c01b03600160401b909304929092169082015290505b92915050565b60013360009081526034602052604090206001015460ff1660028111156107f9576107f96143e5565b146108855760405162461bcd60e51b815260206004820152604b60248201527f424c535265676973747279436f6f7264696e61746f7257697468496e6469636960448201527f65732e757064617465536f636b65743a206f70657261746f72206973206e6f7460648201526a081c9959da5cdd195c995960aa1b608482015260a4015b60405180910390fd5b33600090815260346020526040908190205490517fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa906108c69084906147f0565b60405180910390a250565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610924573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109489190614803565b6001600160a01b0316336001600160a01b0316146109785760405162461bcd60e51b815260040161087c90614820565b610981816122bd565b50565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156109d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f5919061486a565b610a115760405162461bcd60e51b815260040161087c9061488c565b60015481811614610a8a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161087c565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020016108c6565b600180546000919081161415610ae95760405162461bcd60e51b815260040161087c906148d4565b6000610b2e338b8b8b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506123c292505050565b6040805160018082528183019092529192506000919060208083019080368337019050509050610b5d89612a15565b81600081518110610b7057610b70614782565b602002602001018181525050610bf381600081518110610b9257610b92614782565b60200260200101518787808060200260200160405190810160405280939291908181526020016000905b82821015610be857610bd96080830286013681900381019061490b565b81526020019060010190610bbc565b505050505086612a58565b6000805b8b8110156111e15760008d8d83818110610c1357610c13614782565b919091013560f81c6000818152603260209081526040918290208251606081018452905463ffffffff811680835261ffff600160201b8304811694840194909452600160301b90910490921692810192909252885192945090925090879085908110610c8157610c81614782565b602002602001015163ffffffff1611610c9b5750506111cf565b8160ff168a8a86818110610cb157610cb1614782565b610cc79260206080909202019081019150614450565b60ff1614610d605760405162461bcd60e51b81526020600482015260666024820152600080516020614e7083398151915260448201527f732e72656769737465724f70657261746f7257697468436f6f7264696e61746f60648201527f723a2071756f72756d4e756d626572206e6f74207468652073616d65206173206084820152651cda59db995960d21b60a482015260c40161087c565b604051630c8f739d60e41b815260ff831660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c8f739d090602401602060405180830381865afa158015610dca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dee9190614927565b90506000603460008d8d88818110610e0857610e08614782565b9050608002016020016020810190610e209190613f5a565b6001600160a01b039081168252602082019290925260409081016000908120549151631aad4e3560e21b81526004810183905260ff88166024820152919350917f00000000000000000000000000000000000000000000000000000000000000001690636ab538d490604401602060405180830381865afa158015610ea9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecd9190614927565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636ab538d48a600081518110610f1357610f13614782565b6020026020010151886040518363ffffffff1660e01b8152600401610f4592919091825260ff16602082015260400190565b602060405180830381865afa158015610f62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f869190614927565b602086015190915061271090610fa09061ffff1684614966565b610faa9190614995565b6001600160601b0316816001600160601b03161161106a5760405162461bcd60e51b815260206004820152607d6024820152600080516020614e7083398151915260448201527f732e72656769737465724f70657261746f7257697468436f6f7264696e61746f60648201527f723a207265676973746572696e67206f70657261746f7220686173206c65737360848201527f207468616e206b69636b424950734f664f70657261746f725374616b6500000060a482015260c40161087c565b6040850151612710906110819061ffff1686614966565b61108b9190614995565b6001600160601b0316826001600160601b0316106111445760405162461bcd60e51b81526020600482015260766024820152600080516020614e7083398151915260448201527f732e72656769737465724f70657261746f7257697468436f6f7264696e61746f60648201527f723a206f70657261746f7220746f206b69636b20686173206d6f7265207468616084820152756e206b69636b424950534f66546f74616c5374616b6560501b60a482015260c40161087c565b8761114e816149c9565b9850505050505050506111cf88888381811061116c5761116c614782565b90506080020160200160208101906111849190613f5a565b8e838f6111928260016149e4565b9261119f939291906149fc565b8b8b868181106111b1576111b1614782565b9050608002016040018036038101906111ca9190614a26565b612c25565b806111d9816149c9565b915050610bf7565b50505050505050505050505050565b6040516308f6629d60e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906347b314e890602401602060405180830381865afa158015611258573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ca9190614803565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112fe9190614803565b6001600160a01b0316336001600160a01b03161461132e5760405162461bcd60e51b815260040161087c90614a42565b610981816131d2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611395573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b99190614803565b6001600160a01b0316336001600160a01b0316146113e95760405162461bcd60e51b815260040161087c90614a42565b6109818161323b565b600083815260336020526040812080548291908490811061141557611415614782565b600091825260209182902060408051606081018252929091015463ffffffff808216808552600160201b8304821695850195909552600160401b9091046001600160c01b031691830191909152909250851610156115155760405162461bcd60e51b815260206004820152607f6024820152600080516020614e7083398151915260448201527f732e67657451756f72756d4269746d617042794f70657261746f72496441744260648201527f6c6f636b4e756d6265724279496e6465783a2071756f72756d4269746d61705560848201527f70646174652069732066726f6d20616674657220626c6f636b4e756d6265720060a482015260c40161087c565b8363ffffffff16816020015163ffffffff16118061153b5750602081015163ffffffff16155b6115e75760405162461bcd60e51b81526020600482015260806024820152600080516020614e7083398151915260448201527f732e67657451756f72756d4269746d617042794f70657261746f72496441744260648201527f6c6f636b4e756d6265724279496e6465783a2071756f72756d4269746d61705560848201527f70646174652069732066726f6d206265666f726520626c6f636b4e756d62657260a482015260c40161087c565b60400151949350505050565b60008181526033602052604081205480158061164f57506000838152603360205260409020611623600183614abe565b8154811061163357611633614782565b600091825260209091200154600160201b900463ffffffff1615155b1561165d5750600092915050565b6000838152603360205260409020611676600183614abe565b8154811061168657611686614782565b600091825260209091200154600160401b90046001600160c01b03169392505050565b60018054600290811614156116d05760405162461bcd60e51b815260040161087c906148d4565b6116dc33858585612c25565b50505050565b600054610100900460ff16158080156117025750600054600160ff909116105b8061171c5750303b15801561171c575060005460ff166001145b61177f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161087c565b6000805460ff1916600117905580156117a2576000805461ff0019166101001790555b6117ac83836132a4565b6117b5866131d2565b6117be8561323b565b603680546001808201835560008390527f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b891820180546001600160a01b03199081167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03908116918217909355855480850187558501805483167f0000000000000000000000000000000000000000000000000000000000000000851617905585549384019095559190920180549091167f0000000000000000000000000000000000000000000000000000000000000000909216919091179055845160408051639aa1653d60e01b81529051919291639aa1653d916004808201926020929091908290030181865afa1580156118e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119049190614ad5565b61ffff16146119785760405162461bcd60e51b81526020600482015260466024820152600080516020614e7083398151915260448201527f733a206f70657261746f722073657420706172616d73206c656e677468206d696064820152650e6dac2e8c6d60d31b608482015260a40161087c565b60005b84518160ff1610156119bf576119ad81868360ff16815181106119a0576119a0614782565b6020026020010151613390565b806119b781614af2565b91505061197b565b508015611a06576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b600180546000919081161415611a365760405162461bcd60e51b815260040161087c906148d4565b600080611a4584860186614b12565b91509150611a56338888858561343d565b50505050505050565b60408051808201909152600080825260208201526001600160a01b0382166000908152603460209081526040918290208251808401909352805483526001810154909183019060ff166002811115611ab957611ab96143e5565b6002811115611aca57611aca6143e5565b90525092915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015611b20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b44919061486a565b611b605760405162461bcd60e51b815260040161087c9061488c565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c219190614803565b6001600160a01b0316336001600160a01b031614611c515760405162461bcd60e51b815260040161087c90614a42565b611c5b8282613390565b5050565b60368181548110611c6f57600080fd5b6000918252602090912001546001600160a01b0316905081565b6060600082516001600160401b03811115611ca657611ca6613e15565b604051908082528060200260200182016040528015611ccf578160200160208202803683370190505b50905060005b8351811015611fbc57600060336000868481518110611cf657611cf6614782565b6020026020010151815260200190815260200160002080549050905060005b8163ffffffff168163ffffffff161015611fa7578663ffffffff1660336000888681518110611d4657611d46614782565b6020026020010151815260200190815260200160002060018385611d6a9190614b60565b611d749190614b60565b63ffffffff1681548110611d8a57611d8a614782565b60009182526020909120015463ffffffff1611611f955760336000878581518110611db757611db7614782565b6020026020010151815260200190815260200160002060018284611ddb9190614b60565b611de59190614b60565b63ffffffff1681548110611dfb57611dfb614782565b600091825260209091200154600160201b900463ffffffff161580611e9757508663ffffffff1660336000888681518110611e3857611e38614782565b6020026020010151815260200190815260200160002060018385611e5c9190614b60565b611e669190614b60565b63ffffffff1681548110611e7c57611e7c614782565b600091825260209091200154600160201b900463ffffffff16115b611f4e5760405162461bcd60e51b81526020600482015260826024820152600080516020614e7083398151915260448201527f732e67657451756f72756d4269746d6170496e646963657342794f706572617460648201527f6f724964734174426c6f636b4e756d6265723a206f70657261746f724964206860848201527f6173206e6f2071756f72756d4269746d61707320617420626c6f636b4e756d6260a48201526132b960f11b60c482015260e40161087c565b6001611f5a8284614b60565b611f649190614b60565b848481518110611f7657611f76614782565b602002602001019063ffffffff16908163ffffffff1681525050611fa7565b80611f9f81614b85565b915050611d15565b50508080611fb4906149c9565b915050611cd5565b509392505050565b600061201d7fae63aa1318751f64ef850e045417f86811eaecee1cebc226904d237b80704d9286868686604051602001612002959493929190614ba9565b60405160208183030381529060405280519060200120613554565b90505b949350505050565b6038546001600160a01b031633146120a75760405162461bcd60e51b81526020600482015260486024820152600080516020614e7083398151915260448201527f732e6f6e6c79456a6563746f723a2063616c6c6572206973206e6f74207468656064820152671032b532b1ba37b960c11b608482015260a40161087c565b6116dc84848484612c25565b6001805460009190811614156120db5760405162461bcd60e51b815260040161087c906148d4565b611a063387878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061343d92505050565b60018054600290811614156121455760405162461bcd60e51b815260040161087c906148d4565b600061215383850185614a26565b9050611a0633878784612c25565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121d89190614803565b6001600160a01b0316336001600160a01b0316146122085760405162461bcd60e51b815260040161087c90614820565b6001541981196001541916146122865760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161087c565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016108c6565b6001600160a01b03811661234b5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161087c565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6060600061240586868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506135a292505050565b90506001600160c01b0381111561249a5760405162461bcd60e51b815260206004820152606b6024820152600080516020614e708339815191526044820152600080516020614e5083398151915260648201527f6f723a2071756f72756d4269746d61702065786365656473206f66206d61782060848201526a6269746d61702073697a6560a81b60a482015260c40161087c565b8061250f5760405162461bcd60e51b815260206004820152605c6024820152600080516020614e708339815191526044820152600080516020614e5083398151915260648201527f6f723a2071756f72756d4269746d61702063616e6e6f74206265203000000000608482015260a40161087c565b6040516303ce4bad60e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906303ce4bad90612564908b908b908b908b90600401614c66565b6020604051808303816000875af1158015612583573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125a79190614ca3565b604051632550477760e01b81529091506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906325504777906125fc908b9085908c908c90600401614cbc565b600060405180830381600087803b15801561261657600080fd5b505af115801561262a573d6000803e3d6000fd5b505060405162bff04d60e01b8152600092506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016915062bff04d9061267f9085908c908c90600401614cee565b6000604051808303816000875af115801561269e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526126c69190810190614d08565b6000838152603360205260409020549091508015801590612726575060008381526033602052604090206126fb600183614abe565b8154811061270b5761270b614782565b600091825260209091200154600160201b900463ffffffff16155b1561287d576000838152603360205260408120612744600184614abe565b8154811061275457612754614782565b6000918252602090912001546001600160c01b03600160401b9091048181169250861616156128215760405162461bcd60e51b81526020600482015260856024820152600080516020614e708339815191526044820152600080516020614e5083398151915260648201527f6f723a206f70657261746f7220616c726561647920726567697374657265642060848201527f666f7220736f6d652071756f72756d73206265696e672072656769737465726560a48201526432103337b960d91b60c482015260e40161087c565b6000848152603360205260409020948117944390612840600185614abe565b8154811061285057612850614782565b9060005260206000200160000160046101000a81548163ffffffff021916908363ffffffff160217905550505b6000838152603360209081526040808320815160608101835263ffffffff43811682528185018681526001600160c01b038b8116848701908152855460018082018855968a52888a2095519501805493519151909216600160401b026001600160401b03918516600160201b0267ffffffffffffffff19909416959094169490941791909117929092161790556001600160a01b038e168452603490925290912081015460ff166002811115612935576129356143e5565b146129ce57604080518082018252848152600160208083018281526001600160a01b038f166000908152603490925293902082518155925183820180549394939192909160ff191690836002811115612990576129906143e5565b0217905550506040518491506001600160a01b038c16907fe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe90600090a35b827fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa876040516129fe91906147f0565b60405180910390a250925050505b95945050505050565b600081600001518260200151604051602001612a3b929190918252602082015260400190565b604051602081830303815290604052805190602001209050919050565b60208082015160009081526035909152604090205460ff1615612b1d5760405162461bcd60e51b81526020600482015260776024820152600080516020614e7083398151915260448201527f732e5f766572696679436875726e417070726f7665725369676e61747572654f60648201527f6e4f70657261746f72436875726e417070726f76616c3a20636875726e41707060848201527f726f7665722073616c7420616c7265616479207573656400000000000000000060a482015260c40161087c565b4281604001511015612bd15760405162461bcd60e51b81526020600482015260776024820152600080516020614e7083398151915260448201527f732e5f766572696679436875726e417070726f7665725369676e61747572654f60648201527f6e4f70657261746f72436875726e417070726f76616c3a20636875726e41707060848201527f726f766572207369676e6174757265206578706972656400000000000000000060a482015260c40161087c565b6020808201805160009081526035909252604091829020805460ff19166001179055603754905191830151612c20926001600160a01b0390921691612c199187918791611fc4565b835161372f565b505050565b60016001600160a01b03851660009081526034602052604090206001015460ff166002811115612c5757612c576143e5565b14612cde5760405162461bcd60e51b81526020600482015260606024820152600080516020614e7083398151915260448201527f732e5f646572656769737465724f70657261746f7257697468436f6f7264696e60648201527f61746f723a206f70657261746f72206973206e6f742072656769737465726564608482015260a40161087c565b6001600160a01b038416600090815260346020526040902054612d0082612a15565b8114612d9c5760405162461bcd60e51b815260206004820152606b6024820152600080516020614e7083398151915260448201527f732e5f646572656769737465724f70657261746f7257697468436f6f7264696e60648201527f61746f723a206f70657261746f72496420646f6573206e6f74206d617463682060848201526a0e0eac4d6caf240d0c2e6d60ab1b60a482015260c40161087c565b6000612ddd85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506135a292505050565b60008381526033602052604081205491925090612dfc90600190614abe565b60008481526033602052604081208054929350909183908110612e2157612e21614782565b6000918252602082200154600160401b90049384166001600160c01b0390811694169150612e4e846138e9565b9050805160001415612f025760405162461bcd60e51b81526020600482015260806024820152600080516020614e7083398151915260448201527f732e5f646572656769737465724f70657261746f7257697468436f6f7264696e60648201527f61746f723a206f70657261746f72206973206e6f74207265676973746572656460848201527f20666f7220616e79206f66207468652070726f76696465642071756f72756d7360a482015260c40161087c565b60405163121b4d9560e11b81526001600160c01b0383168514906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906324369b2a90612f5f908d9086908c90600401614da1565b600060405180830381600087803b158015612f7957600080fd5b505af1158015612f8d573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd9150612fdf9089908690600401614ddd565b600060405180830381600087803b158015612ff957600080fd5b505af115801561300d573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd915061305f9089908690600401614ddd565b600060405180830381600087803b15801561307957600080fd5b505af115801561308d573d6000803e3d6000fd5b50505060008781526033602052604090208054439250869081106130b3576130b3614782565b9060005260206000200160000160046101000a81548163ffffffff021916908363ffffffff16021790555080613177576000868152603360209081526040808320815160608101835263ffffffff43811682528185018681526001600160c01b038c198b168116958401958652845460018101865594885295909620915191909201805495519351909416600160401b026001600160401b03938316600160201b0267ffffffffffffffff19909616919092161793909317169190911790556131c6565b6001600160a01b038a16600081815260346020526040808220600101805460ff19166002179055518892917f396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e491a35b50505050505050505050565b603754604080516001600160a01b03928316815291831660208301527f315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c910160405180910390a1603780546001600160a01b0319166001600160a01b0392909216919091179055565b603854604080516001600160a01b03928316815291831660208301527f8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9910160405180910390a1603880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546201000090046001600160a01b03161580156132cb57506001600160a01b03821615155b61334d5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161087c565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2611c5b826122bd565b60ff8216600081815260326020908152604091829020845181548684018051888701805163ffffffff90951665ffffffffffff199094168417600160201b61ffff938416021767ffff0000000000001916600160301b95831695909502949094179094558551918252518316938101939093525116918101919091527f3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac9060600160405180910390a25050565b600061344c86868686866123c2565b905060005b8151811015611a56576032600087878481811061347057613470614782565b919091013560f81c825250602081019190915260400160002054825163ffffffff909116908390839081106134a7576134a7614782565b602002602001015163ffffffff1611156135425760405162461bcd60e51b815260206004820152606e6024820152600080516020614e708339815191526044820152600080516020614e5083398151915260648201527f6f72416e644e6f4f76657266696c6c656451756f72756d733a2071756f72756d60848201526d081a5cc81bdd995c999a5b1b195960921b60a482015260c40161087c565b8061354c816149c9565b915050613451565b60006107ca613561613946565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b60006101008251111561362b5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a40161087c565b815161363957506000919050565b6000808360008151811061364f5761364f614782565b0160200151600160f89190911c81901b92505b84518110156137265784818151811061367d5761367d614782565b0160200151600160f89190911c1b91508282116137125760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a40161087c565b9181179161371f816149c9565b9050613662565b50909392505050565b6001600160a01b0383163b1561384957604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061376f9086908690600401614ddd565b602060405180830381865afa15801561378c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137b09190614df6565b6001600160e01b03191614612c205760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161087c565b826001600160a01b031661385d8383613a6d565b6001600160a01b031614612c205760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161087c565b60606000805b61010081101561393f576001811b91508382161561392f57828160f81b60405160200161391d929190614e20565b60405160208183030381529060405292505b613938816149c9565b90506138ef565b5050919050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561399f57507f000000000000000000000000000000000000000000000000000000000000000046145b156139c957507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6000806000613a7c8585613a89565b91509150611fbc81613af9565b600080825160411415613ac05760208301516040840151606085015160001a613ab487828585613cb4565b94509450505050613af2565b825160401415613aea5760208301516040840151613adf868383613da1565b935093505050613af2565b506000905060025b9250929050565b6000816004811115613b0d57613b0d6143e5565b1415613b165750565b6001816004811115613b2a57613b2a6143e5565b1415613b785760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161087c565b6002816004811115613b8c57613b8c6143e5565b1415613bda5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161087c565b6003816004811115613bee57613bee6143e5565b1415613c475760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161087c565b6004816004811115613c5b57613c5b6143e5565b14156109815760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161087c565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115613ceb5750600090506003613d98565b8460ff16601b14158015613d0357508460ff16601c14155b15613d145750600090506004613d98565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613d68573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116613d9157600060019250925050613d98565b9150600090505b94509492505050565b6000806001600160ff1b03831681613dbe60ff86901c601b6149e4565b9050613dcc87828885613cb4565b935093505050935093915050565b60008060408385031215613ded57600080fd5b50508035926020909101359150565b600060208284031215613e0e57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715613e4d57613e4d613e15565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613e7b57613e7b613e15565b604052919050565b60006001600160401b03831115613e9c57613e9c613e15565b613eaf601f8401601f1916602001613e53565b9050828152838383011115613ec357600080fd5b828260208301376000602084830101529392505050565b600082601f830112613eeb57600080fd5b613efa83833560208501613e83565b9392505050565b600060208284031215613f1357600080fd5b81356001600160401b03811115613f2957600080fd5b61202084828501613eda565b6001600160a01b038116811461098157600080fd5b8035613f5581613f35565b919050565b600060208284031215613f6c57600080fd5b8135613efa81613f35565b60008083601f840112613f8957600080fd5b5081356001600160401b03811115613fa057600080fd5b602083019150836020828501011115613af257600080fd5b600060408284031215613fca57600080fd5b604051604081018181106001600160401b0382111715613fec57613fec613e15565b604052823581526020928301359281019290925250919050565b60006060828403121561401857600080fd5b614020613e2b565b905081356001600160401b0381111561403857600080fd5b8201601f8101841361404957600080fd5b61405884823560208401613e83565b825250602082013560208201526040820135604082015292915050565b60008060008060008060008060c0898b03121561409157600080fd5b88356001600160401b03808211156140a857600080fd5b6140b48c838d01613f77565b909a5098508891506140c98c60208d01613fb8565b975060608b01359150808211156140df57600080fd5b6140eb8c838d01613f77565b909750955060808b013591508082111561410457600080fd5b818b0191508b601f83011261411857600080fd5b81358181111561412757600080fd5b8c60208260071b850101111561413c57600080fd5b6020830195508094505060a08b013591508082111561415a57600080fd5b506141678b828c01614006565b9150509295985092959890939650565b63ffffffff8116811461098157600080fd5b60008060006060848603121561419e57600080fd5b8335925060208401356141b081614177565b929592945050506040919091013590565b6000806000606084860312156141d657600080fd5b83356001600160401b038111156141ec57600080fd5b6141f886828701613f77565b909450925061420c90508560208601613fb8565b90509250925092565b60006001600160401b0382111561422e5761422e613e15565b5060051b60200190565b61ffff8116811461098157600080fd5b60006060828403121561425a57600080fd5b614262613e2b565b9050813561426f81614177565b8152602082013561427f81614238565b6020820152604082013561429281614238565b604082015292915050565b600080600080600060a086880312156142b557600080fd5b85356142c081613f35565b94506020868101356142d181613f35565b945060408701356001600160401b038111156142ec57600080fd5b8701601f810189136142fd57600080fd5b803561431061430b82614215565b613e53565b8181526060918202830184019184820191908c84111561432f57600080fd5b938501935b83851015614355576143468d86614248565b83529384019391850191614334565b819850614363818d01613f4a565b9a9d999c50979a6080013598975050505050505050565b6000806000806040858703121561439057600080fd5b84356001600160401b03808211156143a757600080fd5b6143b388838901613f77565b909650945060208701359150808211156143cc57600080fd5b506143d987828801613f77565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b6003811061441957634e487b7160e01b600052602160045260246000fd5b9052565b815181526020808301516040830191614438908401826143fb565b5092915050565b803560ff81168114613f5557600080fd5b60006020828403121561446257600080fd5b613efa8261443f565b6000806080838503121561447e57600080fd5b6144878361443f565b91506144968460208501614248565b90509250929050565b600080604083850312156144b257600080fd5b82356144bd81614177565b91506020838101356001600160401b038111156144d957600080fd5b8401601f810186136144ea57600080fd5b80356144f861430b82614215565b81815260059190911b8201830190838101908883111561451757600080fd5b928401925b828410156145355783358252928401929084019061451c565b80955050505050509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561458257835163ffffffff1683529284019291840191600101614560565b50909695505050505050565b6000608082840312156145a057600080fd5b6145a8613e2b565b90506145b38261443f565b815260208201356145c381613f35565b60208201526142928360408401613fb8565b60008060008060808086880312156145ec57600080fd5b853594506020808701356001600160401b0381111561460a57600080fd5b8701601f8101891361461b57600080fd5b803561462961430b82614215565b81815260079190911b8201830190838101908b83111561464857600080fd5b928401925b8284101561466e5761465f8c8561458e565b8252928501929084019061464d565b989b989a505050506040870135966060013595945050505050565b6000806000806080858703121561469f57600080fd5b84356146aa81613f35565b935060208501356001600160401b038111156146c557600080fd5b6146d187828801613f77565b90945092506146e590508660408701613fb8565b905092959194509250565b60008060008060006080868803121561470857600080fd5b85356001600160401b038082111561471f57600080fd5b61472b89838a01613f77565b90975095508591506147408960208a01613fb8565b9450606088013591508082111561475657600080fd5b5061476388828901613f77565b969995985093965092949392505050565b602081016107ca82846143fb565b634e487b7160e01b600052603260045260246000fd5b60005b838110156147b357818101518382015260200161479b565b838111156116dc5750506000910152565b600081518084526147dc816020860160208601614798565b601f01601f19169290920160200192915050565b602081526000613efa60208301846147c4565b60006020828403121561481557600080fd5b8151613efa81613f35565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561487c57600080fd5b81518015158114613efa57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60006080828403121561491d57600080fd5b613efa838361458e565b60006020828403121561493957600080fd5b81516001600160601b0381168114613efa57600080fd5b634e487b7160e01b600052601160045260246000fd5b60006001600160601b038083168185168183048111821515161561498c5761498c614950565b02949350505050565b60006001600160601b03808416806149bd57634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b60006000198214156149dd576149dd614950565b5060010190565b600082198211156149f7576149f7614950565b500190565b60008085851115614a0c57600080fd5b83861115614a1957600080fd5b5050820193919092039150565b600060408284031215614a3857600080fd5b613efa8383613fb8565b6020808252606290820152600080516020614e7083398151915260408201527f732e6f6e6c79536572766963654d616e616765724f776e65723a2063616c6c6560608201527f72206973206e6f74207468652073657276696365206d616e61676572206f776e60808201526132b960f11b60a082015260c00190565b600082821015614ad057614ad0614950565b500390565b600060208284031215614ae757600080fd5b8151613efa81614238565b600060ff821660ff811415614b0957614b09614950565b60010192915050565b60008060608385031215614b2557600080fd5b614b2f8484613fb8565b915060408301356001600160401b03811115614b4a57600080fd5b614b5685828601613eda565b9150509250929050565b600063ffffffff83811690831681811015614b7d57614b7d614950565b039392505050565b600063ffffffff80831681811415614b9f57614b9f614950565b6001019392505050565b600060a0820187835260208781850152604060a08186015282885180855260c087019150838a01945060005b81811015614c24578551805160ff168452858101516001600160a01b031686850152840151614c108585018280518252602090810151910152565b509484019460809290920191600101614bd5565b5050606086019790975250505050608001529392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b0385168152608060208201819052600090614c8b9083018587614c3d565b83516040840152602084015160608401529050612a0c565b600060208284031215614cb557600080fd5b5051919050565b60018060a01b0385168152836020820152606060408201526000614ce4606083018486614c3d565b9695505050505050565b83815260406020820152600061201d604083018486614c3d565b60006020808385031215614d1b57600080fd5b82516001600160401b03811115614d3157600080fd5b8301601f81018513614d4257600080fd5b8051614d5061430b82614215565b81815260059190911b82018301908381019087831115614d6f57600080fd5b928401925b82841015614d96578351614d8781614177565b82529284019290840190614d74565b979650505050505050565b6001600160a01b0384168152608060208201819052600090614dc5908301856147c4565b83516040840152602084015160608401529050612020565b82815260406020820152600061202060408301846147c4565b600060208284031215614e0857600080fd5b81516001600160e01b031981168114613efa57600080fd5b60008351614e32818460208801614798565b6001600160f81b031993909316919092019081526001019291505056fe732e5f72656769737465724f70657261746f7257697468436f6f7264696e6174424c535265676973747279436f6f7264696e61746f7257697468496e64696365a2646970667358221220bdc86887305ca2b37c44bbaf1bdd8bea2ac5359799e47269e839aa350bc710ac64736f6c634300080c0033", } // ContractBLSRegistryCoordinatorWithIndicesABI is the input ABI used to generate the binding from. @@ -1017,67 +1017,67 @@ func (_ContractBLSRegistryCoordinatorWithIndices *ContractBLSRegistryCoordinator return _ContractBLSRegistryCoordinatorWithIndices.Contract.StakeRegistry(&_ContractBLSRegistryCoordinatorWithIndices.CallOpts) } -// DeregisterOperatorWithCoordinator is a paid mutator transaction binding the contract method 0xc81b1ff4. +// DeregisterOperatorWithCoordinator is a paid mutator transaction binding the contract method 0x455a43fc. // -// Solidity: function deregisterOperatorWithCoordinator(bytes quorumNumbers, bytes deregistrationData) returns() -func (_ContractBLSRegistryCoordinatorWithIndices *ContractBLSRegistryCoordinatorWithIndicesTransactor) DeregisterOperatorWithCoordinator(opts *bind.TransactOpts, quorumNumbers []byte, deregistrationData []byte) (*types.Transaction, error) { - return _ContractBLSRegistryCoordinatorWithIndices.contract.Transact(opts, "deregisterOperatorWithCoordinator", quorumNumbers, deregistrationData) +// Solidity: function deregisterOperatorWithCoordinator(bytes quorumNumbers, (uint256,uint256) pubkey) returns() +func (_ContractBLSRegistryCoordinatorWithIndices *ContractBLSRegistryCoordinatorWithIndicesTransactor) DeregisterOperatorWithCoordinator(opts *bind.TransactOpts, quorumNumbers []byte, pubkey BN254G1Point) (*types.Transaction, error) { + return _ContractBLSRegistryCoordinatorWithIndices.contract.Transact(opts, "deregisterOperatorWithCoordinator", quorumNumbers, pubkey) } -// DeregisterOperatorWithCoordinator is a paid mutator transaction binding the contract method 0xc81b1ff4. +// DeregisterOperatorWithCoordinator is a paid mutator transaction binding the contract method 0x455a43fc. // -// Solidity: function deregisterOperatorWithCoordinator(bytes quorumNumbers, bytes deregistrationData) returns() -func (_ContractBLSRegistryCoordinatorWithIndices *ContractBLSRegistryCoordinatorWithIndicesSession) DeregisterOperatorWithCoordinator(quorumNumbers []byte, deregistrationData []byte) (*types.Transaction, error) { - return _ContractBLSRegistryCoordinatorWithIndices.Contract.DeregisterOperatorWithCoordinator(&_ContractBLSRegistryCoordinatorWithIndices.TransactOpts, quorumNumbers, deregistrationData) +// Solidity: function deregisterOperatorWithCoordinator(bytes quorumNumbers, (uint256,uint256) pubkey) returns() +func (_ContractBLSRegistryCoordinatorWithIndices *ContractBLSRegistryCoordinatorWithIndicesSession) DeregisterOperatorWithCoordinator(quorumNumbers []byte, pubkey BN254G1Point) (*types.Transaction, error) { + return _ContractBLSRegistryCoordinatorWithIndices.Contract.DeregisterOperatorWithCoordinator(&_ContractBLSRegistryCoordinatorWithIndices.TransactOpts, quorumNumbers, pubkey) } -// DeregisterOperatorWithCoordinator is a paid mutator transaction binding the contract method 0xc81b1ff4. +// DeregisterOperatorWithCoordinator is a paid mutator transaction binding the contract method 0x455a43fc. // -// Solidity: function deregisterOperatorWithCoordinator(bytes quorumNumbers, bytes deregistrationData) returns() -func (_ContractBLSRegistryCoordinatorWithIndices *ContractBLSRegistryCoordinatorWithIndicesTransactorSession) DeregisterOperatorWithCoordinator(quorumNumbers []byte, deregistrationData []byte) (*types.Transaction, error) { - return _ContractBLSRegistryCoordinatorWithIndices.Contract.DeregisterOperatorWithCoordinator(&_ContractBLSRegistryCoordinatorWithIndices.TransactOpts, quorumNumbers, deregistrationData) +// Solidity: function deregisterOperatorWithCoordinator(bytes quorumNumbers, (uint256,uint256) pubkey) returns() +func (_ContractBLSRegistryCoordinatorWithIndices *ContractBLSRegistryCoordinatorWithIndicesTransactorSession) DeregisterOperatorWithCoordinator(quorumNumbers []byte, pubkey BN254G1Point) (*types.Transaction, error) { + return _ContractBLSRegistryCoordinatorWithIndices.Contract.DeregisterOperatorWithCoordinator(&_ContractBLSRegistryCoordinatorWithIndices.TransactOpts, quorumNumbers, pubkey) } -// DeregisterOperatorWithCoordinator0 is a paid mutator transaction binding the contract method 0xf807d627. +// DeregisterOperatorWithCoordinator0 is a paid mutator transaction binding the contract method 0xc81b1ff4. // -// Solidity: function deregisterOperatorWithCoordinator(bytes quorumNumbers, (uint256,uint256) pubkey, bytes32[] operatorIdsToSwap) returns() -func (_ContractBLSRegistryCoordinatorWithIndices *ContractBLSRegistryCoordinatorWithIndicesTransactor) DeregisterOperatorWithCoordinator0(opts *bind.TransactOpts, quorumNumbers []byte, pubkey BN254G1Point, operatorIdsToSwap [][32]byte) (*types.Transaction, error) { - return _ContractBLSRegistryCoordinatorWithIndices.contract.Transact(opts, "deregisterOperatorWithCoordinator0", quorumNumbers, pubkey, operatorIdsToSwap) +// Solidity: function deregisterOperatorWithCoordinator(bytes quorumNumbers, bytes deregistrationData) returns() +func (_ContractBLSRegistryCoordinatorWithIndices *ContractBLSRegistryCoordinatorWithIndicesTransactor) DeregisterOperatorWithCoordinator0(opts *bind.TransactOpts, quorumNumbers []byte, deregistrationData []byte) (*types.Transaction, error) { + return _ContractBLSRegistryCoordinatorWithIndices.contract.Transact(opts, "deregisterOperatorWithCoordinator0", quorumNumbers, deregistrationData) } -// DeregisterOperatorWithCoordinator0 is a paid mutator transaction binding the contract method 0xf807d627. +// DeregisterOperatorWithCoordinator0 is a paid mutator transaction binding the contract method 0xc81b1ff4. // -// Solidity: function deregisterOperatorWithCoordinator(bytes quorumNumbers, (uint256,uint256) pubkey, bytes32[] operatorIdsToSwap) returns() -func (_ContractBLSRegistryCoordinatorWithIndices *ContractBLSRegistryCoordinatorWithIndicesSession) DeregisterOperatorWithCoordinator0(quorumNumbers []byte, pubkey BN254G1Point, operatorIdsToSwap [][32]byte) (*types.Transaction, error) { - return _ContractBLSRegistryCoordinatorWithIndices.Contract.DeregisterOperatorWithCoordinator0(&_ContractBLSRegistryCoordinatorWithIndices.TransactOpts, quorumNumbers, pubkey, operatorIdsToSwap) +// Solidity: function deregisterOperatorWithCoordinator(bytes quorumNumbers, bytes deregistrationData) returns() +func (_ContractBLSRegistryCoordinatorWithIndices *ContractBLSRegistryCoordinatorWithIndicesSession) DeregisterOperatorWithCoordinator0(quorumNumbers []byte, deregistrationData []byte) (*types.Transaction, error) { + return _ContractBLSRegistryCoordinatorWithIndices.Contract.DeregisterOperatorWithCoordinator0(&_ContractBLSRegistryCoordinatorWithIndices.TransactOpts, quorumNumbers, deregistrationData) } -// DeregisterOperatorWithCoordinator0 is a paid mutator transaction binding the contract method 0xf807d627. +// DeregisterOperatorWithCoordinator0 is a paid mutator transaction binding the contract method 0xc81b1ff4. // -// Solidity: function deregisterOperatorWithCoordinator(bytes quorumNumbers, (uint256,uint256) pubkey, bytes32[] operatorIdsToSwap) returns() -func (_ContractBLSRegistryCoordinatorWithIndices *ContractBLSRegistryCoordinatorWithIndicesTransactorSession) DeregisterOperatorWithCoordinator0(quorumNumbers []byte, pubkey BN254G1Point, operatorIdsToSwap [][32]byte) (*types.Transaction, error) { - return _ContractBLSRegistryCoordinatorWithIndices.Contract.DeregisterOperatorWithCoordinator0(&_ContractBLSRegistryCoordinatorWithIndices.TransactOpts, quorumNumbers, pubkey, operatorIdsToSwap) +// Solidity: function deregisterOperatorWithCoordinator(bytes quorumNumbers, bytes deregistrationData) returns() +func (_ContractBLSRegistryCoordinatorWithIndices *ContractBLSRegistryCoordinatorWithIndicesTransactorSession) DeregisterOperatorWithCoordinator0(quorumNumbers []byte, deregistrationData []byte) (*types.Transaction, error) { + return _ContractBLSRegistryCoordinatorWithIndices.Contract.DeregisterOperatorWithCoordinator0(&_ContractBLSRegistryCoordinatorWithIndices.TransactOpts, quorumNumbers, deregistrationData) } -// EjectOperatorFromCoordinator is a paid mutator transaction binding the contract method 0xa79323f6. +// EjectOperatorFromCoordinator is a paid mutator transaction binding the contract method 0xb8347acc. // -// Solidity: function ejectOperatorFromCoordinator(address operator, bytes quorumNumbers, (uint256,uint256) pubkey, bytes32[] operatorIdsToSwap) returns() -func (_ContractBLSRegistryCoordinatorWithIndices *ContractBLSRegistryCoordinatorWithIndicesTransactor) EjectOperatorFromCoordinator(opts *bind.TransactOpts, operator common.Address, quorumNumbers []byte, pubkey BN254G1Point, operatorIdsToSwap [][32]byte) (*types.Transaction, error) { - return _ContractBLSRegistryCoordinatorWithIndices.contract.Transact(opts, "ejectOperatorFromCoordinator", operator, quorumNumbers, pubkey, operatorIdsToSwap) +// Solidity: function ejectOperatorFromCoordinator(address operator, bytes quorumNumbers, (uint256,uint256) pubkey) returns() +func (_ContractBLSRegistryCoordinatorWithIndices *ContractBLSRegistryCoordinatorWithIndicesTransactor) EjectOperatorFromCoordinator(opts *bind.TransactOpts, operator common.Address, quorumNumbers []byte, pubkey BN254G1Point) (*types.Transaction, error) { + return _ContractBLSRegistryCoordinatorWithIndices.contract.Transact(opts, "ejectOperatorFromCoordinator", operator, quorumNumbers, pubkey) } -// EjectOperatorFromCoordinator is a paid mutator transaction binding the contract method 0xa79323f6. +// EjectOperatorFromCoordinator is a paid mutator transaction binding the contract method 0xb8347acc. // -// Solidity: function ejectOperatorFromCoordinator(address operator, bytes quorumNumbers, (uint256,uint256) pubkey, bytes32[] operatorIdsToSwap) returns() -func (_ContractBLSRegistryCoordinatorWithIndices *ContractBLSRegistryCoordinatorWithIndicesSession) EjectOperatorFromCoordinator(operator common.Address, quorumNumbers []byte, pubkey BN254G1Point, operatorIdsToSwap [][32]byte) (*types.Transaction, error) { - return _ContractBLSRegistryCoordinatorWithIndices.Contract.EjectOperatorFromCoordinator(&_ContractBLSRegistryCoordinatorWithIndices.TransactOpts, operator, quorumNumbers, pubkey, operatorIdsToSwap) +// Solidity: function ejectOperatorFromCoordinator(address operator, bytes quorumNumbers, (uint256,uint256) pubkey) returns() +func (_ContractBLSRegistryCoordinatorWithIndices *ContractBLSRegistryCoordinatorWithIndicesSession) EjectOperatorFromCoordinator(operator common.Address, quorumNumbers []byte, pubkey BN254G1Point) (*types.Transaction, error) { + return _ContractBLSRegistryCoordinatorWithIndices.Contract.EjectOperatorFromCoordinator(&_ContractBLSRegistryCoordinatorWithIndices.TransactOpts, operator, quorumNumbers, pubkey) } -// EjectOperatorFromCoordinator is a paid mutator transaction binding the contract method 0xa79323f6. +// EjectOperatorFromCoordinator is a paid mutator transaction binding the contract method 0xb8347acc. // -// Solidity: function ejectOperatorFromCoordinator(address operator, bytes quorumNumbers, (uint256,uint256) pubkey, bytes32[] operatorIdsToSwap) returns() -func (_ContractBLSRegistryCoordinatorWithIndices *ContractBLSRegistryCoordinatorWithIndicesTransactorSession) EjectOperatorFromCoordinator(operator common.Address, quorumNumbers []byte, pubkey BN254G1Point, operatorIdsToSwap [][32]byte) (*types.Transaction, error) { - return _ContractBLSRegistryCoordinatorWithIndices.Contract.EjectOperatorFromCoordinator(&_ContractBLSRegistryCoordinatorWithIndices.TransactOpts, operator, quorumNumbers, pubkey, operatorIdsToSwap) +// Solidity: function ejectOperatorFromCoordinator(address operator, bytes quorumNumbers, (uint256,uint256) pubkey) returns() +func (_ContractBLSRegistryCoordinatorWithIndices *ContractBLSRegistryCoordinatorWithIndicesTransactorSession) EjectOperatorFromCoordinator(operator common.Address, quorumNumbers []byte, pubkey BN254G1Point) (*types.Transaction, error) { + return _ContractBLSRegistryCoordinatorWithIndices.Contract.EjectOperatorFromCoordinator(&_ContractBLSRegistryCoordinatorWithIndices.TransactOpts, operator, quorumNumbers, pubkey) } // Initialize is a paid mutator transaction binding the contract method 0x4b76b9d5. diff --git a/contracts/bindings/DelegationManager/binding.go b/contracts/bindings/DelegationManager/binding.go index 962fe2c5..095a99e2 100644 --- a/contracts/bindings/DelegationManager/binding.go +++ b/contracts/bindings/DelegationManager/binding.go @@ -78,8 +78,8 @@ type IStrategyManagerDeprecatedStructWithdrawerAndNonce struct { // ContractDelegationManagerMetaData contains all meta data concerning the ContractDelegationManager contract. var ContractDelegationManagerMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"contractIStrategyManager\",\"name\":\"_strategyManager\",\"type\":\"address\"},{\"internalType\":\"contractISlasher\",\"name\":\"_slasher\",\"type\":\"address\"},{\"internalType\":\"contractIEigenPodManager\",\"name\":\"_eigenPodManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"earningsReceiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegationApprover\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"stakerOptOutWindowBlocks\",\"type\":\"uint32\"}],\"indexed\":false,\"internalType\":\"structIDelegationManager.OperatorDetails\",\"name\":\"newOperatorDetails\",\"type\":\"tuple\"}],\"name\":\"OperatorDetailsModified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"}],\"name\":\"OperatorMetadataURIUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"earningsReceiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegationApprover\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"stakerOptOutWindowBlocks\",\"type\":\"uint32\"}],\"indexed\":false,\"internalType\":\"structIDelegationManager.OperatorDetails\",\"name\":\"operatorDetails\",\"type\":\"tuple\"}],\"name\":\"OperatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contractIStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"OperatorSharesDecreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contractIStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"OperatorSharesIncreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contractIPauserRegistry\",\"name\":\"pauserRegistry\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contractIPauserRegistry\",\"name\":\"newPauserRegistry\",\"type\":\"address\"}],\"name\":\"PauserRegistrySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contractIStakeRegistry\",\"name\":\"stakeRegistry\",\"type\":\"address\"}],\"name\":\"StakeRegistrySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"StakerDelegated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"StakerForceUndelegated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"StakerUndelegated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"name\":\"WithdrawalCompleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousValue\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newValue\",\"type\":\"uint256\"}],\"name\":\"WithdrawalDelayBlocksSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"oldWithdrawalRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"newWithdrawalRoot\",\"type\":\"bytes32\"}],\"name\":\"WithdrawalMigrated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatedTo\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"startBlock\",\"type\":\"uint32\"},{\"internalType\":\"contractIStrategy[]\",\"name\":\"strategies\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"shares\",\"type\":\"uint256[]\"}],\"indexed\":false,\"internalType\":\"structIDelegationManager.Withdrawal\",\"name\":\"withdrawal\",\"type\":\"tuple\"}],\"name\":\"WithdrawalQueued\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DELEGATION_APPROVAL_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DOMAIN_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_STAKER_OPT_OUT_WINDOW_BLOCKS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_WITHDRAWAL_DELAY_BLOCKS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"STAKER_DELEGATION_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"beaconChainETHStrategy\",\"outputs\":[{\"internalType\":\"contractIStrategy\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"name\":\"calculateCurrentStakerDelegationDigestHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_delegationApprover\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"approverSalt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"name\":\"calculateDelegationApprovalDigestHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_stakerNonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"name\":\"calculateStakerDelegationDigestHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatedTo\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"startBlock\",\"type\":\"uint32\"},{\"internalType\":\"contractIStrategy[]\",\"name\":\"strategies\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"shares\",\"type\":\"uint256[]\"}],\"internalType\":\"structIDelegationManager.Withdrawal\",\"name\":\"withdrawal\",\"type\":\"tuple\"}],\"name\":\"calculateWithdrawalRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatedTo\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"startBlock\",\"type\":\"uint32\"},{\"internalType\":\"contractIStrategy[]\",\"name\":\"strategies\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"shares\",\"type\":\"uint256[]\"}],\"internalType\":\"structIDelegationManager.Withdrawal\",\"name\":\"withdrawal\",\"type\":\"tuple\"},{\"internalType\":\"contractIERC20[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"middlewareTimesIndex\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"receiveAsTokens\",\"type\":\"bool\"}],\"name\":\"completeQueuedWithdrawal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatedTo\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"startBlock\",\"type\":\"uint32\"},{\"internalType\":\"contractIStrategy[]\",\"name\":\"strategies\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"shares\",\"type\":\"uint256[]\"}],\"internalType\":\"structIDelegationManager.Withdrawal[]\",\"name\":\"withdrawals\",\"type\":\"tuple[]\"},{\"internalType\":\"contractIERC20[][]\",\"name\":\"tokens\",\"type\":\"address[][]\"},{\"internalType\":\"uint256[]\",\"name\":\"middlewareTimesIndexes\",\"type\":\"uint256[]\"},{\"internalType\":\"bool[]\",\"name\":\"receiveAsTokens\",\"type\":\"bool[]\"}],\"name\":\"completeQueuedWithdrawals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"cumulativeWithdrawalsQueued\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"contractIStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"decreaseDelegatedShares\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"internalType\":\"structISignatureUtils.SignatureWithExpiry\",\"name\":\"approverSignatureAndExpiry\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"approverSalt\",\"type\":\"bytes32\"}],\"name\":\"delegateTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"internalType\":\"structISignatureUtils.SignatureWithExpiry\",\"name\":\"stakerSignatureAndExpiry\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"internalType\":\"structISignatureUtils.SignatureWithExpiry\",\"name\":\"approverSignatureAndExpiry\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"approverSalt\",\"type\":\"bytes32\"}],\"name\":\"delegateToBySignature\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"delegatedTo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"delegationApprover\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"delegationApproverSaltIsSpent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"domainSeparator\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"earningsReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eigenPodManager\",\"outputs\":[{\"internalType\":\"contractIEigenPodManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"getDelegatableShares\",\"outputs\":[{\"internalType\":\"contractIStrategy[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"contractIStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"increaseDelegatedShares\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"},{\"internalType\":\"contractIPauserRegistry\",\"name\":\"_pauserRegistry\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"initialPausedStatus\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"isDelegated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contractIStrategy[]\",\"name\":\"strategies\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"shares\",\"type\":\"uint256[]\"},{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"nonce\",\"type\":\"uint96\"}],\"internalType\":\"structIStrategyManager.DeprecatedStruct_WithdrawerAndNonce\",\"name\":\"withdrawerAndNonce\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"withdrawalStartBlock\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"delegatedAddress\",\"type\":\"address\"}],\"internalType\":\"structIStrategyManager.DeprecatedStruct_QueuedWithdrawal[]\",\"name\":\"withdrawalsToMigrate\",\"type\":\"tuple[]\"}],\"name\":\"migrateQueuedWithdrawals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"earningsReceiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegationApprover\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"stakerOptOutWindowBlocks\",\"type\":\"uint32\"}],\"internalType\":\"structIDelegationManager.OperatorDetails\",\"name\":\"newOperatorDetails\",\"type\":\"tuple\"}],\"name\":\"modifyOperatorDetails\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"operatorDetails\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"earningsReceiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegationApprover\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"stakerOptOutWindowBlocks\",\"type\":\"uint32\"}],\"internalType\":\"structIDelegationManager.OperatorDetails\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"contractIStrategy\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"operatorShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauserRegistry\",\"outputs\":[{\"internalType\":\"contractIPauserRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"pendingWithdrawals\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contractIStrategy[]\",\"name\":\"strategies\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"shares\",\"type\":\"uint256[]\"},{\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"}],\"internalType\":\"structIDelegationManager.QueuedWithdrawalParams[]\",\"name\":\"queuedWithdrawalParams\",\"type\":\"tuple[]\"}],\"name\":\"queueWithdrawals\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"earningsReceiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegationApprover\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"stakerOptOutWindowBlocks\",\"type\":\"uint32\"}],\"internalType\":\"structIDelegationManager.OperatorDetails\",\"name\":\"registeringOperatorDetails\",\"type\":\"tuple\"},{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"}],\"name\":\"registerAsOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIPauserRegistry\",\"name\":\"newPauserRegistry\",\"type\":\"address\"}],\"name\":\"setPauserRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIStakeRegistry\",\"name\":\"_stakeRegistry\",\"type\":\"address\"}],\"name\":\"setStakeRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newWithdrawalDelayBlocks\",\"type\":\"uint256\"}],\"name\":\"setWithdrawalDelayBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"internalType\":\"contractISlasher\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakeRegistry\",\"outputs\":[{\"internalType\":\"contractIStakeRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"stakerNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stakerOptOutWindowBlocks\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"strategyManager\",\"outputs\":[{\"internalType\":\"contractIStrategyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"undelegate\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"}],\"name\":\"updateOperatorMetadataURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawalDelayBlocks\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x6101006040523480156200001257600080fd5b506040516200590638038062005906833981016040819052620000359162000140565b6001600160a01b0380841660805280821660c052821660a0526200005862000065565b50504660e0525062000194565b600054610100900460ff1615620000d25760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000125576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200013d57600080fd5b50565b6000806000606084860312156200015657600080fd5b8351620001638162000127565b6020850151909350620001768162000127565b6040850151909250620001898162000127565b809150509250925092565b60805160a05160c05160e0516156dd62000229600039600061265701526000818161058b01528181610fc30152818161131901528181611ce80152818161292601528181613a210152613f31015260006107770152600081816104d301528181610f91015281816112e7015281816116e601528181611d7c015281816129d801528181613b580152613fd701526156dd6000f3fe608060405234801561001057600080fd5b50600436106103425760003560e01c80635f966f14116101b8578063b134427111610104578063da8be864116100a2578063f16172b01161007c578063f16172b014610906578063f2fde38b14610919578063f698da251461092c578063fabc1cbc1461093457600080fd5b8063da8be864146108cd578063e3b05f2f146108e0578063eea9064b146108f357600080fd5b8063c5e480db116100de578063c5e480db146107ea578063c94b511114610890578063ca661c04146108a3578063cf80873e146108ac57600080fd5b8063b134427114610772578063b7f06ebe14610799578063bb45fef2146107bc57600080fd5b8063778e55f3116101715780638da5cb5b1161014b5780638da5cb5b146107135780639104c3191461072457806399be81c81461073f578063a17884841461075257600080fd5b8063778e55f3146106c25780637f548071146106ed578063886f11951461070057600080fd5b80635f966f141461062c57806360d7faed1461065857806365da12641461066b57806368304835146106945780636d70f7ae146106a7578063715018a6146106ba57600080fd5b806333404396116102925780634fc40b6111610230578063597b36da1161020a578063597b36da146105db5780635ac86ab7146105ee5780635c975abb146106115780635cfe8d2c1461061957600080fd5b80634fc40b61146105c057806350f73e7c146105ca578063595c6a67146105d357600080fd5b80633e28391d1161026c5780633e28391d1461053c578063433773821461055f5780634665bcda146105865780634d50f9a4146105ad57600080fd5b806333404396146104bb57806339b70e38146104ce5780633cdeb5e01461050d57600080fd5b8063136439dd116102ff5780631bbce091116102d95780631bbce0911461044e57806320606b701461046157806328a573ae1461048857806329c77d4f1461049b57600080fd5b8063136439dd146103ef57806316928365146104025780631794bb3c1461043b57600080fd5b806304a4f979146103475780630b9f487a146103815780630dd8dd02146103945780630f589e59146103b457806310d67a2f146103c9578063132d4967146103dc575b600080fd5b61036e7f3b89fca151cbe5122d58acee86cf184413d751d585779bdd19d3bbfa3a306dce81565b6040519081526020015b60405180910390f35b61036e61038f3660046143d5565b610947565b6103a76103a2366004614474565b610a09565b60405161037891906144b5565b6103c76103c2366004614552565b610d83565b005b6103c76103d73660046145a5565b610ed3565b6103c76103ea3660046145c9565b610f86565b6103c76103fd36600461460a565b611046565b61036e6104103660046145a5565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b6103c76104493660046145c9565b611185565b61036e61045c3660046145c9565b6112ae565b61036e7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103c76104963660046145c9565b6112dc565b61036e6104a93660046145a5565b609b6020526000908152604090205481565b6103c76104c9366004614623565b61138c565b6104f57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610378565b6104f561051b3660046145a5565b6001600160a01b039081166000908152609960205260409020600101541690565b61054f61054a3660046145a5565b6114c9565b6040519015158152602001610378565b61036e7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b6104f57f000000000000000000000000000000000000000000000000000000000000000081565b6103c76105bb36600461460a565b6114e9565b61036e6213c68081565b61036e609d5481565b6103c76115c0565b61036e6105e9366004614963565b611687565b61054f6105fc36600461499f565b606654600160ff9092169190911b9081161490565b60665461036e565b6103c7610627366004614a15565b6116b7565b6104f561063a3660046145a5565b6001600160a01b039081166000908152609960205260409020541690565b6103c7610666366004614b75565b611962565b6104f56106793660046145a5565b609a602052600090815260409020546001600160a01b031681565b60a0546104f5906001600160a01b031681565b61054f6106b53660046145a5565b6119fd565b6103c7611a1d565b61036e6106d0366004614c04565b609860209081526000928352604080842090915290825290205481565b6103c76106fb366004614ce5565b611a31565b6065546104f5906001600160a01b031681565b6033546001600160a01b03166104f5565b6104f573beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103c761074d366004614d75565b611b36565b61036e6107603660046145a5565b609f6020526000908152604090205481565b6104f57f000000000000000000000000000000000000000000000000000000000000000081565b61054f6107a736600461460a565b609e6020526000908152604090205460ff1681565b61054f6107ca366004614daa565b609c60209081526000928352604080842090915290825290205460ff1681565b61085a6107f83660046145a5565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610378565b61036e61089e366004614dd6565b611c08565b61036e61c4e081565b6108bf6108ba3660046145a5565b611cc1565b604051610378929190614e92565b61036e6108db3660046145a5565b612079565b6103c76108ee3660046145a5565b6123d8565b6103c7610901366004614eb7565b612540565b6103c7610914366004614f0f565b61254c565b6103c76109273660046145a5565b6125dd565b61036e612653565b6103c761094236600461460a565b612691565b604080517f3b89fca151cbe5122d58acee86cf184413d751d585779bdd19d3bbfa3a306dce6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e09092019092528051910120600090816109c5612653565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b60665460609060019060029081161415610a3e5760405162461bcd60e51b8152600401610a3590614f2b565b60405180910390fd5b6000836001600160401b03811115610a5857610a586146e6565b604051908082528060200260200182016040528015610a81578160200160208202803683370190505b50905060005b84811015610d7a57858582818110610aa157610aa1614f62565b9050602002810190610ab39190614f78565b610ac1906020810190614f98565b9050868683818110610ad557610ad5614f62565b9050602002810190610ae79190614f78565b610af19080614f98565b905014610b665760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610a35565b6000868683818110610b7a57610b7a614f62565b9050602002810190610b8c9190614f78565b610b9d9060608101906040016145a5565b6001600160a01b03161415610c2b5760405162461bcd60e51b815260206004820152604860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a206d7573742070726f766964652076616c6964207769746864726177616c606482015267206164647265737360c01b608482015260a401610a35565b336000818152609a60205260409020546001600160a01b031690610d4a9082898986818110610c5c57610c5c614f62565b9050602002810190610c6e9190614f78565b610c7f9060608101906040016145a5565b8a8a87818110610c9157610c91614f62565b9050602002810190610ca39190614f78565b610cad9080614f98565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150899050818110610cf357610cf3614f62565b9050602002810190610d059190614f78565b610d13906020810190614f98565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127ed92505050565b838381518110610d5c57610d5c614f62565b60209081029190910101525080610d7281614ff7565b915050610a87565b50949350505050565b336000908152609960205260409020546001600160a01b031615610e1d5760405162461bcd60e51b815260206004820152604560248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a206f70657261746f722068617320616c72656164792072656769736064820152641d195c995960da1b608482015260a401610a35565b610e273384612b9d565b604080518082019091526060815260006020820152610e493380836000612e39565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610e829190615012565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610ec5929190615064565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4a9190615093565b6001600160a01b0316336001600160a01b031614610f7a5760405162461bcd60e51b8152600401610a35906150b0565b610f83816131f2565b50565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610fe55750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b6110015760405162461bcd60e51b8152600401610a35906150fa565b61100a836114c9565b15611041576001600160a01b038084166000908152609a602052604090205416611036818585856132e9565b61103f81613364565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561108e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b29190615157565b6110ce5760405162461bcd60e51b8152600401610a3590615174565b606654818116146111475760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610a35565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156111a55750600054600160ff909116105b806111bf5750303b1580156111bf575060005460ff166001145b6112225760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610a35565b6000805460ff191660011790558015611245576000805461ff0019166101001790555b61124f838361341e565b611257613504565b6097556112638461359b565b801561103f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b6001600160a01b0383166000908152609b60205260408120546112d385828686611c08565b95945050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061133b5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b6113575760405162461bcd60e51b8152600401610a35906150fa565b611360836114c9565b15611041576001600160a01b038084166000908152609a602052604090205416611036818585856135ed565b606654600290600490811614156113b55760405162461bcd60e51b8152600401610a3590614f2b565b600260c95414156114085760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a35565b600260c95560005b888110156114b8576114a88a8a8381811061142d5761142d614f62565b905060200281019061143f91906151bc565b89898481811061145157611451614f62565b90506020028101906114639190614f98565b89898681811061147557611475614f62565b9050602002013588888781811061148e5761148e614f62565b90506020020160208101906114a391906151d2565b613668565b6114b181614ff7565b9050611410565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b6114f1613ce2565b61c4e081111561157f5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e7365745769746864726177616c4460448201527f656c6179426c6f636b733a206e65775769746864726177616c44656c6179426c60648201526c0dec6d6e640e8dede40d0d2ced609b1b608482015260a401610a35565b609d5460408051918252602082018390527f4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e910160405180910390a1609d55565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015611608573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162c9190615157565b6116485760405162461bcd60e51b8152600401610a3590615174565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60008160405160200161169a9190615263565b604051602081830303815290604052805190602001209050919050565b60005b815181101561195e5760008282815181106116d7576116d7614f62565b602002602001015190506000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663cd293f6f846040518263ffffffff1660e01b81526004016117309190615276565b60408051808303816000875af115801561174e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117729190615325565b915091508115611950576040808401516001600160a01b0381166000908152609f602052918220805491928291906117a983614ff7565b919050555060006040518060e00160405280846001600160a01b031681526020018760a001516001600160a01b031681526020018760600151600001516001600160a01b03168152602001838152602001876080015163ffffffff1681526020018760000151815260200187602001518152509050600061182982611687565b6000818152609e602052604090205490915060ff16156118bf5760405162461bcd60e51b815260206004820152604560248201527f44656c65676174696f6e4d616e616765722e6d6967726174655175657565645760448201527f69746864726177616c733a207769746864726177616c20616c72656164792065606482015264786973747360d81b608482015260a401610a35565b6000818152609e602052604090819020805460ff19166001179055517f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f99061190a9083908590615353565b60405180910390a160408051868152602081018390527fdc00758b65eef71dc3780c04ebe36cab6bdb266c3a698187e29e0f0dca012630910160405180910390a1505050505b8360010193505050506116ba565b5050565b6066546002906004908116141561198b5760405162461bcd60e51b8152600401610a3590614f2b565b600260c95414156119de5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a35565b600260c9556119f08686868686613668565b5050600160c95550505050565b6001600160a01b0390811660009081526099602052604090205416151590565b611a25613ce2565b611a2f600061359b565b565b4283602001511015611ab55760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610a35565b6000609b6000876001600160a01b03166001600160a01b031681526020019081526020016000205490506000611af18783888860200151611c08565b6001600160a01b0388166000908152609b602052604090206001840190558551909150611b219088908390613d3c565b611b2d87878686612e39565b50505050505050565b611b3f336119fd565b611bc15760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610a35565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611bfc929190615064565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611c7e612653565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000000000000000000000000000000000000000000000909116906360f4062b90602401602060405180830381865afa158015611d31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d55919061536c565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f0000000000000000000000000000000000000000000000000000000000000000909116906394f649dd90602401600060405180830381865afa158015611dc5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ded91908101906153e0565b9150915060008313611e0457909590945092505050565b606080835160001415611ebe576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611e7957611e79614f62565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611ead57611ead614f62565b60200260200101818152505061206c565b8351611ecb9060016154a4565b6001600160401b03811115611ee257611ee26146e6565b604051908082528060200260200182016040528015611f0b578160200160208202803683370190505b50915081516001600160401b03811115611f2757611f276146e6565b604051908082528060200260200182016040528015611f50578160200160208202803683370190505b50905060005b8451811015611fea57848181518110611f7157611f71614f62565b6020026020010151838281518110611f8b57611f8b614f62565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611fbd57611fbd614f62565b6020026020010151828281518110611fd757611fd7614f62565b6020908102919091010152600101611f56565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0826001845161200f91906154bc565b8151811061201f5761201f614f62565b60200260200101906001600160a01b031690816001600160a01b03168152505084816001845161204f91906154bc565b8151811061205f5761205f614f62565b6020026020010181815250505b9097909650945050505050565b606654600090600190600290811614156120a55760405162461bcd60e51b8152600401610a3590614f2b565b6120ae836114c9565b61212e5760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610a35565b6001600160a01b038084166000908152609a602052604090205416612152846119fd565b156121c55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610a35565b6001600160a01b0384166122415760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610a35565b336001600160a01b03851614806122605750336001600160a01b038216145b8061228757506001600160a01b038181166000908152609960205260409020600101541633145b6122f95760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610a35565b60008061230586611cc1565b9092509050336001600160a01b0387161461235b57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040902080546001600160a01b03191690556123ce86848185856127ed565b9695505050505050565b6123e0613ce2565b60a0546001600160a01b03161561245f5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e7365745374616b6552656769737460448201527f72793a207374616b65526567697374727920616c7265616479207365740000006064820152608401610a35565b6001600160a01b0381166124ec5760405162461bcd60e51b815260206004820152604860248201527f44656c65676174696f6e4d616e616765722e7365745374616b6552656769737460448201527f72793a207374616b6552656769737472792063616e6e6f74206265207a65726f606482015267206164647265737360c01b608482015260a401610a35565b60a080546001600160a01b0319166001600160a01b0383169081179091556040519081527fce6d874069bceda1867eca9c60636bbf262e15213041658273d803a2b609a51f9060200160405180910390a150565b61104133848484612e39565b612555336119fd565b6125d35760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610a35565b610f833382612b9d565b6125e5613ce2565b6001600160a01b03811661264a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a35565b610f838161359b565b60007f0000000000000000000000000000000000000000000000000000000000000000461415612684575060975490565b61268c613504565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127089190615093565b6001600160a01b0316336001600160a01b0316146127385760405162461bcd60e51b8152600401610a35906150b0565b6066541981196066541916146127b65760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610a35565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161117a565b60006001600160a01b0386166128845760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610a35565b60005b8351811015612a93576001600160a01b038616156128dd576128dd86888684815181106128b6576128b6614f62565b60200260200101518685815181106128d0576128d0614f62565b60200260200101516132e9565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b031684828151811061290d5761290d614f62565b60200260200101516001600160a01b031614156129d6577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663beffbb898885848151811061296657612966614f62565b60200260200101516040518363ffffffff1660e01b815260040161299f9291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b1580156129b957600080fd5b505af11580156129cd573d6000803e3d6000fd5b50505050612a8b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638c80d4e588868481518110612a1857612a18614f62565b6020026020010151868581518110612a3257612a32614f62565b60200260200101516040518463ffffffff1660e01b8152600401612a58939291906154d3565b600060405180830381600087803b158015612a7257600080fd5b505af1158015612a86573d6000803e3d6000fd5b505050505b600101612887565b506001600160a01b03851615612aac57612aac85613364565b6001600160a01b0386166000908152609f60205260408120805491829190612ad383614ff7565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612b3b82611687565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612b899083908590615353565b60405180910390a198975050505050505050565b6000612bac60208301836145a5565b6001600160a01b03161415612c465760405162461bcd60e51b815260206004820152605460248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a2063616e6e6f742073657420606561726e696e677352656365696064820152737665726020746f207a65726f206164647265737360601b608482015260a401610a35565b6213c680612c5a60608301604084016154f7565b63ffffffff161115612d0f5760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610a35565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612d4b90606084019084016154f7565b63ffffffff161015612de15760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610a35565b6001600160a01b03821660009081526099602052604090208190612e058282615534565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611bfc908490615012565b60665460009060019081161415612e625760405162461bcd60e51b8152600401610a3590614f2b565b612e6b856114c9565b15612ee85760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2073746160448201527f6b657220697320616c7265616479206163746976656c792064656c65676174656064820152601960fa1b608482015260a401610a35565b612ef1846119fd565b612f715760405162461bcd60e51b815260206004820152604560248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a206f706560448201527f7261746f72206973206e6f74207265676973746572656420696e20456967656e6064820152642630bcb2b960d91b608482015260a401610a35565b6001600160a01b03808516600090815260996020526040902060010154168015801590612fa75750336001600160a01b03821614155b8015612fbc5750336001600160a01b03861614155b1561312957428460200151101561303b5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610a35565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff16156130d55760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610a35565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff19166001179055850151613116908890889085908890610947565b905061312782828760000151613d3c565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a360008061318888611cc1565b9150915060005b82518110156131de576131d6888a8584815181106131af576131af614f62565b60200260200101518585815181106131c9576131c9614f62565b60200260200101516135ed565b60010161318f565b506131e887613364565b5050505050505050565b6001600160a01b0381166132805760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610a35565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038085166000908152609860209081526040808320938616835292905290812080548392906133209084906154bc565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610ec5939291906154d3565b60a0546001600160a01b031615610f83576040805160018082528183019092526000916020808301908036833701905050905081816000815181106133ab576133ab614f62565b6001600160a01b03928316602091820292909201015260a05460405163ce977ec360e01b815291169063ce977ec3906133e8908490600401615597565b600060405180830381600087803b15801561340257600080fd5b505af1158015613416573d6000803e3d6000fd5b505050505050565b6065546001600160a01b031615801561343f57506001600160a01b03821615155b6134c15760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610a35565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261195e826131f2565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038085166000908152609860209081526040808320938616835292905290812080548392906136249084906154a4565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610ec5939291906154d3565b60006136766105e9876155d8565b6000818152609e602052604090205490915060ff166136eb5760405162461bcd60e51b815260206004820152603e602482015260008051602061568883398151915260448201527f416374696f6e3a20616374696f6e206973206e6f7420696e20717565756500006064820152608401610a35565b609d54439061370060a0890160808a016154f7565b63ffffffff1661371091906154a4565b11156137985760405162461bcd60e51b8152602060048201526057602482015260008051602061568883398151915260448201527f416374696f6e3a207769746864726177616c44656c6179426c6f636b7320706560648201527f72696f6420686173206e6f742079657420706173736564000000000000000000608482015260a401610a35565b6137a860608701604088016145a5565b6001600160a01b0316336001600160a01b0316146138305760405162461bcd60e51b815260206004820152604b602482015260008051602061568883398151915260448201527f416374696f6e3a206f6e6c7920776974686472617765722063616e20636f6d7060648201526a3632ba329030b1ba34b7b760a91b608482015260a401610a35565b81156138a75761384360a0870187614f98565b851490506138a75760405162461bcd60e51b815260206004820152603d602482015260008051602061568883398151915260448201527f416374696f6e3a20696e707574206c656e677468206d69736d617463680000006064820152608401610a35565b6000818152609e60205260409020805460ff19169055811561397d5760005b6138d360a0880188614f98565b90508110156139775761396f6138ec60208901896145a5565b336138fa60a08b018b614f98565b8581811061390a5761390a614f62565b905060200201602081019061391f91906145a5565b61392c60c08c018c614f98565b8681811061393c5761393c614f62565b905060200201358a8a8781811061395557613955614f62565b905060200201602081019061396a91906145a5565b613ef6565b6001016138c6565b50613ca7565b336000908152609a60205260408120546001600160a01b0316905b6139a560a0890189614f98565b9050811015613c9b5773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06139d060a08a018a614f98565b838181106139e0576139e0614f62565b90506020020160208101906139f591906145a5565b6001600160a01b03161415613b4e576000613a1360208a018a6145a5565b905060006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016630e81073c83613a5460c08e018e614f98565b87818110613a6457613a64614f62565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613ab8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613adc919061536c565b6001600160a01b038084166000908152609a6020526040902054919250168015613b4657613b3d8184613b1260a08f018f614f98565b88818110613b2257613b22614f62565b9050602002016020810190613b3791906145a5565b856135ed565b613b4681613364565b505050613c93565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166350ff722533613b8b60a08c018c614f98565b85818110613b9b57613b9b614f62565b9050602002016020810190613bb091906145a5565b613bbd60c08d018d614f98565b86818110613bcd57613bcd614f62565b905060200201356040518463ffffffff1660e01b8152600401613bf2939291906154d3565b600060405180830381600087803b158015613c0c57600080fd5b505af1158015613c20573d6000803e3d6000fd5b505050506001600160a01b03821615613c9357613c938233613c4560a08c018c614f98565b85818110613c5557613c55614f62565b9050602002016020810190613c6a91906145a5565b613c7760c08d018d614f98565b86818110613c8757613c87614f62565b905060200201356135ed565b600101613998565b50613ca581613364565b505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6033546001600160a01b03163314611a2f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a35565b6001600160a01b0383163b15613e5657604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90613d7c90869086906004016155ea565b602060405180830381865afa158015613d99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dbd9190615647565b6001600160e01b031916146110415760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610a35565b826001600160a01b0316613e6a838361403b565b6001600160a01b0316146110415760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610a35565b6001600160a01b03831673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac01415613fa15760405162387b1360e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063387b130090613f6a908890889087906004016154d3565b600060405180830381600087803b158015613f8457600080fd5b505af1158015613f98573d6000803e3d6000fd5b50505050614034565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f0000000000000000000000000000000000000000000000000000000000000000169063c608c7f390608401600060405180830381600087803b15801561401b57600080fd5b505af115801561402f573d6000803e3d6000fd5b505050505b5050505050565b600080600061404a858561405f565b91509150614057816140cf565b509392505050565b6000808251604114156140965760208301516040840151606085015160001a61408a8782858561428a565b945094505050506140c8565b8251604014156140c057602083015160408401516140b5868383614377565b9350935050506140c8565b506000905060025b9250929050565b60008160048111156140e3576140e3615671565b14156140ec5750565b600181600481111561410057614100615671565b141561414e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610a35565b600281600481111561416257614162615671565b14156141b05760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610a35565b60038160048111156141c4576141c4615671565b141561421d5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610a35565b600481600481111561423157614231615671565b1415610f835760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610a35565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156142c1575060009050600361436e565b8460ff16601b141580156142d957508460ff16601c14155b156142ea575060009050600461436e565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561433e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166143675760006001925092505061436e565b9150600090505b94509492505050565b6000806001600160ff1b0383168161439460ff86901c601b6154a4565b90506143a28782888561428a565b935093505050935093915050565b6001600160a01b0381168114610f8357600080fd5b80356143d0816143b0565b919050565b600080600080600060a086880312156143ed57600080fd5b85356143f8816143b0565b94506020860135614408816143b0565b93506040860135614418816143b0565b94979396509394606081013594506080013592915050565b60008083601f84011261444257600080fd5b5081356001600160401b0381111561445957600080fd5b6020830191508360208260051b85010111156140c857600080fd5b6000806020838503121561448757600080fd5b82356001600160401b0381111561449d57600080fd5b6144a985828601614430565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b818110156144ed578351835292840192918401916001016144d1565b50909695505050505050565b60006060828403121561450b57600080fd5b50919050565b60008083601f84011261452357600080fd5b5081356001600160401b0381111561453a57600080fd5b6020830191508360208285010111156140c857600080fd5b60008060006080848603121561456757600080fd5b61457185856144f9565b925060608401356001600160401b0381111561458c57600080fd5b61459886828701614511565b9497909650939450505050565b6000602082840312156145b757600080fd5b81356145c2816143b0565b9392505050565b6000806000606084860312156145de57600080fd5b83356145e9816143b0565b925060208401356145f9816143b0565b929592945050506040919091013590565b60006020828403121561461c57600080fd5b5035919050565b6000806000806000806000806080898b03121561463f57600080fd5b88356001600160401b038082111561465657600080fd5b6146628c838d01614430565b909a50985060208b013591508082111561467b57600080fd5b6146878c838d01614430565b909850965060408b01359150808211156146a057600080fd5b6146ac8c838d01614430565b909650945060608b01359150808211156146c557600080fd5b506146d28b828c01614430565b999c989b5096995094979396929594505050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b038111828210171561471e5761471e6146e6565b60405290565b604080519081016001600160401b038111828210171561471e5761471e6146e6565b60405160c081016001600160401b038111828210171561471e5761471e6146e6565b604051601f8201601f191681016001600160401b0381118282101715614790576147906146e6565b604052919050565b63ffffffff81168114610f8357600080fd5b80356143d081614798565b60006001600160401b038211156147ce576147ce6146e6565b5060051b60200190565b600082601f8301126147e957600080fd5b813560206147fe6147f9836147b5565b614768565b82815260059290921b8401810191818101908684111561481d57600080fd5b8286015b84811015614841578035614834816143b0565b8352918301918301614821565b509695505050505050565b600082601f83011261485d57600080fd5b8135602061486d6147f9836147b5565b82815260059290921b8401810191818101908684111561488c57600080fd5b8286015b848110156148415780358352918301918301614890565b600060e082840312156148b957600080fd5b6148c16146fc565b90506148cc826143c5565b81526148da602083016143c5565b60208201526148eb604083016143c5565b604082015260608201356060820152614906608083016147aa565b608082015260a08201356001600160401b038082111561492557600080fd5b614931858386016147d8565b60a084015260c084013591508082111561494a57600080fd5b506149578482850161484c565b60c08301525092915050565b60006020828403121561497557600080fd5b81356001600160401b0381111561498b57600080fd5b614997848285016148a7565b949350505050565b6000602082840312156149b157600080fd5b813560ff811681146145c257600080fd5b6000604082840312156149d457600080fd5b6149dc614724565b905081356149e9816143b0565b815260208201356bffffffffffffffffffffffff81168114614a0a57600080fd5b602082015292915050565b60006020808385031215614a2857600080fd5b82356001600160401b0380821115614a3f57600080fd5b818501915085601f830112614a5357600080fd5b8135614a616147f9826147b5565b81815260059190911b83018401908481019088831115614a8057600080fd5b8585015b83811015614b5a57803585811115614a9c5760008081fd5b860160e0818c03601f1901811315614ab45760008081fd5b614abc614746565b8983013588811115614ace5760008081fd5b614adc8e8c838701016147d8565b82525060408084013589811115614af35760008081fd5b614b018f8d8388010161484c565b8c840152506060614b138186016143c5565b8284015260809150614b278f8387016149c2565b90830152614b3760c085016147aa565b90820152614b468383016143c5565b60a082015285525050918601918601614a84565b5098975050505050505050565b8015158114610f8357600080fd5b600080600080600060808688031215614b8d57600080fd5b85356001600160401b0380821115614ba457600080fd5b9087019060e0828a031215614bb857600080fd5b90955060208701359080821115614bce57600080fd5b50614bdb88828901614430565b909550935050604086013591506060860135614bf681614b67565b809150509295509295909350565b60008060408385031215614c1757600080fd5b8235614c22816143b0565b91506020830135614c32816143b0565b809150509250929050565b600060408284031215614c4f57600080fd5b614c57614724565b905081356001600160401b0380821115614c7057600080fd5b818401915084601f830112614c8457600080fd5b8135602082821115614c9857614c986146e6565b614caa601f8301601f19168201614768565b92508183528681838601011115614cc057600080fd5b8181850182850137600081838501015282855280860135818601525050505092915050565b600080600080600060a08688031215614cfd57600080fd5b8535614d08816143b0565b94506020860135614d18816143b0565b935060408601356001600160401b0380821115614d3457600080fd5b614d4089838a01614c3d565b94506060880135915080821115614d5657600080fd5b50614d6388828901614c3d565b95989497509295608001359392505050565b60008060208385031215614d8857600080fd5b82356001600160401b03811115614d9e57600080fd5b6144a985828601614511565b60008060408385031215614dbd57600080fd5b8235614dc8816143b0565b946020939093013593505050565b60008060008060808587031215614dec57600080fd5b8435614df7816143b0565b9350602085013592506040850135614e0e816143b0565b9396929550929360600135925050565b600081518084526020808501945080840160005b83811015614e575781516001600160a01b031687529582019590820190600101614e32565b509495945050505050565b600081518084526020808501945080840160005b83811015614e5757815187529582019590820190600101614e76565b604081526000614ea56040830185614e1e565b82810360208401526112d38185614e62565b600080600060608486031215614ecc57600080fd5b8335614ed7816143b0565b925060208401356001600160401b03811115614ef257600080fd5b614efe86828701614c3d565b925050604084013590509250925092565b600060608284031215614f2157600080fd5b6145c283836144f9565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235605e19833603018112614f8e57600080fd5b9190910192915050565b6000808335601e19843603018112614faf57600080fd5b8301803591506001600160401b03821115614fc957600080fd5b6020019150600581901b36038213156140c857600080fd5b634e487b7160e01b600052601160045260246000fd5b600060001982141561500b5761500b614fe1565b5060010190565b606081018235615021816143b0565b6001600160a01b03908116835260208401359061503d826143b0565b166020830152604083013561505181614798565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b6000602082840312156150a557600080fd5b81516145c2816143b0565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b60006020828403121561516957600080fd5b81516145c281614b67565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de19833603018112614f8e57600080fd5b6000602082840312156151e457600080fd5b81356145c281614b67565b600060018060a01b03808351168452806020840151166020850152806040840151166040850152506060820151606084015263ffffffff608083015116608084015260a082015160e060a085015261524a60e0850182614e1e565b905060c083015184820360c08601526112d38282614e62565b6020815260006145c260208301846151ef565b602081526000825160e06020840152615293610100840182614e1e565b90506020840151601f198483030160408501526152b08282614e62565b915050604084015160018060a01b03808216606086015260608601519150808251166080860152506bffffffffffffffffffffffff60208201511660a085015250608084015161530860c085018263ffffffff169052565b5060a08401516001600160a01b03811660e0850152509392505050565b6000806040838503121561533857600080fd5b825161534381614b67565b6020939093015192949293505050565b82815260406020820152600061499760408301846151ef565b60006020828403121561537e57600080fd5b5051919050565b600082601f83011261539657600080fd5b815160206153a66147f9836147b5565b82815260059290921b840181019181810190868411156153c557600080fd5b8286015b8481101561484157805183529183019183016153c9565b600080604083850312156153f357600080fd5b82516001600160401b038082111561540a57600080fd5b818501915085601f83011261541e57600080fd5b8151602061542e6147f9836147b5565b82815260059290921b8401810191818101908984111561544d57600080fd5b948201945b83861015615474578551615465816143b0565b82529482019490820190615452565b9188015191965090935050508082111561548d57600080fd5b5061549a85828601615385565b9150509250929050565b600082198211156154b7576154b7614fe1565b500190565b6000828210156154ce576154ce614fe1565b500390565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60006020828403121561550957600080fd5b81356145c281614798565b80546001600160a01b0319166001600160a01b0392909216919091179055565b813561553f816143b0565b6155498183615514565b5060018101602083013561555c816143b0565b6155668183615514565b50604083013561557581614798565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b6020808252825182820181905260009190848201906040850190845b818110156144ed5783516001600160a01b0316835292840192918401916001016155b3565b60006155e436836148a7565b92915050565b82815260006020604081840152835180604085015260005b8181101561561e57858101830151858201606001528201615602565b81811115615630576000606083870101525b50601f01601f191692909201606001949350505050565b60006020828403121561565957600080fd5b81516001600160e01b0319811681146145c257600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e636f6d706c657465517565756564a2646970667358221220cdfcc1af5fed5190052ce3d637e549cf07d10070c3b14546ab58e142da57c70d64736f6c634300080c0033", + ABI: "[{\"inputs\":[{\"internalType\":\"contractIStrategyManager\",\"name\":\"_strategyManager\",\"type\":\"address\"},{\"internalType\":\"contractISlasher\",\"name\":\"_slasher\",\"type\":\"address\"},{\"internalType\":\"contractIEigenPodManager\",\"name\":\"_eigenPodManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"earningsReceiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegationApprover\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"stakerOptOutWindowBlocks\",\"type\":\"uint32\"}],\"indexed\":false,\"internalType\":\"structIDelegationManager.OperatorDetails\",\"name\":\"newOperatorDetails\",\"type\":\"tuple\"}],\"name\":\"OperatorDetailsModified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"}],\"name\":\"OperatorMetadataURIUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"earningsReceiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegationApprover\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"stakerOptOutWindowBlocks\",\"type\":\"uint32\"}],\"indexed\":false,\"internalType\":\"structIDelegationManager.OperatorDetails\",\"name\":\"operatorDetails\",\"type\":\"tuple\"}],\"name\":\"OperatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contractIStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"OperatorSharesDecreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contractIStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"OperatorSharesIncreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contractIPauserRegistry\",\"name\":\"pauserRegistry\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contractIPauserRegistry\",\"name\":\"newPauserRegistry\",\"type\":\"address\"}],\"name\":\"PauserRegistrySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contractIStakeRegistryStub\",\"name\":\"stakeRegistry\",\"type\":\"address\"}],\"name\":\"StakeRegistrySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"StakerDelegated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"StakerForceUndelegated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"StakerUndelegated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"name\":\"WithdrawalCompleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousValue\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newValue\",\"type\":\"uint256\"}],\"name\":\"WithdrawalDelayBlocksSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"oldWithdrawalRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"newWithdrawalRoot\",\"type\":\"bytes32\"}],\"name\":\"WithdrawalMigrated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatedTo\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"startBlock\",\"type\":\"uint32\"},{\"internalType\":\"contractIStrategy[]\",\"name\":\"strategies\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"shares\",\"type\":\"uint256[]\"}],\"indexed\":false,\"internalType\":\"structIDelegationManager.Withdrawal\",\"name\":\"withdrawal\",\"type\":\"tuple\"}],\"name\":\"WithdrawalQueued\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DELEGATION_APPROVAL_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DOMAIN_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_STAKER_OPT_OUT_WINDOW_BLOCKS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_WITHDRAWAL_DELAY_BLOCKS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"STAKER_DELEGATION_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"beaconChainETHStrategy\",\"outputs\":[{\"internalType\":\"contractIStrategy\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"name\":\"calculateCurrentStakerDelegationDigestHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_delegationApprover\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"approverSalt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"name\":\"calculateDelegationApprovalDigestHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_stakerNonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"name\":\"calculateStakerDelegationDigestHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatedTo\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"startBlock\",\"type\":\"uint32\"},{\"internalType\":\"contractIStrategy[]\",\"name\":\"strategies\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"shares\",\"type\":\"uint256[]\"}],\"internalType\":\"structIDelegationManager.Withdrawal\",\"name\":\"withdrawal\",\"type\":\"tuple\"}],\"name\":\"calculateWithdrawalRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatedTo\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"startBlock\",\"type\":\"uint32\"},{\"internalType\":\"contractIStrategy[]\",\"name\":\"strategies\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"shares\",\"type\":\"uint256[]\"}],\"internalType\":\"structIDelegationManager.Withdrawal\",\"name\":\"withdrawal\",\"type\":\"tuple\"},{\"internalType\":\"contractIERC20[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"middlewareTimesIndex\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"receiveAsTokens\",\"type\":\"bool\"}],\"name\":\"completeQueuedWithdrawal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatedTo\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"startBlock\",\"type\":\"uint32\"},{\"internalType\":\"contractIStrategy[]\",\"name\":\"strategies\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"shares\",\"type\":\"uint256[]\"}],\"internalType\":\"structIDelegationManager.Withdrawal[]\",\"name\":\"withdrawals\",\"type\":\"tuple[]\"},{\"internalType\":\"contractIERC20[][]\",\"name\":\"tokens\",\"type\":\"address[][]\"},{\"internalType\":\"uint256[]\",\"name\":\"middlewareTimesIndexes\",\"type\":\"uint256[]\"},{\"internalType\":\"bool[]\",\"name\":\"receiveAsTokens\",\"type\":\"bool[]\"}],\"name\":\"completeQueuedWithdrawals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"cumulativeWithdrawalsQueued\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"contractIStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"decreaseDelegatedShares\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"internalType\":\"structISignatureUtils.SignatureWithExpiry\",\"name\":\"approverSignatureAndExpiry\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"approverSalt\",\"type\":\"bytes32\"}],\"name\":\"delegateTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"internalType\":\"structISignatureUtils.SignatureWithExpiry\",\"name\":\"stakerSignatureAndExpiry\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"internalType\":\"structISignatureUtils.SignatureWithExpiry\",\"name\":\"approverSignatureAndExpiry\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"approverSalt\",\"type\":\"bytes32\"}],\"name\":\"delegateToBySignature\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"delegatedTo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"delegationApprover\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"delegationApproverSaltIsSpent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"domainSeparator\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"earningsReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eigenPodManager\",\"outputs\":[{\"internalType\":\"contractIEigenPodManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"getDelegatableShares\",\"outputs\":[{\"internalType\":\"contractIStrategy[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"contractIStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"increaseDelegatedShares\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"},{\"internalType\":\"contractIPauserRegistry\",\"name\":\"_pauserRegistry\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"initialPausedStatus\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"isDelegated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contractIStrategy[]\",\"name\":\"strategies\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"shares\",\"type\":\"uint256[]\"},{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"nonce\",\"type\":\"uint96\"}],\"internalType\":\"structIStrategyManager.DeprecatedStruct_WithdrawerAndNonce\",\"name\":\"withdrawerAndNonce\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"withdrawalStartBlock\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"delegatedAddress\",\"type\":\"address\"}],\"internalType\":\"structIStrategyManager.DeprecatedStruct_QueuedWithdrawal[]\",\"name\":\"withdrawalsToMigrate\",\"type\":\"tuple[]\"}],\"name\":\"migrateQueuedWithdrawals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"earningsReceiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegationApprover\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"stakerOptOutWindowBlocks\",\"type\":\"uint32\"}],\"internalType\":\"structIDelegationManager.OperatorDetails\",\"name\":\"newOperatorDetails\",\"type\":\"tuple\"}],\"name\":\"modifyOperatorDetails\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"operatorDetails\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"earningsReceiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegationApprover\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"stakerOptOutWindowBlocks\",\"type\":\"uint32\"}],\"internalType\":\"structIDelegationManager.OperatorDetails\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"contractIStrategy\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"operatorShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauserRegistry\",\"outputs\":[{\"internalType\":\"contractIPauserRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"pendingWithdrawals\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contractIStrategy[]\",\"name\":\"strategies\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"shares\",\"type\":\"uint256[]\"},{\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"}],\"internalType\":\"structIDelegationManager.QueuedWithdrawalParams[]\",\"name\":\"queuedWithdrawalParams\",\"type\":\"tuple[]\"}],\"name\":\"queueWithdrawals\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"earningsReceiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegationApprover\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"stakerOptOutWindowBlocks\",\"type\":\"uint32\"}],\"internalType\":\"structIDelegationManager.OperatorDetails\",\"name\":\"registeringOperatorDetails\",\"type\":\"tuple\"},{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"}],\"name\":\"registerAsOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIPauserRegistry\",\"name\":\"newPauserRegistry\",\"type\":\"address\"}],\"name\":\"setPauserRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIStakeRegistryStub\",\"name\":\"_stakeRegistry\",\"type\":\"address\"}],\"name\":\"setStakeRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newWithdrawalDelayBlocks\",\"type\":\"uint256\"}],\"name\":\"setWithdrawalDelayBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"internalType\":\"contractISlasher\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakeRegistry\",\"outputs\":[{\"internalType\":\"contractIStakeRegistryStub\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"stakerNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"stakerOptOutWindowBlocks\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"strategyManager\",\"outputs\":[{\"internalType\":\"contractIStrategyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"undelegate\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"}],\"name\":\"updateOperatorMetadataURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawalDelayBlocks\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + Bin: "0x6101006040523480156200001257600080fd5b506040516200599f3803806200599f833981016040819052620000359162000140565b6001600160a01b0380841660805280821660c052821660a0526200005862000065565b50504660e0525062000194565b600054610100900460ff1615620000d25760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000125576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200013d57600080fd5b50565b6000806000606084860312156200015657600080fd5b8351620001638162000127565b6020850151909350620001768162000127565b6040850151909250620001898162000127565b809150509250925092565b60805160a05160c05160e05161577662000229600039600061266c01526000818161058b01528181610fc30152818161131901528181611ce8015281816129c501528181613ac00152613fd0015260006107770152600081816104d301528181610f91015281816112e7015281816116e601528181611d7c01528181612a7701528181613bf7015261407601526157766000f3fe608060405234801561001057600080fd5b50600436106103425760003560e01c80635f966f14116101b8578063b134427111610104578063da8be864116100a2578063f16172b01161007c578063f16172b014610906578063f2fde38b14610919578063f698da251461092c578063fabc1cbc1461093457600080fd5b8063da8be864146108cd578063e3b05f2f146108e0578063eea9064b146108f357600080fd5b8063c5e480db116100de578063c5e480db146107ea578063c94b511114610890578063ca661c04146108a3578063cf80873e146108ac57600080fd5b8063b134427114610772578063b7f06ebe14610799578063bb45fef2146107bc57600080fd5b8063778e55f3116101715780638da5cb5b1161014b5780638da5cb5b146107135780639104c3191461072457806399be81c81461073f578063a17884841461075257600080fd5b8063778e55f3146106c25780637f548071146106ed578063886f11951461070057600080fd5b80635f966f141461062c57806360d7faed1461065857806365da12641461066b57806368304835146106945780636d70f7ae146106a7578063715018a6146106ba57600080fd5b806333404396116102925780634fc40b6111610230578063597b36da1161020a578063597b36da146105db5780635ac86ab7146105ee5780635c975abb146106115780635cfe8d2c1461061957600080fd5b80634fc40b61146105c057806350f73e7c146105ca578063595c6a67146105d357600080fd5b80633e28391d1161026c5780633e28391d1461053c578063433773821461055f5780634665bcda146105865780634d50f9a4146105ad57600080fd5b806333404396146104bb57806339b70e38146104ce5780633cdeb5e01461050d57600080fd5b8063136439dd116102ff5780631bbce091116102d95780631bbce0911461044e57806320606b701461046157806328a573ae1461048857806329c77d4f1461049b57600080fd5b8063136439dd146103ef57806316928365146104025780631794bb3c1461043b57600080fd5b806304a4f979146103475780630b9f487a146103815780630dd8dd02146103945780630f589e59146103b457806310d67a2f146103c9578063132d4967146103dc575b600080fd5b61036e7f3b89fca151cbe5122d58acee86cf184413d751d585779bdd19d3bbfa3a306dce81565b6040519081526020015b60405180910390f35b61036e61038f366004614474565b610947565b6103a76103a2366004614513565b610a09565b6040516103789190614554565b6103c76103c23660046145eb565b610d83565b005b6103c76103d736600461463e565b610ed3565b6103c76103ea366004614662565b610f86565b6103c76103fd3660046146a3565b611046565b61036e61041036600461463e565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b6103c7610449366004614662565b611185565b61036e61045c366004614662565b6112ae565b61036e7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103c7610496366004614662565b6112dc565b61036e6104a936600461463e565b609b6020526000908152604090205481565b6103c76104c93660046146bc565b61138c565b6104f57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610378565b6104f561051b36600461463e565b6001600160a01b039081166000908152609960205260409020600101541690565b61054f61054a36600461463e565b6114c9565b6040519015158152602001610378565b61036e7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b6104f57f000000000000000000000000000000000000000000000000000000000000000081565b6103c76105bb3660046146a3565b6114e9565b61036e6213c68081565b61036e609d5481565b6103c76115c0565b61036e6105e93660046149fc565b611687565b61054f6105fc366004614a38565b606654600160ff9092169190911b9081161490565b60665461036e565b6103c7610627366004614aae565b6116b7565b6104f561063a36600461463e565b6001600160a01b039081166000908152609960205260409020541690565b6103c7610666366004614c0e565b611962565b6104f561067936600461463e565b609a602052600090815260409020546001600160a01b031681565b60a0546104f5906001600160a01b031681565b61054f6106b536600461463e565b6119fd565b6103c7611a1d565b61036e6106d0366004614c9d565b609860209081526000928352604080842090915290825290205481565b6103c76106fb366004614d7e565b611a31565b6065546104f5906001600160a01b031681565b6033546001600160a01b03166104f5565b6104f573beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103c761074d366004614e0e565b611b36565b61036e61076036600461463e565b609f6020526000908152604090205481565b6104f57f000000000000000000000000000000000000000000000000000000000000000081565b61054f6107a73660046146a3565b609e6020526000908152604090205460ff1681565b61054f6107ca366004614e43565b609c60209081526000928352604080842090915290825290205460ff1681565b61085a6107f836600461463e565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610378565b61036e61089e366004614e6f565b611c08565b61036e61c4e081565b6108bf6108ba36600461463e565b611cc1565b604051610378929190614f2b565b61036e6108db36600461463e565b612079565b6103c76108ee36600461463e565b6123ed565b6103c7610901366004614f50565b612555565b6103c7610914366004614fa8565b612561565b6103c761092736600461463e565b6125f2565b61036e612668565b6103c76109423660046146a3565b6126a6565b604080517f3b89fca151cbe5122d58acee86cf184413d751d585779bdd19d3bbfa3a306dce6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e09092019092528051910120600090816109c5612668565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b60665460609060019060029081161415610a3e5760405162461bcd60e51b8152600401610a3590614fc4565b60405180910390fd5b6000836001600160401b03811115610a5857610a5861477f565b604051908082528060200260200182016040528015610a81578160200160208202803683370190505b50905060005b84811015610d7a57858582818110610aa157610aa1614ffb565b9050602002810190610ab39190615011565b610ac1906020810190615031565b9050868683818110610ad557610ad5614ffb565b9050602002810190610ae79190615011565b610af19080615031565b905014610b665760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610a35565b6000868683818110610b7a57610b7a614ffb565b9050602002810190610b8c9190615011565b610b9d90606081019060400161463e565b6001600160a01b03161415610c2b5760405162461bcd60e51b815260206004820152604860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a206d7573742070726f766964652076616c6964207769746864726177616c606482015267206164647265737360c01b608482015260a401610a35565b336000818152609a60205260409020546001600160a01b031690610d4a9082898986818110610c5c57610c5c614ffb565b9050602002810190610c6e9190615011565b610c7f90606081019060400161463e565b8a8a87818110610c9157610c91614ffb565b9050602002810190610ca39190615011565b610cad9080615031565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150899050818110610cf357610cf3614ffb565b9050602002810190610d059190615011565b610d13906020810190615031565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061280292505050565b838381518110610d5c57610d5c614ffb565b60209081029190910101525080610d7281615090565b915050610a87565b50949350505050565b336000908152609960205260409020546001600160a01b031615610e1d5760405162461bcd60e51b815260206004820152604560248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a206f70657261746f722068617320616c72656164792072656769736064820152641d195c995960da1b608482015260a401610a35565b610e273384612c3c565b604080518082019091526060815260006020820152610e493380836000612ed8565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610e8291906150ab565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610ec59291906150fd565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4a919061512c565b6001600160a01b0316336001600160a01b031614610f7a5760405162461bcd60e51b8152600401610a3590615149565b610f8381613291565b50565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610fe55750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b6110015760405162461bcd60e51b8152600401610a3590615193565b61100a836114c9565b15611041576001600160a01b038084166000908152609a60205260409020541661103681858585613388565b61103f81613403565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561108e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b291906151f0565b6110ce5760405162461bcd60e51b8152600401610a359061520d565b606654818116146111475760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610a35565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156111a55750600054600160ff909116105b806111bf5750303b1580156111bf575060005460ff166001145b6112225760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610a35565b6000805460ff191660011790558015611245576000805461ff0019166101001790555b61124f83836134bd565b6112576135a3565b6097556112638461363a565b801561103f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b6001600160a01b0383166000908152609b60205260408120546112d385828686611c08565b95945050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061133b5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b6113575760405162461bcd60e51b8152600401610a3590615193565b611360836114c9565b15611041576001600160a01b038084166000908152609a6020526040902054166110368185858561368c565b606654600290600490811614156113b55760405162461bcd60e51b8152600401610a3590614fc4565b600260c95414156114085760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a35565b600260c95560005b888110156114b8576114a88a8a8381811061142d5761142d614ffb565b905060200281019061143f9190615255565b89898481811061145157611451614ffb565b90506020028101906114639190615031565b89898681811061147557611475614ffb565b9050602002013588888781811061148e5761148e614ffb565b90506020020160208101906114a3919061526b565b613707565b6114b181615090565b9050611410565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b6114f1613d81565b61c4e081111561157f5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e7365745769746864726177616c4460448201527f656c6179426c6f636b733a206e65775769746864726177616c44656c6179426c60648201526c0dec6d6e640e8dede40d0d2ced609b1b608482015260a401610a35565b609d5460408051918252602082018390527f4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e910160405180910390a1609d55565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015611608573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162c91906151f0565b6116485760405162461bcd60e51b8152600401610a359061520d565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60008160405160200161169a91906152fc565b604051602081830303815290604052805190602001209050919050565b60005b815181101561195e5760008282815181106116d7576116d7614ffb565b602002602001015190506000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663cd293f6f846040518263ffffffff1660e01b8152600401611730919061530f565b60408051808303816000875af115801561174e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177291906153be565b915091508115611950576040808401516001600160a01b0381166000908152609f602052918220805491928291906117a983615090565b919050555060006040518060e00160405280846001600160a01b031681526020018760a001516001600160a01b031681526020018760600151600001516001600160a01b03168152602001838152602001876080015163ffffffff1681526020018760000151815260200187602001518152509050600061182982611687565b6000818152609e602052604090205490915060ff16156118bf5760405162461bcd60e51b815260206004820152604560248201527f44656c65676174696f6e4d616e616765722e6d6967726174655175657565645760448201527f69746864726177616c733a207769746864726177616c20616c72656164792065606482015264786973747360d81b608482015260a401610a35565b6000818152609e602052604090819020805460ff19166001179055517f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f99061190a90839085906153ec565b60405180910390a160408051868152602081018390527fdc00758b65eef71dc3780c04ebe36cab6bdb266c3a698187e29e0f0dca012630910160405180910390a1505050505b8360010193505050506116ba565b5050565b6066546002906004908116141561198b5760405162461bcd60e51b8152600401610a3590614fc4565b600260c95414156119de5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a35565b600260c9556119f08686868686613707565b5050600160c95550505050565b6001600160a01b0390811660009081526099602052604090205416151590565b611a25613d81565b611a2f600061363a565b565b4283602001511015611ab55760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610a35565b6000609b6000876001600160a01b03166001600160a01b031681526020019081526020016000205490506000611af18783888860200151611c08565b6001600160a01b0388166000908152609b602052604090206001840190558551909150611b219088908390613ddb565b611b2d87878686612ed8565b50505050505050565b611b3f336119fd565b611bc15760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610a35565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611bfc9291906150fd565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611c7e612668565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000000000000000000000000000000000000000000000909116906360f4062b90602401602060405180830381865afa158015611d31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d559190615405565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f0000000000000000000000000000000000000000000000000000000000000000909116906394f649dd90602401600060405180830381865afa158015611dc5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ded9190810190615479565b9150915060008313611e0457909590945092505050565b606080835160001415611ebe576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611e7957611e79614ffb565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611ead57611ead614ffb565b60200260200101818152505061206c565b8351611ecb90600161553d565b6001600160401b03811115611ee257611ee261477f565b604051908082528060200260200182016040528015611f0b578160200160208202803683370190505b50915081516001600160401b03811115611f2757611f2761477f565b604051908082528060200260200182016040528015611f50578160200160208202803683370190505b50905060005b8451811015611fea57848181518110611f7157611f71614ffb565b6020026020010151838281518110611f8b57611f8b614ffb565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611fbd57611fbd614ffb565b6020026020010151828281518110611fd757611fd7614ffb565b6020908102919091010152600101611f56565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0826001845161200f9190615555565b8151811061201f5761201f614ffb565b60200260200101906001600160a01b031690816001600160a01b03168152505084816001845161204f9190615555565b8151811061205f5761205f614ffb565b6020026020010181815250505b9097909650945050505050565b606654600090600190600290811614156120a55760405162461bcd60e51b8152600401610a3590614fc4565b6120ae836114c9565b61212e5760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610a35565b6001600160a01b038084166000908152609a602052604090205416612152846119fd565b156121c55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610a35565b6001600160a01b0384166122415760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610a35565b336001600160a01b03851614806122605750336001600160a01b038216145b8061228757506001600160a01b038181166000908152609960205260409020600101541633145b6122f95760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610a35565b60008061230586611cc1565b9092509050336001600160a01b0387161461235b57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040902080546001600160a01b031916905581516123d45750600093506123e7915050565b6123e18684888585612802565b94505050505b50919050565b6123f5613d81565b60a0546001600160a01b0316156124745760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e7365745374616b6552656769737460448201527f72793a207374616b65526567697374727920616c7265616479207365740000006064820152608401610a35565b6001600160a01b0381166125015760405162461bcd60e51b815260206004820152604860248201527f44656c65676174696f6e4d616e616765722e7365745374616b6552656769737460448201527f72793a207374616b6552656769737472792063616e6e6f74206265207a65726f606482015267206164647265737360c01b608482015260a401610a35565b60a080546001600160a01b0319166001600160a01b0383169081179091556040519081527fce6d874069bceda1867eca9c60636bbf262e15213041658273d803a2b609a51f9060200160405180910390a150565b61104133848484612ed8565b61256a336119fd565b6125e85760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610a35565b610f833382612c3c565b6125fa613d81565b6001600160a01b03811661265f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a35565b610f838161363a565b60007f0000000000000000000000000000000000000000000000000000000000000000461415612699575060975490565b6126a16135a3565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061271d919061512c565b6001600160a01b0316336001600160a01b03161461274d5760405162461bcd60e51b8152600401610a3590615149565b6066541981196066541916146127cb5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610a35565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161117a565b60006001600160a01b0386166128995760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610a35565b82516129235760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610a35565b60005b8351811015612b32576001600160a01b0386161561297c5761297c868886848151811061295557612955614ffb565b602002602001015186858151811061296f5761296f614ffb565b6020026020010151613388565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b03168482815181106129ac576129ac614ffb565b60200260200101516001600160a01b03161415612a75577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663beffbb8988858481518110612a0557612a05614ffb565b60200260200101516040518363ffffffff1660e01b8152600401612a3e9291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a5857600080fd5b505af1158015612a6c573d6000803e3d6000fd5b50505050612b2a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638c80d4e588868481518110612ab757612ab7614ffb565b6020026020010151868581518110612ad157612ad1614ffb565b60200260200101516040518463ffffffff1660e01b8152600401612af79392919061556c565b600060405180830381600087803b158015612b1157600080fd5b505af1158015612b25573d6000803e3d6000fd5b505050505b600101612926565b506001600160a01b03851615612b4b57612b4b85613403565b6001600160a01b0386166000908152609f60205260408120805491829190612b7283615090565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612bda82611687565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612c2890839085906153ec565b60405180910390a198975050505050505050565b6000612c4b602083018361463e565b6001600160a01b03161415612ce55760405162461bcd60e51b815260206004820152605460248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a2063616e6e6f742073657420606561726e696e677352656365696064820152737665726020746f207a65726f206164647265737360601b608482015260a401610a35565b6213c680612cf96060830160408401615590565b63ffffffff161115612dae5760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610a35565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612dea9060608401908401615590565b63ffffffff161015612e805760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610a35565b6001600160a01b03821660009081526099602052604090208190612ea482826155cd565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611bfc9084906150ab565b60665460009060019081161415612f015760405162461bcd60e51b8152600401610a3590614fc4565b612f0a856114c9565b15612f875760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2073746160448201527f6b657220697320616c7265616479206163746976656c792064656c65676174656064820152601960fa1b608482015260a401610a35565b612f90846119fd565b6130105760405162461bcd60e51b815260206004820152604560248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a206f706560448201527f7261746f72206973206e6f74207265676973746572656420696e20456967656e6064820152642630bcb2b960d91b608482015260a401610a35565b6001600160a01b038085166000908152609960205260409020600101541680158015906130465750336001600160a01b03821614155b801561305b5750336001600160a01b03861614155b156131c85742846020015110156130da5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610a35565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff16156131745760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610a35565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff191660011790558501516131b5908890889085908890610947565b90506131c682828760000151613ddb565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a360008061322788611cc1565b9150915060005b825181101561327d57613275888a85848151811061324e5761324e614ffb565b602002602001015185858151811061326857613268614ffb565b602002602001015161368c565b60010161322e565b5061328787613403565b5050505050505050565b6001600160a01b03811661331f5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610a35565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038085166000908152609860209081526040808320938616835292905290812080548392906133bf908490615555565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610ec59392919061556c565b60a0546001600160a01b031615610f835760408051600180825281830190925260009160208083019080368337019050509050818160008151811061344a5761344a614ffb565b6001600160a01b03928316602091820292909201015260a05460405163ce977ec360e01b815291169063ce977ec390613487908490600401615630565b600060405180830381600087803b1580156134a157600080fd5b505af11580156134b5573d6000803e3d6000fd5b505050505050565b6065546001600160a01b03161580156134de57506001600160a01b03821615155b6135605760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610a35565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261195e82613291565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038085166000908152609860209081526040808320938616835292905290812080548392906136c390849061553d565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610ec59392919061556c565b60006137156105e987615671565b6000818152609e602052604090205490915060ff1661378a5760405162461bcd60e51b815260206004820152603e602482015260008051602061572183398151915260448201527f416374696f6e3a20616374696f6e206973206e6f7420696e20717565756500006064820152608401610a35565b609d54439061379f60a0890160808a01615590565b63ffffffff166137af919061553d565b11156138375760405162461bcd60e51b8152602060048201526057602482015260008051602061572183398151915260448201527f416374696f6e3a207769746864726177616c44656c6179426c6f636b7320706560648201527f72696f6420686173206e6f742079657420706173736564000000000000000000608482015260a401610a35565b613847606087016040880161463e565b6001600160a01b0316336001600160a01b0316146138cf5760405162461bcd60e51b815260206004820152604b602482015260008051602061572183398151915260448201527f416374696f6e3a206f6e6c7920776974686472617765722063616e20636f6d7060648201526a3632ba329030b1ba34b7b760a91b608482015260a401610a35565b8115613946576138e260a0870187615031565b851490506139465760405162461bcd60e51b815260206004820152603d602482015260008051602061572183398151915260448201527f416374696f6e3a20696e707574206c656e677468206d69736d617463680000006064820152608401610a35565b6000818152609e60205260409020805460ff191690558115613a1c5760005b61397260a0880188615031565b9050811015613a1657613a0e61398b602089018961463e565b3361399960a08b018b615031565b858181106139a9576139a9614ffb565b90506020020160208101906139be919061463e565b6139cb60c08c018c615031565b868181106139db576139db614ffb565b905060200201358a8a878181106139f4576139f4614ffb565b9050602002016020810190613a09919061463e565b613f95565b600101613965565b50613d46565b336000908152609a60205260408120546001600160a01b0316905b613a4460a0890189615031565b9050811015613d3a5773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613a6f60a08a018a615031565b83818110613a7f57613a7f614ffb565b9050602002016020810190613a94919061463e565b6001600160a01b03161415613bed576000613ab260208a018a61463e565b905060006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016630e81073c83613af360c08e018e615031565b87818110613b0357613b03614ffb565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613b57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b7b9190615405565b6001600160a01b038084166000908152609a6020526040902054919250168015613be557613bdc8184613bb160a08f018f615031565b88818110613bc157613bc1614ffb565b9050602002016020810190613bd6919061463e565b8561368c565b613be581613403565b505050613d32565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166350ff722533613c2a60a08c018c615031565b85818110613c3a57613c3a614ffb565b9050602002016020810190613c4f919061463e565b613c5c60c08d018d615031565b86818110613c6c57613c6c614ffb565b905060200201356040518463ffffffff1660e01b8152600401613c919392919061556c565b600060405180830381600087803b158015613cab57600080fd5b505af1158015613cbf573d6000803e3d6000fd5b505050506001600160a01b03821615613d3257613d328233613ce460a08c018c615031565b85818110613cf457613cf4614ffb565b9050602002016020810190613d09919061463e565b613d1660c08d018d615031565b86818110613d2657613d26614ffb565b9050602002013561368c565b600101613a37565b50613d4481613403565b505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6033546001600160a01b03163314611a2f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a35565b6001600160a01b0383163b15613ef557604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90613e1b9086908690600401615683565b602060405180830381865afa158015613e38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e5c91906156e0565b6001600160e01b031916146110415760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610a35565b826001600160a01b0316613f0983836140da565b6001600160a01b0316146110415760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610a35565b6001600160a01b03831673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac014156140405760405162387b1360e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063387b1300906140099088908890879060040161556c565b600060405180830381600087803b15801561402357600080fd5b505af1158015614037573d6000803e3d6000fd5b505050506140d3565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f0000000000000000000000000000000000000000000000000000000000000000169063c608c7f390608401600060405180830381600087803b1580156140ba57600080fd5b505af11580156140ce573d6000803e3d6000fd5b505050505b5050505050565b60008060006140e985856140fe565b915091506140f68161416e565b509392505050565b6000808251604114156141355760208301516040840151606085015160001a61412987828585614329565b94509450505050614167565b82516040141561415f5760208301516040840151614154868383614416565b935093505050614167565b506000905060025b9250929050565b60008160048111156141825761418261570a565b141561418b5750565b600181600481111561419f5761419f61570a565b14156141ed5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610a35565b60028160048111156142015761420161570a565b141561424f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610a35565b60038160048111156142635761426361570a565b14156142bc5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610a35565b60048160048111156142d0576142d061570a565b1415610f835760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610a35565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115614360575060009050600361440d565b8460ff16601b1415801561437857508460ff16601c14155b15614389575060009050600461440d565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156143dd573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166144065760006001925092505061440d565b9150600090505b94509492505050565b6000806001600160ff1b0383168161443360ff86901c601b61553d565b905061444187828885614329565b935093505050935093915050565b6001600160a01b0381168114610f8357600080fd5b803561446f8161444f565b919050565b600080600080600060a0868803121561448c57600080fd5b85356144978161444f565b945060208601356144a78161444f565b935060408601356144b78161444f565b94979396509394606081013594506080013592915050565b60008083601f8401126144e157600080fd5b5081356001600160401b038111156144f857600080fd5b6020830191508360208260051b850101111561416757600080fd5b6000806020838503121561452657600080fd5b82356001600160401b0381111561453c57600080fd5b614548858286016144cf565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b8181101561458c57835183529284019291840191600101614570565b50909695505050505050565b6000606082840312156123e757600080fd5b60008083601f8401126145bc57600080fd5b5081356001600160401b038111156145d357600080fd5b60208301915083602082850101111561416757600080fd5b60008060006080848603121561460057600080fd5b61460a8585614598565b925060608401356001600160401b0381111561462557600080fd5b614631868287016145aa565b9497909650939450505050565b60006020828403121561465057600080fd5b813561465b8161444f565b9392505050565b60008060006060848603121561467757600080fd5b83356146828161444f565b925060208401356146928161444f565b929592945050506040919091013590565b6000602082840312156146b557600080fd5b5035919050565b6000806000806000806000806080898b0312156146d857600080fd5b88356001600160401b03808211156146ef57600080fd5b6146fb8c838d016144cf565b909a50985060208b013591508082111561471457600080fd5b6147208c838d016144cf565b909850965060408b013591508082111561473957600080fd5b6147458c838d016144cf565b909650945060608b013591508082111561475e57600080fd5b5061476b8b828c016144cf565b999c989b5096995094979396929594505050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b03811182821017156147b7576147b761477f565b60405290565b604080519081016001600160401b03811182821017156147b7576147b761477f565b60405160c081016001600160401b03811182821017156147b7576147b761477f565b604051601f8201601f191681016001600160401b03811182821017156148295761482961477f565b604052919050565b63ffffffff81168114610f8357600080fd5b803561446f81614831565b60006001600160401b038211156148675761486761477f565b5060051b60200190565b600082601f83011261488257600080fd5b813560206148976148928361484e565b614801565b82815260059290921b840181019181810190868411156148b657600080fd5b8286015b848110156148da5780356148cd8161444f565b83529183019183016148ba565b509695505050505050565b600082601f8301126148f657600080fd5b813560206149066148928361484e565b82815260059290921b8401810191818101908684111561492557600080fd5b8286015b848110156148da5780358352918301918301614929565b600060e0828403121561495257600080fd5b61495a614795565b905061496582614464565b815261497360208301614464565b602082015261498460408301614464565b60408201526060820135606082015261499f60808301614843565b608082015260a08201356001600160401b03808211156149be57600080fd5b6149ca85838601614871565b60a084015260c08401359150808211156149e357600080fd5b506149f0848285016148e5565b60c08301525092915050565b600060208284031215614a0e57600080fd5b81356001600160401b03811115614a2457600080fd5b614a3084828501614940565b949350505050565b600060208284031215614a4a57600080fd5b813560ff8116811461465b57600080fd5b600060408284031215614a6d57600080fd5b614a756147bd565b90508135614a828161444f565b815260208201356bffffffffffffffffffffffff81168114614aa357600080fd5b602082015292915050565b60006020808385031215614ac157600080fd5b82356001600160401b0380821115614ad857600080fd5b818501915085601f830112614aec57600080fd5b8135614afa6148928261484e565b81815260059190911b83018401908481019088831115614b1957600080fd5b8585015b83811015614bf357803585811115614b355760008081fd5b860160e0818c03601f1901811315614b4d5760008081fd5b614b556147df565b8983013588811115614b675760008081fd5b614b758e8c83870101614871565b82525060408084013589811115614b8c5760008081fd5b614b9a8f8d838801016148e5565b8c840152506060614bac818601614464565b8284015260809150614bc08f838701614a5b565b90830152614bd060c08501614843565b90820152614bdf838301614464565b60a082015285525050918601918601614b1d565b5098975050505050505050565b8015158114610f8357600080fd5b600080600080600060808688031215614c2657600080fd5b85356001600160401b0380821115614c3d57600080fd5b9087019060e0828a031215614c5157600080fd5b90955060208701359080821115614c6757600080fd5b50614c74888289016144cf565b909550935050604086013591506060860135614c8f81614c00565b809150509295509295909350565b60008060408385031215614cb057600080fd5b8235614cbb8161444f565b91506020830135614ccb8161444f565b809150509250929050565b600060408284031215614ce857600080fd5b614cf06147bd565b905081356001600160401b0380821115614d0957600080fd5b818401915084601f830112614d1d57600080fd5b8135602082821115614d3157614d3161477f565b614d43601f8301601f19168201614801565b92508183528681838601011115614d5957600080fd5b8181850182850137600081838501015282855280860135818601525050505092915050565b600080600080600060a08688031215614d9657600080fd5b8535614da18161444f565b94506020860135614db18161444f565b935060408601356001600160401b0380821115614dcd57600080fd5b614dd989838a01614cd6565b94506060880135915080821115614def57600080fd5b50614dfc88828901614cd6565b95989497509295608001359392505050565b60008060208385031215614e2157600080fd5b82356001600160401b03811115614e3757600080fd5b614548858286016145aa565b60008060408385031215614e5657600080fd5b8235614e618161444f565b946020939093013593505050565b60008060008060808587031215614e8557600080fd5b8435614e908161444f565b9350602085013592506040850135614ea78161444f565b9396929550929360600135925050565b600081518084526020808501945080840160005b83811015614ef05781516001600160a01b031687529582019590820190600101614ecb565b509495945050505050565b600081518084526020808501945080840160005b83811015614ef057815187529582019590820190600101614f0f565b604081526000614f3e6040830185614eb7565b82810360208401526112d38185614efb565b600080600060608486031215614f6557600080fd5b8335614f708161444f565b925060208401356001600160401b03811115614f8b57600080fd5b614f9786828701614cd6565b925050604084013590509250925092565b600060608284031215614fba57600080fd5b61465b8383614598565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235605e1983360301811261502757600080fd5b9190910192915050565b6000808335601e1984360301811261504857600080fd5b8301803591506001600160401b0382111561506257600080fd5b6020019150600581901b360382131561416757600080fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156150a4576150a461507a565b5060010190565b6060810182356150ba8161444f565b6001600160a01b0390811683526020840135906150d68261444f565b16602083015260408301356150ea81614831565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561513e57600080fd5b815161465b8161444f565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b60006020828403121561520257600080fd5b815161465b81614c00565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261502757600080fd5b60006020828403121561527d57600080fd5b813561465b81614c00565b600060018060a01b03808351168452806020840151166020850152806040840151166040850152506060820151606084015263ffffffff608083015116608084015260a082015160e060a08501526152e360e0850182614eb7565b905060c083015184820360c08601526112d38282614efb565b60208152600061465b6020830184615288565b602081526000825160e0602084015261532c610100840182614eb7565b90506020840151601f198483030160408501526153498282614efb565b915050604084015160018060a01b03808216606086015260608601519150808251166080860152506bffffffffffffffffffffffff60208201511660a08501525060808401516153a160c085018263ffffffff169052565b5060a08401516001600160a01b03811660e0850152509392505050565b600080604083850312156153d157600080fd5b82516153dc81614c00565b6020939093015192949293505050565b828152604060208201526000614a306040830184615288565b60006020828403121561541757600080fd5b5051919050565b600082601f83011261542f57600080fd5b8151602061543f6148928361484e565b82815260059290921b8401810191818101908684111561545e57600080fd5b8286015b848110156148da5780518352918301918301615462565b6000806040838503121561548c57600080fd5b82516001600160401b03808211156154a357600080fd5b818501915085601f8301126154b757600080fd5b815160206154c76148928361484e565b82815260059290921b840181019181810190898411156154e657600080fd5b948201945b8386101561550d5785516154fe8161444f565b825294820194908201906154eb565b9188015191965090935050508082111561552657600080fd5b506155338582860161541e565b9150509250929050565b600082198211156155505761555061507a565b500190565b6000828210156155675761556761507a565b500390565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000602082840312156155a257600080fd5b813561465b81614831565b80546001600160a01b0319166001600160a01b0392909216919091179055565b81356155d88161444f565b6155e281836155ad565b506001810160208301356155f58161444f565b6155ff81836155ad565b50604083013561560e81614831565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b6020808252825182820181905260009190848201906040850190845b8181101561458c5783516001600160a01b03168352928401929184019160010161564c565b600061567d3683614940565b92915050565b82815260006020604081840152835180604085015260005b818110156156b75785810183015185820160600152820161569b565b818111156156c9576000606083870101525b50601f01601f191692909201606001949350505050565b6000602082840312156156f257600080fd5b81516001600160e01b03198116811461465b57600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e636f6d706c657465517565756564a26469706673582212205ea0131cf5b5fb99da1fff7b870c94af10f99c971aedbf34ac1853af7e1af52464736f6c634300080c0033", } // ContractDelegationManagerABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/EigenPod/binding.go b/contracts/bindings/EigenPod/binding.go index 8e1f45f2..b7cca815 100644 --- a/contracts/bindings/EigenPod/binding.go +++ b/contracts/bindings/EigenPod/binding.go @@ -68,8 +68,8 @@ type IEigenPodValidatorInfo struct { // ContractEigenPodMetaData contains all meta data concerning the ContractEigenPod contract. var ContractEigenPodMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"contractIETHPOSDeposit\",\"name\":\"_ethPOS\",\"type\":\"address\"},{\"internalType\":\"contractIDelayedWithdrawalRouter\",\"name\":\"_delayedWithdrawalRouter\",\"type\":\"address\"},{\"internalType\":\"contractIEigenPodManager\",\"name\":\"_eigenPodManager\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_MAX_RESTAKED_BALANCE_GWEI_PER_VALIDATOR\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"_RESTAKED_BALANCE_OFFSET_GWEI\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"_GENESIS_TIME\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"pubkey\",\"type\":\"bytes\"}],\"name\":\"EigenPodStaked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"validatorIndex\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"withdrawalTimestamp\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"withdrawalAmountGwei\",\"type\":\"uint64\"}],\"name\":\"FullWithdrawalRedeemed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountReceived\",\"type\":\"uint256\"}],\"name\":\"NonBeaconChainETHReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountWithdrawn\",\"type\":\"uint256\"}],\"name\":\"NonBeaconChainETHWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"validatorIndex\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"withdrawalTimestamp\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"partialWithdrawalAmountGwei\",\"type\":\"uint64\"}],\"name\":\"PartialWithdrawalRedeemed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"RestakedBeaconChainETHWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"}],\"name\":\"RestakingActivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"validatorIndex\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"balanceTimestamp\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newValidatorBalanceGwei\",\"type\":\"uint64\"}],\"name\":\"ValidatorBalanceUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"validatorIndex\",\"type\":\"uint40\"}],\"name\":\"ValidatorRestaked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"GENESIS_TIME\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_RESTAKED_BALANCE_GWEI_PER_VALIDATOR\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RESTAKED_BALANCE_OFFSET_GWEI\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activateRestaking\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delayedWithdrawalRouter\",\"outputs\":[{\"internalType\":\"contractIDelayedWithdrawalRouter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eigenPodManager\",\"outputs\":[{\"internalType\":\"contractIEigenPodManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ethPOS\",\"outputs\":[{\"internalType\":\"contractIETHPOSDeposit\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hasRestaked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_podOwner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mostRecentWithdrawalTimestamp\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonBeaconChainETHBalanceWei\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"podOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"provenWithdrawal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIERC20[]\",\"name\":\"tokenList\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amountsToWithdraw\",\"type\":\"uint256[]\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"recoverTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"pubkey\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"depositDataRoot\",\"type\":\"bytes32\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sumOfPartialWithdrawalsClaimedGwei\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validatorPubkeyHash\",\"type\":\"bytes32\"}],\"name\":\"validatorPubkeyHashToInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"validatorIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"restakedBalanceGwei\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"mostRecentBalanceUpdateTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"enumIEigenPod.VALIDATOR_STATUS\",\"name\":\"status\",\"type\":\"uint8\"}],\"internalType\":\"structIEigenPod.ValidatorInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubkeyHash\",\"type\":\"bytes32\"}],\"name\":\"validatorStatus\",\"outputs\":[{\"internalType\":\"enumIEigenPod.VALIDATOR_STATUS\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"oracleTimestamp\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"beaconStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"structBeaconChainProofs.StateRootProof\",\"name\":\"stateRootProof\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"withdrawalProof\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"slotProof\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"executionPayloadProof\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"timestampProof\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"historicalSummaryBlockRootProof\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"blockRootIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"historicalSummaryIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"withdrawalIndex\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"blockRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"slotRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"timestampRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"executionPayloadRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structBeaconChainProofs.WithdrawalProof[]\",\"name\":\"withdrawalProofs\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[]\",\"name\":\"validatorFieldsProofs\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32[][]\",\"name\":\"validatorFields\",\"type\":\"bytes32[][]\"},{\"internalType\":\"bytes32[][]\",\"name\":\"withdrawalFields\",\"type\":\"bytes32[][]\"}],\"name\":\"verifyAndProcessWithdrawals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"oracleTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint40[]\",\"name\":\"validatorIndices\",\"type\":\"uint40[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"beaconStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"structBeaconChainProofs.StateRootProof\",\"name\":\"stateRootProof\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"validatorBalanceProof\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"validatorFieldsProof\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"balanceRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structBeaconChainProofs.BalanceUpdateProof[]\",\"name\":\"balanceUpdateProofs\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32[][]\",\"name\":\"validatorFields\",\"type\":\"bytes32[][]\"}],\"name\":\"verifyBalanceUpdates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"oracleTimestamp\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"beaconStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"structBeaconChainProofs.StateRootProof\",\"name\":\"stateRootProof\",\"type\":\"tuple\"},{\"internalType\":\"uint40[]\",\"name\":\"validatorIndices\",\"type\":\"uint40[]\"},{\"internalType\":\"bytes[]\",\"name\":\"validatorFieldsProofs\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32[][]\",\"name\":\"validatorFields\",\"type\":\"bytes32[][]\"}],\"name\":\"verifyWithdrawalCredentials\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawBeforeRestaking\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountToWithdraw\",\"type\":\"uint256\"}],\"name\":\"withdrawNonBeaconChainETHBalanceWei\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountWei\",\"type\":\"uint256\"}],\"name\":\"withdrawRestakedBeaconChainETH\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawableRestakedExecutionLayerGwei\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x6101406040523480156200001257600080fd5b5060405162005aec38038062005aec833981016040819052620000359162000177565b6001600160a01b0380871660805285811660a052841660c0526001600160401b0380841660e05282811661010052811661012052620000736200007f565b50505050505062000200565b600054610100900460ff1615620000ec5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156200013f576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200015757600080fd5b50565b80516001600160401b03811681146200017257600080fd5b919050565b60008060008060008060c087890312156200019157600080fd5b86516200019e8162000141565b6020880151909650620001b18162000141565b6040880151909550620001c48162000141565b9350620001d4606088016200015a565b9250620001e4608088016200015a565b9150620001f460a088016200015a565b90509295509295509295565b60805160a05160c05160e0516101005161012051615809620002e36000396000818161058e0152818161301d01526130d40152600081816102a601528181612f110152612f5d01526000818161025a01528181612fa601528181613ed90152613f14015260008181610386015281816105ed0152818161078001528181610a1e01528181610bfe01528181610d2101528181610edc015281816110bc015281816111f0015281816113070152818161179b015281816118da0152611aa70152600081816102260152612c0c01526000818161044b0152610dec01526158096000f3fe60806040526004361061016a5760003560e01c80637439841f116100d1578063c49074421161008a578063e251ef5211610064578063e251ef521461053c578063e2c834451461055c578063f28824611461057c578063fe80b087146105b057600080fd5b8063c4907442146104dc578063c4d66de8146104fc578063dda3346c1461051c57600080fd5b80637439841f146103f557806374cdd7981461043957806387e0d2891461046d5780639b4e463414610494578063b725bceb146104a7578063baa7145a146104c757600080fd5b80633474aa16116101235780633474aa16146102f957806334bea20a146103195780633f65cf19146103545780634665bcda146103745780635d3f65b6146103a85780636fcd0e53146103c857600080fd5b80630b18ff66146101c05780630cd4649e146101fd5780631a5057be146102145780631d905d5c146102485780631f60c2bd146102945780633106ab53146102c857600080fd5b366101bb5734603760008282546101819190614750565b90915550506040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b600080fd5b3480156101cc57600080fd5b506033546101e0906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561020957600080fd5b506102126105d4565b005b34801561022057600080fd5b506101e07f000000000000000000000000000000000000000000000000000000000000000081565b34801561025457600080fd5b5061027c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160401b0390911681526020016101f4565b3480156102a057600080fd5b5061027c7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102d457600080fd5b506034546102e990600160401b900460ff1681565b60405190151581526020016101f4565b34801561030557600080fd5b5060345461027c906001600160401b031681565b34801561032557600080fd5b506102e9610334366004614784565b603560209081526000928352604080842090915290825290205460ff1681565b34801561036057600080fd5b5061021261036f366004614813565b61073d565b34801561038057600080fd5b506101e07f000000000000000000000000000000000000000000000000000000000000000081565b3480156103b457600080fd5b5060385461027c906001600160401b031681565b3480156103d457600080fd5b506103e86103e33660046148e1565b610c69565b6040516101f49190614932565b34801561040157600080fd5b5061042c6104103660046148e1565b600090815260366020526040902054600160c01b900460ff1690565b6040516101f4919061497a565b34801561044557600080fd5b506101e07f000000000000000000000000000000000000000000000000000000000000000081565b34801561047957600080fd5b5060335461027c90600160a01b90046001600160401b031681565b6102126104a23660046149c9565b610d16565b3480156104b357600080fd5b506102126104c2366004614a3c565b610ec3565b3480156104d357600080fd5b50610212611291565b3480156104e857600080fd5b506102126104f7366004614ae4565b6112fc565b34801561050857600080fd5b50610212610517366004614b10565b611482565b34801561052857600080fd5b50610212610537366004614c2a565b61165a565b34801561054857600080fd5b50610212610557366004614cfb565b611783565b34801561056857600080fd5b50610212610577366004614ae4565b611b4e565b34801561058857600080fd5b5061027c7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105bc57600080fd5b506105c660375481565b6040519081526020016101f4565b604051635ac86ab760e01b8152600260048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa15801561063c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106609190614df6565b156106865760405162461bcd60e51b815260040161067d90614e18565b60405180910390fd5b6033546001600160a01b031633146106b05760405162461bcd60e51b815260040161067d90614e75565b603454600160401b900460ff16156106da5760405162461bcd60e51b815260040161067d90614ebd565b6034805460ff60401b1916600160401b179055603354610702906001600160a01b0316611c88565b6033546040516001600160a01b03909116907fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a250565b6033546001600160a01b031633146107675760405162461bcd60e51b815260040161067d90614e75565b604051635ac86ab760e01b8152600260048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f39190614df6565b156108105760405162461bcd60e51b815260040161067d90614e18565b60335489906001600160401b03600160a01b9091048116908216116108475760405162461bcd60e51b815260040161067d90614f0c565b603454600160401b900460ff166108bf5760405162461bcd60e51b815260206004820152603660248201527f456967656e506f642e686173456e61626c656452657374616b696e673a2072656044820152751cdd185ada5b99c81a5cc81b9bdd08195b98589b195960521b606482015260840161067d565b86851480156108cd57508483145b61095d5760405162461bcd60e51b815260206004820152605560248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2076616c696461746f72496e646963657320616e642070726f6f666064820152740e640daeae6e840c4ca40e6c2daca40d8cadccee8d605b1b608482015260a40161067d565b42610973613f486001600160401b038d16614750565b10156109fc5760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a207370656369666965642074696d657374616d7020697320746f6f60648201526b0819985c881a5b881c185cdd60a21b608482015260a40161067d565b60405163d1c64cc960e01b81526001600160401b038b166004820152610aa5907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa158015610a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a919190614fa7565b8a35610aa060208d018d614fc0565b611cbc565b6000805b88811015610b4957610b2b8c8c358c8c85818110610ac957610ac9615006565b9050602002016020810190610ade919061501c565b8b8b86818110610af057610af0615006565b9050602002810190610b029190614fc0565b8b8b88818110610b1457610b14615006565b9050602002810190610b269190615043565b611e44565b610b359083614750565b915080610b418161508c565b915050610aa9565b5060008113610bd55760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a206f766572666c6f7720696e20746f74616c416d6f756e74546f4260648201526b6552657374616b656457656960a01b608482015260a40161067d565b60335460405163030b147160e61b81526001600160a01b039182166004820152602481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063c2c51c4090604401600060405180830381600087803b158015610c4457600080fd5b505af1158015610c58573d6000803e3d6000fd5b505050505050505050505050505050565b610c916040805160808101825260008082526020820181905291810182905290606082015290565b600082815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610cfc57610cfc6148fa565b6002811115610d0d57610d0d6148fa565b90525092915050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d5e5760405162461bcd60e51b815260040161067d906150a7565b346801bc16d674ec80000014610dea5760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e7374616b653a206d75737420696e697469616c6c792073908201527f74616b6520666f7220616e792076616c696461746f72207769746820333220656064820152633a3432b960e11b608482015260a40161067d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663228951186801bc16d674ec8000008787610e2d612285565b8888886040518863ffffffff1660e01b8152600401610e5196959493929190615179565b6000604051808303818588803b158015610e6a57600080fd5b505af1158015610e7e573d6000803e3d6000fd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e238585604051610eb49291906151c8565b60405180910390a15050505050565b604051635ac86ab760e01b8152600360048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610f2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4f9190614df6565b15610f6c5760405162461bcd60e51b815260040161067d90614e18565b8684148015610f7a57508382145b6110025760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f72496e646963657320616e642070726f6f6673206d757374206260648201526c0ca40e6c2daca40d8cadccee8d609b1b608482015260a40161067d565b42611018613f486001600160401b038c16614750565b101561109a5760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e76657269667942616c616e63655570646174653a207370908201527f656369666965642074696d657374616d7020697320746f6f2066617220696e206064820152631c185cdd60e21b608482015260a40161067d565b60405163d1c64cc960e01b81526001600160401b038a16600482015261113e907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa15801561110b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112f9190614fa7565b8735610aa060208a018a614fc0565b6000805b888110156111e2576111c48b8b8b8481811061116057611160615006565b9050602002016020810190611175919061501c565b8a358a8a8681811061118957611189615006565b905060200281019061119b91906151dc565b8989878181106111ad576111ad615006565b90506020028101906111bf9190615043565b6122ca565b6111ce90836151fc565b9150806111da8161508c565b915050611142565b506033546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169163c2c51c409116611227633b9aca008561523d565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561126d57600080fd5b505af1158015611281573d6000803e3d6000fd5b5050505050505050505050505050565b6033546001600160a01b031633146112bb5760405162461bcd60e51b815260040161067d90614e75565b603454600160401b900460ff16156112e55760405162461bcd60e51b815260040161067d90614ebd565b6033546112fa906001600160a01b0316611c88565b565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146113445760405162461bcd60e51b815260040161067d906150a7565b611352633b9aca00826152d8565b156113dc5760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74576569206d75737420626520612077686f60648201526d1b194811ddd95a48185b5bdd5b9d60921b608482015260a40161067d565b60006113ec633b9aca00836152ec565b60348054919250829160009061140c9084906001600160401b0316615300565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161146b91815260200190565b60405180910390a261147d838361273f565b505050565b600054610100900460ff16158080156114a25750600054600160ff909116105b806114bc5750303b1580156114bc575060005460ff166001145b61151f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161067d565b6000805460ff191660011790558015611542576000805461ff0019166101001790555b6001600160a01b0382166115b55760405162461bcd60e51b815260206004820152603460248201527f456967656e506f642e696e697469616c697a653a20706f644f776e65722063616044820152736e6e6f74206265207a65726f206164647265737360601b606482015260840161067d565b603380546001600160a01b0384166001600160a01b031990911681179091556034805460ff60401b1916600160401b1790556040517fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a28015611656576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6033546001600160a01b031633146116845760405162461bcd60e51b815260040161067d90614e75565b815183511461170f5760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e7265636f766572546f6b656e733a20746f6b656e4c697360448201527f7420616e6420616d6f756e7473546f5769746864726177206d7573742062652060648201526a0e6c2daca40d8cadccee8d60ab1b608482015260a40161067d565b60005b835181101561177d5761176b8284838151811061173157611731615006565b602002602001015186848151811061174b5761174b615006565b60200260200101516001600160a01b03166127499092919063ffffffff16565b806117758161508c565b915050611712565b50505050565b604051635ac86ab760e01b81526004808201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156117ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061180e9190614df6565b1561182b5760405162461bcd60e51b815260040161067d90614e18565b838614801561183957508588145b801561184457508782145b6118b8576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f642e766572696679416e6450726f636573735769746864726160448201527f77616c733a20696e70757473206d7573742062652073616d65206c656e677468606482015260840161067d565b60405163d1c64cc960e01b81526001600160401b038c16600482015261195c907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611929573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194d9190614fa7565b8b35610aa060208e018e614fc0565b604080518082019091526000808252602082015260005b83811015611a5c576000611a178d358d8d8581811061199457611994615006565b90506020028101906119a69190615328565b8c8c868181106119b8576119b8615006565b90506020028101906119ca9190614fc0565b8c8c888181106119dc576119dc615006565b90506020028101906119ee9190615043565b8c8c8a818110611a0057611a00615006565b9050602002810190611a129190615043565b61279b565b80518451919250908490611a2c908390614750565b9052506020808201519084018051611a459083906151fc565b905250819050611a548161508c565b915050611973565b50805115611a8b576033548151611a8b916001600160a01b031690611a8690633b9aca009061533f565b612be2565b602081015115611b405760335460208201516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263c2c51c4092911690611ae190633b9aca009061523d565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611b2757600080fd5b505af1158015611b3b573d6000803e3d6000fd5b505050505b505050505050505050505050565b6033546001600160a01b03163314611b785760405162461bcd60e51b815260040161067d90614e75565b603754811115611c295760405162461bcd60e51b815260206004820152606a60248201527f456967656e506f642e77697468647261776e6f6e426561636f6e436861696e4560448201527f544842616c616e63655765693a20616d6f756e74546f5769746864726177206960648201527f732067726561746572207468616e206e6f6e426561636f6e436861696e45544860848201526942616c616e636557656960b01b60a482015260c40161067d565b8060376000828254611c3b919061535e565b90915550506040518181526001600160a01b038316907f30420aacd028abb3c1fd03aba253ae725d6ddd52d16c9ac4cb5742cd43f530969060200160405180910390a26116568282612be2565b6033805467ffffffffffffffff60a01b19164263ffffffff16600160a01b021790556000603755611cb98147612be2565b50565b611cc86003602061533f565b8114611d585760405162461bcd60e51b815260206004820152605360248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a2050726f6f6620686064820152720c2e640d2dcc6dee4e4cac6e840d8cadccee8d606b1b608482015260a40161067d565b611d9d82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915060039050612c70565b61177d5760405162461bcd60e51b815260206004820152606660248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a20496e76616c696460648201527f206c617465737420626c6f636b2068656164657220726f6f74206d65726b6c6560848201526510383937b7b360d11b60a482015260c40161067d565b600080611e83848480806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612c8892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff166002811115611ef257611ef26148fa565b6002811115611f0357611f036148fa565b9052509050600081606001516002811115611f2057611f206148fa565b14611fc95760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2056616c696461746f72206d757374206265206960648201527f6e61637469766520746f2070726f7665207769746864726177616c2063726564608482015266656e7469616c7360c81b60a482015260c40161067d565b611fd1612285565b611fda90615375565b612016868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612cac92505050565b1461209d5760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2050726f6f66206973206e6f7420666f7220746860648201526a1a5cc8115a59d95b941bd960aa1b608482015260a40161067d565b60006120db868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612cc192505050565b90506120eb8a87878b8b8e612cec565b6001606083015264ffffffffff891682526001600160401b038b16604083015261211481612f0d565b6001600160401b03908116602080850191825260008681526036909152604090819020855181549351928701518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606085015185939091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b8360028111156121b6576121b66148fa565b02179055505060405164ffffffffff8b1681527f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c10441449915060200160405180910390a17f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df898c84602001516040516122519392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1633b9aca0082602001516001600160401b0316612276919061533f565b9b9a5050505050505050505050565b60408051600160f81b60208201526000602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b6000806122db604086013588612fe4565b9050600061231b858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612c8892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561238a5761238a6148fa565b600281111561239b5761239b6148fa565b815250509050896001600160401b031681604001516001600160401b0316106124525760405162461bcd60e51b815260206004820152605c60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20566160448201527f6c696461746f72732062616c616e63652068617320616c72656164792062656560648201527f6e207570646174656420666f7220746869732074696d657374616d7000000000608482015260a40161067d565b60018160600151600281111561246a5761246a6148fa565b146124d25760405162461bcd60e51b815260206004820152603260248201527f456967656e506f642e76657269667942616c616e63655570646174653a2056616044820152716c696461746f72206e6f742061637469766560701b606482015260840161067d565b6124db8a613019565b6001600160401b031661252087878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061310392505050565b6001600160401b0316116125c3576000836001600160401b0316116125c35760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f7220697320776974686472617761626c6520627574206861732060648201526c3737ba103bb4ba34323930bbb760991b608482015260a40161067d565b6125dc8887876125d660208c018c614fc0565b8e612cec565b6125f58860408901356125ef8a80614fc0565b8d61311b565b6020810151600061260585612f0d565b6001600160401b0380821660208087019182528f8316604080890191825260008a8152603690935290912087518154935192518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606087015193945086939192839160ff60c01b1990911668ffffffffffffffffff60801b1990911617600160c01b8360028111156126b2576126b26148fa565b0217905550905050816001600160401b0316816001600160401b031614612730576040805164ffffffffff8d1681526001600160401b038e8116602083015283168183015290517f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df9181900360600190a161272d8183613284565b95505b50505050509695505050505050565b611656828261329c565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261147d9084906133b5565b60408051808201909152600080825260208201526127c06127bb89615408565b613487565b6033546001600160401b03600160a01b9091048116908216116127f55760405162461bcd60e51b815260040161067d90614f0c565b60006128036127bb8b615408565b90506000612843888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612c8892505050565b905060008082815260366020526040902054600160c01b900460ff166002811115612870576128706148fa565b14156129275760405162461bcd60e51b815260206004820152607460248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a2056616c696461746f72206e657665722070726f76656e20746f2060648201527f68617665207769746864726177616c2063726564656e7469616c7320706f696e6084820152731d1959081d1bc81d1a1a5cc818dbdb9d1c9858dd60621b60a482015260c40161067d565b60008181526035602090815260408083206001600160401b038616845290915290205460ff16156129e65760405162461bcd60e51b815260206004820152605b60248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a207769746864726177616c2068617320616c72656164792062656560648201527f6e2070726f76656e20666f7220746869732074696d657374616d700000000000608482015260a40161067d565b60008181526035602090815260408083206001600160401b03861684529091529020805460ff19166001179055612a1f8c87878e613497565b6000612a5d878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613e7f92505050565b9050612a6d8d8a8a8e8e86612cec565b6000612aab888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613e9792505050565b9050612ae98a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061310392505050565b6001600160401b0316612b03612afe8f615408565b613eaf565b6001600160401b031610612bbb57603354600084815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352612bb093869388938a936001600160a01b03909316928892916060830190600160c01b900460ff166002811115612b9757612b976148fa565b6002811115612ba857612ba86148fa565b905250613ec1565b955050505050612bd5565b603354612bb090839086906001600160a01b0316846140d2565b5098975050505050505050565b603354604051633036cd5360e21b81526001600160a01b03918216600482015283821660248201527f00000000000000000000000000000000000000000000000000000000000000009091169063c0db354c9083906044016000604051808303818588803b158015612c5357600080fd5b505af1158015612c67573d6000803e3d6000fd5b50505050505050565b600083612c7e8685856141b0565b1495945050505050565b600081600081518110612c9d57612c9d615006565b60200260200101519050919050565b600081600181518110612c9d57612c9d615006565b6000612ce682600281518110612cd957612cd9615006565b60200260200101516142fc565b92915050565b612cf860036002615628565b8414612d715760405162461bcd60e51b815260206004820152604e602482015260008051602061579483398151915260448201527f724669656c64733a2056616c696461746f72206669656c64732068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a40161067d565b6005612d7f60286001614750565b612d899190614750565b612d9490602061533f565b8214612e025760405162461bcd60e51b8152602060048201526043602482015260008051602061579483398151915260448201527f724669656c64733a2050726f6f662068617320696e636f7272656374206c656e6064820152620cee8d60eb1b608482015260a40161067d565b600064ffffffffff8216612e1860286001614750565b600b901b1790506000612e5d87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061436392505050565b9050612ea385858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250859150869050612c70565b612f035760405162461bcd60e51b815260206004820152603d602482015260008051602061579483398151915260448201527f724669656c64733a20496e76616c6964206d65726b6c652070726f6f66000000606482015260840161067d565b5050505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316826001600160401b031611612f5057506000919050565b6000633b9aca0080612f827f000000000000000000000000000000000000000000000000000000000000000086615300565b6001600160401b0316612f9591906152ec565b612f9f919061533f565b9050612fdd7f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316826001600160401b0316614610565b9392505050565b600080612ff2600484615634565b612ffd906040615658565b64ffffffffff16905061301184821b6142fc565b949350505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316826001600160401b031610156130c35760405162461bcd60e51b815260206004820152603760248201527f456967656e506f642e5f74696d657374616d70546f45706f63683a2074696d6560448201527f7374616d70206973206265666f72652067656e65736973000000000000000000606482015260840161067d565b6130cf600c6020615685565b6130f97f000000000000000000000000000000000000000000000000000000000000000084615300565b612ce691906156ab565b6000612ce682600781518110612cd957612cd9615006565b600561312960266001614750565b6131339190614750565b61313e90602061533f565b82146131ae5760405162461bcd60e51b815260206004820152604460248201819052600080516020615794833981519152908201527f7242616c616e63653a2050726f6f662068617320696e636f7272656374206c656064820152630dccee8d60e31b608482015260a40161067d565b60006131bb6004836156d1565b64ffffffffff169050806131d160266001614750565b600c901b17905061321c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250899150859050612c70565b61327c5760405162461bcd60e51b815260206004820152603e602482015260008051602061579483398151915260448201527f7242616c616e63653a20496e76616c6964206d65726b6c652070726f6f660000606482015260840161067d565b505050505050565b6000612fdd6001600160401b038084169085166156e9565b804710156132ec5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161067d565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613339576040519150601f19603f3d011682016040523d82523d6000602084013e61333e565b606091505b505090508061147d5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161067d565b600061340a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166146269092919063ffffffff16565b80519091501561147d57808060200190518101906134289190614df6565b61147d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161067d565b6000612ce68261014001516142fc565b6134a2600280615628565b82146135165760405162461bcd60e51b815260206004820152604960248201526000805160206157b483398151915260448201527f616c3a207769746864726177616c4669656c64732068617320696e636f7272656064820152680c6e840d8cadccee8d60bb1b608482015260a40161067d565b613522600d6002615628565b61353260c0830160a08401615728565b6001600160401b03161061359c5760405162461bcd60e51b815260206004820152603f60248201526000805160206157b483398151915260448201527f616c3a20626c6f636b526f6f74496e64657820697320746f6f206c6172676500606482015260840161067d565b6135a860046002615628565b6135b9610100830160e08401615728565b6001600160401b031610613625576040805162461bcd60e51b81526020600482015260248101919091526000805160206157b483398151915260448201527f616c3a207769746864726177616c496e64657820697320746f6f206c61726765606482015260840161067d565b61363160186002615628565b61364160e0830160c08401615728565b6001600160401b0316106136bb5760405162461bcd60e51b815260206004820152604760248201526000805160206157b483398151915260448201527f616c3a20686973746f726963616c53756d6d617279496e64657820697320746f6064820152666f206c6172676560c81b608482015260a40161067d565b6136c6600480614750565b6136d1906001614750565b6136dc90602061533f565b6136e68280614fc0565b90501461375a5760405162461bcd60e51b815260206004820152604860248201526000805160206157b483398151915260448201527f616c3a207769746864726177616c50726f6f662068617320696e636f727265636064820152670e840d8cadccee8d60c31b608482015260a40161067d565b61376660046003614750565b61377190602061533f565b61377e6040830183614fc0565b9050146137f85760405162461bcd60e51b815260206004820152604e60248201526000805160206157b483398151915260448201527f616c3a20657865637574696f6e5061796c6f616450726f6f662068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a40161067d565b6138046003602061533f565b6138116020830183614fc0565b90501461387f5760405162461bcd60e51b815260206004820152604260248201526000805160206157b483398151915260448201527f616c3a20736c6f7450726f6f662068617320696e636f7272656374206c656e676064820152610e8d60f31b608482015260a40161067d565b61388b6004602061533f565b6138986060830183614fc0565b90501461390b5760405162461bcd60e51b815260206004820152604760248201526000805160206157b483398151915260448201527f616c3a2074696d657374616d7050726f6f662068617320696e636f7272656374606482015266040d8cadccee8d60cb1b608482015260a40161067d565b600d61391960186001614750565b613924906005614750565b61392f906001614750565b6139399190614750565b61394490602061533f565b6139516080830183614fc0565b9050146139da5760405162461bcd60e51b815260206004820152605860248201526000805160206157b483398151915260448201527f616c3a20686973746f726963616c53756d6d617279426c6f636b526f6f74507260648201527f6f6f662068617320696e636f7272656374206c656e6774680000000000000000608482015260a40161067d565b60006139ec60c0830160a08401615728565b6001600160401b03166000613a03600d6001614750565b613a1360e0860160c08701615728565b6001600160401b0316901b600d613a2c60186001614750565b613a37906001614750565b613a419190614750565b601b901b1717179050613a9c613a5a6080840184614fc0565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250899250505061010085013584612c70565b613b0f5760405162461bcd60e51b815260206004820152604a60248201526000805160206157b483398151915260448201527f616c3a20496e76616c696420686973746f726963616c73756d6d617279206d656064820152693935b63290383937b7b360b11b608482015260a40161067d565b613b66613b1f6020840184614fc0565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250610100880135935061012088013592509050612c70565b613bc65760405162461bcd60e51b815260206004820152603d60248201526000805160206157b483398151915260448201527f616c3a20496e76616c696420736c6f74206d65726b6c652070726f6f66000000606482015260840161067d565b6049613c1e613bd86040850185614fc0565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505061010085013561016086013584612c70565b613c905760405162461bcd60e51b815260206004820152604960248201526000805160206157b483398151915260448201527f616c3a20496e76616c696420657865637574696f6e5061796c6f6164206d657260648201526835b63290383937b7b360b91b608482015260a40161067d565b50613ce8613ca16060840184614fc0565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608401356101408501356009612c70565b613d565760405162461bcd60e51b8152602060048201526044602482018190526000805160206157b4833981519152908201527f616c3a20496e76616c696420626c6f636b4e756d626572206d65726b6c6520706064820152633937b7b360e11b608482015260a40161067d565b6000613d69610100840160e08501615728565b6001600160401b0316613d7e60046001614750565b600e901b1790506000613dc386868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061436392505050565b9050613e13613dd28580614fc0565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608601358385612c70565b612c675760405162461bcd60e51b815260206004820152604360248201526000805160206157b483398151915260448201527f616c3a20496e76616c6964207769746864726177616c206d65726b6c6520707260648201526237b7b360e91b608482015260a40161067d565b6000612ce682600181518110612cd957612cd9615006565b6000612ce682600381518110612cd957612cd9615006565b600060206130f98361012001516142fc565b604080518082019091526000808252602082015260007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316846001600160401b03161115613f3857507f0000000000000000000000000000000000000000000000000000000000000000613f3b565b50825b6040805180820190915260008082526020820152613f598286615300565b6001600160401b039081168252603480548492600091613f7b91859116615743565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550613fad828560200151613284565b602082810191909152600090850152600260608501819052506000888152603660209081526040918290208651815492880151938801516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060870151879391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115614064576140646148fa565b0217905550506040805164ffffffffff8c1681526001600160401b038a8116602083015288168183015290516001600160a01b03891692507fb76a93bb649ece524688f1a01d184e0bbebcda58eae80c28a898bec3fb5a09639181900360600190a298975050505050505050565b60408051808201909152600080825260208201526040805164ffffffffff871681526001600160401b0380871660208301528416918101919091526001600160a01b038416907f8a7335714231dbd551aaba6314f4a97a14c201e53a3e25e1140325cdf67d7a4e9060600160405180910390a2603880548391906000906141639084906001600160401b0316615743565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506040518060400160405280836001600160401b0316815260200160008152509050949350505050565b600083516000141580156141cf5750602084516141cd91906152d8565b155b61425e5760405162461bcd60e51b815260206004820152605460248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f665368613260448201527f35363a2070726f6f66206c656e6774682073686f756c642062652061206e6f6e60648201527316bd32b9379036bab63a34b836329037b310199960611b608482015260a40161067d565b604080516020808201909252848152905b855181116142f2576142826002856152d8565b6142b5578151600052808601516020526020826040600060026107d05a03fa6142aa57600080fd5b6002840493506142e0565b8086015160005281516020526020826040600060026107d05a03fa6142d957600080fd5b6002840493505b6142eb602082614750565b905061426f565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b6000806002835161437491906152ec565b90506000816001600160401b0381111561439057614390614b2d565b6040519080825280602002602001820160405280156143b9578160200160208202803683370190505b50905060005b828110156144c0576002856143d4838361533f565b815181106143e4576143e4615006565b6020026020010151868360026143fa919061533f565b614405906001614750565b8151811061441557614415615006565b6020026020010151604051602001614437929190918252602082015260400190565b60408051601f19818403018152908290526144519161576e565b602060405180830381855afa15801561446e573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906144919190614fa7565b8282815181106144a3576144a3615006565b6020908102919091010152806144b88161508c565b9150506143bf565b506144cc6002836152ec565b91505b81156145ec5760005b828110156145d9576002826144ed838361533f565b815181106144fd576144fd615006565b602002602001015183836002614513919061533f565b61451e906001614750565b8151811061452e5761452e615006565b6020026020010151604051602001614550929190918252602082015260400190565b60408051601f198184030181529082905261456a9161576e565b602060405180830381855afa158015614587573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906145aa9190614fa7565b8282815181106145bc576145bc615006565b6020908102919091010152806145d18161508c565b9150506144d8565b506145e56002836152ec565b91506144cf565b806000815181106145ff576145ff615006565b602002602001015192505050919050565b600081831061461f5781612fdd565b5090919050565b60606130118484600085856001600160a01b0385163b6146885760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161067d565b600080866001600160a01b031685876040516146a4919061576e565b60006040518083038185875af1925050503d80600081146146e1576040519150601f19603f3d011682016040523d82523d6000602084013e6146e6565b606091505b50915091506146f6828286614701565b979650505050505050565b60608315614710575081612fdd565b8251156147205782518084602001fd5b8160405162461bcd60e51b815260040161067d9190615780565b634e487b7160e01b600052601160045260246000fd5b600082198211156147635761476361473a565b500190565b80356001600160401b038116811461477f57600080fd5b919050565b6000806040838503121561479757600080fd5b823591506147a760208401614768565b90509250929050565b6000604082840312156147c257600080fd5b50919050565b60008083601f8401126147da57600080fd5b5081356001600160401b038111156147f157600080fd5b6020830191508360208260051b850101111561480c57600080fd5b9250929050565b60008060008060008060008060a0898b03121561482f57600080fd5b61483889614768565b975060208901356001600160401b038082111561485457600080fd5b6148608c838d016147b0565b985060408b013591508082111561487657600080fd5b6148828c838d016147c8565b909850965060608b013591508082111561489b57600080fd5b6148a78c838d016147c8565b909650945060808b01359150808211156148c057600080fd5b506148cd8b828c016147c8565b999c989b5096995094979396929594505050565b6000602082840312156148f357600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b6003811061492e57634e487b7160e01b600052602160045260246000fd5b9052565b60006080820190506001600160401b038084511683528060208501511660208401528060408501511660408401525060608301516149736060840182614910565b5092915050565b60208101612ce68284614910565b60008083601f84011261499a57600080fd5b5081356001600160401b038111156149b157600080fd5b60208301915083602082850101111561480c57600080fd5b6000806000806000606086880312156149e157600080fd5b85356001600160401b03808211156149f857600080fd5b614a0489838a01614988565b90975095506020880135915080821115614a1d57600080fd5b50614a2a88828901614988565b96999598509660400135949350505050565b60008060008060008060008060a0898b031215614a5857600080fd5b614a6189614768565b975060208901356001600160401b0380821115614a7d57600080fd5b614a898c838d016147c8565b909950975060408b0135915080821115614aa257600080fd5b614aae8c838d016147b0565b965060608b013591508082111561489b57600080fd5b6001600160a01b0381168114611cb957600080fd5b803561477f81614ac4565b60008060408385031215614af757600080fd5b8235614b0281614ac4565b946020939093013593505050565b600060208284031215614b2257600080fd5b8135612fdd81614ac4565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b0381118282101715614b6657614b66614b2d565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614b9457614b94614b2d565b604052919050565b60006001600160401b03821115614bb557614bb5614b2d565b5060051b60200190565b600082601f830112614bd057600080fd5b81356020614be5614be083614b9c565b614b6c565b82815260059290921b84018101918181019086841115614c0457600080fd5b8286015b84811015614c1f5780358352918301918301614c08565b509695505050505050565b600080600060608486031215614c3f57600080fd5b83356001600160401b0380821115614c5657600080fd5b818601915086601f830112614c6a57600080fd5b81356020614c7a614be083614b9c565b82815260059290921b8401810191818101908a841115614c9957600080fd5b948201945b83861015614cc0578535614cb181614ac4565b82529482019490820190614c9e565b97505087013592505080821115614cd657600080fd5b50614ce386828701614bbf565b925050614cf260408501614ad9565b90509250925092565b60008060008060008060008060008060c08b8d031215614d1a57600080fd5b614d238b614768565b995060208b01356001600160401b0380821115614d3f57600080fd5b614d4b8e838f016147b0565b9a5060408d0135915080821115614d6157600080fd5b614d6d8e838f016147c8565b909a50985060608d0135915080821115614d8657600080fd5b614d928e838f016147c8565b909850965060808d0135915080821115614dab57600080fd5b614db78e838f016147c8565b909650945060a08d0135915080821115614dd057600080fd5b50614ddd8d828e016147c8565b915080935050809150509295989b9194979a5092959850565b600060208284031215614e0857600080fd5b81518015158114612fdd57600080fd5b6020808252603e908201527f456967656e506f642e6f6e6c795768656e4e6f745061757365643a20696e646560408201527f782069732070617573656420696e20456967656e506f644d616e616765720000606082015260800190565b60208082526028908201527f456967656e506f642e6f6e6c79456967656e506f644f776e65723a206e6f74206040820152673837b227bbb732b960c11b606082015260800190565b6020808252602f908201527f456967656e506f642e6861734e6576657252657374616b65643a20726573746160408201526e1ada5b99c81a5cc8195b98589b1959608a1b606082015260800190565b6020808252606f908201527f456967656e506f642e70726f6f664973466f7256616c696454696d657374616d60408201527f703a20626561636f6e20636861696e2070726f6f66206d75737420626520666f60608201527f722074696d657374616d70206166746572206d6f7374526563656e745769746860808201526e064726177616c54696d657374616d7608c1b60a082015260c00190565b600060208284031215614fb957600080fd5b5051919050565b6000808335601e19843603018112614fd757600080fd5b8301803591506001600160401b03821115614ff157600080fd5b60200191503681900382131561480c57600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561502e57600080fd5b813564ffffffffff81168114612fdd57600080fd5b6000808335601e1984360301811261505a57600080fd5b8301803591506001600160401b0382111561507457600080fd5b6020019150600581901b360382131561480c57600080fd5b60006000198214156150a0576150a061473a565b5060010190565b60208082526031908201527f456967656e506f642e6f6e6c79456967656e506f644d616e616765723a206e6f6040820152703a1032b4b3b2b72837b226b0b730b3b2b960791b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60005b8381101561513c578181015183820152602001615124565b8381111561177d5750506000910152565b60008151808452615165816020860160208601615121565b601f01601f19169290920160200192915050565b60808152600061518d60808301888a6150f8565b828103602084015261519f818861514d565b905082810360408401526151b48186886150f8565b915050826060830152979650505050505050565b6020815260006130116020830184866150f8565b60008235605e198336030181126151f257600080fd5b9190910192915050565b600080821280156001600160ff1b038490038513161561521e5761521e61473a565b600160ff1b83900384128116156152375761523761473a565b50500190565b60006001600160ff1b03818413828413808216868404861116156152635761526361473a565b600160ff1b60008712828116878305891216156152825761528261473a565b6000871292508782058712848416161561529e5761529e61473a565b878505871281841616156152b4576152b461473a565b505050929093029392505050565b634e487b7160e01b600052601260045260246000fd5b6000826152e7576152e76152c2565b500690565b6000826152fb576152fb6152c2565b500490565b60006001600160401b03838116908316818110156153205761532061473a565b039392505050565b6000823561017e198336030181126151f257600080fd5b60008160001904831182151516156153595761535961473a565b500290565b6000828210156153705761537061473a565b500390565b805160208083015191908110156147c25760001960209190910360031b1b16919050565b600082601f8301126153aa57600080fd5b81356001600160401b038111156153c3576153c3614b2d565b6153d6601f8201601f1916602001614b6c565b8181528460208386010111156153eb57600080fd5b816020850160208301376000918101602001919091529392505050565b6000610180823603121561541b57600080fd5b615423614b43565b82356001600160401b038082111561543a57600080fd5b61544636838701615399565b8352602085013591508082111561545c57600080fd5b61546836838701615399565b6020840152604085013591508082111561548157600080fd5b61548d36838701615399565b604084015260608501359150808211156154a657600080fd5b6154b236838701615399565b606084015260808501359150808211156154cb57600080fd5b506154d836828601615399565b6080830152506154ea60a08401614768565b60a08201526154fb60c08401614768565b60c082015261550c60e08401614768565b60e082015261010083810135908201526101208084013590820152610140808401359082015261016092830135928101929092525090565b600181815b8085111561557f5781600019048211156155655761556561473a565b8085161561557257918102915b93841c9390800290615549565b509250929050565b60008261559657506001612ce6565b816155a357506000612ce6565b81600181146155b957600281146155c3576155df565b6001915050612ce6565b60ff8411156155d4576155d461473a565b50506001821b612ce6565b5060208310610133831016604e8410600b8410161715615602575081810a612ce6565b61560c8383615544565b80600019048211156156205761562061473a565b029392505050565b6000612fdd8383615587565b600064ffffffffff8084168061564c5761564c6152c2565b92169190910692915050565b600064ffffffffff8083168185168183048111821515161561567c5761567c61473a565b02949350505050565b60006001600160401b038083168185168183048111821515161561567c5761567c61473a565b60006001600160401b03808416806156c5576156c56152c2565b92169190910492915050565b600064ffffffffff808416806156c5576156c56152c2565b60008083128015600160ff1b8501841216156157075761570761473a565b6001600160ff1b03840183138116156157225761572261473a565b50500390565b60006020828403121561573a57600080fd5b612fdd82614768565b60006001600160401b038083168185168083038211156157655761576561473a565b01949350505050565b600082516151f2818460208701615121565b602081526000612fdd602083018461514d56fe426561636f6e436861696e50726f6f66732e76657269667956616c696461746f426561636f6e436861696e50726f6f66732e7665726966795769746864726177a2646970667358221220250a089a9d82d132551a5c21cef0ddeca55257e52f54a8189aee31305a8d95d264736f6c634300080c0033", + ABI: "[{\"inputs\":[{\"internalType\":\"contractIETHPOSDeposit\",\"name\":\"_ethPOS\",\"type\":\"address\"},{\"internalType\":\"contractIDelayedWithdrawalRouter\",\"name\":\"_delayedWithdrawalRouter\",\"type\":\"address\"},{\"internalType\":\"contractIEigenPodManager\",\"name\":\"_eigenPodManager\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_MAX_RESTAKED_BALANCE_GWEI_PER_VALIDATOR\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"_GENESIS_TIME\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"pubkey\",\"type\":\"bytes\"}],\"name\":\"EigenPodStaked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"validatorIndex\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"withdrawalTimestamp\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"withdrawalAmountGwei\",\"type\":\"uint64\"}],\"name\":\"FullWithdrawalRedeemed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountReceived\",\"type\":\"uint256\"}],\"name\":\"NonBeaconChainETHReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountWithdrawn\",\"type\":\"uint256\"}],\"name\":\"NonBeaconChainETHWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"validatorIndex\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"withdrawalTimestamp\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"partialWithdrawalAmountGwei\",\"type\":\"uint64\"}],\"name\":\"PartialWithdrawalRedeemed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"RestakedBeaconChainETHWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"}],\"name\":\"RestakingActivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"validatorIndex\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"balanceTimestamp\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newValidatorBalanceGwei\",\"type\":\"uint64\"}],\"name\":\"ValidatorBalanceUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"validatorIndex\",\"type\":\"uint40\"}],\"name\":\"ValidatorRestaked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"GENESIS_TIME\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_RESTAKED_BALANCE_GWEI_PER_VALIDATOR\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activateRestaking\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delayedWithdrawalRouter\",\"outputs\":[{\"internalType\":\"contractIDelayedWithdrawalRouter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eigenPodManager\",\"outputs\":[{\"internalType\":\"contractIEigenPodManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ethPOS\",\"outputs\":[{\"internalType\":\"contractIETHPOSDeposit\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hasRestaked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_podOwner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mostRecentWithdrawalTimestamp\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonBeaconChainETHBalanceWei\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"podOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"provenWithdrawal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIERC20[]\",\"name\":\"tokenList\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amountsToWithdraw\",\"type\":\"uint256[]\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"recoverTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"pubkey\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"depositDataRoot\",\"type\":\"bytes32\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sumOfPartialWithdrawalsClaimedGwei\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validatorPubkeyHash\",\"type\":\"bytes32\"}],\"name\":\"validatorPubkeyHashToInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"validatorIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"restakedBalanceGwei\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"mostRecentBalanceUpdateTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"enumIEigenPod.VALIDATOR_STATUS\",\"name\":\"status\",\"type\":\"uint8\"}],\"internalType\":\"structIEigenPod.ValidatorInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubkeyHash\",\"type\":\"bytes32\"}],\"name\":\"validatorStatus\",\"outputs\":[{\"internalType\":\"enumIEigenPod.VALIDATOR_STATUS\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"oracleTimestamp\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"beaconStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"structBeaconChainProofs.StateRootProof\",\"name\":\"stateRootProof\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"withdrawalProof\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"slotProof\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"executionPayloadProof\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"timestampProof\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"historicalSummaryBlockRootProof\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"blockRootIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"historicalSummaryIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"withdrawalIndex\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"blockRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"slotRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"timestampRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"executionPayloadRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structBeaconChainProofs.WithdrawalProof[]\",\"name\":\"withdrawalProofs\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[]\",\"name\":\"validatorFieldsProofs\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32[][]\",\"name\":\"validatorFields\",\"type\":\"bytes32[][]\"},{\"internalType\":\"bytes32[][]\",\"name\":\"withdrawalFields\",\"type\":\"bytes32[][]\"}],\"name\":\"verifyAndProcessWithdrawals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"oracleTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint40[]\",\"name\":\"validatorIndices\",\"type\":\"uint40[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"beaconStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"structBeaconChainProofs.StateRootProof\",\"name\":\"stateRootProof\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"validatorBalanceProof\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"validatorFieldsProof\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"balanceRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structBeaconChainProofs.BalanceUpdateProof[]\",\"name\":\"balanceUpdateProofs\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32[][]\",\"name\":\"validatorFields\",\"type\":\"bytes32[][]\"}],\"name\":\"verifyBalanceUpdates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"oracleTimestamp\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"beaconStateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"structBeaconChainProofs.StateRootProof\",\"name\":\"stateRootProof\",\"type\":\"tuple\"},{\"internalType\":\"uint40[]\",\"name\":\"validatorIndices\",\"type\":\"uint40[]\"},{\"internalType\":\"bytes[]\",\"name\":\"validatorFieldsProofs\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32[][]\",\"name\":\"validatorFields\",\"type\":\"bytes32[][]\"}],\"name\":\"verifyWithdrawalCredentials\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawBeforeRestaking\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountToWithdraw\",\"type\":\"uint256\"}],\"name\":\"withdrawNonBeaconChainETHBalanceWei\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountWei\",\"type\":\"uint256\"}],\"name\":\"withdrawRestakedBeaconChainETH\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawableRestakedExecutionLayerGwei\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", + Bin: "0x6101206040523480156200001257600080fd5b5060405162005a7a38038062005a7a83398101604081905262000035916200016f565b6001600160a01b0380861660805284811660a052831660c0526001600160401b0380831660e0528116610100526200006c62000077565b5050505050620001e7565b600054610100900460ff1615620000e45760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000137576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200014f57600080fd5b50565b80516001600160401b03811681146200016a57600080fd5b919050565b600080600080600060a086880312156200018857600080fd5b8551620001958162000139565b6020870151909550620001a88162000139565b6040870151909450620001bb8162000139565b9250620001cb6060870162000152565b9150620001db6080870162000152565b90509295509295909350565b60805160a05160c05160e051610100516157b4620002c66000396000818161053f01528181612fd7015261308e01526000818161023f015281816120eb0152818161211f015281816126470152818161267401528181613e9a0152613ed50152600081816103370152818161059e01528181610731015281816109cf01528181610b2401528181610c4701528181610e0201528181610fe2015281816111160152818161122d01528181611778015281816118b70152611a8401526000818161020b0152612c9d0152600081816103fc0152610d1201526157b46000f3fe60806040526004361061014f5760003560e01c806374cdd798116100b6578063c4d66de81161006f578063c4d66de8146104ad578063dda3346c146104cd578063e251ef52146104ed578063e2c834451461050d578063f28824611461052d578063fe80b0871461056157600080fd5b806374cdd798146103ea57806387e0d2891461041e5780639b4e463414610445578063b725bceb14610458578063baa7145a14610478578063c49074421461048d57600080fd5b806334bea20a1161010857806334bea20a146102ca5780633f65cf19146103055780634665bcda146103255780635d3f65b6146103595780636fcd0e53146103795780637439841f146103a657600080fd5b80630b18ff66146101a55780630cd4649e146101e25780631a5057be146101f95780631d905d5c1461022d5780633106ab53146102795780633474aa16146102aa57600080fd5b366101a057346037600082825461016691906146fb565b90915550506040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b600080fd5b3480156101b157600080fd5b506033546101c5906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101ee57600080fd5b506101f7610585565b005b34801561020557600080fd5b506101c57f000000000000000000000000000000000000000000000000000000000000000081565b34801561023957600080fd5b506102617f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160401b0390911681526020016101d9565b34801561028557600080fd5b5060345461029a90600160401b900460ff1681565b60405190151581526020016101d9565b3480156102b657600080fd5b50603454610261906001600160401b031681565b3480156102d657600080fd5b5061029a6102e536600461472f565b603560209081526000928352604080842090915290825290205460ff1681565b34801561031157600080fd5b506101f76103203660046147be565b6106ee565b34801561033157600080fd5b506101c57f000000000000000000000000000000000000000000000000000000000000000081565b34801561036557600080fd5b50603854610261906001600160401b031681565b34801561038557600080fd5b5061039961039436600461488c565b610b8f565b6040516101d991906148dd565b3480156103b257600080fd5b506103dd6103c136600461488c565b600090815260366020526040902054600160c01b900460ff1690565b6040516101d99190614925565b3480156103f657600080fd5b506101c57f000000000000000000000000000000000000000000000000000000000000000081565b34801561042a57600080fd5b5060335461026190600160a01b90046001600160401b031681565b6101f7610453366004614974565b610c3c565b34801561046457600080fd5b506101f76104733660046149e7565b610de9565b34801561048457600080fd5b506101f76111b7565b34801561049957600080fd5b506101f76104a8366004614a8f565b611222565b3480156104b957600080fd5b506101f76104c8366004614abb565b61145f565b3480156104d957600080fd5b506101f76104e8366004614bd5565b611637565b3480156104f957600080fd5b506101f7610508366004614ca6565b611760565b34801561051957600080fd5b506101f7610528366004614a8f565b611b2b565b34801561053957600080fd5b506102617f000000000000000000000000000000000000000000000000000000000000000081565b34801561056d57600080fd5b5061057760375481565b6040519081526020016101d9565b604051635ac86ab760e01b8152600260048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156105ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106119190614da1565b156106375760405162461bcd60e51b815260040161062e90614dc3565b60405180910390fd5b6033546001600160a01b031633146106615760405162461bcd60e51b815260040161062e90614e20565b603454600160401b900460ff161561068b5760405162461bcd60e51b815260040161062e90614e68565b6034805460ff60401b1916600160401b1790556033546106b3906001600160a01b0316611c65565b6033546040516001600160a01b03909116907fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a250565b6033546001600160a01b031633146107185760405162461bcd60e51b815260040161062e90614e20565b604051635ac86ab760e01b8152600260048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610780573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a49190614da1565b156107c15760405162461bcd60e51b815260040161062e90614dc3565b60335489906001600160401b03600160a01b9091048116908216116107f85760405162461bcd60e51b815260040161062e90614eb7565b603454600160401b900460ff166108705760405162461bcd60e51b815260206004820152603660248201527f456967656e506f642e686173456e61626c656452657374616b696e673a2072656044820152751cdd185ada5b99c81a5cc81b9bdd08195b98589b195960521b606482015260840161062e565b868514801561087e57508483145b61090e5760405162461bcd60e51b815260206004820152605560248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2076616c696461746f72496e646963657320616e642070726f6f666064820152740e640daeae6e840c4ca40e6c2daca40d8cadccee8d605b1b608482015260a40161062e565b42610924613f486001600160401b038d166146fb565b10156109ad5760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a207370656369666965642074696d657374616d7020697320746f6f60648201526b0819985c881a5b881c185cdd60a21b608482015260a40161062e565b60405163d1c64cc960e01b81526001600160401b038b166004820152610a56907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190614f52565b8a35610a5160208d018d614f6b565b611c99565b6000805b88811015610afa57610adc8c8c358c8c85818110610a7a57610a7a614fb1565b9050602002016020810190610a8f9190614fc7565b8b8b86818110610aa157610aa1614fb1565b9050602002810190610ab39190614f6b565b8b8b88818110610ac557610ac5614fb1565b9050602002810190610ad79190614fee565b611e21565b610ae690836146fb565b915080610af281615037565b915050610a5a565b5060335460405163030b147160e61b81526001600160a01b039182166004820152602481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063c2c51c4090604401600060405180830381600087803b158015610b6a57600080fd5b505af1158015610b7e573d6000803e3d6000fd5b505050505050505050505050505050565b610bb76040805160808101825260008082526020820181905291810182905290606082015290565b600082815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610c2257610c226148a5565b6002811115610c3357610c336148a5565b90525092915050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c845760405162461bcd60e51b815260040161062e90615052565b346801bc16d674ec80000014610d105760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e7374616b653a206d75737420696e697469616c6c792073908201527f74616b6520666f7220616e792076616c696461746f72207769746820333220656064820152633a3432b960e11b608482015260a40161062e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663228951186801bc16d674ec8000008787610d536122c6565b8888886040518863ffffffff1660e01b8152600401610d7796959493929190615124565b6000604051808303818588803b158015610d9057600080fd5b505af1158015610da4573d6000803e3d6000fd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e238585604051610dda929190615173565b60405180910390a15050505050565b604051635ac86ab760e01b8152600360048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610e51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e759190614da1565b15610e925760405162461bcd60e51b815260040161062e90614dc3565b8684148015610ea057508382145b610f285760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f72496e646963657320616e642070726f6f6673206d757374206260648201526c0ca40e6c2daca40d8cadccee8d609b1b608482015260a40161062e565b42610f3e613f486001600160401b038c166146fb565b1015610fc05760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e76657269667942616c616e63655570646174653a207370908201527f656369666965642074696d657374616d7020697320746f6f2066617220696e206064820152631c185cdd60e21b608482015260a40161062e565b60405163d1c64cc960e01b81526001600160401b038a166004820152611064907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611031573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110559190614f52565b8735610a5160208a018a614f6b565b6000805b88811015611108576110ea8b8b8b8481811061108657611086614fb1565b905060200201602081019061109b9190614fc7565b8a358a8a868181106110af576110af614fb1565b90506020028101906110c19190615187565b8989878181106110d3576110d3614fb1565b90506020028101906110e59190614fee565b61230b565b6110f490836151a7565b91508061110081615037565b915050611068565b506033546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169163c2c51c40911661114d633b9aca00856151e8565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561119357600080fd5b505af11580156111a7573d6000803e3d6000fd5b5050505050505050505050505050565b6033546001600160a01b031633146111e15760405162461bcd60e51b815260040161062e90614e20565b603454600160401b900460ff161561120b5760405162461bcd60e51b815260040161062e90614e68565b603354611220906001600160a01b0316611c65565b565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461126a5760405162461bcd60e51b815260040161062e90615052565b611278633b9aca0082615283565b156113025760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74576569206d75737420626520612077686f60648201526d1b194811ddd95a48185b5bdd5b9d60921b608482015260a40161062e565b6000611312633b9aca0083615297565b6034549091506001600160401b0390811690821611156113cb5760405162461bcd60e51b815260206004820152606260248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74477765692065786365656473207769746860648201527f6472617761626c6552657374616b6564457865637574696f6e4c617965724777608482015261656960f01b60a482015260c40161062e565b603480548291906000906113e99084906001600160401b03166152ab565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161144891815260200190565b60405180910390a261145a83836127d0565b505050565b600054610100900460ff161580801561147f5750600054600160ff909116105b806114995750303b158015611499575060005460ff166001145b6114fc5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161062e565b6000805460ff19166001179055801561151f576000805461ff0019166101001790555b6001600160a01b0382166115925760405162461bcd60e51b815260206004820152603460248201527f456967656e506f642e696e697469616c697a653a20706f644f776e65722063616044820152736e6e6f74206265207a65726f206164647265737360601b606482015260840161062e565b603380546001600160a01b0384166001600160a01b031990911681179091556034805460ff60401b1916600160401b1790556040517fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a28015611633576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6033546001600160a01b031633146116615760405162461bcd60e51b815260040161062e90614e20565b81518351146116ec5760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e7265636f766572546f6b656e733a20746f6b656e4c697360448201527f7420616e6420616d6f756e7473546f5769746864726177206d7573742062652060648201526a0e6c2daca40d8cadccee8d60ab1b608482015260a40161062e565b60005b835181101561175a576117488284838151811061170e5761170e614fb1565b602002602001015186848151811061172857611728614fb1565b60200260200101516001600160a01b03166127da9092919063ffffffff16565b8061175281615037565b9150506116ef565b50505050565b604051635ac86ab760e01b81526004808201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156117c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117eb9190614da1565b156118085760405162461bcd60e51b815260040161062e90614dc3565b838614801561181657508588145b801561182157508782145b611895576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f642e766572696679416e6450726f636573735769746864726160448201527f77616c733a20696e70757473206d7573742062652073616d65206c656e677468606482015260840161062e565b60405163d1c64cc960e01b81526001600160401b038c166004820152611939907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611906573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061192a9190614f52565b8b35610a5160208e018e614f6b565b604080518082019091526000808252602082015260005b83811015611a395760006119f48d358d8d8581811061197157611971614fb1565b905060200281019061198391906152d3565b8c8c8681811061199557611995614fb1565b90506020028101906119a79190614f6b565b8c8c888181106119b9576119b9614fb1565b90506020028101906119cb9190614fee565b8c8c8a8181106119dd576119dd614fb1565b90506020028101906119ef9190614fee565b61282c565b80518451919250908490611a099083906146fb565b9052506020808201519084018051611a229083906151a7565b905250819050611a3181615037565b915050611950565b50805115611a68576033548151611a68916001600160a01b031690611a6390633b9aca00906152ea565b612c73565b602081015115611b1d5760335460208201516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263c2c51c4092911690611abe90633b9aca00906151e8565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611b0457600080fd5b505af1158015611b18573d6000803e3d6000fd5b505050505b505050505050505050505050565b6033546001600160a01b03163314611b555760405162461bcd60e51b815260040161062e90614e20565b603754811115611c065760405162461bcd60e51b815260206004820152606a60248201527f456967656e506f642e77697468647261776e6f6e426561636f6e436861696e4560448201527f544842616c616e63655765693a20616d6f756e74546f5769746864726177206960648201527f732067726561746572207468616e206e6f6e426561636f6e436861696e45544860848201526942616c616e636557656960b01b60a482015260c40161062e565b8060376000828254611c189190615309565b90915550506040518181526001600160a01b038316907f30420aacd028abb3c1fd03aba253ae725d6ddd52d16c9ac4cb5742cd43f530969060200160405180910390a26116338282612c73565b6033805467ffffffffffffffff60a01b19164263ffffffff16600160a01b021790556000603755611c968147612c73565b50565b611ca5600360206152ea565b8114611d355760405162461bcd60e51b815260206004820152605360248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a2050726f6f6620686064820152720c2e640d2dcc6dee4e4cac6e840d8cadccee8d606b1b608482015260a40161062e565b611d7a82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915060039050612d01565b61175a5760405162461bcd60e51b815260206004820152606660248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a20496e76616c696460648201527f206c617465737420626c6f636b2068656164657220726f6f74206d65726b6c6560848201526510383937b7b360d11b60a482015260c40161062e565b600080611e60848480806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612d1992505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff166002811115611ecf57611ecf6148a5565b6002811115611ee057611ee06148a5565b9052509050600081606001516002811115611efd57611efd6148a5565b14611fa65760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2056616c696461746f72206d757374206265206960648201527f6e61637469766520746f2070726f7665207769746864726177616c2063726564608482015266656e7469616c7360c81b60a482015260c40161062e565b611fae6122c6565b611fb790615320565b611ff3868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612d3d92505050565b1461207a5760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2050726f6f66206973206e6f7420666f7220746860648201526a1a5cc8115a59d95b941bd960aa1b608482015260a40161062e565b60006120b8868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612d5292505050565b90506120c88a87878b8b8e612d7d565b6001606083015264ffffffffff891682526001600160401b038b811660408401527f000000000000000000000000000000000000000000000000000000000000000081169082161115612149576001600160401b037f0000000000000000000000000000000000000000000000000000000000000000166020830152612159565b6001600160401b03811660208301525b6000838152603660209081526040918290208451815492860151938601516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060850151859391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b8360028111156121f7576121f76148a5565b02179055505060405164ffffffffff8b1681527f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c10441449915060200160405180910390a17f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df898c84602001516040516122929392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1633b9aca0082602001516001600160401b03166122b791906152ea565b9b9a5050505050505050505050565b60408051600160f81b60208201526000602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b60008061231c604086013588612f9e565b9050600061235c858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612d1992505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156123cb576123cb6148a5565b60028111156123dc576123dc6148a5565b815250509050896001600160401b031681604001516001600160401b0316106124935760405162461bcd60e51b815260206004820152605c60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20566160448201527f6c696461746f72732062616c616e63652068617320616c72656164792062656560648201527f6e207570646174656420666f7220746869732074696d657374616d7000000000608482015260a40161062e565b6001816060015160028111156124ab576124ab6148a5565b146125135760405162461bcd60e51b815260206004820152603260248201527f456967656e506f642e76657269667942616c616e63655570646174653a2056616044820152716c696461746f72206e6f742061637469766560701b606482015260840161062e565b61251c8a612fd3565b6001600160401b03166125618787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506130bd92505050565b6001600160401b031611612604576000836001600160401b0316116126045760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f7220697320776974686472617761626c6520627574206861732060648201526c3737ba103bb4ba34323930bbb760991b608482015260a40161062e565b61261d88878761261760208c018c614f6b565b8e612d7d565b6126368860408901356126308a80614f6b565b8d6130d5565b602081015160006001600160401b037f00000000000000000000000000000000000000000000000000000000000000008116908616111561269857507f000000000000000000000000000000000000000000000000000000000000000061269b565b50835b6001600160401b0380821660208086019182528e831660408088019182526000898152603690935290912086518154935192518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606086015186939091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115612743576127436148a5565b0217905550905050816001600160401b0316816001600160401b0316146127c1576040805164ffffffffff8d1681526001600160401b038e8116602083015283168183015290517f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df9181900360600190a16127be818361323e565b95505b50505050509695505050505050565b611633828261325d565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261145a908490613376565b604080518082019091526000808252602082015261285161284c896153b3565b613448565b6033546001600160401b03600160a01b9091048116908216116128865760405162461bcd60e51b815260040161062e90614eb7565b600061289461284c8b6153b3565b905060006128d4888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612d1992505050565b905060008082815260366020526040902054600160c01b900460ff166002811115612901576129016148a5565b14156129b85760405162461bcd60e51b815260206004820152607460248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a2056616c696461746f72206e657665722070726f76656e20746f2060648201527f68617665207769746864726177616c2063726564656e7469616c7320706f696e6084820152731d1959081d1bc81d1a1a5cc818dbdb9d1c9858dd60621b60a482015260c40161062e565b60008181526035602090815260408083206001600160401b038616845290915290205460ff1615612a775760405162461bcd60e51b815260206004820152605b60248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a207769746864726177616c2068617320616c72656164792062656560648201527f6e2070726f76656e20666f7220746869732074696d657374616d700000000000608482015260a40161062e565b60008181526035602090815260408083206001600160401b03861684529091529020805460ff19166001179055612ab08c87878e613458565b6000612aee878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613e4092505050565b9050612afe8d8a8a8e8e86612d7d565b6000612b3c888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613e5892505050565b9050612b7a8a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506130bd92505050565b6001600160401b0316612b94612b8f8f6153b3565b613e70565b6001600160401b031610612c4c57603354600084815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352612c4193869388938a936001600160a01b03909316928892916060830190600160c01b900460ff166002811115612c2857612c286148a5565b6002811115612c3957612c396148a5565b905250613e82565b955050505050612c66565b603354612c4190839086906001600160a01b031684614093565b5098975050505050505050565b603354604051633036cd5360e21b81526001600160a01b03918216600482015283821660248201527f00000000000000000000000000000000000000000000000000000000000000009091169063c0db354c9083906044016000604051808303818588803b158015612ce457600080fd5b505af1158015612cf8573d6000803e3d6000fd5b50505050505050565b600083612d0f868585614171565b1495945050505050565b600081600081518110612d2e57612d2e614fb1565b60200260200101519050919050565b600081600181518110612d2e57612d2e614fb1565b6000612d7782600281518110612d6a57612d6a614fb1565b60200260200101516142bd565b92915050565b612d89600360026155d3565b8414612e025760405162461bcd60e51b815260206004820152604e602482015260008051602061573f83398151915260448201527f724669656c64733a2056616c696461746f72206669656c64732068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a40161062e565b6005612e10602860016146fb565b612e1a91906146fb565b612e259060206152ea565b8214612e935760405162461bcd60e51b8152602060048201526043602482015260008051602061573f83398151915260448201527f724669656c64733a2050726f6f662068617320696e636f7272656374206c656e6064820152620cee8d60eb1b608482015260a40161062e565b600064ffffffffff8216612ea9602860016146fb565b600b901b1790506000612eee87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061432492505050565b9050612f3485858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250859150869050612d01565b612f945760405162461bcd60e51b815260206004820152603d602482015260008051602061573f83398151915260448201527f724669656c64733a20496e76616c6964206d65726b6c652070726f6f66000000606482015260840161062e565b5050505050505050565b600080612fac6004846155df565b612fb7906040615603565b64ffffffffff169050612fcb84821b6142bd565b949350505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316826001600160401b0316101561307d5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f642e5f74696d657374616d70546f45706f63683a2074696d6560448201527f7374616d70206973206265666f72652067656e65736973000000000000000000606482015260840161062e565b613089600c6020615630565b6130b37f0000000000000000000000000000000000000000000000000000000000000000846152ab565b612d779190615656565b6000612d7782600781518110612d6a57612d6a614fb1565b60056130e3602660016146fb565b6130ed91906146fb565b6130f89060206152ea565b82146131685760405162461bcd60e51b81526020600482015260446024820181905260008051602061573f833981519152908201527f7242616c616e63653a2050726f6f662068617320696e636f7272656374206c656064820152630dccee8d60e31b608482015260a40161062e565b600061317560048361567c565b64ffffffffff1690508061318b602660016146fb565b600c901b1790506131d684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250899150859050612d01565b6132365760405162461bcd60e51b815260206004820152603e602482015260008051602061573f83398151915260448201527f7242616c616e63653a20496e76616c6964206d65726b6c652070726f6f660000606482015260840161062e565b505050505050565b60006132566001600160401b03808416908516615694565b9392505050565b804710156132ad5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161062e565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146132fa576040519150601f19603f3d011682016040523d82523d6000602084013e6132ff565b606091505b505090508061145a5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161062e565b60006133cb826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166145d19092919063ffffffff16565b80519091501561145a57808060200190518101906133e99190614da1565b61145a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161062e565b6000612d778261014001516142bd565b6134636002806155d3565b82146134d75760405162461bcd60e51b8152602060048201526049602482015260008051602061575f83398151915260448201527f616c3a207769746864726177616c4669656c64732068617320696e636f7272656064820152680c6e840d8cadccee8d60bb1b608482015260a40161062e565b6134e3600d60026155d3565b6134f360c0830160a084016156d3565b6001600160401b03161061355d5760405162461bcd60e51b815260206004820152603f602482015260008051602061575f83398151915260448201527f616c3a20626c6f636b526f6f74496e64657820697320746f6f206c6172676500606482015260840161062e565b613569600460026155d3565b61357a610100830160e084016156d3565b6001600160401b0316106135e6576040805162461bcd60e51b815260206004820152602481019190915260008051602061575f83398151915260448201527f616c3a207769746864726177616c496e64657820697320746f6f206c61726765606482015260840161062e565b6135f2601860026155d3565b61360260e0830160c084016156d3565b6001600160401b03161061367c5760405162461bcd60e51b8152602060048201526047602482015260008051602061575f83398151915260448201527f616c3a20686973746f726963616c53756d6d617279496e64657820697320746f6064820152666f206c6172676560c81b608482015260a40161062e565b6136876004806146fb565b6136929060016146fb565b61369d9060206152ea565b6136a78280614f6b565b90501461371b5760405162461bcd60e51b8152602060048201526048602482015260008051602061575f83398151915260448201527f616c3a207769746864726177616c50726f6f662068617320696e636f727265636064820152670e840d8cadccee8d60c31b608482015260a40161062e565b613727600460036146fb565b6137329060206152ea565b61373f6040830183614f6b565b9050146137b95760405162461bcd60e51b815260206004820152604e602482015260008051602061575f83398151915260448201527f616c3a20657865637574696f6e5061796c6f616450726f6f662068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a40161062e565b6137c5600360206152ea565b6137d26020830183614f6b565b9050146138405760405162461bcd60e51b8152602060048201526042602482015260008051602061575f83398151915260448201527f616c3a20736c6f7450726f6f662068617320696e636f7272656374206c656e676064820152610e8d60f31b608482015260a40161062e565b61384c600460206152ea565b6138596060830183614f6b565b9050146138cc5760405162461bcd60e51b8152602060048201526047602482015260008051602061575f83398151915260448201527f616c3a2074696d657374616d7050726f6f662068617320696e636f7272656374606482015266040d8cadccee8d60cb1b608482015260a40161062e565b600d6138da601860016146fb565b6138e59060056146fb565b6138f09060016146fb565b6138fa91906146fb565b6139059060206152ea565b6139126080830183614f6b565b90501461399b5760405162461bcd60e51b8152602060048201526058602482015260008051602061575f83398151915260448201527f616c3a20686973746f726963616c53756d6d617279426c6f636b526f6f74507260648201527f6f6f662068617320696e636f7272656374206c656e6774680000000000000000608482015260a40161062e565b60006139ad60c0830160a084016156d3565b6001600160401b031660006139c4600d60016146fb565b6139d460e0860160c087016156d3565b6001600160401b0316901b600d6139ed601860016146fb565b6139f89060016146fb565b613a0291906146fb565b601b901b1717179050613a5d613a1b6080840184614f6b565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250899250505061010085013584612d01565b613ad05760405162461bcd60e51b815260206004820152604a602482015260008051602061575f83398151915260448201527f616c3a20496e76616c696420686973746f726963616c73756d6d617279206d656064820152693935b63290383937b7b360b11b608482015260a40161062e565b613b27613ae06020840184614f6b565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250610100880135935061012088013592509050612d01565b613b875760405162461bcd60e51b815260206004820152603d602482015260008051602061575f83398151915260448201527f616c3a20496e76616c696420736c6f74206d65726b6c652070726f6f66000000606482015260840161062e565b6049613bdf613b996040850185614f6b565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505061010085013561016086013584612d01565b613c515760405162461bcd60e51b8152602060048201526049602482015260008051602061575f83398151915260448201527f616c3a20496e76616c696420657865637574696f6e5061796c6f6164206d657260648201526835b63290383937b7b360b91b608482015260a40161062e565b50613ca9613c626060840184614f6b565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608401356101408501356009612d01565b613d175760405162461bcd60e51b81526020600482015260446024820181905260008051602061575f833981519152908201527f616c3a20496e76616c696420626c6f636b4e756d626572206d65726b6c6520706064820152633937b7b360e11b608482015260a40161062e565b6000613d2a610100840160e085016156d3565b6001600160401b0316613d3f600460016146fb565b600e901b1790506000613d8486868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061432492505050565b9050613dd4613d938580614f6b565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608601358385612d01565b612cf85760405162461bcd60e51b8152602060048201526043602482015260008051602061575f83398151915260448201527f616c3a20496e76616c6964207769746864726177616c206d65726b6c6520707260648201526237b7b360e91b608482015260a40161062e565b6000612d7782600181518110612d6a57612d6a614fb1565b6000612d7782600381518110612d6a57612d6a614fb1565b600060206130b38361012001516142bd565b604080518082019091526000808252602082015260007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316846001600160401b03161115613ef957507f0000000000000000000000000000000000000000000000000000000000000000613efc565b50825b6040805180820190915260008082526020820152613f1a82866152ab565b6001600160401b039081168252603480548492600091613f3c918591166156ee565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550613f6e82856020015161323e565b602082810191909152600090850152600260608501819052506000888152603660209081526040918290208651815492880151938801516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060870151879391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115614025576140256148a5565b0217905550506040805164ffffffffff8c1681526001600160401b038a8116602083015288168183015290516001600160a01b03891692507fb76a93bb649ece524688f1a01d184e0bbebcda58eae80c28a898bec3fb5a09639181900360600190a298975050505050505050565b60408051808201909152600080825260208201526040805164ffffffffff871681526001600160401b0380871660208301528416918101919091526001600160a01b038416907f8a7335714231dbd551aaba6314f4a97a14c201e53a3e25e1140325cdf67d7a4e9060600160405180910390a2603880548391906000906141249084906001600160401b03166156ee565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506040518060400160405280836001600160401b0316815260200160008152509050949350505050565b6000835160001415801561419057506020845161418e9190615283565b155b61421f5760405162461bcd60e51b815260206004820152605460248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f665368613260448201527f35363a2070726f6f66206c656e6774682073686f756c642062652061206e6f6e60648201527316bd32b9379036bab63a34b836329037b310199960611b608482015260a40161062e565b604080516020808201909252848152905b855181116142b357614243600285615283565b614276578151600052808601516020526020826040600060026107d05a03fa61426b57600080fd5b6002840493506142a1565b8086015160005281516020526020826040600060026107d05a03fa61429a57600080fd5b6002840493505b6142ac6020826146fb565b9050614230565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b600080600283516143359190615297565b90506000816001600160401b0381111561435157614351614ad8565b60405190808252806020026020018201604052801561437a578160200160208202803683370190505b50905060005b828110156144815760028561439583836152ea565b815181106143a5576143a5614fb1565b6020026020010151868360026143bb91906152ea565b6143c69060016146fb565b815181106143d6576143d6614fb1565b60200260200101516040516020016143f8929190918252602082015260400190565b60408051601f198184030181529082905261441291615719565b602060405180830381855afa15801561442f573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906144529190614f52565b82828151811061446457614464614fb1565b60209081029190910101528061447981615037565b915050614380565b5061448d600283615297565b91505b81156145ad5760005b8281101561459a576002826144ae83836152ea565b815181106144be576144be614fb1565b6020026020010151838360026144d491906152ea565b6144df9060016146fb565b815181106144ef576144ef614fb1565b6020026020010151604051602001614511929190918252602082015260400190565b60408051601f198184030181529082905261452b91615719565b602060405180830381855afa158015614548573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061456b9190614f52565b82828151811061457d5761457d614fb1565b60209081029190910101528061459281615037565b915050614499565b506145a6600283615297565b9150614490565b806000815181106145c0576145c0614fb1565b602002602001015192505050919050565b6060612fcb8484600085856001600160a01b0385163b6146335760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161062e565b600080866001600160a01b0316858760405161464f9190615719565b60006040518083038185875af1925050503d806000811461468c576040519150601f19603f3d011682016040523d82523d6000602084013e614691565b606091505b50915091506146a18282866146ac565b979650505050505050565b606083156146bb575081613256565b8251156146cb5782518084602001fd5b8160405162461bcd60e51b815260040161062e919061572b565b634e487b7160e01b600052601160045260246000fd5b6000821982111561470e5761470e6146e5565b500190565b80356001600160401b038116811461472a57600080fd5b919050565b6000806040838503121561474257600080fd5b8235915061475260208401614713565b90509250929050565b60006040828403121561476d57600080fd5b50919050565b60008083601f84011261478557600080fd5b5081356001600160401b0381111561479c57600080fd5b6020830191508360208260051b85010111156147b757600080fd5b9250929050565b60008060008060008060008060a0898b0312156147da57600080fd5b6147e389614713565b975060208901356001600160401b03808211156147ff57600080fd5b61480b8c838d0161475b565b985060408b013591508082111561482157600080fd5b61482d8c838d01614773565b909850965060608b013591508082111561484657600080fd5b6148528c838d01614773565b909650945060808b013591508082111561486b57600080fd5b506148788b828c01614773565b999c989b5096995094979396929594505050565b60006020828403121561489e57600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b600381106148d957634e487b7160e01b600052602160045260246000fd5b9052565b60006080820190506001600160401b0380845116835280602085015116602084015280604085015116604084015250606083015161491e60608401826148bb565b5092915050565b60208101612d7782846148bb565b60008083601f84011261494557600080fd5b5081356001600160401b0381111561495c57600080fd5b6020830191508360208285010111156147b757600080fd5b60008060008060006060868803121561498c57600080fd5b85356001600160401b03808211156149a357600080fd5b6149af89838a01614933565b909750955060208801359150808211156149c857600080fd5b506149d588828901614933565b96999598509660400135949350505050565b60008060008060008060008060a0898b031215614a0357600080fd5b614a0c89614713565b975060208901356001600160401b0380821115614a2857600080fd5b614a348c838d01614773565b909950975060408b0135915080821115614a4d57600080fd5b614a598c838d0161475b565b965060608b013591508082111561484657600080fd5b6001600160a01b0381168114611c9657600080fd5b803561472a81614a6f565b60008060408385031215614aa257600080fd5b8235614aad81614a6f565b946020939093013593505050565b600060208284031215614acd57600080fd5b813561325681614a6f565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b0381118282101715614b1157614b11614ad8565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614b3f57614b3f614ad8565b604052919050565b60006001600160401b03821115614b6057614b60614ad8565b5060051b60200190565b600082601f830112614b7b57600080fd5b81356020614b90614b8b83614b47565b614b17565b82815260059290921b84018101918181019086841115614baf57600080fd5b8286015b84811015614bca5780358352918301918301614bb3565b509695505050505050565b600080600060608486031215614bea57600080fd5b83356001600160401b0380821115614c0157600080fd5b818601915086601f830112614c1557600080fd5b81356020614c25614b8b83614b47565b82815260059290921b8401810191818101908a841115614c4457600080fd5b948201945b83861015614c6b578535614c5c81614a6f565b82529482019490820190614c49565b97505087013592505080821115614c8157600080fd5b50614c8e86828701614b6a565b925050614c9d60408501614a84565b90509250925092565b60008060008060008060008060008060c08b8d031215614cc557600080fd5b614cce8b614713565b995060208b01356001600160401b0380821115614cea57600080fd5b614cf68e838f0161475b565b9a5060408d0135915080821115614d0c57600080fd5b614d188e838f01614773565b909a50985060608d0135915080821115614d3157600080fd5b614d3d8e838f01614773565b909850965060808d0135915080821115614d5657600080fd5b614d628e838f01614773565b909650945060a08d0135915080821115614d7b57600080fd5b50614d888d828e01614773565b915080935050809150509295989b9194979a5092959850565b600060208284031215614db357600080fd5b8151801515811461325657600080fd5b6020808252603e908201527f456967656e506f642e6f6e6c795768656e4e6f745061757365643a20696e646560408201527f782069732070617573656420696e20456967656e506f644d616e616765720000606082015260800190565b60208082526028908201527f456967656e506f642e6f6e6c79456967656e506f644f776e65723a206e6f74206040820152673837b227bbb732b960c11b606082015260800190565b6020808252602f908201527f456967656e506f642e6861734e6576657252657374616b65643a20726573746160408201526e1ada5b99c81a5cc8195b98589b1959608a1b606082015260800190565b6020808252606f908201527f456967656e506f642e70726f6f664973466f7256616c696454696d657374616d60408201527f703a20626561636f6e20636861696e2070726f6f66206d75737420626520666f60608201527f722074696d657374616d70206166746572206d6f7374526563656e745769746860808201526e064726177616c54696d657374616d7608c1b60a082015260c00190565b600060208284031215614f6457600080fd5b5051919050565b6000808335601e19843603018112614f8257600080fd5b8301803591506001600160401b03821115614f9c57600080fd5b6020019150368190038213156147b757600080fd5b634e487b7160e01b600052603260045260246000fd5b600060208284031215614fd957600080fd5b813564ffffffffff8116811461325657600080fd5b6000808335601e1984360301811261500557600080fd5b8301803591506001600160401b0382111561501f57600080fd5b6020019150600581901b36038213156147b757600080fd5b600060001982141561504b5761504b6146e5565b5060010190565b60208082526031908201527f456967656e506f642e6f6e6c79456967656e506f644d616e616765723a206e6f6040820152703a1032b4b3b2b72837b226b0b730b3b2b960791b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60005b838110156150e75781810151838201526020016150cf565b8381111561175a5750506000910152565b600081518084526151108160208601602086016150cc565b601f01601f19169290920160200192915050565b60808152600061513860808301888a6150a3565b828103602084015261514a81886150f8565b9050828103604084015261515f8186886150a3565b915050826060830152979650505050505050565b602081526000612fcb6020830184866150a3565b60008235605e1983360301811261519d57600080fd5b9190910192915050565b600080821280156001600160ff1b03849003851316156151c9576151c96146e5565b600160ff1b83900384128116156151e2576151e26146e5565b50500190565b60006001600160ff1b038184138284138082168684048611161561520e5761520e6146e5565b600160ff1b600087128281168783058912161561522d5761522d6146e5565b60008712925087820587128484161615615249576152496146e5565b8785058712818416161561525f5761525f6146e5565b505050929093029392505050565b634e487b7160e01b600052601260045260246000fd5b6000826152925761529261526d565b500690565b6000826152a6576152a661526d565b500490565b60006001600160401b03838116908316818110156152cb576152cb6146e5565b039392505050565b6000823561017e1983360301811261519d57600080fd5b6000816000190483118215151615615304576153046146e5565b500290565b60008282101561531b5761531b6146e5565b500390565b8051602080830151919081101561476d5760001960209190910360031b1b16919050565b600082601f83011261535557600080fd5b81356001600160401b0381111561536e5761536e614ad8565b615381601f8201601f1916602001614b17565b81815284602083860101111561539657600080fd5b816020850160208301376000918101602001919091529392505050565b600061018082360312156153c657600080fd5b6153ce614aee565b82356001600160401b03808211156153e557600080fd5b6153f136838701615344565b8352602085013591508082111561540757600080fd5b61541336838701615344565b6020840152604085013591508082111561542c57600080fd5b61543836838701615344565b6040840152606085013591508082111561545157600080fd5b61545d36838701615344565b6060840152608085013591508082111561547657600080fd5b5061548336828601615344565b60808301525061549560a08401614713565b60a08201526154a660c08401614713565b60c08201526154b760e08401614713565b60e082015261010083810135908201526101208084013590820152610140808401359082015261016092830135928101929092525090565b600181815b8085111561552a578160001904821115615510576155106146e5565b8085161561551d57918102915b93841c93908002906154f4565b509250929050565b60008261554157506001612d77565b8161554e57506000612d77565b8160018114615564576002811461556e5761558a565b6001915050612d77565b60ff84111561557f5761557f6146e5565b50506001821b612d77565b5060208310610133831016604e8410600b84101617156155ad575081810a612d77565b6155b783836154ef565b80600019048211156155cb576155cb6146e5565b029392505050565b60006132568383615532565b600064ffffffffff808416806155f7576155f761526d565b92169190910692915050565b600064ffffffffff80831681851681830481118215151615615627576156276146e5565b02949350505050565b60006001600160401b0380831681851681830481118215151615615627576156276146e5565b60006001600160401b03808416806156705761567061526d565b92169190910492915050565b600064ffffffffff808416806156705761567061526d565b60008083128015600160ff1b8501841216156156b2576156b26146e5565b6001600160ff1b03840183138116156156cd576156cd6146e5565b50500390565b6000602082840312156156e557600080fd5b61325682614713565b60006001600160401b03808316818516808303821115615710576157106146e5565b01949350505050565b6000825161519d8184602087016150cc565b60208152600061325660208301846150f856fe426561636f6e436861696e50726f6f66732e76657269667956616c696461746f426561636f6e436861696e50726f6f66732e7665726966795769746864726177a2646970667358221220adf6c760b4f63409f1c31e44c4973f342aba42b062831447260fa528498fa3d764736f6c634300080c0033", } // ContractEigenPodABI is the input ABI used to generate the binding from. @@ -81,7 +81,7 @@ var ContractEigenPodABI = ContractEigenPodMetaData.ABI var ContractEigenPodBin = ContractEigenPodMetaData.Bin // DeployContractEigenPod deploys a new Ethereum contract, binding an instance of ContractEigenPod to it. -func DeployContractEigenPod(auth *bind.TransactOpts, backend bind.ContractBackend, _ethPOS common.Address, _delayedWithdrawalRouter common.Address, _eigenPodManager common.Address, _MAX_RESTAKED_BALANCE_GWEI_PER_VALIDATOR uint64, _RESTAKED_BALANCE_OFFSET_GWEI uint64, _GENESIS_TIME uint64) (common.Address, *types.Transaction, *ContractEigenPod, error) { +func DeployContractEigenPod(auth *bind.TransactOpts, backend bind.ContractBackend, _ethPOS common.Address, _delayedWithdrawalRouter common.Address, _eigenPodManager common.Address, _MAX_RESTAKED_BALANCE_GWEI_PER_VALIDATOR uint64, _GENESIS_TIME uint64) (common.Address, *types.Transaction, *ContractEigenPod, error) { parsed, err := ContractEigenPodMetaData.GetAbi() if err != nil { return common.Address{}, nil, nil, err @@ -90,7 +90,7 @@ func DeployContractEigenPod(auth *bind.TransactOpts, backend bind.ContractBacken return common.Address{}, nil, nil, errors.New("GetABI returned nil") } - address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ContractEigenPodBin), backend, _ethPOS, _delayedWithdrawalRouter, _eigenPodManager, _MAX_RESTAKED_BALANCE_GWEI_PER_VALIDATOR, _RESTAKED_BALANCE_OFFSET_GWEI, _GENESIS_TIME) + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ContractEigenPodBin), backend, _ethPOS, _delayedWithdrawalRouter, _eigenPodManager, _MAX_RESTAKED_BALANCE_GWEI_PER_VALIDATOR, _GENESIS_TIME) if err != nil { return common.Address{}, nil, nil, err } @@ -301,37 +301,6 @@ func (_ContractEigenPod *ContractEigenPodCallerSession) MAXRESTAKEDBALANCEGWEIPE return _ContractEigenPod.Contract.MAXRESTAKEDBALANCEGWEIPERVALIDATOR(&_ContractEigenPod.CallOpts) } -// RESTAKEDBALANCEOFFSETGWEI is a free data retrieval call binding the contract method 0x1f60c2bd. -// -// Solidity: function RESTAKED_BALANCE_OFFSET_GWEI() view returns(uint64) -func (_ContractEigenPod *ContractEigenPodCaller) RESTAKEDBALANCEOFFSETGWEI(opts *bind.CallOpts) (uint64, error) { - var out []interface{} - err := _ContractEigenPod.contract.Call(opts, &out, "RESTAKED_BALANCE_OFFSET_GWEI") - - if err != nil { - return *new(uint64), err - } - - out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) - - return out0, err - -} - -// RESTAKEDBALANCEOFFSETGWEI is a free data retrieval call binding the contract method 0x1f60c2bd. -// -// Solidity: function RESTAKED_BALANCE_OFFSET_GWEI() view returns(uint64) -func (_ContractEigenPod *ContractEigenPodSession) RESTAKEDBALANCEOFFSETGWEI() (uint64, error) { - return _ContractEigenPod.Contract.RESTAKEDBALANCEOFFSETGWEI(&_ContractEigenPod.CallOpts) -} - -// RESTAKEDBALANCEOFFSETGWEI is a free data retrieval call binding the contract method 0x1f60c2bd. -// -// Solidity: function RESTAKED_BALANCE_OFFSET_GWEI() view returns(uint64) -func (_ContractEigenPod *ContractEigenPodCallerSession) RESTAKEDBALANCEOFFSETGWEI() (uint64, error) { - return _ContractEigenPod.Contract.RESTAKEDBALANCEOFFSETGWEI(&_ContractEigenPod.CallOpts) -} - // DelayedWithdrawalRouter is a free data retrieval call binding the contract method 0x1a5057be. // // Solidity: function delayedWithdrawalRouter() view returns(address) diff --git a/contracts/bindings/EigenPodManager/binding.go b/contracts/bindings/EigenPodManager/binding.go index 054d5315..e71fbbb1 100644 --- a/contracts/bindings/EigenPodManager/binding.go +++ b/contracts/bindings/EigenPodManager/binding.go @@ -31,8 +31,8 @@ var ( // ContractEigenPodManagerMetaData contains all meta data concerning the ContractEigenPodManager contract. var ContractEigenPodManagerMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"contractIETHPOSDeposit\",\"name\":\"_ethPOS\",\"type\":\"address\"},{\"internalType\":\"contractIBeacon\",\"name\":\"_eigenPodBeacon\",\"type\":\"address\"},{\"internalType\":\"contractIStrategyManager\",\"name\":\"_strategyManager\",\"type\":\"address\"},{\"internalType\":\"contractISlasher\",\"name\":\"_slasher\",\"type\":\"address\"},{\"internalType\":\"contractIDelegationManager\",\"name\":\"_delegationManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"BeaconChainETHDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"nonce\",\"type\":\"uint96\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"delegatedAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"name\":\"BeaconChainETHWithdrawalCompleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOracleAddress\",\"type\":\"address\"}],\"name\":\"BeaconOracleUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousValue\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newValue\",\"type\":\"uint256\"}],\"name\":\"MaxPodsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contractIPauserRegistry\",\"name\":\"pauserRegistry\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contractIPauserRegistry\",\"name\":\"newPauserRegistry\",\"type\":\"address\"}],\"name\":\"PauserRegistrySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"eigenPod\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"}],\"name\":\"PodDeployed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"addShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"beaconChainETHStrategy\",\"outputs\":[{\"internalType\":\"contractIStrategy\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"beaconChainOracle\",\"outputs\":[{\"internalType\":\"contractIBeaconChainOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"createPod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"cumulativeWithdrawalsQueued\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegationManager\",\"outputs\":[{\"internalType\":\"contractIDelegationManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eigenPodBeacon\",\"outputs\":[{\"internalType\":\"contractIBeacon\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ethPOS\",\"outputs\":[{\"internalType\":\"contractIETHPOSDeposit\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"}],\"name\":\"getBlockRootAtTimestamp\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"}],\"name\":\"getPod\",\"outputs\":[{\"internalType\":\"contractIEigenPod\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"}],\"name\":\"hasPod\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxPods\",\"type\":\"uint256\"},{\"internalType\":\"contractIBeaconChainOracle\",\"name\":\"_beaconChainOracle\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"},{\"internalType\":\"contractIPauserRegistry\",\"name\":\"_pauserRegistry\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_initPausedStatus\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxPods\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"numPods\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"ownerToPod\",\"outputs\":[{\"internalType\":\"contractIEigenPod\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauserRegistry\",\"outputs\":[{\"internalType\":\"contractIPauserRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"podOwnerShares\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"},{\"internalType\":\"int256\",\"name\":\"sharesDelta\",\"type\":\"int256\"}],\"name\":\"recordBeaconChainETHBalanceUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"removeShares\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newMaxPods\",\"type\":\"uint256\"}],\"name\":\"setMaxPods\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIPauserRegistry\",\"name\":\"newPauserRegistry\",\"type\":\"address\"}],\"name\":\"setPauserRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"internalType\":\"contractISlasher\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"pubkey\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"depositDataRoot\",\"type\":\"bytes32\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"strategyManager\",\"outputs\":[{\"internalType\":\"contractIStrategyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBeaconChainOracle\",\"name\":\"newBeaconChainOracle\",\"type\":\"address\"}],\"name\":\"updateBeaconChainOracle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"withdrawSharesAsTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"withdrawalRootPending\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x6101206040523480156200001257600080fd5b50604051620034693803806200346983398101604081905262000035916200014b565b6001600160a01b0380861660805280851660a05280841660c05280831660e0528116610100526200006562000070565b5050505050620001cb565b600054610100900460ff1615620000dd5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000130576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200014857600080fd5b50565b600080600080600060a086880312156200016457600080fd5b8551620001718162000132565b6020870151909550620001848162000132565b6040870151909450620001978162000132565b6060870151909350620001aa8162000132565b6080870151909250620001bd8162000132565b809150509295509295909350565b60805160a05160c05160e051610100516132286200024160003960008181610691015281816107f701528181610bef01528181611202015281816117130152611803015260006105570152600061031c0152600081816102b0015281816111810152611fb9015260006103fc01526132286000f3fe6080604052600436106102045760003560e01c80639b4e463411610118578063c1de3aef116100a0578063daf12cd41161006f578063daf12cd41461065f578063ea4d3c9b1461067f578063f2fde38b146106b3578063f6848d24146106d3578063fabc1cbc1461070e57600080fd5b8063c1de3aef146105cf578063c2c51c40146105ef578063c3c6b3a91461060f578063d1c64cc91461063f57600080fd5b8063a6a509be116100e7578063a6a509be1461052f578063b134427114610545578063beffbb8914610579578063c052bd6114610599578063c0ccbf10146105b957600080fd5b80639b4e4634146104995780639ba06275146104ac578063a1788484146104e2578063a38406a31461050f57600080fd5b80635ac86ab71161019b57806374cdd7981161016a57806374cdd798146103ea57806384d810621461041e578063886f1195146104335780638da5cb5b146104535780639104c3191461047157600080fd5b80635ac86ab7146103535780635c975abb1461039357806360f4062b146103a8578063715018a6146103d557600080fd5b8063292b7b2b116101d7578063292b7b2b1461029e578063387b1300146102ea57806339b70e381461030a578063595c6a671461033e57600080fd5b80630cf2686d146102095780630e81073c1461022b57806310d67a2f1461025e578063136439dd1461027e575b600080fd5b34801561021557600080fd5b50610229610224366004612371565b61072e565b005b34801561023757600080fd5b5061024b61024636600461239f565b6107ea565b6040519081526020015b60405180910390f35b34801561026a57600080fd5b506102296102793660046123cb565b6109f5565b34801561028a57600080fd5b50610229610299366004612371565b610aa5565b3480156102aa57600080fd5b506102d27f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610255565b3480156102f657600080fd5b506102296103053660046123e8565b610be4565b34801561031657600080fd5b506102d27f000000000000000000000000000000000000000000000000000000000000000081565b34801561034a57600080fd5b50610229610f27565b34801561035f57600080fd5b5061038361036e366004612429565b606654600160ff9092169190911b9081161490565b6040519015158152602001610255565b34801561039f57600080fd5b5060665461024b565b3480156103b457600080fd5b5061024b6103c33660046123cb565b609b6020526000908152604090205481565b3480156103e157600080fd5b50610229610fee565b3480156103f657600080fd5b506102d27f000000000000000000000000000000000000000000000000000000000000000081565b34801561042a57600080fd5b50610229611002565b34801561043f57600080fd5b506065546102d2906001600160a01b031681565b34801561045f57600080fd5b506033546001600160a01b03166102d2565b34801561047d57600080fd5b506102d273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102296104a7366004612495565b61108c565b3480156104b857600080fd5b506102d26104c73660046123cb565b6098602052600090815260409020546001600160a01b031681565b3480156104ee57600080fd5b5061024b6104fd3660046123cb565b609c6020526000908152604090205481565b34801561051b57600080fd5b506102d261052a3660046123cb565b611125565b34801561053b57600080fd5b5061024b60995481565b34801561055157600080fd5b506102d27f000000000000000000000000000000000000000000000000000000000000000081565b34801561058557600080fd5b5061022961059436600461239f565b6111f7565b3480156105a557600080fd5b506097546102d2906001600160a01b031681565b3480156105c557600080fd5b5061024b609a5481565b3480156105db57600080fd5b506102296105ea3660046123cb565b61148a565b3480156105fb57600080fd5b5061022961060a36600461239f565b61149b565b34801561061b57600080fd5b5061038361062a366004612371565b609d6020526000908152604090205460ff1681565b34801561064b57600080fd5b5061024b61065a366004612509565b61186d565b34801561066b57600080fd5b5061022961067a366004612533565b611978565b34801561068b57600080fd5b506102d27f000000000000000000000000000000000000000000000000000000000000000081565b3480156106bf57600080fd5b506102296106ce3660046123cb565b611aab565b3480156106df57600080fd5b506103836106ee3660046123cb565b6001600160a01b0390811660009081526098602052604090205416151590565b34801561071a57600080fd5b50610229610729366004612371565b611b21565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610781573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a5919061258e565b6001600160a01b0316336001600160a01b0316146107de5760405162461bcd60e51b81526004016107d5906125ab565b60405180910390fd5b6107e781611c7d565b50565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108345760405162461bcd60e51b81526004016107d5906125f5565b6001600160a01b0383166108b05760405162461bcd60e51b815260206004820152603a60248201527f456967656e506f644d616e616765722e6164645368617265733a20706f644f7760448201527f6e65722063616e6e6f74206265207a65726f206164647265737300000000000060648201526084016107d5565b600082121561091e5760405162461bcd60e51b815260206004820152603460248201527f456967656e506f644d616e616765722e6164645368617265733a207368617265604482015273732063616e6e6f74206265206e6567617469766560601b60648201526084016107d5565b61092c633b9aca0083612669565b1561099f5760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e6164645368617265733a20736861726560448201527f73206d75737420626520612077686f6c65204777656920616d6f756e7400000060648201526084016107d5565b6001600160a01b0383166000908152609b6020526040812054906109c38483612693565b6001600160a01b0386166000908152609b6020526040902081905590506109ea8282611cbe565b925050505b92915050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6c919061258e565b6001600160a01b0316336001600160a01b031614610a9c5760405162461bcd60e51b81526004016107d5906125ab565b6107e781611d00565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610aed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1191906126d4565b610b2d5760405162461bcd60e51b81526004016107d5906126f6565b60665481811614610ba65760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c697479000000000000000060648201526084016107d5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c2c5760405162461bcd60e51b81526004016107d5906125f5565b6001600160a01b038316610ca65760405162461bcd60e51b815260206004820152604760248201526000805160206131d383398151915260448201527f546f6b656e733a20706f644f776e65722063616e6e6f74206265207a65726f206064820152666164647265737360c81b608482015260a4016107d5565b6001600160a01b038216610d235760405162461bcd60e51b815260206004820152604a60248201526000805160206131d383398151915260448201527f546f6b656e733a2064657374696e6174696f6e2063616e6e6f74206265207a65606482015269726f206164647265737360b01b608482015260a4016107d5565b6000811215610d925760405162461bcd60e51b815260206004820152604160248201526000805160206131d383398151915260448201527f546f6b656e733a207368617265732063616e6e6f74206265206e6567617469766064820152606560f81b608482015260a4016107d5565b610da0633b9aca0082612669565b15610e145760405162461bcd60e51b815260206004820152604a60248201526000805160206131d383398151915260448201527f546f6b656e733a20736861726573206d75737420626520612077686f6c6520476064820152691dd95a48185b5bdd5b9d60b21b608482015260a4016107d5565b6001600160a01b0383166000908152609b602052604081205490811215610eab576000610e408261273e565b905080831115610e74576001600160a01b0385166000908152609b6020526040812055610e6d818461275b565b9250610ea9565b6001600160a01b0385166000908152609b602052604081208054859290610e9c908490612693565b90915550610f2292505050565b505b6001600160a01b03848116600090815260986020526040908190205490516362483a2160e11b815285831660048201526024810185905291169063c490744290604401600060405180830381600087803b158015610f0857600080fd5b505af1158015610f1c573d6000803e3d6000fd5b50505050505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610f6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9391906126d4565b610faf5760405162461bcd60e51b81526004016107d5906126f6565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610ff6611df7565b6110006000611e51565b565b336000908152609860205260409020546001600160a01b0316156110845760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b60648201526084016107d5565b6107e7611ea3565b336000908152609860205260409020546001600160a01b0316806110b5576110b2611ea3565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e46349034906110eb908a908a908a908a908a9060040161279b565b6000604051808303818588803b15801561110457600080fd5b505af1158015611118573d6000803e3d6000fd5b5050505050505050505050565b6001600160a01b03808216600090815260986020526040812054909116806109ef576111f0836001600160a01b031660001b60405180610940016040528061090e81526020016128c561090e9139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091526000606082015260800160408051601f19818403018152908290526111d59291602001612810565b604051602081830303815290604052805190602001206120d7565b9392505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461123f5760405162461bcd60e51b81526004016107d5906125f5565b6001600160a01b0382166112bb5760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20706f60448201527f644f776e65722063616e6e6f74206265207a65726f206164647265737300000060648201526084016107d5565b60008112156113325760405162461bcd60e51b815260206004820152603760248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f6172657320616d6f756e74206973206e6567617469766500000000000000000060648201526084016107d5565b611340633b9aca0082612669565b156113b5576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f61726573206d75737420626520612077686f6c65204777656920616d6f756e7460648201526084016107d5565b6001600160a01b0382166000908152609b60205260408120546113d9908390612825565b9050600081121561146a5760405162461bcd60e51b815260206004820152604f60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20636160448201527f6e6e6f7420726573756c7420696e20706f64206f776e657220686176696e672060648201526e6e656761746976652073686172657360881b608482015260a4016107d5565b6001600160a01b039092166000908152609b602052604090209190915550565b611492611df7565b6107e781612133565b6001600160a01b0380831660009081526098602052604090205483911633146115165760405162461bcd60e51b815260206004820152602760248201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6044820152661d0818481c1bd960ca1b60648201526084016107d5565b600260c95414156115695760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107d5565b600260c9556001600160a01b0383166116055760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a20706f644f776e65722063616e6e6064820152716f74206265207a65726f206164647265737360701b608482015260a4016107d5565b611613633b9aca0083612864565b156116ac5760405162461bcd60e51b815260206004820152605a60248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a2073686172657344656c7461206d60648201527f75737420626520612077686f6c65204777656920616d6f756e74000000000000608482015260a4016107d5565b6001600160a01b0383166000908152609b6020526040812054906116d08483612693565b6001600160a01b0386166000908152609b602052604081208290559091506116f88383611cbe565b905080156118605760008112156117c3576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663132d49678773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06117578561273e565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b1580156117a657600080fd5b505af11580156117ba573d6000803e3d6000fd5b50505050611860565b604051631452b9d760e11b81526001600160a01b03878116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000000000000000000000000000000000000000000016906328a573ae90606401600060405180830381600087803b15801561184757600080fd5b505af115801561185b573d6000803e3d6000fd5b505050505b5050600160c95550505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa1580156118c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e89190612878565b9050806109ef5760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a4016107d5565b600054610100900460ff16158080156119985750600054600160ff909116105b806119b25750303b1580156119b2575060005460ff166001145b611a155760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016107d5565b6000805460ff191660011790558015611a38576000805461ff0019166101001790555b611a4186611c7d565b611a4a85612133565b611a5384611e51565b611a5d838361217d565b8015611aa3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b611ab3611df7565b6001600160a01b038116611b185760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107d5565b6107e781611e51565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b98919061258e565b6001600160a01b0316336001600160a01b031614611bc85760405162461bcd60e51b81526004016107d5906125ab565b606654198119606654191614611c465760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c697479000000000000000060648201526084016107d5565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610bd9565b609a5460408051918252602082018390527f4e65c41a3597bda732ca64980235cf51494171d5853998763fb05db45afaacb3910160405180910390a1609a55565b6000808313611cde5760008213611cd7575060006109ef565b50806109ef565b60008213611cf657611cef8361273e565b90506109ef565b611cef8383612825565b6001600160a01b038116611d8e5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a4016107d5565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146110005760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107d5565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b606654600090819060019081161415611efe5760405162461bcd60e51b815260206004820152601960248201527f5061757361626c653a20696e646578206973207061757365640000000000000060448201526064016107d5565b609a54609954611f0f906001612891565b1115611f735760405162461bcd60e51b815260206004820152602d60248201527f456967656e506f644d616e616765722e5f6465706c6f79506f643a20706f642060448201526c1b1a5b5a5d081c995858da1959609a1b60648201526084016107d5565b609960008154611f82906128a9565b9091555060408051610940810190915261090e80825260009161202191839133916128c56020830139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091526000606082015260800160408051601f198184030181529082905261200d9291602001612810565b604051602081830303815290604052612267565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b15801561206557600080fd5b505af1158015612079573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a391505090565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000906111f0565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6065546001600160a01b031615801561219e57506001600160a01b03821615155b6122205760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a4016107d5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261226382611d00565b5050565b600080844710156122ba5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e636500000060448201526064016107d5565b82516123085760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f60448201526064016107d5565b8383516020850187f590506001600160a01b0381166123695760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f790000000000000060448201526064016107d5565b949350505050565b60006020828403121561238357600080fd5b5035919050565b6001600160a01b03811681146107e757600080fd5b600080604083850312156123b257600080fd5b82356123bd8161238a565b946020939093013593505050565b6000602082840312156123dd57600080fd5b81356111f08161238a565b6000806000606084860312156123fd57600080fd5b83356124088161238a565b925060208401356124188161238a565b929592945050506040919091013590565b60006020828403121561243b57600080fd5b813560ff811681146111f057600080fd5b60008083601f84011261245e57600080fd5b50813567ffffffffffffffff81111561247657600080fd5b60208301915083602082850101111561248e57600080fd5b9250929050565b6000806000806000606086880312156124ad57600080fd5b853567ffffffffffffffff808211156124c557600080fd5b6124d189838a0161244c565b909750955060208801359150808211156124ea57600080fd5b506124f78882890161244c565b96999598509660400135949350505050565b60006020828403121561251b57600080fd5b813567ffffffffffffffff811681146111f057600080fd5b600080600080600060a0868803121561254b57600080fd5b85359450602086013561255d8161238a565b9350604086013561256d8161238a565b9250606086013561257d8161238a565b949793965091946080013592915050565b6000602082840312156125a057600080fd5b81516111f08161238a565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b602080825260409082018190527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60008261267857612678612653565b500690565b634e487b7160e01b600052601160045260246000fd5b600080821280156001600160ff1b03849003851316156126b5576126b561267d565b600160ff1b83900384128116156126ce576126ce61267d565b50500190565b6000602082840312156126e657600080fd5b815180151581146111f057600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000600160ff1b8214156127545761275461267d565b5060000390565b60008282101561276d5761276d61267d565b500390565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006127af606083018789612772565b82810360208401526127c2818688612772565b9150508260408301529695505050505050565b6000815160005b818110156127f657602081850181015186830152016127dc565b81811115612805576000828601525b509290920192915050565b600061236961281f83866127d5565b846127d5565b60008083128015600160ff1b8501841216156128435761284361267d565b6001600160ff1b038401831381161561285e5761285e61267d565b50500390565b60008261287357612873612653565b500790565b60006020828403121561288a57600080fd5b5051919050565b600082198211156128a4576128a461267d565b500190565b60006000198214156128bd576128bd61267d565b506001019056fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564456967656e506f644d616e616765722e77697468647261775368617265734173a2646970667358221220d8601711a30a8d783fb19d6750bac22ed3548599e72dee50776fcd5d6b9d106464736f6c634300080c0033", + ABI: "[{\"inputs\":[{\"internalType\":\"contractIETHPOSDeposit\",\"name\":\"_ethPOS\",\"type\":\"address\"},{\"internalType\":\"contractIBeacon\",\"name\":\"_eigenPodBeacon\",\"type\":\"address\"},{\"internalType\":\"contractIStrategyManager\",\"name\":\"_strategyManager\",\"type\":\"address\"},{\"internalType\":\"contractISlasher\",\"name\":\"_slasher\",\"type\":\"address\"},{\"internalType\":\"contractIDelegationManager\",\"name\":\"_delegationManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"BeaconChainETHDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"nonce\",\"type\":\"uint96\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"delegatedAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"withdrawalRoot\",\"type\":\"bytes32\"}],\"name\":\"BeaconChainETHWithdrawalCompleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOracleAddress\",\"type\":\"address\"}],\"name\":\"BeaconOracleUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousValue\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newValue\",\"type\":\"uint256\"}],\"name\":\"MaxPodsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contractIPauserRegistry\",\"name\":\"pauserRegistry\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contractIPauserRegistry\",\"name\":\"newPauserRegistry\",\"type\":\"address\"}],\"name\":\"PauserRegistrySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"eigenPod\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"}],\"name\":\"PodDeployed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"addShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"beaconChainETHStrategy\",\"outputs\":[{\"internalType\":\"contractIStrategy\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"beaconChainOracle\",\"outputs\":[{\"internalType\":\"contractIBeaconChainOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"createPod\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegationManager\",\"outputs\":[{\"internalType\":\"contractIDelegationManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eigenPodBeacon\",\"outputs\":[{\"internalType\":\"contractIBeacon\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ethPOS\",\"outputs\":[{\"internalType\":\"contractIETHPOSDeposit\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"}],\"name\":\"getBlockRootAtTimestamp\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"}],\"name\":\"getPod\",\"outputs\":[{\"internalType\":\"contractIEigenPod\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"}],\"name\":\"hasPod\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxPods\",\"type\":\"uint256\"},{\"internalType\":\"contractIBeaconChainOracle\",\"name\":\"_beaconChainOracle\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"},{\"internalType\":\"contractIPauserRegistry\",\"name\":\"_pauserRegistry\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_initPausedStatus\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxPods\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"numPods\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"ownerToPod\",\"outputs\":[{\"internalType\":\"contractIEigenPod\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauserRegistry\",\"outputs\":[{\"internalType\":\"contractIPauserRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"podOwnerShares\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"},{\"internalType\":\"int256\",\"name\":\"sharesDelta\",\"type\":\"int256\"}],\"name\":\"recordBeaconChainETHBalanceUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"removeShares\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newMaxPods\",\"type\":\"uint256\"}],\"name\":\"setMaxPods\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIPauserRegistry\",\"name\":\"newPauserRegistry\",\"type\":\"address\"}],\"name\":\"setPauserRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"internalType\":\"contractISlasher\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"pubkey\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"depositDataRoot\",\"type\":\"bytes32\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"strategyManager\",\"outputs\":[{\"internalType\":\"contractIStrategyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBeaconChainOracle\",\"name\":\"newBeaconChainOracle\",\"type\":\"address\"}],\"name\":\"updateBeaconChainOracle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"podOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"withdrawSharesAsTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x6101206040523480156200001257600080fd5b506040516200337c3803806200337c83398101604081905262000035916200014b565b6001600160a01b0380861660805280851660a05280841660c05280831660e0528116610100526200006562000070565b5050505050620001cb565b600054610100900460ff1615620000dd5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000130576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200014857600080fd5b50565b600080600080600060a086880312156200016457600080fd5b8551620001718162000132565b6020870151909550620001848162000132565b6040870151909450620001978162000132565b6060870151909350620001aa8162000132565b6080870151909250620001bd8162000132565b809150509295509295909350565b60805160a05160c05160e0516101005161313b620002416000396000818161061e0152818161078401528181610b7c01528181611191015281816116260152611716015260006105140152600061030601526000818161029a015281816111100152611ecc015260006103e6015261313b6000f3fe6080604052600436106101ee5760003560e01c80639104c3191161010d578063c0ccbf10116100a0578063daf12cd41161006f578063daf12cd4146105ec578063ea4d3c9b1461060c578063f2fde38b14610640578063f6848d2414610660578063fabc1cbc1461069b57600080fd5b8063c0ccbf1014610576578063c1de3aef1461058c578063c2c51c40146105ac578063d1c64cc9146105cc57600080fd5b8063a6a509be116100dc578063a6a509be146104ec578063b134427114610502578063beffbb8914610536578063c052bd611461055657600080fd5b80639104c3191461045b5780639b4e4634146104835780639ba0627514610496578063a38406a3146104cc57600080fd5b80635ac86ab71161018557806374cdd7981161015457806374cdd798146103d457806384d8106214610408578063886f11951461041d5780638da5cb5b1461043d57600080fd5b80635ac86ab71461033d5780635c975abb1461037d57806360f4062b14610392578063715018a6146103bf57600080fd5b8063292b7b2b116101c1578063292b7b2b14610288578063387b1300146102d457806339b70e38146102f4578063595c6a671461032857600080fd5b80630cf2686d146101f35780630e81073c1461021557806310d67a2f14610248578063136439dd14610268575b600080fd5b3480156101ff57600080fd5b5061021361020e366004612284565b6106bb565b005b34801561022157600080fd5b506102356102303660046122b2565b610777565b6040519081526020015b60405180910390f35b34801561025457600080fd5b506102136102633660046122de565b610982565b34801561027457600080fd5b50610213610283366004612284565b610a32565b34801561029457600080fd5b506102bc7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161023f565b3480156102e057600080fd5b506102136102ef3660046122fb565b610b71565b34801561030057600080fd5b506102bc7f000000000000000000000000000000000000000000000000000000000000000081565b34801561033457600080fd5b50610213610eb4565b34801561034957600080fd5b5061036d61035836600461233c565b606654600160ff9092169190911b9081161490565b604051901515815260200161023f565b34801561038957600080fd5b50606654610235565b34801561039e57600080fd5b506102356103ad3660046122de565b609b6020526000908152604090205481565b3480156103cb57600080fd5b50610213610f7b565b3480156103e057600080fd5b506102bc7f000000000000000000000000000000000000000000000000000000000000000081565b34801561041457600080fd5b506102bc610f8f565b34801561042957600080fd5b506065546102bc906001600160a01b031681565b34801561044957600080fd5b506033546001600160a01b03166102bc565b34801561046757600080fd5b506102bc73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102136104913660046123a8565b61101b565b3480156104a257600080fd5b506102bc6104b13660046122de565b6098602052600090815260409020546001600160a01b031681565b3480156104d857600080fd5b506102bc6104e73660046122de565b6110b4565b3480156104f857600080fd5b5061023560995481565b34801561050e57600080fd5b506102bc7f000000000000000000000000000000000000000000000000000000000000000081565b34801561054257600080fd5b506102136105513660046122b2565b611186565b34801561056257600080fd5b506097546102bc906001600160a01b031681565b34801561058257600080fd5b50610235609a5481565b34801561059857600080fd5b506102136105a73660046122de565b61139d565b3480156105b857600080fd5b506102136105c73660046122b2565b6113ae565b3480156105d857600080fd5b506102356105e736600461241c565b611780565b3480156105f857600080fd5b50610213610607366004612446565b61188b565b34801561061857600080fd5b506102bc7f000000000000000000000000000000000000000000000000000000000000000081565b34801561064c57600080fd5b5061021361065b3660046122de565b6119be565b34801561066c57600080fd5b5061036d61067b3660046122de565b6001600160a01b0390811660009081526098602052604090205416151590565b3480156106a757600080fd5b506102136106b6366004612284565b611a34565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561070e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073291906124a1565b6001600160a01b0316336001600160a01b03161461076b5760405162461bcd60e51b8152600401610762906124be565b60405180910390fd5b61077481611b90565b50565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107c15760405162461bcd60e51b815260040161076290612508565b6001600160a01b03831661083d5760405162461bcd60e51b815260206004820152603a60248201527f456967656e506f644d616e616765722e6164645368617265733a20706f644f7760448201527f6e65722063616e6e6f74206265207a65726f20616464726573730000000000006064820152608401610762565b60008212156108ab5760405162461bcd60e51b815260206004820152603460248201527f456967656e506f644d616e616765722e6164645368617265733a207368617265604482015273732063616e6e6f74206265206e6567617469766560601b6064820152608401610762565b6108b9633b9aca008361257c565b1561092c5760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e6164645368617265733a20736861726560448201527f73206d75737420626520612077686f6c65204777656920616d6f756e740000006064820152608401610762565b6001600160a01b0383166000908152609b60205260408120549061095084836125a6565b6001600160a01b0386166000908152609b6020526040902081905590506109778282611bd1565b925050505b92915050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f991906124a1565b6001600160a01b0316336001600160a01b031614610a295760405162461bcd60e51b8152600401610762906124be565b61077481611c13565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9e91906125e7565b610aba5760405162461bcd60e51b815260040161076290612609565b60665481811614610b335760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610762565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610bb95760405162461bcd60e51b815260040161076290612508565b6001600160a01b038316610c335760405162461bcd60e51b815260206004820152604760248201526000805160206130e683398151915260448201527f546f6b656e733a20706f644f776e65722063616e6e6f74206265207a65726f206064820152666164647265737360c81b608482015260a401610762565b6001600160a01b038216610cb05760405162461bcd60e51b815260206004820152604a60248201526000805160206130e683398151915260448201527f546f6b656e733a2064657374696e6174696f6e2063616e6e6f74206265207a65606482015269726f206164647265737360b01b608482015260a401610762565b6000811215610d1f5760405162461bcd60e51b815260206004820152604160248201526000805160206130e683398151915260448201527f546f6b656e733a207368617265732063616e6e6f74206265206e6567617469766064820152606560f81b608482015260a401610762565b610d2d633b9aca008261257c565b15610da15760405162461bcd60e51b815260206004820152604a60248201526000805160206130e683398151915260448201527f546f6b656e733a20736861726573206d75737420626520612077686f6c6520476064820152691dd95a48185b5bdd5b9d60b21b608482015260a401610762565b6001600160a01b0383166000908152609b602052604081205490811215610e38576000610dcd82612651565b905080831115610e01576001600160a01b0385166000908152609b6020526040812055610dfa818461266e565b9250610e36565b6001600160a01b0385166000908152609b602052604081208054859290610e299084906125a6565b90915550610eaf92505050565b505b6001600160a01b03848116600090815260986020526040908190205490516362483a2160e11b815285831660048201526024810185905291169063c490744290604401600060405180830381600087803b158015610e9557600080fd5b505af1158015610ea9573d6000803e3d6000fd5b50505050505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610efc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2091906125e7565b610f3c5760405162461bcd60e51b815260040161076290612609565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610f83611d0a565b610f8d6000611d64565b565b336000908152609860205260408120546001600160a01b0316156110115760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b6064820152608401610762565b600061097c611db6565b336000908152609860205260409020546001600160a01b03168061104457611041611db6565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e463490349061107a908a908a908a908a908a906004016126ae565b6000604051808303818588803b15801561109357600080fd5b505af11580156110a7573d6000803e3d6000fd5b5050505050505050505050565b6001600160a01b038082166000908152609860205260408120549091168061097c5761117f836001600160a01b031660001b60405180610940016040528061090e81526020016127d861090e9139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091526000606082015260800160408051601f19818403018152908290526111649291602001612723565b60405160208183030381529060405280519060200120611fea565b9392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146111ce5760405162461bcd60e51b815260040161076290612508565b60008112156112455760405162461bcd60e51b815260206004820152603760248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f617265732063616e6e6f74206265206e656761746976650000000000000000006064820152608401610762565b611253633b9aca008261257c565b156112c8576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f61726573206d75737420626520612077686f6c65204777656920616d6f756e746064820152608401610762565b6001600160a01b0382166000908152609b60205260408120546112ec908390612738565b9050600081121561137d5760405162461bcd60e51b815260206004820152604f60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20636160448201527f6e6e6f7420726573756c7420696e20706f64206f776e657220686176696e672060648201526e6e656761746976652073686172657360881b608482015260a401610762565b6001600160a01b039092166000908152609b602052604090209190915550565b6113a5611d0a565b61077481612046565b6001600160a01b0380831660009081526098602052604090205483911633146114295760405162461bcd60e51b815260206004820152602760248201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6044820152661d0818481c1bd960ca1b6064820152608401610762565b600260c954141561147c5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610762565b600260c9556001600160a01b0383166115185760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a20706f644f776e65722063616e6e6064820152716f74206265207a65726f206164647265737360701b608482015260a401610762565b611526633b9aca0083612777565b156115bf5760405162461bcd60e51b815260206004820152605a60248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a2073686172657344656c7461206d60648201527f75737420626520612077686f6c65204777656920616d6f756e74000000000000608482015260a401610762565b6001600160a01b0383166000908152609b6020526040812054906115e384836125a6565b6001600160a01b0386166000908152609b6020526040812082905590915061160b8383611bd1565b905080156117735760008112156116d6576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663132d49678773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac061166a85612651565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b1580156116b957600080fd5b505af11580156116cd573d6000803e3d6000fd5b50505050611773565b604051631452b9d760e11b81526001600160a01b03878116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000000000000000000000000000000000000000000016906328a573ae90606401600060405180830381600087803b15801561175a57600080fd5b505af115801561176e573d6000803e3d6000fd5b505050505b5050600160c95550505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa1580156117d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117fb919061278b565b90508061097c5760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a401610762565b600054610100900460ff16158080156118ab5750600054600160ff909116105b806118c55750303b1580156118c5575060005460ff166001145b6119285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610762565b6000805460ff19166001179055801561194b576000805461ff0019166101001790555b61195486611b90565b61195d85612046565b61196684611d64565b6119708383612090565b80156119b6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b6119c6611d0a565b6001600160a01b038116611a2b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610762565b61077481611d64565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aab91906124a1565b6001600160a01b0316336001600160a01b031614611adb5760405162461bcd60e51b8152600401610762906124be565b606654198119606654191614611b595760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610762565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610b66565b609a5460408051918252602082018390527f4e65c41a3597bda732ca64980235cf51494171d5853998763fb05db45afaacb3910160405180910390a1609a55565b6000808313611bf15760008213611bea5750600061097c565b508061097c565b60008213611c0957611c0283612651565b905061097c565b611c028383612738565b6001600160a01b038116611ca15760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610762565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314610f8d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610762565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b606654600090819060019081161415611e115760405162461bcd60e51b815260206004820152601960248201527f5061757361626c653a20696e64657820697320706175736564000000000000006044820152606401610762565b609a54609954611e229060016127a4565b1115611e865760405162461bcd60e51b815260206004820152602d60248201527f456967656e506f644d616e616765722e5f6465706c6f79506f643a20706f642060448201526c1b1a5b5a5d081c995858da1959609a1b6064820152608401610762565b609960008154611e95906127bc565b9091555060408051610940810190915261090e808252600091611f3491839133916127d86020830139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091526000606082015260800160408051601f1981840301815290829052611f209291602001612723565b60405160208183030381529060405261217a565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b158015611f7857600080fd5b505af1158015611f8c573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a391505090565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b166021830152603582018590526055808301859052835180840390910181526075909201909252805191012060009061117f565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6065546001600160a01b03161580156120b157506001600160a01b03821615155b6121335760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610762565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261217682611c13565b5050565b600080844710156121cd5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e63650000006044820152606401610762565b825161221b5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f6044820152606401610762565b8383516020850187f590506001600160a01b03811661227c5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f79000000000000006044820152606401610762565b949350505050565b60006020828403121561229657600080fd5b5035919050565b6001600160a01b038116811461077457600080fd5b600080604083850312156122c557600080fd5b82356122d08161229d565b946020939093013593505050565b6000602082840312156122f057600080fd5b813561117f8161229d565b60008060006060848603121561231057600080fd5b833561231b8161229d565b9250602084013561232b8161229d565b929592945050506040919091013590565b60006020828403121561234e57600080fd5b813560ff8116811461117f57600080fd5b60008083601f84011261237157600080fd5b50813567ffffffffffffffff81111561238957600080fd5b6020830191508360208285010111156123a157600080fd5b9250929050565b6000806000806000606086880312156123c057600080fd5b853567ffffffffffffffff808211156123d857600080fd5b6123e489838a0161235f565b909750955060208801359150808211156123fd57600080fd5b5061240a8882890161235f565b96999598509660400135949350505050565b60006020828403121561242e57600080fd5b813567ffffffffffffffff8116811461117f57600080fd5b600080600080600060a0868803121561245e57600080fd5b8535945060208601356124708161229d565b935060408601356124808161229d565b925060608601356124908161229d565b949793965091946080013592915050565b6000602082840312156124b357600080fd5b815161117f8161229d565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b602080825260409082018190527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60008261258b5761258b612566565b500690565b634e487b7160e01b600052601160045260246000fd5b600080821280156001600160ff1b03849003851316156125c8576125c8612590565b600160ff1b83900384128116156125e1576125e1612590565b50500190565b6000602082840312156125f957600080fd5b8151801515811461117f57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000600160ff1b82141561266757612667612590565b5060000390565b60008282101561268057612680612590565b500390565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006126c2606083018789612685565b82810360208401526126d5818688612685565b9150508260408301529695505050505050565b6000815160005b8181101561270957602081850181015186830152016126ef565b81811115612718576000828601525b509290920192915050565b600061227c61273283866126e8565b846126e8565b60008083128015600160ff1b85018412161561275657612756612590565b6001600160ff1b038401831381161561277157612771612590565b50500390565b60008261278657612786612566565b500790565b60006020828403121561279d57600080fd5b5051919050565b600082198211156127b7576127b7612590565b500190565b60006000198214156127d0576127d0612590565b506001019056fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564456967656e506f644d616e616765722e77697468647261775368617265734173a264697066735822122067d55226c4bd7f02eaade488b04b5389ad639aa22102c19306354772b989189c64736f6c634300080c0033", } // ContractEigenPodManagerABI is the input ABI used to generate the binding from. @@ -264,37 +264,6 @@ func (_ContractEigenPodManager *ContractEigenPodManagerCallerSession) BeaconChai return _ContractEigenPodManager.Contract.BeaconChainOracle(&_ContractEigenPodManager.CallOpts) } -// CumulativeWithdrawalsQueued is a free data retrieval call binding the contract method 0xa1788484. -// -// Solidity: function cumulativeWithdrawalsQueued(address ) view returns(uint256) -func (_ContractEigenPodManager *ContractEigenPodManagerCaller) CumulativeWithdrawalsQueued(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) { - var out []interface{} - err := _ContractEigenPodManager.contract.Call(opts, &out, "cumulativeWithdrawalsQueued", arg0) - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// CumulativeWithdrawalsQueued is a free data retrieval call binding the contract method 0xa1788484. -// -// Solidity: function cumulativeWithdrawalsQueued(address ) view returns(uint256) -func (_ContractEigenPodManager *ContractEigenPodManagerSession) CumulativeWithdrawalsQueued(arg0 common.Address) (*big.Int, error) { - return _ContractEigenPodManager.Contract.CumulativeWithdrawalsQueued(&_ContractEigenPodManager.CallOpts, arg0) -} - -// CumulativeWithdrawalsQueued is a free data retrieval call binding the contract method 0xa1788484. -// -// Solidity: function cumulativeWithdrawalsQueued(address ) view returns(uint256) -func (_ContractEigenPodManager *ContractEigenPodManagerCallerSession) CumulativeWithdrawalsQueued(arg0 common.Address) (*big.Int, error) { - return _ContractEigenPodManager.Contract.CumulativeWithdrawalsQueued(&_ContractEigenPodManager.CallOpts, arg0) -} - // DelegationManager is a free data retrieval call binding the contract method 0xea4d3c9b. // // Solidity: function delegationManager() view returns(address) @@ -791,37 +760,6 @@ func (_ContractEigenPodManager *ContractEigenPodManagerCallerSession) StrategyMa return _ContractEigenPodManager.Contract.StrategyManager(&_ContractEigenPodManager.CallOpts) } -// WithdrawalRootPending is a free data retrieval call binding the contract method 0xc3c6b3a9. -// -// Solidity: function withdrawalRootPending(bytes32 ) view returns(bool) -func (_ContractEigenPodManager *ContractEigenPodManagerCaller) WithdrawalRootPending(opts *bind.CallOpts, arg0 [32]byte) (bool, error) { - var out []interface{} - err := _ContractEigenPodManager.contract.Call(opts, &out, "withdrawalRootPending", arg0) - - if err != nil { - return *new(bool), err - } - - out0 := *abi.ConvertType(out[0], new(bool)).(*bool) - - return out0, err - -} - -// WithdrawalRootPending is a free data retrieval call binding the contract method 0xc3c6b3a9. -// -// Solidity: function withdrawalRootPending(bytes32 ) view returns(bool) -func (_ContractEigenPodManager *ContractEigenPodManagerSession) WithdrawalRootPending(arg0 [32]byte) (bool, error) { - return _ContractEigenPodManager.Contract.WithdrawalRootPending(&_ContractEigenPodManager.CallOpts, arg0) -} - -// WithdrawalRootPending is a free data retrieval call binding the contract method 0xc3c6b3a9. -// -// Solidity: function withdrawalRootPending(bytes32 ) view returns(bool) -func (_ContractEigenPodManager *ContractEigenPodManagerCallerSession) WithdrawalRootPending(arg0 [32]byte) (bool, error) { - return _ContractEigenPodManager.Contract.WithdrawalRootPending(&_ContractEigenPodManager.CallOpts, arg0) -} - // AddShares is a paid mutator transaction binding the contract method 0x0e81073c. // // Solidity: function addShares(address podOwner, uint256 shares) returns(uint256) @@ -845,21 +783,21 @@ func (_ContractEigenPodManager *ContractEigenPodManagerTransactorSession) AddSha // CreatePod is a paid mutator transaction binding the contract method 0x84d81062. // -// Solidity: function createPod() returns() +// Solidity: function createPod() returns(address) func (_ContractEigenPodManager *ContractEigenPodManagerTransactor) CreatePod(opts *bind.TransactOpts) (*types.Transaction, error) { return _ContractEigenPodManager.contract.Transact(opts, "createPod") } // CreatePod is a paid mutator transaction binding the contract method 0x84d81062. // -// Solidity: function createPod() returns() +// Solidity: function createPod() returns(address) func (_ContractEigenPodManager *ContractEigenPodManagerSession) CreatePod() (*types.Transaction, error) { return _ContractEigenPodManager.Contract.CreatePod(&_ContractEigenPodManager.TransactOpts) } // CreatePod is a paid mutator transaction binding the contract method 0x84d81062. // -// Solidity: function createPod() returns() +// Solidity: function createPod() returns(address) func (_ContractEigenPodManager *ContractEigenPodManagerTransactorSession) CreatePod() (*types.Transaction, error) { return _ContractEigenPodManager.Contract.CreatePod(&_ContractEigenPodManager.TransactOpts) } diff --git a/contracts/bindings/Slasher/binding.go b/contracts/bindings/Slasher/binding.go index 58034863..ef73aa24 100644 --- a/contracts/bindings/Slasher/binding.go +++ b/contracts/bindings/Slasher/binding.go @@ -45,7 +45,7 @@ type ISlasherMiddlewareTimes struct { // ContractSlasherMetaData contains all meta data concerning the ContractSlasher contract. var ContractSlasherMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"contractIStrategyManager\",\"name\":\"_strategyManager\",\"type\":\"address\"},{\"internalType\":\"contractIDelegationManager\",\"name\":\"_delegation\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previouslySlashedAddress\",\"type\":\"address\"}],\"name\":\"FrozenStatusReset\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"stalestUpdateBlock\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"latestServeUntilBlock\",\"type\":\"uint32\"}],\"name\":\"MiddlewareTimesAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"slashedOperator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"slashingContract\",\"type\":\"address\"}],\"name\":\"OperatorFrozen\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"OptedIntoSlashing\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contractIPauserRegistry\",\"name\":\"pauserRegistry\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contractIPauserRegistry\",\"name\":\"newPauserRegistry\",\"type\":\"address\"}],\"name\":\"PauserRegistrySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"contractCanSlashOperatorUntilBlock\",\"type\":\"uint32\"}],\"name\":\"SlashingAbilityRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"toBeSlashed\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slashingContract\",\"type\":\"address\"}],\"name\":\"canSlash\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"withdrawalStartBlock\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"middlewareTimesIndex\",\"type\":\"uint256\"}],\"name\":\"canWithdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"serviceContract\",\"type\":\"address\"}],\"name\":\"contractCanSlashOperatorUntilBlock\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegation\",\"outputs\":[{\"internalType\":\"contractIDelegationManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"toBeFrozen\",\"type\":\"address\"}],\"name\":\"freezeOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"updateBlock\",\"type\":\"uint32\"}],\"name\":\"getCorrectValueForInsertAfter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"getMiddlewareTimesIndexServeUntilBlock\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"getMiddlewareTimesIndexStalestUpdateBlock\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"node\",\"type\":\"uint256\"}],\"name\":\"getPreviousWhitelistedContractByUpdate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"},{\"internalType\":\"contractIPauserRegistry\",\"name\":\"_pauserRegistry\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"initialPausedStatus\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"isFrozen\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"serviceContract\",\"type\":\"address\"}],\"name\":\"latestUpdateBlock\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"middlewareTimesLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"arrayIndex\",\"type\":\"uint256\"}],\"name\":\"operatorToMiddlewareTimes\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"stalestUpdateBlock\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"latestServeUntilBlock\",\"type\":\"uint32\"}],\"internalType\":\"structISlasher.MiddlewareTimes\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"node\",\"type\":\"address\"}],\"name\":\"operatorWhitelistedContractsLinkedListEntry\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"operatorWhitelistedContractsLinkedListSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"optIntoSlashing\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauserRegistry\",\"outputs\":[{\"internalType\":\"contractIPauserRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"serveUntilBlock\",\"type\":\"uint32\"}],\"name\":\"recordFirstStakeUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"serveUntilBlock\",\"type\":\"uint32\"}],\"name\":\"recordLastStakeUpdateAndRevokeSlashingAbility\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"updateBlock\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"serveUntilBlock\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"insertAfter\",\"type\":\"uint256\"}],\"name\":\"recordStakeUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"frozenAddresses\",\"type\":\"address[]\"}],\"name\":\"resetFrozenStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIPauserRegistry\",\"name\":\"newPauserRegistry\",\"type\":\"address\"}],\"name\":\"setPauserRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"strategyManager\",\"outputs\":[{\"internalType\":\"contractIStrategyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"serviceContract\",\"type\":\"address\"}],\"name\":\"whitelistedContractDetails\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"registrationMayBeginAtBlock\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"contractCanSlashOperatorUntilBlock\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"latestUpdateBlock\",\"type\":\"uint32\"}],\"internalType\":\"structISlasher.MiddlewareDetails\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x60c06040523480156200001157600080fd5b5060405162002cd738038062002cd7833981016040819052620000349162000134565b6001600160a01b03808316608052811660a0526200005162000059565b505062000173565b600054610100900460ff1615620000c65760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000119576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200013157600080fd5b50565b600080604083850312156200014857600080fd5b825162000155816200011b565b602084015190925062000168816200011b565b809150509250929050565b60805160a051612b29620001ae600039600081816105c8015281816114990152818161152b015261167b015260006103070152612b296000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c80637259a45c1161011a578063d7b7fa13116100ad578063e58398361161007c578063e5839836146105ea578063e921d4fa146105fd578063f2fde38b14610626578063f73b751914610639578063fabc1cbc1461064c57600080fd5b8063d7b7fa13146104b8578063d98128c01461056a578063da16e29b1461057d578063df5cf723146105c357600080fd5b8063886f1195116100e9578063886f1195146104585780638da5cb5b1461046b578063a49db7321461047c578063c747075b146104a557600080fd5b80637259a45c146103ef5780637cf72bba146104025780638105e04314610415578063855fcc4a1461042857600080fd5b806338c8ee64116101925780635c975abb116101615780635c975abb1461037c5780636f0c2f741461038e578063715018a6146103d4578063723e59c7146103dc57600080fd5b806338c8ee64146102ef57806339b70e3814610302578063595c6a67146103415780635ac86ab71461034957600080fd5b80631794bb3c116101ce5780631794bb3c1461024e5780631874e5ae14610261578063282670fc1461028e57806335571676146102c557600080fd5b80630ffabbce1461020057806310d67a2f14610215578063136439dd14610228578063175d32051461023b575b600080fd5b61021361020e3660046126e6565b61065f565b005b61021361022336600461271b565b61078f565b610213610236366004612738565b610842565b6102136102493660046126e6565b610981565b61021361025c366004612751565b610aab565b61027461026f3660046126e6565b610bc9565b60405163ffffffff90911681526020015b60405180910390f35b6102a161029c366004612792565b610c14565b60408051825163ffffffff9081168252602093840151169281019290925201610285565b6102d86102d3366004612792565b610c8b565b604080519215158352602083019190915201610285565b6102136102fd36600461271b565b610cba565b6103297f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610285565b610213610d88565b61036c6103573660046127be565b606654600160ff9092169190911b9081161490565b6040519015158152602001610285565b6066545b604051908152602001610285565b61027461039c3660046127e1565b6001600160a01b039182166000908152609760209081526040808320939094168252919091522054600160201b900463ffffffff1690565b610213610e4f565b6103806103ea3660046126e6565b610e63565b6102746103fd3660046126e6565b610f73565b61021361041036600461281a565b610fc3565b61036c61042336600461288f565b61100d565b61043b6104363660046127e1565b61116f565b604080519315158452602084019290925290820152606001610285565b606554610329906001600160a01b031681565b6033546001600160a01b0316610329565b61038061048a36600461271b565b6001600160a01b03166000908152609a602052604090205490565b6102136104b33660046128cd565b6111b2565b61053b6104c63660046127e1565b6040805160608082018352600080835260208084018290529284018190526001600160a01b0395861681526097835283812094909516855292815292819020815192830182525463ffffffff8082168452600160201b8204811694840194909452600160401b90049092169181019190915290565b60408051825163ffffffff90811682526020808501518216908301529282015190921690820152606001610285565b61036c6105783660046127e1565b611405565b61027461058b3660046127e1565b6001600160a01b039182166000908152609760209081526040808320939094168252919091522054600160401b900463ffffffff1690565b6103297f000000000000000000000000000000000000000000000000000000000000000081565b61036c6105f836600461271b565b611451565b61038061060b36600461271b565b6001600160a01b031660009081526099602052604090205490565b61021361063436600461271b565b6115c7565b61021361064736600461271b565b61163d565b61021361065a366004612738565b61176c565b6001600160a01b03821660009081526097602090815260408083203384529091529020548290600160201b900463ffffffff908116146106ba5760405162461bcd60e51b81526004016106b19061291a565b60405180910390fd5b6106c58343846118c8565b6106e7336001600160a01b038516600090815260996020526040902090611c5e565b61077f5760405162461bcd60e51b815260206004820152605760248201527f536c61736865722e7265636f72644c6173745374616b65557064617465416e6460448201527f5265766f6b65536c617368696e674162696c6974793a2052656d6f76696e672060648201527f6d6964646c657761726520756e7375636365737366756c000000000000000000608482015260a4016106b1565b61078a833384611cf8565b505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108069190612990565b6001600160a01b0316336001600160a01b0316146108365760405162461bcd60e51b81526004016106b1906129ad565b61083f81611e03565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561088a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ae91906129f7565b6108ca5760405162461bcd60e51b81526004016106b190612a19565b606654818116146109435760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c697479000000000000000060648201526084016106b1565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b606654600190600290811614156109aa5760405162461bcd60e51b81526004016106b190612a61565b6001600160a01b03831660009081526097602090815260408083203384529091529020548390600160201b900463ffffffff908116146109fc5760405162461bcd60e51b81526004016106b19061291a565b610a078443856118c8565b610a29336001600160a01b038616600090815260996020526040902090611efa565b610aa55760405162461bcd60e51b815260206004820152604160248201527f536c61736865722e7265636f726446697273745374616b655570646174653a2060448201527f417070656e64696e67206d6964646c657761726520756e7375636365737366756064820152601b60fa1b608482015260a4016106b1565b50505050565b600054610100900460ff1615808015610acb5750600054600160ff909116105b80610ae55750303b158015610ae5575060005460ff166001145b610b485760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106b1565b6000805460ff191660011790558015610b6b576000805461ff0019166101001790555b610b758383611f08565b610b7e84611fee565b8015610aa5576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b6001600160a01b0382166000908152609a60205260408120805463ffffffff8416908110610bf957610bf9612a98565b60009182526020909120015463ffffffff1690505b92915050565b60408051808201909152600080825260208201526001600160a01b0383166000908152609a60205260409020805483908110610c5257610c52612a98565b60009182526020918290206040805180820190915291015463ffffffff8082168352600160201b90910416918101919091529392505050565b6001600160a01b03821660009081526099602052604081208190610caf9084612040565b915091509250929050565b60665460029060049081161415610ce35760405162461bcd60e51b81526004016106b190612a61565b610ced8233611405565b610d7a5760405162461bcd60e51b815260206004820152605260248201527f536c61736865722e667265657a654f70657261746f723a206d73672e73656e6460448201527f657220646f6573206e6f742068617665207065726d697373696f6e20746f20736064820152713630b9b4103a3434b99037b832b930ba37b960711b608482015260a4016106b1565b610d84823361204f565b5050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610dd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df491906129f7565b610e105760405162461bcd60e51b81526004016106b190612a19565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610e576120c1565b610e616000611fee565b565b6001600160a01b038281166000818152609960209081526040808320838052600190810183528184209084528252808320549383526097825280832094841683529390529182205463ffffffff848116600160401b909204161115610ecc576000915050610c0e565b6001600160a01b0384166000908152609960205260408120610eee908361211b565b9150505b8015801590610f3657506001600160a01b0385811660009081526097602090815260408083209386168352929052205463ffffffff858116600160401b9092041611155b15610f6b576001600160a01b03851660009081526099602052604090209091508190610f62908261211b565b9150610ef29050565b509392505050565b6001600160a01b0382166000908152609a60205260408120805463ffffffff8416908110610fa357610fa3612a98565b600091825260209091200154600160201b900463ffffffff169392505050565b610fcb6120c1565b60005b8181101561078a57611005838383818110610feb57610feb612a98565b9050602002016020810190611000919061271b565b61212a565b600101610fce565b6001600160a01b0383166000908152609a602052604081205461103257506001611168565b6001600160a01b0384166000908152609a6020526040812080548490811061105c5761105c612a98565b60009182526020918290206040805180820190915291015463ffffffff808216808452600160201b909204811693830193909352909250908516108015906110ba57506001600160a01b038516600090815260996020526040902054155b15611136576001600160a01b0385166000908152609a6020526040902080546110e590600190612ac4565b815481106110f5576110f5612a98565b60009182526020918290206040805180820190915291015463ffffffff8082168352600160201b909104811691909201819052439091161191506111689050565b806000015163ffffffff168463ffffffff161080156111645750806020015163ffffffff164363ffffffff16115b9150505b9392505050565b6001600160a01b0382166000908152609960205260408120819081906111a49061119f866001600160a01b031690565b612194565b9250925092505b9250925092565b6001600160a01b03841660009081526097602090815260408083203384529091529020548490600160201b900463ffffffff908116146112045760405162461bcd60e51b81526004016106b19061291a565b438463ffffffff16111561128a5760405162461bcd60e51b815260206004820152604160248201527f536c61736865722e7265636f72645374616b655570646174653a2063616e6e6f60448201527f742070726f766964652075706461746520666f722066757475726520626c6f636064820152606b60f81b608482015260a4016106b1565b6112958585856118c8565b6001600160a01b038516600090815260996020526040902054600114611359576112d7336001600160a01b038716600090815260996020526040902090611c5e565b6113495760405162461bcd60e51b815260206004820152603b60248201527f536c61736865722e7265636f72645374616b655570646174653a2052656d6f7660448201527f696e67206d6964646c657761726520756e7375636365737366756c000000000060648201526084016106b1565b6113548585846121e4565b6113fe565b336001600160a01b038616600090815260996020908152604080832083805260019081018352818420908452909152902054146113fe5760405162461bcd60e51b815260206004820152603960248201527f536c61736865722e7265636f72645374616b655570646174653a2043616c6c6560448201527f72206973206e6f7420746865206c69737420656e7472616e740000000000000060648201526084016106b1565b5050505050565b6001600160a01b038281166000908152609760209081526040808320938516835292905290812054600160201b900463ffffffff1643101561144957506001610c0e565b506000610c0e565b6001600160a01b03811660009081526098602052604081205460ff161561147a57506001919050565b604051633e28391d60e01b81526001600160a01b0383811660048301527f00000000000000000000000000000000000000000000000000000000000000001690633e28391d90602401602060405180830381865afa1580156114e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150491906129f7565b156115ba57604051631976849960e21b81526001600160a01b0383811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906365da126490602401602060405180830381865afa158015611574573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115989190612990565b6001600160a01b031660009081526098602052604090205460ff169392505050565b506000919050565b919050565b6115cf6120c1565b6001600160a01b0381166116345760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106b1565b61083f81611fee565b606654600090600190811614156116665760405162461bcd60e51b81526004016106b190612a61565b6040516336b87bd760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636d70f7ae90602401602060405180830381865afa1580156116ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ee91906129f7565b611762576040805162461bcd60e51b81526020600482015260248101919091527f536c61736865722e6f7074496e746f536c617368696e673a206d73672e73656e60448201527f646572206973206e6f7420612072656769737465726564206f70657261746f7260648201526084016106b1565b610d84338361249b565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e39190612990565b6001600160a01b0316336001600160a01b0316146118135760405162461bcd60e51b81526004016106b1906129ad565b6066541981196066541916146118915760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c697479000000000000000060648201526084016106b1565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610976565b6001600160a01b038316600090815260976020908152604080832033845290915290205463ffffffff808416600160401b9092041611156119845760405162461bcd60e51b815260206004820152604a60248201527f536c61736865722e5f7265636f7264557064617465416e64416464546f4d696460448201527f646c657761726554696d65733a2063616e2774207075736820612070726576696064820152696f75732075706461746560b01b608482015260a4016106b1565b6001600160a01b0383166000818152609760209081526040808320338452825280832080546bffffffff00000000000000001916600160401b63ffffffff89160217905580518082018252838152808301849052938352609a9091529020548015611a51576001600160a01b0385166000908152609a60205260409020611a0c600183612ac4565b81548110611a1c57611a1c612a98565b60009182526020918290206040805180820190915291015463ffffffff8082168352600160201b909104169181019190915291505b60008290506000836020015163ffffffff168563ffffffff161115611a80575063ffffffff8416602082015260015b6001600160a01b038716600090815260996020526040902054611aae575063ffffffff851681526001611b83565b336001600160a01b0388166000908152609960209081526040808320838052600190810183528184209084529091529020541415611b8357600080611b0b336001600160a01b038b1660009081526099602052604090209061211b565b915091508115611b72576001600160a01b03898116600090815260976020908152604080832093851683529290522054600160401b900463ffffffff908116908916811015611b625763ffffffff81168552611b6c565b63ffffffff891685525b50611b7c565b63ffffffff881684525b6001925050505b8015611c55576001600160a01b0387166000818152609a6020908152604082208054600181810183558285528385208851920180549489015163ffffffff908116600160201b0267ffffffffffffffff199096169316929092179390931790559290915290547f1b62ba64c72d01e41a2b8c46e6aeeff728ef3a4438cf1cac3d92ee12189d5649918991611c179190612ac4565b8451602080870151604080516001600160a01b0390961686529185019390935263ffffffff9182169084015216606082015260800160405180910390a15b50505050505050565b6000811580611c745750611c728383612506565b155b15611c8157506000610c0e565b600082815260018481016020908152604080842084805290915280832054828452922054611cb3928692909190612582565b60008281526001848101602090815260408084208480529091528083208390558183528220829055845490918591611cec908490612ac4565b90915550919392505050565b63ffffffff8181161415611d825760405162461bcd60e51b8152602060048201526044602482018190527f536c61736865722e5f7265766f6b65536c617368696e674162696c6974793a20908201527f7365727665556e74696c426c6f636b2074696d65206d757374206265206c696d6064820152631a5d195960e21b608482015260a4016106b1565b6001600160a01b03838116600081815260976020908152604080832094871680845294825291829020805467ffffffff000000001916600160201b63ffffffff88169081029190911790915591519182527f9aa1b1391f35c672ed1f3b7ece632f4513e618366bef7a2f67b7c6bc1f2d2b14910160405180910390a3505050565b6001600160a01b038116611e915760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a4016106b1565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611168838360006125b7565b6065546001600160a01b0316158015611f2957506001600160a01b03821615155b611fab5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a4016106b1565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610d8482611e03565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600080610caf848460006125ce565b6001600160a01b03821660009081526098602052604090205460ff16610d84576001600160a01b03808316600081815260986020526040808220805460ff1916600117905551928416927f444a84f512816ae7be8ed8a66aa88e362eb54d0988e83acc9d81746622b3ba519190a35050565b6033546001600160a01b03163314610e615760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106b1565b600080610caf848460016125ce565b6001600160a01b03811660009081526098602052604090205460ff161561083f576001600160a01b038116600081815260986020526040808220805460ff19169055517fd4cef0af27800d466fcacd85779857378b85cb61569005ff1464fa6e5ced69d89190a250565b60008060006121a38585612506565b6121b5575060009150819050806111ab565b5050506000818152600183810160209081526040808420848052909152808320548284529220549091906111ab565b6000811561238e576001600160a01b038416600090815260996020526040902061220e9083612506565b612216575060015b8015801561225857506001600160a01b0384811660009081526097602090815260408083209386168352929052205463ffffffff848116600160401b90920416115b15612261575060015b806122d8576001600160a01b0384166000908152609960205260408120819061228a908561211b565b9150915081156122d5576001600160a01b0386811660009081526097602090815260408083209385168352929052205463ffffffff868116600160401b90920416116122d557600192505b50505b80612377576001600160a01b0384166000908152609960205260409020612300908333612617565b6123725760405162461bcd60e51b815260206004820152603c60248201527f536c61736865722e7265636f72645374616b655570646174653a20496e73657260448201527f74696e67206d6964646c657761726520756e7375636365737366756c0000000060648201526084016106b1565b610aa5565b6123818484610e63565b91506123728484846121e4565b6001600160a01b03848116600090815260976020908152604080832060998352818420848052600190810184528285209085528352818420549094168352929052205463ffffffff848116600160401b90920416116123eb575060015b8061248457612412336001600160a01b038616600090815260996020526040902090612626565b6123725760405162461bcd60e51b815260206004820152603e60248201527f536c61736865722e7265636f72645374616b655570646174653a20507265707060448201527f656e64696e67206d6964646c657761726520756e7375636365737366756c000060648201526084016106b1565b61248e8484610e63565b9150610aa58484846121e4565b6001600160a01b03808316600081815260976020908152604080832094861680845294909152808220805467ffffffff00000000191667ffffffff00000000179055517fefa9fb38e813d53c15edf501e03852843a3fed691960523391d71a092b3627d89190a35050565b6000818152600183016020908152604080832083805290915281205415801561254957506000828152600180850160209081526040808420928452919052902054155b1561257a57600080805260018085016020908152604080842092845291905290205482141561144957506001610c0e565b506001610c0e565b600082815260019094016020818152604080872093158088529382528087208690559486529081528385209115855252912055565b60006125c68460008585612634565b949350505050565b6000806125db8585612506565b6125ea5750600090508061260f565b5050600082815260018401602090815260408083208415158452909152902054801515905b935093915050565b60006125c68484846001612634565b6000611168838360016125b7565b60006126408584612506565b15801561265257506126528585612506565b156126b25760008481526001860160209081526040808320851515845290915290205461268186868686612582565b61268d86858386612582565b60018660000160008282546126a29190612adb565b90915550600192506125c6915050565b506000949350505050565b6001600160a01b038116811461083f57600080fd5b803563ffffffff811681146115c257600080fd5b600080604083850312156126f957600080fd5b8235612704816126bd565b9150612712602084016126d2565b90509250929050565b60006020828403121561272d57600080fd5b8135611168816126bd565b60006020828403121561274a57600080fd5b5035919050565b60008060006060848603121561276657600080fd5b8335612771816126bd565b92506020840135612781816126bd565b929592945050506040919091013590565b600080604083850312156127a557600080fd5b82356127b0816126bd565b946020939093013593505050565b6000602082840312156127d057600080fd5b813560ff8116811461116857600080fd5b600080604083850312156127f457600080fd5b82356127ff816126bd565b9150602083013561280f816126bd565b809150509250929050565b6000806020838503121561282d57600080fd5b823567ffffffffffffffff8082111561284557600080fd5b818501915085601f83011261285957600080fd5b81358181111561286857600080fd5b8660208260051b850101111561287d57600080fd5b60209290920196919550909350505050565b6000806000606084860312156128a457600080fd5b83356128af816126bd565b92506128bd602085016126d2565b9150604084013590509250925092565b600080600080608085870312156128e357600080fd5b84356128ee816126bd565b93506128fc602086016126d2565b925061290a604086016126d2565b9396929550929360600135925050565b60208082526050908201527f536c61736865722e6f6e6c7952656769737465726564466f725365727669636560408201527f3a204f70657261746f7220686173206e6f74206f7074656420696e746f20736c60608201526f30b9b434b73390313c9031b0b63632b960811b608082015260a00190565b6000602082840312156129a257600080fd5b8151611168816126bd565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612a0957600080fd5b8151801515811461116857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082821015612ad657612ad6612aae565b500390565b60008219821115612aee57612aee612aae565b50019056fea2646970667358221220c5efe534d543130a022495783fbd61cd409c461e0ed63e2b662dd8ec88c5716764736f6c634300080c0033", + Bin: "0x60c06040523480156200001157600080fd5b5060405162002cd738038062002cd7833981016040819052620000349162000134565b6001600160a01b03808316608052811660a0526200005162000059565b505062000173565b600054610100900460ff1615620000c65760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000119576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200013157600080fd5b50565b600080604083850312156200014857600080fd5b825162000155816200011b565b602084015190925062000168816200011b565b809150509250929050565b60805160a051612b29620001ae600039600081816105c8015281816114990152818161152b015261167b015260006103070152612b296000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c80637259a45c1161011a578063d7b7fa13116100ad578063e58398361161007c578063e5839836146105ea578063e921d4fa146105fd578063f2fde38b14610626578063f73b751914610639578063fabc1cbc1461064c57600080fd5b8063d7b7fa13146104b8578063d98128c01461056a578063da16e29b1461057d578063df5cf723146105c357600080fd5b8063886f1195116100e9578063886f1195146104585780638da5cb5b1461046b578063a49db7321461047c578063c747075b146104a557600080fd5b80637259a45c146103ef5780637cf72bba146104025780638105e04314610415578063855fcc4a1461042857600080fd5b806338c8ee64116101925780635c975abb116101615780635c975abb1461037c5780636f0c2f741461038e578063715018a6146103d4578063723e59c7146103dc57600080fd5b806338c8ee64146102ef57806339b70e3814610302578063595c6a67146103415780635ac86ab71461034957600080fd5b80631794bb3c116101ce5780631794bb3c1461024e5780631874e5ae14610261578063282670fc1461028e57806335571676146102c557600080fd5b80630ffabbce1461020057806310d67a2f14610215578063136439dd14610228578063175d32051461023b575b600080fd5b61021361020e3660046126e6565b61065f565b005b61021361022336600461271b565b61078f565b610213610236366004612738565b610842565b6102136102493660046126e6565b610981565b61021361025c366004612751565b610aab565b61027461026f3660046126e6565b610bc9565b60405163ffffffff90911681526020015b60405180910390f35b6102a161029c366004612792565b610c14565b60408051825163ffffffff9081168252602093840151169281019290925201610285565b6102d86102d3366004612792565b610c8b565b604080519215158352602083019190915201610285565b6102136102fd36600461271b565b610cba565b6103297f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610285565b610213610d88565b61036c6103573660046127be565b606654600160ff9092169190911b9081161490565b6040519015158152602001610285565b6066545b604051908152602001610285565b61027461039c3660046127e1565b6001600160a01b039182166000908152609760209081526040808320939094168252919091522054600160201b900463ffffffff1690565b610213610e4f565b6103806103ea3660046126e6565b610e63565b6102746103fd3660046126e6565b610f73565b61021361041036600461281a565b610fc3565b61036c61042336600461288f565b61100d565b61043b6104363660046127e1565b61116f565b604080519315158452602084019290925290820152606001610285565b606554610329906001600160a01b031681565b6033546001600160a01b0316610329565b61038061048a36600461271b565b6001600160a01b03166000908152609a602052604090205490565b6102136104b33660046128cd565b6111b2565b61053b6104c63660046127e1565b6040805160608082018352600080835260208084018290529284018190526001600160a01b0395861681526097835283812094909516855292815292819020815192830182525463ffffffff8082168452600160201b8204811694840194909452600160401b90049092169181019190915290565b60408051825163ffffffff90811682526020808501518216908301529282015190921690820152606001610285565b61036c6105783660046127e1565b611405565b61027461058b3660046127e1565b6001600160a01b039182166000908152609760209081526040808320939094168252919091522054600160401b900463ffffffff1690565b6103297f000000000000000000000000000000000000000000000000000000000000000081565b61036c6105f836600461271b565b611451565b61038061060b36600461271b565b6001600160a01b031660009081526099602052604090205490565b61021361063436600461271b565b6115c7565b61021361064736600461271b565b61163d565b61021361065a366004612738565b61176c565b6001600160a01b03821660009081526097602090815260408083203384529091529020548290600160201b900463ffffffff908116146106ba5760405162461bcd60e51b81526004016106b19061291a565b60405180910390fd5b6106c58343846118c8565b6106e7336001600160a01b038516600090815260996020526040902090611c5e565b61077f5760405162461bcd60e51b815260206004820152605760248201527f536c61736865722e7265636f72644c6173745374616b65557064617465416e6460448201527f5265766f6b65536c617368696e674162696c6974793a2052656d6f76696e672060648201527f6d6964646c657761726520756e7375636365737366756c000000000000000000608482015260a4016106b1565b61078a833384611cf8565b505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108069190612990565b6001600160a01b0316336001600160a01b0316146108365760405162461bcd60e51b81526004016106b1906129ad565b61083f81611e03565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561088a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ae91906129f7565b6108ca5760405162461bcd60e51b81526004016106b190612a19565b606654818116146109435760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c697479000000000000000060648201526084016106b1565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b606654600190600290811614156109aa5760405162461bcd60e51b81526004016106b190612a61565b6001600160a01b03831660009081526097602090815260408083203384529091529020548390600160201b900463ffffffff908116146109fc5760405162461bcd60e51b81526004016106b19061291a565b610a078443856118c8565b610a29336001600160a01b038616600090815260996020526040902090611efa565b610aa55760405162461bcd60e51b815260206004820152604160248201527f536c61736865722e7265636f726446697273745374616b655570646174653a2060448201527f417070656e64696e67206d6964646c657761726520756e7375636365737366756064820152601b60fa1b608482015260a4016106b1565b50505050565b600054610100900460ff1615808015610acb5750600054600160ff909116105b80610ae55750303b158015610ae5575060005460ff166001145b610b485760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106b1565b6000805460ff191660011790558015610b6b576000805461ff0019166101001790555b610b758383611f08565b610b7e84611fee565b8015610aa5576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b6001600160a01b0382166000908152609a60205260408120805463ffffffff8416908110610bf957610bf9612a98565b60009182526020909120015463ffffffff1690505b92915050565b60408051808201909152600080825260208201526001600160a01b0383166000908152609a60205260409020805483908110610c5257610c52612a98565b60009182526020918290206040805180820190915291015463ffffffff8082168352600160201b90910416918101919091529392505050565b6001600160a01b03821660009081526099602052604081208190610caf9084612040565b915091509250929050565b60665460029060049081161415610ce35760405162461bcd60e51b81526004016106b190612a61565b610ced8233611405565b610d7a5760405162461bcd60e51b815260206004820152605260248201527f536c61736865722e667265657a654f70657261746f723a206d73672e73656e6460448201527f657220646f6573206e6f742068617665207065726d697373696f6e20746f20736064820152713630b9b4103a3434b99037b832b930ba37b960711b608482015260a4016106b1565b610d84823361204f565b5050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610dd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df491906129f7565b610e105760405162461bcd60e51b81526004016106b190612a19565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610e576120c1565b610e616000611fee565b565b6001600160a01b038281166000818152609960209081526040808320838052600190810183528184209084528252808320549383526097825280832094841683529390529182205463ffffffff848116600160401b909204161115610ecc576000915050610c0e565b6001600160a01b0384166000908152609960205260408120610eee908361211b565b9150505b8015801590610f3657506001600160a01b0385811660009081526097602090815260408083209386168352929052205463ffffffff858116600160401b9092041611155b15610f6b576001600160a01b03851660009081526099602052604090209091508190610f62908261211b565b9150610ef29050565b509392505050565b6001600160a01b0382166000908152609a60205260408120805463ffffffff8416908110610fa357610fa3612a98565b600091825260209091200154600160201b900463ffffffff169392505050565b610fcb6120c1565b60005b8181101561078a57611005838383818110610feb57610feb612a98565b9050602002016020810190611000919061271b565b61212a565b600101610fce565b6001600160a01b0383166000908152609a602052604081205461103257506001611168565b6001600160a01b0384166000908152609a6020526040812080548490811061105c5761105c612a98565b60009182526020918290206040805180820190915291015463ffffffff808216808452600160201b909204811693830193909352909250908516108015906110ba57506001600160a01b038516600090815260996020526040902054155b15611136576001600160a01b0385166000908152609a6020526040902080546110e590600190612ac4565b815481106110f5576110f5612a98565b60009182526020918290206040805180820190915291015463ffffffff8082168352600160201b909104811691909201819052439091161191506111689050565b806000015163ffffffff168463ffffffff161080156111645750806020015163ffffffff164363ffffffff16115b9150505b9392505050565b6001600160a01b0382166000908152609960205260408120819081906111a49061119f866001600160a01b031690565b612194565b9250925092505b9250925092565b6001600160a01b03841660009081526097602090815260408083203384529091529020548490600160201b900463ffffffff908116146112045760405162461bcd60e51b81526004016106b19061291a565b438463ffffffff16111561128a5760405162461bcd60e51b815260206004820152604160248201527f536c61736865722e7265636f72645374616b655570646174653a2063616e6e6f60448201527f742070726f766964652075706461746520666f722066757475726520626c6f636064820152606b60f81b608482015260a4016106b1565b6112958585856118c8565b6001600160a01b038516600090815260996020526040902054600114611359576112d7336001600160a01b038716600090815260996020526040902090611c5e565b6113495760405162461bcd60e51b815260206004820152603b60248201527f536c61736865722e7265636f72645374616b655570646174653a2052656d6f7660448201527f696e67206d6964646c657761726520756e7375636365737366756c000000000060648201526084016106b1565b6113548585846121e4565b6113fe565b336001600160a01b038616600090815260996020908152604080832083805260019081018352818420908452909152902054146113fe5760405162461bcd60e51b815260206004820152603960248201527f536c61736865722e7265636f72645374616b655570646174653a2043616c6c6560448201527f72206973206e6f7420746865206c69737420656e7472616e740000000000000060648201526084016106b1565b5050505050565b6001600160a01b038281166000908152609760209081526040808320938516835292905290812054600160201b900463ffffffff1643101561144957506001610c0e565b506000610c0e565b6001600160a01b03811660009081526098602052604081205460ff161561147a57506001919050565b604051633e28391d60e01b81526001600160a01b0383811660048301527f00000000000000000000000000000000000000000000000000000000000000001690633e28391d90602401602060405180830381865afa1580156114e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150491906129f7565b156115ba57604051631976849960e21b81526001600160a01b0383811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906365da126490602401602060405180830381865afa158015611574573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115989190612990565b6001600160a01b031660009081526098602052604090205460ff169392505050565b506000919050565b919050565b6115cf6120c1565b6001600160a01b0381166116345760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106b1565b61083f81611fee565b606654600090600190811614156116665760405162461bcd60e51b81526004016106b190612a61565b6040516336b87bd760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636d70f7ae90602401602060405180830381865afa1580156116ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ee91906129f7565b611762576040805162461bcd60e51b81526020600482015260248101919091527f536c61736865722e6f7074496e746f536c617368696e673a206d73672e73656e60448201527f646572206973206e6f7420612072656769737465726564206f70657261746f7260648201526084016106b1565b610d84338361249b565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e39190612990565b6001600160a01b0316336001600160a01b0316146118135760405162461bcd60e51b81526004016106b1906129ad565b6066541981196066541916146118915760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c697479000000000000000060648201526084016106b1565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610976565b6001600160a01b038316600090815260976020908152604080832033845290915290205463ffffffff808416600160401b9092041611156119845760405162461bcd60e51b815260206004820152604a60248201527f536c61736865722e5f7265636f7264557064617465416e64416464546f4d696460448201527f646c657761726554696d65733a2063616e2774207075736820612070726576696064820152696f75732075706461746560b01b608482015260a4016106b1565b6001600160a01b0383166000818152609760209081526040808320338452825280832080546bffffffff00000000000000001916600160401b63ffffffff89160217905580518082018252838152808301849052938352609a9091529020548015611a51576001600160a01b0385166000908152609a60205260409020611a0c600183612ac4565b81548110611a1c57611a1c612a98565b60009182526020918290206040805180820190915291015463ffffffff8082168352600160201b909104169181019190915291505b60008290506000836020015163ffffffff168563ffffffff161115611a80575063ffffffff8416602082015260015b6001600160a01b038716600090815260996020526040902054611aae575063ffffffff851681526001611b83565b336001600160a01b0388166000908152609960209081526040808320838052600190810183528184209084529091529020541415611b8357600080611b0b336001600160a01b038b1660009081526099602052604090209061211b565b915091508115611b72576001600160a01b03898116600090815260976020908152604080832093851683529290522054600160401b900463ffffffff908116908916811015611b625763ffffffff81168552611b6c565b63ffffffff891685525b50611b7c565b63ffffffff881684525b6001925050505b8015611c55576001600160a01b0387166000818152609a6020908152604082208054600181810183558285528385208851920180549489015163ffffffff908116600160201b0267ffffffffffffffff199096169316929092179390931790559290915290547f1b62ba64c72d01e41a2b8c46e6aeeff728ef3a4438cf1cac3d92ee12189d5649918991611c179190612ac4565b8451602080870151604080516001600160a01b0390961686529185019390935263ffffffff9182169084015216606082015260800160405180910390a15b50505050505050565b6000811580611c745750611c728383612506565b155b15611c8157506000610c0e565b600082815260018481016020908152604080842084805290915280832054828452922054611cb3928692909190612582565b60008281526001848101602090815260408084208480529091528083208390558183528220829055845490918591611cec908490612ac4565b90915550919392505050565b63ffffffff8181161415611d825760405162461bcd60e51b8152602060048201526044602482018190527f536c61736865722e5f7265766f6b65536c617368696e674162696c6974793a20908201527f7365727665556e74696c426c6f636b2074696d65206d757374206265206c696d6064820152631a5d195960e21b608482015260a4016106b1565b6001600160a01b03838116600081815260976020908152604080832094871680845294825291829020805467ffffffff000000001916600160201b63ffffffff88169081029190911790915591519182527f9aa1b1391f35c672ed1f3b7ece632f4513e618366bef7a2f67b7c6bc1f2d2b14910160405180910390a3505050565b6001600160a01b038116611e915760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a4016106b1565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611168838360006125b7565b6065546001600160a01b0316158015611f2957506001600160a01b03821615155b611fab5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a4016106b1565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610d8482611e03565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600080610caf848460006125ce565b6001600160a01b03821660009081526098602052604090205460ff16610d84576001600160a01b03808316600081815260986020526040808220805460ff1916600117905551928416927f444a84f512816ae7be8ed8a66aa88e362eb54d0988e83acc9d81746622b3ba519190a35050565b6033546001600160a01b03163314610e615760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106b1565b600080610caf848460016125ce565b6001600160a01b03811660009081526098602052604090205460ff161561083f576001600160a01b038116600081815260986020526040808220805460ff19169055517fd4cef0af27800d466fcacd85779857378b85cb61569005ff1464fa6e5ced69d89190a250565b60008060006121a38585612506565b6121b5575060009150819050806111ab565b5050506000818152600183810160209081526040808420848052909152808320548284529220549091906111ab565b6000811561238e576001600160a01b038416600090815260996020526040902061220e9083612506565b612216575060015b8015801561225857506001600160a01b0384811660009081526097602090815260408083209386168352929052205463ffffffff848116600160401b90920416115b15612261575060015b806122d8576001600160a01b0384166000908152609960205260408120819061228a908561211b565b9150915081156122d5576001600160a01b0386811660009081526097602090815260408083209385168352929052205463ffffffff868116600160401b90920416116122d557600192505b50505b80612377576001600160a01b0384166000908152609960205260409020612300908333612617565b6123725760405162461bcd60e51b815260206004820152603c60248201527f536c61736865722e7265636f72645374616b655570646174653a20496e73657260448201527f74696e67206d6964646c657761726520756e7375636365737366756c0000000060648201526084016106b1565b610aa5565b6123818484610e63565b91506123728484846121e4565b6001600160a01b03848116600090815260976020908152604080832060998352818420848052600190810184528285209085528352818420549094168352929052205463ffffffff848116600160401b90920416116123eb575060015b8061248457612412336001600160a01b038616600090815260996020526040902090612626565b6123725760405162461bcd60e51b815260206004820152603e60248201527f536c61736865722e7265636f72645374616b655570646174653a20507265707060448201527f656e64696e67206d6964646c657761726520756e7375636365737366756c000060648201526084016106b1565b61248e8484610e63565b9150610aa58484846121e4565b6001600160a01b03808316600081815260976020908152604080832094861680845294909152808220805467ffffffff00000000191667ffffffff00000000179055517fefa9fb38e813d53c15edf501e03852843a3fed691960523391d71a092b3627d89190a35050565b6000818152600183016020908152604080832083805290915281205415801561254957506000828152600180850160209081526040808420928452919052902054155b1561257a57600080805260018085016020908152604080842092845291905290205482141561144957506001610c0e565b506001610c0e565b600082815260019094016020818152604080872093158088529382528087208690559486529081528385209115855252912055565b60006125c68460008585612634565b949350505050565b6000806125db8585612506565b6125ea5750600090508061260f565b5050600082815260018401602090815260408083208415158452909152902054801515905b935093915050565b60006125c68484846001612634565b6000611168838360016125b7565b60006126408584612506565b15801561265257506126528585612506565b156126b25760008481526001860160209081526040808320851515845290915290205461268186868686612582565b61268d86858386612582565b60018660000160008282546126a29190612adb565b90915550600192506125c6915050565b506000949350505050565b6001600160a01b038116811461083f57600080fd5b803563ffffffff811681146115c257600080fd5b600080604083850312156126f957600080fd5b8235612704816126bd565b9150612712602084016126d2565b90509250929050565b60006020828403121561272d57600080fd5b8135611168816126bd565b60006020828403121561274a57600080fd5b5035919050565b60008060006060848603121561276657600080fd5b8335612771816126bd565b92506020840135612781816126bd565b929592945050506040919091013590565b600080604083850312156127a557600080fd5b82356127b0816126bd565b946020939093013593505050565b6000602082840312156127d057600080fd5b813560ff8116811461116857600080fd5b600080604083850312156127f457600080fd5b82356127ff816126bd565b9150602083013561280f816126bd565b809150509250929050565b6000806020838503121561282d57600080fd5b823567ffffffffffffffff8082111561284557600080fd5b818501915085601f83011261285957600080fd5b81358181111561286857600080fd5b8660208260051b850101111561287d57600080fd5b60209290920196919550909350505050565b6000806000606084860312156128a457600080fd5b83356128af816126bd565b92506128bd602085016126d2565b9150604084013590509250925092565b600080600080608085870312156128e357600080fd5b84356128ee816126bd565b93506128fc602086016126d2565b925061290a604086016126d2565b9396929550929360600135925050565b60208082526050908201527f536c61736865722e6f6e6c7952656769737465726564466f725365727669636560408201527f3a204f70657261746f7220686173206e6f74206f7074656420696e746f20736c60608201526f30b9b434b73390313c9031b0b63632b960811b608082015260a00190565b6000602082840312156129a257600080fd5b8151611168816126bd565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612a0957600080fd5b8151801515811461116857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082821015612ad657612ad6612aae565b500390565b60008219821115612aee57612aee612aae565b50019056fea2646970667358221220a9f8dd98b057b2ed1d3f1ee75258d0d3fe5c5c3f5120a48b6ace05334fa77a2364736f6c634300080c0033", } // ContractSlasherABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/StakeRegistry/binding.go b/contracts/bindings/StakeRegistry/binding.go index 3e2796ac..85ba50ad 100644 --- a/contracts/bindings/StakeRegistry/binding.go +++ b/contracts/bindings/StakeRegistry/binding.go @@ -44,8 +44,8 @@ type IVoteWeigherStrategyAndWeightingMultiplier struct { // ContractStakeRegistryMetaData contains all meta data concerning the ContractStakeRegistry contract. var ContractStakeRegistryMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"contractIRegistryCoordinator\",\"name\":\"_registryCoordinator\",\"type\":\"address\"},{\"internalType\":\"contractIStrategyManager\",\"name\":\"_strategyManager\",\"type\":\"address\"},{\"internalType\":\"contractIServiceManager\",\"name\":\"_serviceManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"minimumStake\",\"type\":\"uint96\"}],\"name\":\"MinimumStakeForQuorumUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"QuorumCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"stake\",\"type\":\"uint96\"}],\"name\":\"StakeUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"contractIStrategy\",\"name\":\"strategy\",\"type\":\"address\"}],\"name\":\"StrategyAddedToQuorum\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"contractIStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"multiplier\",\"type\":\"uint256\"}],\"name\":\"StrategyMultiplierUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"contractIStrategy\",\"name\":\"strategy\",\"type\":\"address\"}],\"name\":\"StrategyRemovedFromQuorum\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MAX_QUORUM_COUNT\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_WEIGHING_FUNCTION_LENGTH\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WEIGHTING_DIVISOR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"contractIStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"multiplier\",\"type\":\"uint96\"}],\"internalType\":\"structIVoteWeigher.StrategyAndWeightingMultiplier[]\",\"name\":\"_newStrategiesConsideredAndMultipliers\",\"type\":\"tuple[]\"}],\"name\":\"addStrategiesConsideredAndMultipliers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contractIStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"multiplier\",\"type\":\"uint96\"}],\"internalType\":\"structIVoteWeigher.StrategyAndWeightingMultiplier[]\",\"name\":\"_strategiesConsideredAndMultipliers\",\"type\":\"tuple[]\"}],\"name\":\"createQuorum\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegation\",\"outputs\":[{\"internalType\":\"contractIDelegationManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"}],\"name\":\"deregisterOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"getCurrentOperatorStakeForQuorum\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"getCurrentTotalStakeForQuorum\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"getLengthOfOperatorIdStakeHistoryForQuorum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"getLengthOfTotalStakeHistoryForQuorum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"getMostRecentStakeUpdateByOperatorId\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"updateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint96\",\"name\":\"stake\",\"type\":\"uint96\"}],\"internalType\":\"structIStakeRegistry.OperatorStakeUpdate\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"getOperatorIdToStakeHistory\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"updateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint96\",\"name\":\"stake\",\"type\":\"uint96\"}],\"internalType\":\"structIStakeRegistry.OperatorStakeUpdate[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"}],\"name\":\"getStakeForOperatorIdForQuorumAtBlockNumber\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getStakeForQuorumAtBlockNumberFromOperatorIdAndIndex\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getStakeUpdateForQuorumFromOperatorIdAndIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"updateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint96\",\"name\":\"stake\",\"type\":\"uint96\"}],\"internalType\":\"structIStakeRegistry.OperatorStakeUpdate\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"}],\"name\":\"getStakeUpdateIndexForOperatorIdForQuorumAtBlockNumber\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getTotalStakeAtBlockNumberFromIndex\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"}],\"name\":\"getTotalStakeIndicesByQuorumNumbersAtBlockNumber\",\"outputs\":[{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getTotalStakeUpdateForQuorumFromIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"updateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint96\",\"name\":\"stake\",\"type\":\"uint96\"}],\"internalType\":\"structIStakeRegistry.OperatorStakeUpdate\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96[]\",\"name\":\"_minimumStakeForQuorum\",\"type\":\"uint96[]\"},{\"components\":[{\"internalType\":\"contractIStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"multiplier\",\"type\":\"uint96\"}],\"internalType\":\"structIVoteWeigher.StrategyAndWeightingMultiplier[][]\",\"name\":\"_quorumStrategiesConsideredAndMultipliers\",\"type\":\"tuple[][]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"minimumStakeForQuorum\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"strategyIndices\",\"type\":\"uint256[]\"},{\"internalType\":\"uint96[]\",\"name\":\"newMultipliers\",\"type\":\"uint96[]\"}],\"name\":\"modifyStrategyWeights\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"quorumCount\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"}],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registryCoordinator\",\"outputs\":[{\"internalType\":\"contractIRegistryCoordinator\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"indicesToRemove\",\"type\":\"uint256[]\"}],\"name\":\"removeStrategiesConsideredAndMultipliers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"serviceManager\",\"outputs\":[{\"internalType\":\"contractIServiceManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint96\",\"name\":\"minimumStake\",\"type\":\"uint96\"}],\"name\":\"setMinimumStakeForQuorum\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"internalType\":\"contractISlasher\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"strategiesConsideredAndMultipliers\",\"outputs\":[{\"internalType\":\"contractIStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"multiplier\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"strategiesConsideredAndMultipliersLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"strategyAndWeightingMultiplierForQuorumByIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"contractIStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"multiplier\",\"type\":\"uint96\"}],\"internalType\":\"structIVoteWeigher.StrategyAndWeightingMultiplier\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"strategyManager\",\"outputs\":[{\"internalType\":\"contractIStrategyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"operators\",\"type\":\"address[]\"}],\"name\":\"updateStakes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"weightOfOperatorForQuorum\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"weightOfOperatorForQuorumView\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x6101206040523480156200001257600080fd5b506040516200429e3803806200429e833981016040819052620000359162000250565b82828281818181816001600160a01b031660a0816001600160a01b031681525050816001600160a01b031663df5cf7236040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000095573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000bb9190620002a4565b6001600160a01b03166080816001600160a01b031681525050816001600160a01b031663b13442716040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000113573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001399190620002a4565b6001600160a01b0390811660c052811660e0526200015662000175565b5050506001600160a01b039093166101005250620002cb945050505050565b600054610100900460ff1615620001e25760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000235576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200024d57600080fd5b50565b6000806000606084860312156200026657600080fd5b8351620002738162000237565b6020850151909350620002868162000237565b6040850151909250620002998162000237565b809150509250925092565b600060208284031215620002b757600080fd5b8151620002c48162000237565b9392505050565b60805160a05160c05160e05161010051613f4862000356600039600081816103b30152818161093f015281816116aa015281816119d20152611ab20152600081816102e201528181610a4701528181610de1015281816113a1015281816114f501526115e101526000610510015260006103210152600081816105bc01526107970152613f486000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c8063944472a911610130578063bd29b8cd116100b8578063df5cf7231161007c578063df5cf723146105b7578063e192e9ad146105de578063e25427dd146105fe578063e89c0a0014610611578063eb92199c1461062457600080fd5b8063bd29b8cd14610558578063c8294c561461056b578063c8f739d01461057e578063cd050d9c14610591578063ce977ec3146105a457600080fd5b8063a43cde89116100ff578063a43cde89146104f0578063a673466714610503578063b13442711461050b578063bba549fa14610532578063bc9a40c31461054557600080fd5b8063944472a91461047357806399eed4ee146104935780639aa1653d146104a65780639e8ca620146104cd57600080fd5b806348085866116101b35780636d14a987116101825780636d14a987146103ae5780636e8f03ca146103d55780637c172347146104065780637cc0d75f146104205780637ed9430f1461046057600080fd5b806348085866146103435780635e5a67751461036b5780635f2948ec146103885780636ab538d41461039b57600080fd5b806325504777116101fa57806325504777146102a25780632b3d8816146102b75780632c2a5d2b146102ca5780633998fdd3146102dd57806339b70e381461031c57600080fd5b80631b3272251461022c5780631de680181461025c5780631f9b74e01461026f578063248d657314610282575b600080fd5b61023f61023a36600461332b565b610645565b6040516001600160601b0390911681526020015b60405180910390f35b61023f61026a36600461337c565b6106a9565b61023f61027d36600461337c565b610858565b6102956102903660046133b3565b61089b565b60405161025391906133e6565b6102b56102b0366004613463565b610934565b005b6102b56102c5366004613502565b610a45565b6102b56102d8366004613554565b610ddf565b6103047f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610253565b6103047f000000000000000000000000000000000000000000000000000000000000000081565b61035661035136600461332b565b611115565b60405163ffffffff9091168152602001610253565b61037a670de0b6b3a764000081565b604051908152602001610253565b6102b561039636600461379a565b611122565b61023f6103a9366004613859565b611237565b6103047f000000000000000000000000000000000000000000000000000000000000000081565b61037a6103e3366004613859565b60009182526101b36020908152604080842060ff93909316845291905290205490565b61040e602081565b60405160ff9091168152602001610253565b61043361042e366004613885565b611252565b6040805182516001600160a01b031681526020928301516001600160601b03169281019290925201610253565b61023f61046e3660046138af565b6112cc565b610486610481366004613859565b611300565b60405161025391906138c8565b6102b56104a1366004613940565b61139f565b6000546104ba9062010000900461ffff1681565b60405161ffff9091168152602001610253565b61037a6104db366004613974565b60ff1660009081526001602052604090205490565b61023f6104fe36600461398f565b61145d565b61040e60c081565b6103047f000000000000000000000000000000000000000000000000000000000000000081565b6102b56105403660046139d1565b6114f3565b6102b5610553366004613a14565b6115df565b6102b5610566366004613a3e565b61169f565b61023f610579366004613a7c565b6117a7565b61023f61058c366004613974565b611836565b61029561059f366004613859565b6118a7565b6102b56105b2366004613ab8565b61198e565b6103047f000000000000000000000000000000000000000000000000000000000000000081565b6105f16105ec366004613af9565b611c83565b6040516102539190613b32565b61029561060c366004613885565b611ef0565b61037a61061f366004613974565b611f88565b610637610632366004613885565b611fa9565b604051610253929190613b70565b60008381526101b36020908152604080832060ff86168452909152812061066d858585611ff2565b63ffffffff168154811061068357610683613b92565b600091825260209091200154600160401b90046001600160601b031690505b9392505050565b60008054839062010000900461ffff1660ff8216106106e35760405162461bcd60e51b81526004016106da90613ba8565b60405180910390fd5b60ff84166000908152600160209081526040808320548151808301909252838252918101839052825b8281101561084c5760ff8816600090815260016020526040902080548290811061073857610738613b92565b6000918252602080832060408051808201825293909101546001600160a01b03808216808652600160a01b9092046001600160601b031693850193909352905163778e55f360e01b81528b8316600482015260248101919091529194507f0000000000000000000000000000000000000000000000000000000000000000169063778e55f390604401602060405180830381865afa1580156107de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108029190613c05565b9050801561084357670de0b6b3a764000083602001516001600160601b03168261082c9190613c34565b6108369190613c53565b6108409086613c75565b94505b5060010161070c565b50919695505050505050565b60008054839062010000900461ffff1660ff8216106108895760405162461bcd60e51b81526004016106da90613ba8565b61089384846106a9565b949350505050565b60408051606081018252600080825260208083018290528284018290528582526101b3815283822060ff881683529052919091208054839081106108e1576108e1613b92565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b031691810191909152949350505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461097c5760405162461bcd60e51b81526004016106da90613ca0565b6109bd848484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061123292505050565b6109fe848484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061231992505050565b610a3f848484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061123292505050565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac79190613d12565b6001600160a01b0316336001600160a01b031614610af75760405162461bcd60e51b81526004016106da90613d2f565b600054839062010000900461ffff1660ff821610610b275760405162461bcd60e51b81526004016106da90613ba8565b8180610bc15760405162461bcd60e51b815260206004820152605760248201527f566f746557656967686572426173652e72656d6f76655374726174656769657360448201527f436f6e73696465726564416e644d756c7469706c696572733a206e6f20696e6460648201527f6963657320746f2072656d6f76652070726f7669646564000000000000000000608482015260a4016106da565b60005b81811015610dd75760ff861660008181526001602052604090207f31fa2e2cd280c9375e13ffcf3d81e2378100186e4058f8d3ddb690b82dcd31f790878785818110610c1257610c12613b92565b9050602002013581548110610c2957610c29613b92565b600091825260209182902001546040516001600160a01b0390911681520160405180910390a260ff861660008181526001602052604090207f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7590878785818110610c9557610c95613b92565b9050602002013581548110610cac57610cac613b92565b600091825260208083209190910154604080516001600160a01b039092168252918101929092520160405180910390a260ff8616600090815260016020819052604090912080549091610cfe91613dab565b81548110610d0e57610d0e613b92565b6000918252602080832060ff8a16845260019091526040909220910190868684818110610d3d57610d3d613b92565b9050602002013581548110610d5457610d54613b92565b600091825260208083208454920180546001600160a01b0319166001600160a01b03909316928317815593546001600160601b03600160a01b91829004160290911790925560ff88168152600190915260409020805480610db757610db7613dc2565b600082815260208120820160001990810191909155019055600101610bc4565b505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e619190613d12565b6001600160a01b0316336001600160a01b031614610e915760405162461bcd60e51b81526004016106da90613d2f565b600054859062010000900461ffff1660ff821610610ec15760405162461bcd60e51b81526004016106da90613ba8565b8380610f415760405162461bcd60e51b815260206004820152604360248201527f566f746557656967686572426173652e6d6f646966795374726174656779576560448201527f69676874733a206e6f20737472617465677920696e64696365732070726f766960648201526219195960ea1b608482015260a4016106da565b828114610fb65760405162461bcd60e51b815260206004820152603c60248201527f566f746557656967686572426173652e6d6f646966795374726174656779576560448201527f69676874733a20696e707574206c656e677468206d69736d617463680000000060648201526084016106da565b60005b8181101561110b57848482818110610fd357610fd3613b92565b9050602002016020810190610fe89190613dd8565b60ff8916600090815260016020526040902088888481811061100c5761100c613b92565b905060200201358154811061102357611023613b92565b6000918252602080832090910180546001600160601b0394909416600160a01b026001600160a01b039094169390931790925560ff8a168082526001909252604090207f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a759089898581811061109a5761109a613b92565b90506020020135815481106110b1576110b1613b92565b6000918252602090912001546001600160a01b03168787858181106110d8576110d8613b92565b90506020020160208101906110ed9190613dd8565b6040516110fb929190613b70565b60405180910390a2600101610fb9565b5050505050505050565b6000610893848484611ff2565b600054610100900460ff16158080156111425750600054600160ff909116105b8061115c5750303b15801561115c575060005460ff166001145b6111bf5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106da565b6000805460ff1916600117905580156111e2576000805461ff0019166101001790555b6111ec8383612597565b8015611232576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60008061124484846118a7565b604001519150505b92915050565b604080518082019091526000808252602082015260ff8316600090815260016020526040902080548390811061128a5761128a613b92565b6000918252602091829020604080518082019091529101546001600160a01b0381168252600160a01b90046001600160601b0316918101919091529392505050565b60338161010081106112dd57600080fd5b60029182820401919006600c02915054906101000a90046001600160601b031681565b60008281526101b36020908152604080832060ff851684528252808320805482518185028101850190935280835260609492939192909184015b82821015611393576000848152602090819020604080516060810182529185015463ffffffff8082168452600160201b82041683850152600160401b90046001600160601b03169082015282526001909201910161133a565b50505050905092915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114219190613d12565b6001600160a01b0316336001600160a01b0316146114515760405162461bcd60e51b81526004016106da90613d2f565b61145a816126db565b50565b60008281526101b36020908152604080832060ff88168452909152812080548291908490811061148f5761148f613b92565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b909304929092169082015290506114e681866127db565b6040015195945050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611551573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115759190613d12565b6001600160a01b0316336001600160a01b0316146115a55760405162461bcd60e51b81526004016106da90613d2f565b600054829062010000900461ffff1660ff8216106115d55760405162461bcd60e51b81526004016106da90613ba8565b611232838361295c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561163d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116619190613d12565b6001600160a01b0316336001600160a01b0316146116915760405162461bcd60e51b81526004016106da90613d2f565b61169b8282612d87565b5050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146116e75760405162461bcd60e51b81526004016106da90613ca0565b6117278383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061169b92505050565b6117678383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e1c92505050565b6112328383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061169b92505050565b60008060b38560ff1661010081106117c1576117c1613b92565b0183815481106117d3576117d3613b92565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b9093049290921690820152905061182a81856127db565b60400151949350505050565b600060b38260ff16610100811061184f5761184f613b92565b01600160b38460ff16610100811061186957611869613b92565b01546118759190613dab565b8154811061188557611885613b92565b600091825260209091200154600160401b90046001600160601b031692915050565b6040805160608082018352600080835260208084018290528385018290528682526101b3815284822060ff8716835281528482205485519384018652828452908301829052938201529091908161190157915061124c9050565b60008581526101b36020908152604080832060ff881684529091529020611929600184613dab565b8154811061193957611939613b92565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b9093049290921690820152925061124c915050565b60005b60005462010000900461ffff1660ff821610156112325760408051606081018252600080825260208201819052918101829052905b83811015611c625760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166313542a4e878785818110611a1157611a11613b92565b9050602002016020810190611a269190613df3565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611a6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8e9190613c05565b604051633431af2560e01b8152600481018290529091506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633431af2590602401602060405180830381865afa158015611af9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b1d9190613e10565b90506001600160c01b038116611b345750506119c6565b60016001600160c01b03821660ff87161c81161415611c5857835163ffffffff16611bf45760b38560ff166101008110611b7057611b70613b92565b01600160b38760ff166101008110611b8a57611b8a613b92565b0154611b969190613dab565b81548110611ba657611ba6613b92565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b909304929092169082015293505b600080611c28898987818110611c0c57611c0c613b92565b9050602002016020810190611c219190613df3565b8589612f6a565b9150915080828760400151611c3d9190613e39565b611c479190613c75565b6001600160601b0316604087015250505b50506001016119c6565b50805163ffffffff1615611c7a57611c7a828261306f565b50600101611991565b60606000826001600160401b03811115611c9f57611c9f6135d4565b604051908082528060200260200182016040528015611cc8578160200160208202803683370190505b50905060005b83811015611ee7576000858583818110611cea57611cea613b92565b919091013560f81c91505063ffffffff871660b3826101008110611d1057611d10613b92565b01600081548110611d2357611d23613b92565b60009182526020909120015463ffffffff161115611de25760405162461bcd60e51b815260206004820152606a60248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f6573427951756f72756d4e756d626572734174426c6f636b4e756d6265723a2060648201527f71756f72756d20686173206e6f207374616b6520686973746f727920617420626084820152693637b1b5a73ab6b132b960b11b60a482015260c4016106da565b600060b38260ff166101008110611dfb57611dfb613b92565b0154905060005b8163ffffffff168163ffffffff161015611ed1578863ffffffff1660b38460ff166101008110611e3457611e34613b92565b016001611e418486613e61565b611e4b9190613e61565b63ffffffff1681548110611e6157611e61613b92565b60009182526020909120015463ffffffff1611611ebf576001611e848284613e61565b611e8e9190613e61565b858581518110611ea057611ea0613b92565b602002602001019063ffffffff16908163ffffffff1681525050611ed1565b80611ec981613e7e565b915050611e02565b5050508080611edf90613ea2565b915050611cce565b50949350505050565b604080516060810182526000808252602082018190529181019190915260b38360ff166101008110611f2457611f24613b92565b018281548110611f3657611f36613b92565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b0316918101919091529392505050565b600060b38260ff166101008110611fa157611fa1613b92565b015492915050565b60016020528160005260406000208181548110611fc557600080fd5b6000918252602090912001546001600160a01b0381169250600160a01b90046001600160601b0316905082565b60008381526101b36020908152604080832060ff86168452909152812054815b8163ffffffff168163ffffffff1610156122495760008681526101b36020908152604080832060ff89168452909152902063ffffffff85169060016120578486613e61565b6120619190613e61565b63ffffffff168154811061207757612077613b92565b60009182526020909120015463ffffffff16116122375760008681526101b36020908152604080832060ff89168452909152902060016120b78385613e61565b6120c19190613e61565b63ffffffff16815481106120d7576120d7613b92565b600091825260209091200154600160201b900463ffffffff161580612163575060008681526101b36020908152604080832060ff89168452909152902063ffffffff85169060016121288486613e61565b6121329190613e61565b63ffffffff168154811061214857612148613b92565b600091825260209091200154600160201b900463ffffffff16115b6122185760405162461bcd60e51b815260206004820152607460248201527f5374616b6552656769737472792e5f6765745374616b65557064617465496e6460448201527f6578466f724f70657261746f724964466f7251756f72756d4174426c6f636b4e60648201527f756d6265723a206f70657261746f72496420686173206e6f207374616b652075608482015273383230ba329030ba10313637b1b5a73ab6b132b960611b60a482015260c4016106da565b60016122248284613e61565b61222e9190613e61565b925050506106a2565b8061224181613e7e565b915050612012565b5060405162461bcd60e51b815260206004820152608c60248201527f5374616b6552656769737472792e5f6765745374616b65557064617465496e6460448201527f6578466f724f70657261746f724964466f7251756f72756d4174426c6f636b4e60648201527f756d6265723a206e6f207374616b652075706461746520666f756e6420666f7260848201527f206f70657261746f72496420616e642071756f72756d4e756d6265722061742060a48201526b313637b1b590373ab6b132b960a11b60c482015260e4016106da565b600060029054906101000a900461ffff1661ffff16816001835161233d9190613dab565b8151811061234d5761234d613b92565b016020015160f81c106123e55760405162461bcd60e51b815260206004820152605460248201527f5374616b6552656769737472792e5f72656769737465724f70657261746f723a60448201527f2067726561746573742071756f72756d4e756d626572206d757374206265206c606482015273195cdcc81d1a185b881c5d5bdc9d5b50dbdd5b9d60621b608482015260a4016106da565b604080516060810182526000602082018190529181018290524363ffffffff168152905b82518160ff161015612590576000838260ff168151811061242c5761242c613b92565b016020015160f81c90506000612443878784612f6a565b9150506001600160601b0381166124e85760405162461bcd60e51b815260206004820152605c60248201527f5374616b6552656769737472792e5f72656769737465724f70657261746f723a60448201527f204f70657261746f7220646f6573206e6f74206d656574206d696e696d756d2060648201527f7374616b6520726571756972656d656e7420666f722071756f72756d00000000608482015260a4016106da565b600060b38360ff16610100811061250157612501613b92565b015490508181156125685760b38460ff16610100811061252357612523613b92565b0161252f600184613dab565b8154811061253f5761253f613b92565b60009182526020909120015461256590600160401b90046001600160601b031682613c75565b90505b6001600160601b0381166040870152612581848761306f565b84600101945050505050612409565b5050505050565b600054610100900460ff166126025760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016106da565b80518251146126795760405162461bcd60e51b815260206004820152603b60248201527f52656769737472792e5f696e697469616c697a653a206d696e696d756d53746160448201527f6b65466f7251756f72756d206c656e677468206d69736d61746368000000000060648201526084016106da565b60005b81518160ff161015611232576126ae81848360ff16815181106126a1576126a1613b92565b6020026020010151612d87565b6126d3828260ff16815181106126c6576126c6613b92565b60200260200101516126db565b60010161267c565b60005462010000900461ffff1660c081106127765760405162461bcd60e51b815260206004820152604f60248201527f566f746557656967686572426173652e5f63726561746551756f72756d3a206e60448201527f756d626572206f662071756f72756d732063616e6e6f7420657863656564204d60648201526e105617d45553d4955357d0d3d55395608a1b608482015260a4016106da565b80612782816001613ebd565b600060026101000a81548161ffff021916908361ffff1602179055506127a8818461295c565b60405160ff8216907f831a9c86c45bb303caf3f064be2bc2b9fd4ecf19e47c4ac02a61e75dabfe55b490600090a2505050565b815163ffffffff808316911611156128815760405162461bcd60e51b815260206004820152606060248201527f5374616b6552656769737472792e5f76616c69646174654f70657261746f725360448201527f74616b654174426c6f636b4e756d6265723a206f70657261746f725374616b6560648201527f5570646174652069732066726f6d20616674657220626c6f636b4e756d626572608482015260a4016106da565b602082015163ffffffff1615806128a757508063ffffffff16826020015163ffffffff16115b61169b5760405162461bcd60e51b815260206004820152607460248201527f5374616b6552656769737472792e5f76616c69646174654f70657261746f725360448201527f74616b654174426c6f636b4e756d6265723a2074686572652069732061206e6560648201527f776572206f70657261746f725374616b6555706461746520617661696c61626c60848201527332903132b337b93290313637b1b5a73ab6b132b960611b60a482015260c4016106da565b60008151116129d85760405162461bcd60e51b815260206004820152604e6024820152600080516020613ef383398151915260448201527f6e73696465726564416e644d756c7469706c696572733a206e6f20737472617460648201526d1959da595cc81c1c9bdd9a59195960921b608482015260a4016106da565b805160ff8316600090815260016020908152604090912054906129fb8383613eda565b1115612a835760405162461bcd60e51b815260206004820152605b6024820152600080516020613ef383398151915260448201527f6e73696465726564416e644d756c7469706c696572733a20657863656564204d60648201527f41585f5745494748494e475f46554e4354494f4e5f4c454e4754480000000000608482015260a4016106da565b60005b828110156125905760005b612a9b8284613eda565b811015612b8e57848281518110612ab457612ab4613b92565b6020026020010151600001516001600160a01b0316600160008860ff1660ff1681526020019081526020016000208281548110612af357612af3613b92565b6000918252602090912001546001600160a01b03161415612b865760405162461bcd60e51b81526020600482015260536024820152600080516020613ef383398151915260448201527f6e73696465726564416e644d756c7469706c696572733a2063616e6e6f7420616064820152720c8c840e6c2daca40e6e8e4c2e8cacef24064f606b1b608482015260a4016106da565b600101612a91565b506000848281518110612ba357612ba3613b92565b6020026020010151602001516001600160601b031611612c3f5760405162461bcd60e51b815260206004820152605c6024820152600080516020613ef383398151915260448201527f6e73696465726564416e644d756c7469706c696572733a2063616e6e6f74206160648201527f64642073747261746567792077697468207a65726f2077656967687400000000608482015260a4016106da565b60ff851660009081526001602052604090208451859083908110612c6557612c65613b92565b6020908102919091018101518254600181018455600093845292829020815191909201516001600160601b0316600160a01b026001600160a01b0390911617910155835160ff8616907f10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f540490869084908110612ce257612ce2613b92565b602090810291909101810151516040516001600160a01b0390911681520160405180910390a28460ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75858381518110612d3f57612d3f613b92565b602002602001015160000151868481518110612d5d57612d5d613b92565b602002602001015160200151604051612d77929190613b70565b60405180910390a2600101612a86565b8060338360ff166101008110612d9f57612d9f613b92565b60029182820401919006600c026101000a8154816001600160601b0302191690836001600160601b031602179055508160ff167f26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf82604051612e1091906001600160601b0391909116815260200190565b60405180910390a25050565b60408051606080820183526000602080840182905283850182905263ffffffff43168085528551938401865290830182905293820181905292815290915b83518160ff161015612590576000848260ff1681518110612e7d57612e7d613b92565b016020015160f81c90506000612e94878387613189565b90508060b38360ff166101008110612eae57612eae613b92565b01600160b38560ff166101008110612ec857612ec8613b92565b0154612ed49190613dab565b81548110612ee457612ee4613b92565b600091825260209091200154612f0a9190600160401b90046001600160601b0316613e39565b6001600160601b03166040850152612f22828561306f565b6040805160ff841681526000602082015288917fe7c60c52692f0e0ff8d1c289ffe63cb02e79373f35e3000cafe7cca898885934910160405180910390a25050600101612e5a565b604080516060810182526000602082018190529181018290524363ffffffff1681528190612f988487610858565b6001600160601b03166040820152603360ff85166101008110612fbd57612fbd613b92565b60029182820401919006600c029054906101000a90046001600160601b03166001600160601b031681604001516001600160601b0316101561300157600060408201525b600061300e868684613189565b604080840151815160ff891681526001600160601b03909116602082015291925087917fe7c60c52692f0e0ff8d1c289ffe63cb02e79373f35e3000cafe7cca898885934910160405180910390a26040909101519092509050935093915050565b600060b38360ff16610100811061308857613088613b92565b0154905080156130f2574360b38460ff1661010081106130aa576130aa613b92565b016130b6600184613dab565b815481106130c6576130c6613b92565b9060005260206000200160000160046101000a81548163ffffffff021916908363ffffffff1602179055505b63ffffffff4316825260b360ff8416610100811061311257613112613b92565b0180546001810182556000918252602091829020845191018054928501516040909501516001600160601b0316600160401b026bffffffffffffffffffffffff60401b1963ffffffff968716600160201b0267ffffffffffffffff1990951696909316959095179290921716929092179091555050565b60008381526101b36020908152604080832060ff861684529091528120548190801561326c5760008681526101b36020908152604080832060ff89168452909152902043906131d9600184613dab565b815481106131e9576131e9613b92565b60009182526020808320909101805463ffffffff94909416600160201b0267ffffffff0000000019909416939093179092558781526101b38252604080822060ff891683529092522061323d600183613dab565b8154811061324d5761324d613b92565b600091825260209091200154600160401b90046001600160601b031691505b5060008581526101b36020908152604080832060ff88168452825280832080546001810182559084529282902086519301805492870151918701516001600160601b0316600160401b026bffffffffffffffffffffffff60401b1963ffffffff938416600160201b0267ffffffffffffffff199095169390951692909217929092179290921691909117905590509392505050565b803560ff8116811461331257600080fd5b919050565b803563ffffffff8116811461331257600080fd5b60008060006060848603121561334057600080fd5b8335925061335060208501613301565b915061335e60408501613317565b90509250925092565b6001600160a01b038116811461145a57600080fd5b6000806040838503121561338f57600080fd5b61339883613301565b915060208301356133a881613367565b809150509250929050565b6000806000606084860312156133c857600080fd5b6133d184613301565b95602085013595506040909401359392505050565b815163ffffffff9081168252602080840151909116908201526040808301516001600160601b0316908201526060810161124c565b60008083601f84011261342d57600080fd5b5081356001600160401b0381111561344457600080fd5b60208301915083602082850101111561345c57600080fd5b9250929050565b6000806000806060858703121561347957600080fd5b843561348481613367565b93506020850135925060408501356001600160401b038111156134a657600080fd5b6134b28782880161341b565b95989497509550505050565b60008083601f8401126134d057600080fd5b5081356001600160401b038111156134e757600080fd5b6020830191508360208260051b850101111561345c57600080fd5b60008060006040848603121561351757600080fd5b61352084613301565b925060208401356001600160401b0381111561353b57600080fd5b613547868287016134be565b9497909650939450505050565b60008060008060006060868803121561356c57600080fd5b61357586613301565b945060208601356001600160401b038082111561359157600080fd5b61359d89838a016134be565b909650945060408801359150808211156135b657600080fd5b506135c3888289016134be565b969995985093965092949392505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561360c5761360c6135d4565b60405290565b604051601f8201601f191681016001600160401b038111828210171561363a5761363a6135d4565b604052919050565b60006001600160401b0382111561365b5761365b6135d4565b5060051b60200190565b80356001600160601b038116811461331257600080fd5b600082601f83011261368d57600080fd5b813560206136a261369d83613642565b613612565b82815260069290921b840181019181810190868411156136c157600080fd5b8286015b8481101561371057604081890312156136de5760008081fd5b6136e66135ea565b81356136f181613367565b81526136fe828601613665565b818601528352918301916040016136c5565b509695505050505050565b600082601f83011261372c57600080fd5b8135602061373c61369d83613642565b82815260059290921b8401810191818101908684111561375b57600080fd5b8286015b848110156137105780356001600160401b0381111561377e5760008081fd5b61378c8986838b010161367c565b84525091830191830161375f565b600080604083850312156137ad57600080fd5b82356001600160401b03808211156137c457600080fd5b818501915085601f8301126137d857600080fd5b813560206137e861369d83613642565b82815260059290921b8401810191818101908984111561380757600080fd5b948201945b8386101561382c5761381d86613665565b8252948201949082019061380c565b9650508601359250508082111561384257600080fd5b5061384f8582860161371b565b9150509250929050565b6000806040838503121561386c57600080fd5b8235915061387c60208401613301565b90509250929050565b6000806040838503121561389857600080fd5b6138a183613301565b946020939093013593505050565b6000602082840312156138c157600080fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b818110156139345761392183855163ffffffff808251168352806020830151166020840152506001600160601b0360408201511660408301525050565b92840192606092909201916001016138e4565b50909695505050505050565b60006020828403121561395257600080fd5b81356001600160401b0381111561396857600080fd5b6108938482850161367c565b60006020828403121561398657600080fd5b6106a282613301565b600080600080608085870312156139a557600080fd5b6139ae85613301565b93506139bc60208601613317565b93969395505050506040820135916060013590565b600080604083850312156139e457600080fd5b6139ed83613301565b915060208301356001600160401b03811115613a0857600080fd5b61384f8582860161367c565b60008060408385031215613a2757600080fd5b613a3083613301565b915061387c60208401613665565b600080600060408486031215613a5357600080fd5b8335925060208401356001600160401b03811115613a7057600080fd5b6135478682870161341b565b600080600060608486031215613a9157600080fd5b613a9a84613301565b9250613aa860208501613317565b9150604084013590509250925092565b60008060208385031215613acb57600080fd5b82356001600160401b03811115613ae157600080fd5b613aed858286016134be565b90969095509350505050565b600080600060408486031215613b0e57600080fd5b613b1784613317565b925060208401356001600160401b03811115613a7057600080fd5b6020808252825182820181905260009190848201906040850190845b8181101561393457835163ffffffff1683529284019291840191600101613b4e565b6001600160a01b039290921682526001600160601b0316602082015260400190565b634e487b7160e01b600052603260045260246000fd5b6020808252603c908201527f566f746557656967686572426173652e76616c696451756f72756d4e756d626560408201527f723a2071756f72756d4e756d626572206973206e6f742076616c696400000000606082015260800190565b600060208284031215613c1757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615613c4e57613c4e613c1e565b500290565b600082613c7057634e487b7160e01b600052601260045260246000fd5b500490565b60006001600160601b03808316818516808303821115613c9757613c97613c1e565b01949350505050565b6020808252604c908201527f5374616b6552656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865205265676973747260608201526b3ca1b7b7b93234b730ba37b960a11b608082015260a00190565b600060208284031215613d2457600080fd5b81516106a281613367565b60208082526056908201527f566f746557656967686572426173652e6f6e6c79536572766963654d616e616760408201527f65724f776e65723a2063616c6c6572206973206e6f7420746865206f776e65726060820152751037b3103a34329039b2b93b34b1b2a6b0b730b3b2b960511b608082015260a00190565b600082821015613dbd57613dbd613c1e565b500390565b634e487b7160e01b600052603160045260246000fd5b600060208284031215613dea57600080fd5b6106a282613665565b600060208284031215613e0557600080fd5b81356106a281613367565b600060208284031215613e2257600080fd5b81516001600160c01b03811681146106a257600080fd5b60006001600160601b0383811690831681811015613e5957613e59613c1e565b039392505050565b600063ffffffff83811690831681811015613e5957613e59613c1e565b600063ffffffff80831681811415613e9857613e98613c1e565b6001019392505050565b6000600019821415613eb657613eb6613c1e565b5060010190565b600061ffff808316818516808303821115613c9757613c97613c1e565b60008219821115613eed57613eed613c1e565b50019056fe566f746557656967686572426173652e5f61646453747261746567696573436fa2646970667358221220474fe353bf9de7d7570b14093e321afe005569e11e594f5418f3e4469d27412364736f6c634300080c0033", + ABI: "[{\"inputs\":[{\"internalType\":\"contractIRegistryCoordinator\",\"name\":\"_registryCoordinator\",\"type\":\"address\"},{\"internalType\":\"contractIStrategyManager\",\"name\":\"_strategyManager\",\"type\":\"address\"},{\"internalType\":\"contractIServiceManager\",\"name\":\"_serviceManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"minimumStake\",\"type\":\"uint96\"}],\"name\":\"MinimumStakeForQuorumUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"QuorumCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"stake\",\"type\":\"uint96\"}],\"name\":\"StakeUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"contractIStrategy\",\"name\":\"strategy\",\"type\":\"address\"}],\"name\":\"StrategyAddedToQuorum\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"contractIStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"multiplier\",\"type\":\"uint256\"}],\"name\":\"StrategyMultiplierUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"contractIStrategy\",\"name\":\"strategy\",\"type\":\"address\"}],\"name\":\"StrategyRemovedFromQuorum\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MAX_QUORUM_COUNT\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_WEIGHING_FUNCTION_LENGTH\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WEIGHTING_DIVISOR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"contractIStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"multiplier\",\"type\":\"uint96\"}],\"internalType\":\"structIVoteWeigher.StrategyAndWeightingMultiplier[]\",\"name\":\"_newStrategiesConsideredAndMultipliers\",\"type\":\"tuple[]\"}],\"name\":\"addStrategiesConsideredAndMultipliers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contractIStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"multiplier\",\"type\":\"uint96\"}],\"internalType\":\"structIVoteWeigher.StrategyAndWeightingMultiplier[]\",\"name\":\"_strategiesConsideredAndMultipliers\",\"type\":\"tuple[]\"}],\"name\":\"createQuorum\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegation\",\"outputs\":[{\"internalType\":\"contractIDelegationManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"}],\"name\":\"deregisterOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"getCurrentOperatorStakeForQuorum\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"getCurrentTotalStakeForQuorum\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"getLengthOfOperatorIdStakeHistoryForQuorum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"getLengthOfTotalStakeHistoryForQuorum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"getMostRecentStakeUpdateByOperatorId\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"updateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint96\",\"name\":\"stake\",\"type\":\"uint96\"}],\"internalType\":\"structIStakeRegistry.OperatorStakeUpdate\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"getOperatorIdToStakeHistory\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"updateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint96\",\"name\":\"stake\",\"type\":\"uint96\"}],\"internalType\":\"structIStakeRegistry.OperatorStakeUpdate[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"}],\"name\":\"getStakeForOperatorIdForQuorumAtBlockNumber\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getStakeForQuorumAtBlockNumberFromOperatorIdAndIndex\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getStakeUpdateForQuorumFromOperatorIdAndIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"updateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint96\",\"name\":\"stake\",\"type\":\"uint96\"}],\"internalType\":\"structIStakeRegistry.OperatorStakeUpdate\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"}],\"name\":\"getStakeUpdateIndexForOperatorIdForQuorumAtBlockNumber\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getTotalStakeAtBlockNumberFromIndex\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"}],\"name\":\"getTotalStakeIndicesByQuorumNumbersAtBlockNumber\",\"outputs\":[{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getTotalStakeUpdateForQuorumFromIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"updateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"nextUpdateBlockNumber\",\"type\":\"uint32\"},{\"internalType\":\"uint96\",\"name\":\"stake\",\"type\":\"uint96\"}],\"internalType\":\"structIStakeRegistry.OperatorStakeUpdate\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96[]\",\"name\":\"_minimumStakeForQuorum\",\"type\":\"uint96[]\"},{\"components\":[{\"internalType\":\"contractIStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"multiplier\",\"type\":\"uint96\"}],\"internalType\":\"structIVoteWeigher.StrategyAndWeightingMultiplier[][]\",\"name\":\"_quorumStrategiesConsideredAndMultipliers\",\"type\":\"tuple[][]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"minimumStakeForQuorum\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"strategyIndices\",\"type\":\"uint256[]\"},{\"internalType\":\"uint96[]\",\"name\":\"newMultipliers\",\"type\":\"uint96[]\"}],\"name\":\"modifyStrategyWeights\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"quorumCount\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"operatorId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"}],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registryCoordinator\",\"outputs\":[{\"internalType\":\"contractIRegistryCoordinator\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"indicesToRemove\",\"type\":\"uint256[]\"}],\"name\":\"removeStrategiesConsideredAndMultipliers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"serviceManager\",\"outputs\":[{\"internalType\":\"contractIServiceManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint96\",\"name\":\"minimumStake\",\"type\":\"uint96\"}],\"name\":\"setMinimumStakeForQuorum\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"internalType\":\"contractISlasher\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"strategiesConsideredAndMultipliers\",\"outputs\":[{\"internalType\":\"contractIStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"multiplier\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"}],\"name\":\"strategiesConsideredAndMultipliersLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"strategyAndWeightingMultiplierForQuorumByIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"contractIStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"multiplier\",\"type\":\"uint96\"}],\"internalType\":\"structIVoteWeigher.StrategyAndWeightingMultiplier\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"strategyManager\",\"outputs\":[{\"internalType\":\"contractIStrategyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"operators\",\"type\":\"address[]\"}],\"name\":\"updateStakes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"quorumNumber\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"weightOfOperatorForQuorum\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + Bin: "0x6101206040523480156200001257600080fd5b50604051620040a0380380620040a083398101604081905262000035916200024a565b8282828181816001600160a01b031660a0816001600160a01b031681525050816001600160a01b031663df5cf7236040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000093573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000b991906200029e565b6001600160a01b03166080816001600160a01b031681525050816001600160a01b031663b13442716040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000111573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200013791906200029e565b6001600160a01b0390811660c052811660e052620001546200016f565b505050506001600160a01b03166101005250620002c5915050565b600054610100900460ff1615620001dc5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156200022f576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200024757600080fd5b50565b6000806000606084860312156200026057600080fd5b83516200026d8162000231565b6020850151909350620002808162000231565b6040850151909250620002938162000231565b809150509250925092565b600060208284031215620002b157600080fd5b8151620002be8162000231565b9392505050565b60805160a05160c05160e05161010051613d506200035060003960008181610395015281816108de015281816117fd01528181611bb40152611c940152600081816102c401528181610b9a01528181610f2c015281816114f4015281816116480152611734015260006104f20152600061030301526000818161059e01526107790152613d506000f3fe608060405234801561001057600080fd5b506004361061021c5760003560e01c806399eed4ee11610125578063c8294c56116100ad578063df5cf7231161007c578063df5cf72314610599578063e192e9ad146105c0578063e25427dd146105e0578063e89c0a00146105f3578063eb92199c1461060657600080fd5b8063c8294c561461054d578063c8f739d014610560578063cd050d9c14610573578063ce977ec31461058657600080fd5b8063a6734667116100f4578063a6734667146104e5578063b1344271146104ed578063bba549fa14610514578063bc9a40c314610527578063bd29b8cd1461053a57600080fd5b806399eed4ee146104755780639aa1653d146104885780639e8ca620146104af578063a43cde89146104d257600080fd5b80635e5a6775116101a85780636e8f03ca116101775780636e8f03ca146103b75780637c172347146103e85780637cc0d75f146104025780637ed9430f14610442578063944472a91461045557600080fd5b80635e5a67751461034d5780635f2948ec1461036a5780636ab538d41461037d5780636d14a9871461039057600080fd5b80632b3d8816116101ef5780632b3d8816146102995780632c2a5d2b146102ac5780633998fdd3146102bf57806339b70e38146102fe578063480858661461032557600080fd5b80631b327225146102215780631f9b74e014610251578063248d6573146102645780632550477714610284575b600080fd5b61023461022f366004613133565b610627565b6040516001600160601b0390911681526020015b60405180910390f35b61023461025f366004613184565b61068b565b6102776102723660046131bb565b61083a565b60405161024891906131ee565b61029761029236600461326b565b6108d3565b005b6102976102a736600461330a565b610b98565b6102976102ba36600461335c565b610f2a565b6102e67f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610248565b6102e67f000000000000000000000000000000000000000000000000000000000000000081565b610338610333366004613133565b611260565b60405163ffffffff9091168152602001610248565b61035c670de0b6b3a764000081565b604051908152602001610248565b6102976103783660046135a2565b611275565b61023461038b366004613661565b61138a565b6102e67f000000000000000000000000000000000000000000000000000000000000000081565b61035c6103c5366004613661565b60009182526101b36020908152604080842060ff93909316845291905290205490565b6103f0602081565b60405160ff9091168152602001610248565b61041561041036600461368d565b6113a5565b6040805182516001600160a01b031681526020928301516001600160601b03169281019290925201610248565b6102346104503660046136b7565b61141f565b610468610463366004613661565b611453565b60405161024891906136d0565b610297610483366004613748565b6114f2565b60005461049c9062010000900461ffff1681565b60405161ffff9091168152602001610248565b61035c6104bd36600461377c565b60ff1660009081526001602052604090205490565b6102346104e0366004613797565b6115b0565b6103f060c081565b6102e67f000000000000000000000000000000000000000000000000000000000000000081565b6102976105223660046137d9565b611646565b61029761053536600461381c565b611732565b610297610548366004613846565b6117f2565b61023461055b366004613884565b611989565b61023461056e36600461377c565b611a18565b610277610581366004613661565b611a89565b6102976105943660046138c0565b611b70565b6102e67f000000000000000000000000000000000000000000000000000000000000000081565b6105d36105ce366004613901565b611e50565b604051610248919061393a565b6102776105ee36600461368d565b6120bd565b61035c61060136600461377c565b612155565b61061961061436600461368d565b612176565b604051610248929190613978565b60008381526101b36020908152604080832060ff86168452909152812061064f8585856121bf565b63ffffffff16815481106106655761066561399a565b600091825260209091200154600160401b90046001600160601b031690505b9392505050565b60008054839062010000900461ffff1660ff8216106106c55760405162461bcd60e51b81526004016106bc906139b0565b60405180910390fd5b60ff84166000908152600160209081526040808320548151808301909252838252918101839052825b8281101561082e5760ff8816600090815260016020526040902080548290811061071a5761071a61399a565b6000918252602080832060408051808201825293909101546001600160a01b03808216808652600160a01b9092046001600160601b031693850193909352905163778e55f360e01b81528b8316600482015260248101919091529194507f0000000000000000000000000000000000000000000000000000000000000000169063778e55f390604401602060405180830381865afa1580156107c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e49190613a0d565b9050801561082557670de0b6b3a764000083602001516001600160601b03168261080e9190613a3c565b6108189190613a5b565b6108229086613a7d565b94505b506001016106ee565b50919695505050505050565b60408051606081018252600080825260208083018290528284018290528582526101b3815283822060ff881683529052919091208054839081106108805761088061399a565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b031691810191909152949350505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461091b5760405162461bcd60e51b81526004016106bc90613aa8565b60005462010000900461ffff168282610935600182613b1a565b8181106109445761094461399a565b9050013560f81c60f81b60f81c60ff16106109e45760405162461bcd60e51b815260206004820152605460248201527f5374616b6552656769737472792e5f72656769737465724f70657261746f723a60448201527f2067726561746573742071756f72756d4e756d626572206d757374206265206c606482015273195cdcc81d1a185b881c5d5bdc9d5b50dbdd5b9d60621b608482015260a4016106bc565b604080516060810182526000602082018190529181018290524363ffffffff168152905b60ff8116831115610b9057600084848360ff16818110610a2a57610a2a61399a565b919091013560f81c915060009050610a438888846124e6565b9150506001600160601b038116610ae85760405162461bcd60e51b815260206004820152605c60248201527f5374616b6552656769737472792e5f72656769737465724f70657261746f723a60448201527f204f70657261746f7220646f6573206e6f74206d656574206d696e696d756d2060648201527f7374616b6520726571756972656d656e7420666f722071756f72756d00000000608482015260a4016106bc565b600060b38360ff166101008110610b0157610b0161399a565b01549050818115610b685760b38460ff166101008110610b2357610b2361399a565b01610b2f600184613b1a565b81548110610b3f57610b3f61399a565b600091825260209091200154610b6590600160401b90046001600160601b031682613a7d565b90505b6001600160601b0381166040870152610b8184876125eb565b84600101945050505050610a08565b505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bf6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1a9190613b31565b6001600160a01b0316336001600160a01b031614610c4a5760405162461bcd60e51b81526004016106bc90613b4e565b600054839062010000900461ffff1660ff821610610c7a5760405162461bcd60e51b81526004016106bc906139b0565b8180610d145760405162461bcd60e51b815260206004820152605760248201527f566f746557656967686572426173652e72656d6f76655374726174656769657360448201527f436f6e73696465726564416e644d756c7469706c696572733a206e6f20696e6460648201527f6963657320746f2072656d6f76652070726f7669646564000000000000000000608482015260a4016106bc565b60005b81811015610b905760ff861660008181526001602052604090207f31fa2e2cd280c9375e13ffcf3d81e2378100186e4058f8d3ddb690b82dcd31f790878785818110610d6557610d6561399a565b9050602002013581548110610d7c57610d7c61399a565b600091825260209182902001546040516001600160a01b0390911681520160405180910390a260ff861660008181526001602052604090207f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7590878785818110610de857610de861399a565b9050602002013581548110610dff57610dff61399a565b600091825260208083209190910154604080516001600160a01b039092168252918101929092520160405180910390a260ff8616600090815260016020819052604090912080549091610e5191613b1a565b81548110610e6157610e6161399a565b6000918252602080832060ff8a16845260019091526040909220910190868684818110610e9057610e9061399a565b9050602002013581548110610ea757610ea761399a565b600091825260208083208454920180546001600160a01b0319166001600160a01b03909316928317815593546001600160601b03600160a01b91829004160290911790925560ff88168152600190915260409020805480610f0a57610f0a613bca565b600082815260208120820160001990810191909155019055600101610d17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fac9190613b31565b6001600160a01b0316336001600160a01b031614610fdc5760405162461bcd60e51b81526004016106bc90613b4e565b600054859062010000900461ffff1660ff82161061100c5760405162461bcd60e51b81526004016106bc906139b0565b838061108c5760405162461bcd60e51b815260206004820152604360248201527f566f746557656967686572426173652e6d6f646966795374726174656779576560448201527f69676874733a206e6f20737472617465677920696e64696365732070726f766960648201526219195960ea1b608482015260a4016106bc565b8281146111015760405162461bcd60e51b815260206004820152603c60248201527f566f746557656967686572426173652e6d6f646966795374726174656779576560448201527f69676874733a20696e707574206c656e677468206d69736d617463680000000060648201526084016106bc565b60005b818110156112565784848281811061111e5761111e61399a565b90506020020160208101906111339190613be0565b60ff891660009081526001602052604090208888848181106111575761115761399a565b905060200201358154811061116e5761116e61399a565b6000918252602080832090910180546001600160601b0394909416600160a01b026001600160a01b039094169390931790925560ff8a168082526001909252604090207f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75908989858181106111e5576111e561399a565b90506020020135815481106111fc576111fc61399a565b6000918252602090912001546001600160a01b03168787858181106112235761122361399a565b90506020020160208101906112389190613be0565b604051611246929190613978565b60405180910390a2600101611104565b5050505050505050565b600061126d8484846121bf565b949350505050565b600054610100900460ff16158080156112955750600054600160ff909116105b806112af5750303b1580156112af575060005460ff166001145b6113125760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106bc565b6000805460ff191660011790558015611335576000805461ff0019166101001790555b61133f8383612705565b8015611385576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6000806113978484611a89565b604001519150505b92915050565b604080518082019091526000808252602082015260ff831660009081526001602052604090208054839081106113dd576113dd61399a565b6000918252602091829020604080518082019091529101546001600160a01b0381168252600160a01b90046001600160601b0316918101919091529392505050565b603381610100811061143057600080fd5b60029182820401919006600c02915054906101000a90046001600160601b031681565b60008281526101b36020908152604080832060ff851684528252808320805482518185028101850190935280835260609492939192909184015b828210156114e6576000848152602090819020604080516060810182529185015463ffffffff8082168452600160201b82041683850152600160401b90046001600160601b03169082015282526001909201910161148d565b50505050905092915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611550573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115749190613b31565b6001600160a01b0316336001600160a01b0316146115a45760405162461bcd60e51b81526004016106bc90613b4e565b6115ad81612849565b50565b60008281526101b36020908152604080832060ff8816845290915281208054829190849081106115e2576115e261399a565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b909304929092169082015290506116398186612949565b6040015195945050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c89190613b31565b6001600160a01b0316336001600160a01b0316146116f85760405162461bcd60e51b81526004016106bc90613b4e565b600054829062010000900461ffff1660ff8216106117285760405162461bcd60e51b81526004016106bc906139b0565b6113858383612aca565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611790573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b49190613b31565b6001600160a01b0316336001600160a01b0316146117e45760405162461bcd60e51b81526004016106bc90613b4e565b6117ee8282612efc565b5050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461183a5760405162461bcd60e51b81526004016106bc90613aa8565b60408051606080820183526000602080840182905283850182905263ffffffff43168085528551938401865290830182905293820181905292815290915b60ff8116841115610b9057600085858360ff1681811061189a5761189a61399a565b919091013560f81c9150600090506118b3888387612f91565b90508060b38360ff1661010081106118cd576118cd61399a565b01600160b38560ff1661010081106118e7576118e761399a565b01546118f39190613b1a565b815481106119035761190361399a565b6000918252602090912001546119299190600160401b90046001600160601b0316613bfb565b6001600160601b0316604085015261194182856125eb565b6040805160ff841681526000602082015289917fe7c60c52692f0e0ff8d1c289ffe63cb02e79373f35e3000cafe7cca898885934910160405180910390a25050600101611878565b60008060b38560ff1661010081106119a3576119a361399a565b0183815481106119b5576119b561399a565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050611a0c8185612949565b60400151949350505050565b600060b38260ff166101008110611a3157611a3161399a565b01600160b38460ff166101008110611a4b57611a4b61399a565b0154611a579190613b1a565b81548110611a6757611a6761399a565b600091825260209091200154600160401b90046001600160601b031692915050565b6040805160608082018352600080835260208084018290528385018290528682526101b3815284822060ff87168352815284822054855193840186528284529083018290529382015290919081611ae357915061139f9050565b60008581526101b36020908152604080832060ff881684529091529020611b0b600184613b1a565b81548110611b1b57611b1b61399a565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b9093049290921690820152925061139f915050565b60005b60005462010000900461ffff1660ff821610156113855760408051606081018252600080825260208201819052918101829052905b83811015611e2f5760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166313542a4e878785818110611bf357611bf361399a565b9050602002016020810190611c089190613c23565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611c4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c709190613a0d565b604051633431af2560e01b8152600481018290529091506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633431af2590602401602060405180830381865afa158015611cdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cff9190613c40565b905060016001600160c01b03821660ff87161c81161415611e2557835163ffffffff16611dc15760b38560ff166101008110611d3d57611d3d61399a565b01600160b38760ff166101008110611d5757611d5761399a565b0154611d639190613b1a565b81548110611d7357611d7361399a565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b909304929092169082015293505b600080611df5898987818110611dd957611dd961399a565b9050602002016020810190611dee9190613c23565b85896124e6565b9150915080828760400151611e0a9190613bfb565b611e149190613a7d565b6001600160601b0316604087015250505b5050600101611ba8565b50805163ffffffff1615611e4757611e4782826125eb565b50600101611b73565b60606000826001600160401b03811115611e6c57611e6c6133dc565b604051908082528060200260200182016040528015611e95578160200160208202803683370190505b50905060005b838110156120b4576000858583818110611eb757611eb761399a565b919091013560f81c91505063ffffffff871660b3826101008110611edd57611edd61399a565b01600081548110611ef057611ef061399a565b60009182526020909120015463ffffffff161115611faf5760405162461bcd60e51b815260206004820152606a60248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f6573427951756f72756d4e756d626572734174426c6f636b4e756d6265723a2060648201527f71756f72756d20686173206e6f207374616b6520686973746f727920617420626084820152693637b1b5a73ab6b132b960b11b60a482015260c4016106bc565b600060b38260ff166101008110611fc857611fc861399a565b0154905060005b8163ffffffff168163ffffffff16101561209e578863ffffffff1660b38460ff1661010081106120015761200161399a565b01600161200e8486613c69565b6120189190613c69565b63ffffffff168154811061202e5761202e61399a565b60009182526020909120015463ffffffff161161208c5760016120518284613c69565b61205b9190613c69565b85858151811061206d5761206d61399a565b602002602001019063ffffffff16908163ffffffff168152505061209e565b8061209681613c86565b915050611fcf565b50505080806120ac90613caa565b915050611e9b565b50949350505050565b604080516060810182526000808252602082018190529181019190915260b38360ff1661010081106120f1576120f161399a565b0182815481106121035761210361399a565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b0316918101919091529392505050565b600060b38260ff16610100811061216e5761216e61399a565b015492915050565b6001602052816000526040600020818154811061219257600080fd5b6000918252602090912001546001600160a01b0381169250600160a01b90046001600160601b0316905082565b60008381526101b36020908152604080832060ff86168452909152812054815b8163ffffffff168163ffffffff1610156124165760008681526101b36020908152604080832060ff89168452909152902063ffffffff85169060016122248486613c69565b61222e9190613c69565b63ffffffff16815481106122445761224461399a565b60009182526020909120015463ffffffff16116124045760008681526101b36020908152604080832060ff89168452909152902060016122848385613c69565b61228e9190613c69565b63ffffffff16815481106122a4576122a461399a565b600091825260209091200154600160201b900463ffffffff161580612330575060008681526101b36020908152604080832060ff89168452909152902063ffffffff85169060016122f58486613c69565b6122ff9190613c69565b63ffffffff16815481106123155761231561399a565b600091825260209091200154600160201b900463ffffffff16115b6123e55760405162461bcd60e51b815260206004820152607460248201527f5374616b6552656769737472792e5f6765745374616b65557064617465496e6460448201527f6578466f724f70657261746f724964466f7251756f72756d4174426c6f636b4e60648201527f756d6265723a206f70657261746f72496420686173206e6f207374616b652075608482015273383230ba329030ba10313637b1b5a73ab6b132b960611b60a482015260c4016106bc565b60016123f18284613c69565b6123fb9190613c69565b92505050610684565b8061240e81613c86565b9150506121df565b5060405162461bcd60e51b815260206004820152608c60248201527f5374616b6552656769737472792e5f6765745374616b65557064617465496e6460448201527f6578466f724f70657261746f724964466f7251756f72756d4174426c6f636b4e60648201527f756d6265723a206e6f207374616b652075706461746520666f756e6420666f7260848201527f206f70657261746f72496420616e642071756f72756d4e756d6265722061742060a48201526b313637b1b590373ab6b132b960a11b60c482015260e4016106bc565b604080516060810182526000602082018190529181018290524363ffffffff1681528190612514848761068b565b6001600160601b03166040820152603360ff851661010081106125395761253961399a565b60029182820401919006600c029054906101000a90046001600160601b03166001600160601b031681604001516001600160601b0316101561257d57600060408201525b600061258a868684612f91565b604080840151815160ff891681526001600160601b03909116602082015291925087917fe7c60c52692f0e0ff8d1c289ffe63cb02e79373f35e3000cafe7cca898885934910160405180910390a26040909101519092509050935093915050565b600060b38360ff1661010081106126045761260461399a565b01549050801561266e574360b38460ff1661010081106126265761262661399a565b01612632600184613b1a565b815481106126425761264261399a565b9060005260206000200160000160046101000a81548163ffffffff021916908363ffffffff1602179055505b63ffffffff4316825260b360ff8416610100811061268e5761268e61399a565b0180546001810182556000918252602091829020845191018054928501516040909501516001600160601b0316600160401b026bffffffffffffffffffffffff60401b1963ffffffff968716600160201b0267ffffffffffffffff1990951696909316959095179290921716929092179091555050565b600054610100900460ff166127705760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016106bc565b80518251146127e75760405162461bcd60e51b815260206004820152603b60248201527f52656769737472792e5f696e697469616c697a653a206d696e696d756d53746160448201527f6b65466f7251756f72756d206c656e677468206d69736d61746368000000000060648201526084016106bc565b60005b81518160ff1610156113855761281c81848360ff168151811061280f5761280f61399a565b6020026020010151612efc565b612841828260ff16815181106128345761283461399a565b6020026020010151612849565b6001016127ea565b60005462010000900461ffff1660c081106128e45760405162461bcd60e51b815260206004820152604f60248201527f566f746557656967686572426173652e5f63726561746551756f72756d3a206e60448201527f756d626572206f662071756f72756d732063616e6e6f7420657863656564204d60648201526e105617d45553d4955357d0d3d55395608a1b608482015260a4016106bc565b806128f0816001613cc5565b600060026101000a81548161ffff021916908361ffff1602179055506129168184612aca565b60405160ff8216907f831a9c86c45bb303caf3f064be2bc2b9fd4ecf19e47c4ac02a61e75dabfe55b490600090a2505050565b815163ffffffff808316911611156129ef5760405162461bcd60e51b815260206004820152606060248201527f5374616b6552656769737472792e5f76616c69646174654f70657261746f725360448201527f74616b654174426c6f636b4e756d6265723a206f70657261746f725374616b6560648201527f5570646174652069732066726f6d20616674657220626c6f636b4e756d626572608482015260a4016106bc565b602082015163ffffffff161580612a1557508063ffffffff16826020015163ffffffff16115b6117ee5760405162461bcd60e51b815260206004820152607460248201527f5374616b6552656769737472792e5f76616c69646174654f70657261746f725360448201527f74616b654174426c6f636b4e756d6265723a2074686572652069732061206e6560648201527f776572206f70657261746f725374616b6555706461746520617661696c61626c60848201527332903132b337b93290313637b1b5a73ab6b132b960611b60a482015260c4016106bc565b6000815111612b465760405162461bcd60e51b815260206004820152604e6024820152600080516020613cfb83398151915260448201527f6e73696465726564416e644d756c7469706c696572733a206e6f20737472617460648201526d1959da595cc81c1c9bdd9a59195960921b608482015260a4016106bc565b805160ff831660009081526001602090815260409091205490612b698383613ce2565b1115612bf15760405162461bcd60e51b815260206004820152605b6024820152600080516020613cfb83398151915260448201527f6e73696465726564416e644d756c7469706c696572733a20657863656564204d60648201527f41585f5745494748494e475f46554e4354494f4e5f4c454e4754480000000000608482015260a4016106bc565b60005b82811015612ef55760005b612c098284613ce2565b811015612cfc57848281518110612c2257612c2261399a565b6020026020010151600001516001600160a01b0316600160008860ff1660ff1681526020019081526020016000208281548110612c6157612c6161399a565b6000918252602090912001546001600160a01b03161415612cf45760405162461bcd60e51b81526020600482015260536024820152600080516020613cfb83398151915260448201527f6e73696465726564416e644d756c7469706c696572733a2063616e6e6f7420616064820152720c8c840e6c2daca40e6e8e4c2e8cacef24064f606b1b608482015260a4016106bc565b600101612bff565b506000848281518110612d1157612d1161399a565b6020026020010151602001516001600160601b031611612dad5760405162461bcd60e51b815260206004820152605c6024820152600080516020613cfb83398151915260448201527f6e73696465726564416e644d756c7469706c696572733a2063616e6e6f74206160648201527f64642073747261746567792077697468207a65726f2077656967687400000000608482015260a4016106bc565b60ff851660009081526001602052604090208451859083908110612dd357612dd361399a565b6020908102919091018101518254600181018455600093845292829020815191909201516001600160601b0316600160a01b026001600160a01b0390911617910155835160ff8616907f10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f540490869084908110612e5057612e5061399a565b602090810291909101810151516040516001600160a01b0390911681520160405180910390a28460ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75858381518110612ead57612ead61399a565b602002602001015160000151868481518110612ecb57612ecb61399a565b602002602001015160200151604051612ee5929190613978565b60405180910390a2600101612bf4565b5050505050565b8060338360ff166101008110612f1457612f1461399a565b60029182820401919006600c026101000a8154816001600160601b0302191690836001600160601b031602179055508160ff167f26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf82604051612f8591906001600160601b0391909116815260200190565b60405180910390a25050565b60008381526101b36020908152604080832060ff86168452909152812054819080156130745760008681526101b36020908152604080832060ff8916845290915290204390612fe1600184613b1a565b81548110612ff157612ff161399a565b60009182526020808320909101805463ffffffff94909416600160201b0267ffffffff0000000019909416939093179092558781526101b38252604080822060ff8916835290925220613045600183613b1a565b815481106130555761305561399a565b600091825260209091200154600160401b90046001600160601b031691505b5060008581526101b36020908152604080832060ff88168452825280832080546001810182559084529282902086519301805492870151918701516001600160601b0316600160401b026bffffffffffffffffffffffff60401b1963ffffffff938416600160201b0267ffffffffffffffff199095169390951692909217929092179290921691909117905590509392505050565b803560ff8116811461311a57600080fd5b919050565b803563ffffffff8116811461311a57600080fd5b60008060006060848603121561314857600080fd5b8335925061315860208501613109565b91506131666040850161311f565b90509250925092565b6001600160a01b03811681146115ad57600080fd5b6000806040838503121561319757600080fd5b6131a083613109565b915060208301356131b08161316f565b809150509250929050565b6000806000606084860312156131d057600080fd5b6131d984613109565b95602085013595506040909401359392505050565b815163ffffffff9081168252602080840151909116908201526040808301516001600160601b0316908201526060810161139f565b60008083601f84011261323557600080fd5b5081356001600160401b0381111561324c57600080fd5b60208301915083602082850101111561326457600080fd5b9250929050565b6000806000806060858703121561328157600080fd5b843561328c8161316f565b93506020850135925060408501356001600160401b038111156132ae57600080fd5b6132ba87828801613223565b95989497509550505050565b60008083601f8401126132d857600080fd5b5081356001600160401b038111156132ef57600080fd5b6020830191508360208260051b850101111561326457600080fd5b60008060006040848603121561331f57600080fd5b61332884613109565b925060208401356001600160401b0381111561334357600080fd5b61334f868287016132c6565b9497909650939450505050565b60008060008060006060868803121561337457600080fd5b61337d86613109565b945060208601356001600160401b038082111561339957600080fd5b6133a589838a016132c6565b909650945060408801359150808211156133be57600080fd5b506133cb888289016132c6565b969995985093965092949392505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715613414576134146133dc565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613442576134426133dc565b604052919050565b60006001600160401b03821115613463576134636133dc565b5060051b60200190565b80356001600160601b038116811461311a57600080fd5b600082601f83011261349557600080fd5b813560206134aa6134a58361344a565b61341a565b82815260069290921b840181019181810190868411156134c957600080fd5b8286015b8481101561351857604081890312156134e65760008081fd5b6134ee6133f2565b81356134f98161316f565b815261350682860161346d565b818601528352918301916040016134cd565b509695505050505050565b600082601f83011261353457600080fd5b813560206135446134a58361344a565b82815260059290921b8401810191818101908684111561356357600080fd5b8286015b848110156135185780356001600160401b038111156135865760008081fd5b6135948986838b0101613484565b845250918301918301613567565b600080604083850312156135b557600080fd5b82356001600160401b03808211156135cc57600080fd5b818501915085601f8301126135e057600080fd5b813560206135f06134a58361344a565b82815260059290921b8401810191818101908984111561360f57600080fd5b948201945b83861015613634576136258661346d565b82529482019490820190613614565b9650508601359250508082111561364a57600080fd5b5061365785828601613523565b9150509250929050565b6000806040838503121561367457600080fd5b8235915061368460208401613109565b90509250929050565b600080604083850312156136a057600080fd5b6136a983613109565b946020939093013593505050565b6000602082840312156136c957600080fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b8181101561373c5761372983855163ffffffff808251168352806020830151166020840152506001600160601b0360408201511660408301525050565b92840192606092909201916001016136ec565b50909695505050505050565b60006020828403121561375a57600080fd5b81356001600160401b0381111561377057600080fd5b61126d84828501613484565b60006020828403121561378e57600080fd5b61068482613109565b600080600080608085870312156137ad57600080fd5b6137b685613109565b93506137c46020860161311f565b93969395505050506040820135916060013590565b600080604083850312156137ec57600080fd5b6137f583613109565b915060208301356001600160401b0381111561381057600080fd5b61365785828601613484565b6000806040838503121561382f57600080fd5b61383883613109565b91506136846020840161346d565b60008060006040848603121561385b57600080fd5b8335925060208401356001600160401b0381111561387857600080fd5b61334f86828701613223565b60008060006060848603121561389957600080fd5b6138a284613109565b92506138b06020850161311f565b9150604084013590509250925092565b600080602083850312156138d357600080fd5b82356001600160401b038111156138e957600080fd5b6138f5858286016132c6565b90969095509350505050565b60008060006040848603121561391657600080fd5b61391f8461311f565b925060208401356001600160401b0381111561387857600080fd5b6020808252825182820181905260009190848201906040850190845b8181101561373c57835163ffffffff1683529284019291840191600101613956565b6001600160a01b039290921682526001600160601b0316602082015260400190565b634e487b7160e01b600052603260045260246000fd5b6020808252603c908201527f566f746557656967686572426173652e76616c696451756f72756d4e756d626560408201527f723a2071756f72756d4e756d626572206973206e6f742076616c696400000000606082015260800190565b600060208284031215613a1f57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615613a5657613a56613a26565b500290565b600082613a7857634e487b7160e01b600052601260045260246000fd5b500490565b60006001600160601b03808316818516808303821115613a9f57613a9f613a26565b01949350505050565b6020808252604c908201527f5374616b6552656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865205265676973747260608201526b3ca1b7b7b93234b730ba37b960a11b608082015260a00190565b600082821015613b2c57613b2c613a26565b500390565b600060208284031215613b4357600080fd5b81516106848161316f565b60208082526056908201527f566f746557656967686572426173652e6f6e6c79536572766963654d616e616760408201527f65724f776e65723a2063616c6c6572206973206e6f7420746865206f776e65726060820152751037b3103a34329039b2b93b34b1b2a6b0b730b3b2b960511b608082015260a00190565b634e487b7160e01b600052603160045260246000fd5b600060208284031215613bf257600080fd5b6106848261346d565b60006001600160601b0383811690831681811015613c1b57613c1b613a26565b039392505050565b600060208284031215613c3557600080fd5b81356106848161316f565b600060208284031215613c5257600080fd5b81516001600160c01b038116811461068457600080fd5b600063ffffffff83811690831681811015613c1b57613c1b613a26565b600063ffffffff80831681811415613ca057613ca0613a26565b6001019392505050565b6000600019821415613cbe57613cbe613a26565b5060010190565b600061ffff808316818516808303821115613a9f57613a9f613a26565b60008219821115613cf557613cf5613a26565b50019056fe566f746557656967686572426173652e5f61646453747261746567696573436fa2646970667358221220325d58ca10e94f7fc8a2ccc43593872998c7b2ae5768b3bce1e28bc654af420164736f6c634300080c0033", } // ContractStakeRegistryABI is the input ABI used to generate the binding from. @@ -1035,12 +1035,12 @@ func (_ContractStakeRegistry *ContractStakeRegistryCallerSession) StrategyManage return _ContractStakeRegistry.Contract.StrategyManager(&_ContractStakeRegistry.CallOpts) } -// WeightOfOperatorForQuorumView is a free data retrieval call binding the contract method 0x1de68018. +// WeightOfOperatorForQuorum is a free data retrieval call binding the contract method 0x1f9b74e0. // -// Solidity: function weightOfOperatorForQuorumView(uint8 quorumNumber, address operator) view returns(uint96) -func (_ContractStakeRegistry *ContractStakeRegistryCaller) WeightOfOperatorForQuorumView(opts *bind.CallOpts, quorumNumber uint8, operator common.Address) (*big.Int, error) { +// Solidity: function weightOfOperatorForQuorum(uint8 quorumNumber, address operator) view returns(uint96) +func (_ContractStakeRegistry *ContractStakeRegistryCaller) WeightOfOperatorForQuorum(opts *bind.CallOpts, quorumNumber uint8, operator common.Address) (*big.Int, error) { var out []interface{} - err := _ContractStakeRegistry.contract.Call(opts, &out, "weightOfOperatorForQuorumView", quorumNumber, operator) + err := _ContractStakeRegistry.contract.Call(opts, &out, "weightOfOperatorForQuorum", quorumNumber, operator) if err != nil { return *new(*big.Int), err @@ -1052,18 +1052,18 @@ func (_ContractStakeRegistry *ContractStakeRegistryCaller) WeightOfOperatorForQu } -// WeightOfOperatorForQuorumView is a free data retrieval call binding the contract method 0x1de68018. +// WeightOfOperatorForQuorum is a free data retrieval call binding the contract method 0x1f9b74e0. // -// Solidity: function weightOfOperatorForQuorumView(uint8 quorumNumber, address operator) view returns(uint96) -func (_ContractStakeRegistry *ContractStakeRegistrySession) WeightOfOperatorForQuorumView(quorumNumber uint8, operator common.Address) (*big.Int, error) { - return _ContractStakeRegistry.Contract.WeightOfOperatorForQuorumView(&_ContractStakeRegistry.CallOpts, quorumNumber, operator) +// Solidity: function weightOfOperatorForQuorum(uint8 quorumNumber, address operator) view returns(uint96) +func (_ContractStakeRegistry *ContractStakeRegistrySession) WeightOfOperatorForQuorum(quorumNumber uint8, operator common.Address) (*big.Int, error) { + return _ContractStakeRegistry.Contract.WeightOfOperatorForQuorum(&_ContractStakeRegistry.CallOpts, quorumNumber, operator) } -// WeightOfOperatorForQuorumView is a free data retrieval call binding the contract method 0x1de68018. +// WeightOfOperatorForQuorum is a free data retrieval call binding the contract method 0x1f9b74e0. // -// Solidity: function weightOfOperatorForQuorumView(uint8 quorumNumber, address operator) view returns(uint96) -func (_ContractStakeRegistry *ContractStakeRegistryCallerSession) WeightOfOperatorForQuorumView(quorumNumber uint8, operator common.Address) (*big.Int, error) { - return _ContractStakeRegistry.Contract.WeightOfOperatorForQuorumView(&_ContractStakeRegistry.CallOpts, quorumNumber, operator) +// Solidity: function weightOfOperatorForQuorum(uint8 quorumNumber, address operator) view returns(uint96) +func (_ContractStakeRegistry *ContractStakeRegistryCallerSession) WeightOfOperatorForQuorum(quorumNumber uint8, operator common.Address) (*big.Int, error) { + return _ContractStakeRegistry.Contract.WeightOfOperatorForQuorum(&_ContractStakeRegistry.CallOpts, quorumNumber, operator) } // AddStrategiesConsideredAndMultipliers is a paid mutator transaction binding the contract method 0xbba549fa. @@ -1255,27 +1255,6 @@ func (_ContractStakeRegistry *ContractStakeRegistryTransactorSession) UpdateStak return _ContractStakeRegistry.Contract.UpdateStakes(&_ContractStakeRegistry.TransactOpts, operators) } -// WeightOfOperatorForQuorum is a paid mutator transaction binding the contract method 0x1f9b74e0. -// -// Solidity: function weightOfOperatorForQuorum(uint8 quorumNumber, address operator) returns(uint96) -func (_ContractStakeRegistry *ContractStakeRegistryTransactor) WeightOfOperatorForQuorum(opts *bind.TransactOpts, quorumNumber uint8, operator common.Address) (*types.Transaction, error) { - return _ContractStakeRegistry.contract.Transact(opts, "weightOfOperatorForQuorum", quorumNumber, operator) -} - -// WeightOfOperatorForQuorum is a paid mutator transaction binding the contract method 0x1f9b74e0. -// -// Solidity: function weightOfOperatorForQuorum(uint8 quorumNumber, address operator) returns(uint96) -func (_ContractStakeRegistry *ContractStakeRegistrySession) WeightOfOperatorForQuorum(quorumNumber uint8, operator common.Address) (*types.Transaction, error) { - return _ContractStakeRegistry.Contract.WeightOfOperatorForQuorum(&_ContractStakeRegistry.TransactOpts, quorumNumber, operator) -} - -// WeightOfOperatorForQuorum is a paid mutator transaction binding the contract method 0x1f9b74e0. -// -// Solidity: function weightOfOperatorForQuorum(uint8 quorumNumber, address operator) returns(uint96) -func (_ContractStakeRegistry *ContractStakeRegistryTransactorSession) WeightOfOperatorForQuorum(quorumNumber uint8, operator common.Address) (*types.Transaction, error) { - return _ContractStakeRegistry.Contract.WeightOfOperatorForQuorum(&_ContractStakeRegistry.TransactOpts, quorumNumber, operator) -} - // ContractStakeRegistryInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the ContractStakeRegistry contract. type ContractStakeRegistryInitializedIterator struct { Event *ContractStakeRegistryInitialized // Event containing the contract specifics and raw log diff --git a/contracts/bindings/StrategyManager/binding.go b/contracts/bindings/StrategyManager/binding.go index a4e3d691..808f860e 100644 --- a/contracts/bindings/StrategyManager/binding.go +++ b/contracts/bindings/StrategyManager/binding.go @@ -48,7 +48,7 @@ type IStrategyManagerDeprecatedStructWithdrawerAndNonce struct { // ContractStrategyManagerMetaData contains all meta data concerning the ContractStrategyManager contract. var ContractStrategyManagerMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"contractIDelegationManager\",\"name\":\"_delegation\",\"type\":\"address\"},{\"internalType\":\"contractIEigenPodManager\",\"name\":\"_eigenPodManager\",\"type\":\"address\"},{\"internalType\":\"contractISlasher\",\"name\":\"_slasher\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contractIERC20\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contractIStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contractIPauserRegistry\",\"name\":\"pauserRegistry\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contractIPauserRegistry\",\"name\":\"newPauserRegistry\",\"type\":\"address\"}],\"name\":\"PauserRegistrySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contractIStrategy\",\"name\":\"strategy\",\"type\":\"address\"}],\"name\":\"StrategyAddedToDepositWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contractIStrategy\",\"name\":\"strategy\",\"type\":\"address\"}],\"name\":\"StrategyRemovedFromDepositWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"StrategyWhitelisterChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEPOSIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DOMAIN_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"contractIStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"addShares\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIStrategy[]\",\"name\":\"strategiesToWhitelist\",\"type\":\"address[]\"}],\"name\":\"addStrategiesToDepositWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contractIStrategy[]\",\"name\":\"strategies\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"shares\",\"type\":\"uint256[]\"},{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"nonce\",\"type\":\"uint96\"}],\"internalType\":\"structIStrategyManager.DeprecatedStruct_WithdrawerAndNonce\",\"name\":\"withdrawerAndNonce\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"withdrawalStartBlock\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"delegatedAddress\",\"type\":\"address\"}],\"internalType\":\"structIStrategyManager.DeprecatedStruct_QueuedWithdrawal\",\"name\":\"queuedWithdrawal\",\"type\":\"tuple\"}],\"name\":\"calculateWithdrawalRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegation\",\"outputs\":[{\"internalType\":\"contractIDelegationManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"contractIERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"depositIntoStrategy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"contractIERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"depositIntoStrategyWithSignature\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"domainSeparator\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eigenPodManager\",\"outputs\":[{\"internalType\":\"contractIEigenPodManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"getDeposits\",\"outputs\":[{\"internalType\":\"contractIStrategy[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initialStrategyWhitelister\",\"type\":\"address\"},{\"internalType\":\"contractIPauserRegistry\",\"name\":\"_pauserRegistry\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"initialPausedStatus\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contractIStrategy[]\",\"name\":\"strategies\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"shares\",\"type\":\"uint256[]\"},{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"nonce\",\"type\":\"uint96\"}],\"internalType\":\"structIStrategyManager.DeprecatedStruct_WithdrawerAndNonce\",\"name\":\"withdrawerAndNonce\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"withdrawalStartBlock\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"delegatedAddress\",\"type\":\"address\"}],\"internalType\":\"structIStrategyManager.DeprecatedStruct_QueuedWithdrawal\",\"name\":\"queuedWithdrawal\",\"type\":\"tuple\"}],\"name\":\"migrateQueuedWithdrawal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauserRegistry\",\"outputs\":[{\"internalType\":\"contractIPauserRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"contractIStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"removeShares\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIStrategy[]\",\"name\":\"strategiesToRemoveFromWhitelist\",\"type\":\"address[]\"}],\"name\":\"removeStrategiesFromDepositWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIPauserRegistry\",\"name\":\"newPauserRegistry\",\"type\":\"address\"}],\"name\":\"setPauserRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newStrategyWhitelister\",\"type\":\"address\"}],\"name\":\"setStrategyWhitelister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"internalType\":\"contractISlasher\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"stakerStrategyList\",\"outputs\":[{\"internalType\":\"contractIStrategy\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"stakerStrategyListLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"contractIStrategy\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"stakerStrategyShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIStrategy\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"strategyIsWhitelistedForDeposit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"strategyWhitelister\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"contractIStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"contractIERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"withdrawSharesAsTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"withdrawalRootPending\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x6101006040523480156200001257600080fd5b50604051620034a7380380620034a7833981016040819052620000359162000140565b6001600160a01b0380841660805280831660a052811660c0526200005862000065565b50504660e0525062000194565b600054610100900460ff1615620000d25760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000125576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200013d57600080fd5b50565b6000806000606084860312156200015657600080fd5b8351620001638162000127565b6020850151909350620001768162000127565b6040850151909250620001898162000127565b809150509250925092565b60805160a05160c05160e0516132b6620001f160003960006113dd015260006104690152600061029001526000818161054f015281816109fc01528181610c7801528181610fdc015281816110e0015261198d01526132b66000f3fe608060405234801561001057600080fd5b50600436106102115760003560e01c80638c80d4e511610125578063c6656702116100ad578063df5cf7231161007c578063df5cf7231461054a578063e7a050aa14610571578063f2fde38b14610584578063f698da2514610597578063fabc1cbc1461059f57600080fd5b8063c6656702146104e7578063cbc2bd62146104fa578063cd293f6f1461050d578063cf756fdf1461053757600080fd5b8063b1344271116100f4578063b134427114610464578063b43b514b1461048b578063b5d8b5b81461049e578063c3c6b3a9146104b1578063c608c7f3146104d457600080fd5b80638c80d4e51461040c5780638da5cb5b1461041f57806394f649dd14610430578063967fc0d21461045157600080fd5b80635ac86ab7116101a8578063715018a611610177578063715018a61461037d5780637a7e0d92146103855780637ecebe00146103b0578063886f1195146103d05780638b8aac3c146103e357600080fd5b80635ac86ab71461030c5780635c975abb1461033f5780635de08ff214610347578063663c1de41461035a57600080fd5b80634665bcda116101e45780634665bcda1461028b57806348825e94146102ca57806350ff7225146102f1578063595c6a671461030457600080fd5b806310d67a2f14610216578063136439dd1461022b57806320606b701461023e57806332e89ace14610278575b600080fd5b61022961022436600461289a565b6105b2565b005b6102296102393660046128b7565b61066e565b6102657f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b610265610286366004612950565b6107ad565b6102b27f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161026f565b6102657f0a564d4cfe5cb0d4ee082aab2ca54b8c48e129485a8f7c77766ab5ef0c3566f181565b6102296102ff366004612a2f565b6109f1565b610229610a49565b61032f61031a366004612a70565b609854600160ff9092169190911b9081161490565b604051901515815260200161026f565b609854610265565b610229610355366004612a93565b610b10565b61032f61036836600461289a565b60d16020526000908152604090205460ff1681565b610229610c59565b610265610393366004612b08565b60cd60209081526000928352604080842090915290825290205481565b6102656103be36600461289a565b60ca6020526000908152604090205481565b6097546102b2906001600160a01b031681565b6102656103f136600461289a565b6001600160a01b0316600090815260ce602052604090205490565b61022961041a366004612a2f565b610c6d565b6033546001600160a01b03166102b2565b61044361043e36600461289a565b610cc0565b60405161026f929190612bb5565b60cb546102b2906001600160a01b031681565b6102b27f000000000000000000000000000000000000000000000000000000000000000081565b610265610499366004612d5e565b610e40565b6102296104ac366004612a93565b610e8d565b61032f6104bf3660046128b7565b60cf6020526000908152604090205460ff1681565b6102296104e2366004612e34565b610fd1565b6102296104f536600461289a565b611089565b6102b2610508366004612e87565b61109a565b61052061051b366004612d5e565b6110d2565b60408051921515835260208301919091520161026f565b610229610545366004612eb3565b611166565b6102b27f000000000000000000000000000000000000000000000000000000000000000081565b61026561057f366004612a2f565b61129a565b61022961059236600461289a565b611363565b6102656113d9565b6102296105ad3660046128b7565b611417565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610605573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106299190612f04565b6001600160a01b0316336001600160a01b0316146106625760405162461bcd60e51b815260040161065990612f21565b60405180910390fd5b61066b81611573565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106da9190612f6b565b6106f65760405162461bcd60e51b815260040161065990612f8d565b6098548181161461076f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610659565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6098546000908190600190811614156108045760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610659565b600260655414156108575760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610659565b6002606555428410156108de5760405162461bcd60e51b815260206004820152604360248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207369676e617475726520657870696064820152621c995960ea1b608482015260a401610659565b6001600160a01b03858116600090815260ca602090815260408083205481517f0a564d4cfe5cb0d4ee082aab2ca54b8c48e129485a8f7c77766ab5ef0c3566f1938101939093528c851691830191909152928a1660608201526080810189905260a0810183905260c0810187905260e00160408051601f1981840301815291815281516020928301206001600160a01b038a16600090815260ca909352908220600185019055915061098e6113d9565b60405161190160f01b60208201526022810191909152604281018390526062016040516020818303038152906040528051906020012090506109d188828861166a565b6109dd888c8c8c611824565b60016065559b9a5050505050505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a395760405162461bcd60e51b815260040161065990612fd5565b610a44838383611a45565b505050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab59190612f6b565b610ad15760405162461bcd60e51b815260040161065990612f8d565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60cb546001600160a01b03163314610b3a5760405162461bcd60e51b815260040161065990613033565b8060005b81811015610c535760d16000858584818110610b5c57610b5c61309d565b9050602002016020810190610b71919061289a565b6001600160a01b0316815260208101919091526040016000205460ff16610c4b57600160d16000868685818110610baa57610baa61309d565b9050602002016020810190610bbf919061289a565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe848483818110610c1a57610c1a61309d565b9050602002016020810190610c2f919061289a565b6040516001600160a01b03909116815260200160405180910390a15b600101610b3e565b50505050565b610c61611c7f565b610c6b6000611cd9565b565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610cb55760405162461bcd60e51b815260040161065990612fd5565b610c53838383611d2b565b6001600160a01b038116600090815260ce60205260408120546060918291908167ffffffffffffffff811115610cf857610cf86128e0565b604051908082528060200260200182016040528015610d21578160200160208202803683370190505b50905060005b82811015610db2576001600160a01b038616600090815260cd6020908152604080832060ce9092528220805491929184908110610d6657610d6661309d565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610d9f57610d9f61309d565b6020908102919091010152600101610d27565b5060ce6000866001600160a01b03166001600160a01b031681526020019081526020016000208181805480602002602001604051908101604052809291908181526020018280548015610e2e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e10575b50505050509150935093505050915091565b80516020808301516040808501516060860151608087015160a08801519351600097610e709790969591016130b3565b604051602081830303815290604052805190602001209050919050565b60cb546001600160a01b03163314610eb75760405162461bcd60e51b815260040161065990613033565b8060005b81811015610c535760d16000858584818110610ed957610ed961309d565b9050602002016020810190610eee919061289a565b6001600160a01b0316815260208101919091526040016000205460ff1615610fc957600060d16000868685818110610f2857610f2861309d565b9050602002016020810190610f3d919061289a565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610f9857610f9861309d565b9050602002016020810190610fad919061289a565b6040516001600160a01b03909116815260200160405180910390a15b600101610ebb565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110195760405162461bcd60e51b815260040161065990612fd5565b604051636ce5768960e11b81526001600160a01b03858116600483015282811660248301526044820184905284169063d9caed1290606401600060405180830381600087803b15801561106b57600080fd5b505af115801561107f573d6000803e3d6000fd5b5050505050505050565b611091611c7f565b61066b81611e87565b60ce60205281600052604060002081815481106110b657600080fd5b6000918252602090912001546001600160a01b03169150829050565b600080336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461111d5760405162461bcd60e51b815260040161065990612fd5565b600061112884610e40565b600081815260cf60205260408120549192509060ff161561115d5750600081815260cf60205260409020805460ff1916905560015b92509050915091565b600054610100900460ff16158080156111865750600054600160ff909116105b806111a05750303b1580156111a0575060005460ff166001145b6112035760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610659565b6000805460ff191660011790558015611226576000805461ff0019166101001790555b61122e611ef0565b60c95561123b8383611f87565b61124485611cd9565b61124d84611e87565b8015611293576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6098546000908190600190811614156112f15760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610659565b600260655414156113445760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610659565b600260655561135533868686611824565b600160655595945050505050565b61136b611c7f565b6001600160a01b0381166113d05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610659565b61066b81611cd9565b60007f000000000000000000000000000000000000000000000000000000000000000046141561140a575060c95490565b611412611ef0565b905090565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561146a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148e9190612f04565b6001600160a01b0316336001600160a01b0316146114be5760405162461bcd60e51b815260040161065990612f21565b60985419811960985419161461153c5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610659565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016107a2565b6001600160a01b0381166116015760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610659565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383163b1561178457604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906116aa9086908690600401613184565b602060405180830381865afa1580156116c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116eb919061319d565b6001600160e01b03191614610a445760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610659565b826001600160a01b03166117988383612071565b6001600160a01b031614610a445760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610659565b6001600160a01b038316600090815260d16020526040812054849060ff166118ca5760405162461bcd60e51b815260206004820152604d60248201527f53747261746567794d616e616765722e6f6e6c7953747261746567696573576860448201527f6974656c6973746564466f724465706f7369743a207374726174656779206e6f60648201526c1d081dda1a5d195b1a5cdd1959609a1b608482015260a401610659565b6118df6001600160a01b038516338786612095565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303816000875af115801561192e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061195291906131c7565b915061195f868684611a45565b604051631452b9d760e11b81526001600160a01b0387811660048301528681166024830152604482018490527f000000000000000000000000000000000000000000000000000000000000000016906328a573ae90606401600060405180830381600087803b1580156119d157600080fd5b505af11580156119e5573d6000803e3d6000fd5b5050604080516001600160a01b038a8116825288811660208301528916818301526060810186905290517f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969350908190036080019150a150949350505050565b6001600160a01b038316611ac15760405162461bcd60e51b815260206004820152603960248201527f53747261746567794d616e616765722e5f6164645368617265733a207374616b60448201527f65722063616e6e6f74206265207a65726f2061646472657373000000000000006064820152608401610659565b80611b2d5760405162461bcd60e51b815260206004820152603660248201527f53747261746567794d616e616765722e5f6164645368617265733a207368617260448201527565732073686f756c64206e6f74206265207a65726f2160501b6064820152608401610659565b6001600160a01b03808416600090815260cd6020908152604080832093861683529290522054611c3e576001600160a01b038316600090815260ce602090815260409091205410611bff5760405162461bcd60e51b815260206004820152605060248201527f53747261746567794d616e616765722e5f6164645368617265733a206465706f60448201527f73697420776f756c6420657863656564204d41585f5354414b45525f5354524160648201526f0a88a8eb2be9892a6a8be988a9c8ea8960831b608482015260a401610659565b6001600160a01b03838116600090815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b6001600160a01b03808416600090815260cd6020908152604080832093861683529290529081208054839290611c759084906131f6565b9091555050505050565b6033546001600160a01b03163314610c6b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610659565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081611da05760405162461bcd60e51b815260206004820152603e60248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f2100006064820152608401610659565b6001600160a01b03808516600090815260cd602090815260408083209387168352929052205480831115611e325760405162461bcd60e51b815260206004820152603360248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b6064820152608401610659565b6001600160a01b03808616600090815260cd602090815260408083209388168352929052208382039081905590831415611e7a57611e7085856120ef565b6001915050611e80565b60009150505b9392505050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b0316158015611fa857506001600160a01b03821615155b61202a5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610659565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261206d82611573565b5050565b600080600061208085856122e1565b9150915061208d81612351565b509392505050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610c5390859061250c565b6001600160a01b038216600090815260ce6020526040812054905b8181101561220a576001600160a01b03848116600090815260ce60205260409020805491851691839081106121415761214161309d565b6000918252602090912001546001600160a01b03161415612202576001600160a01b038416600090815260ce6020526040902080546121829060019061320e565b815481106121925761219261309d565b60009182526020808320909101546001600160a01b03878116845260ce90925260409092208054919092169190839081106121cf576121cf61309d565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555061220a565b60010161210a565b818114156122925760405162461bcd60e51b815260206004820152604960248201527f53747261746567794d616e616765722e5f72656d6f766553747261746567794660448201527f726f6d5374616b657253747261746567794c6973743a207374726174656779206064820152681b9bdd08199bdd5b9960ba1b608482015260a401610659565b6001600160a01b038416600090815260ce602052604090208054806122b9576122b9613225565b600082815260209020810160001990810180546001600160a01b031916905501905550505050565b6000808251604114156123185760208301516040840151606085015160001a61230c878285856125de565b9450945050505061234a565b82516040141561234257602083015160408401516123378683836126cb565b93509350505061234a565b506000905060025b9250929050565b60008160048111156123655761236561323b565b141561236e5750565b60018160048111156123825761238261323b565b14156123d05760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610659565b60028160048111156123e4576123e461323b565b14156124325760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610659565b60038160048111156124465761244661323b565b141561249f5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610659565b60048160048111156124b3576124b361323b565b141561066b5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610659565b6000612561826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166127049092919063ffffffff16565b805190915015610a44578080602001905181019061257f9190612f6b565b610a445760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610659565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561261557506000905060036126c2565b8460ff16601b1415801561262d57508460ff16601c14155b1561263e57506000905060046126c2565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612692573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166126bb576000600192509250506126c2565b9150600090505b94509492505050565b6000806001600160ff1b038316816126e860ff86901c601b6131f6565b90506126f6878288856125de565b935093505050935093915050565b6060612713848460008561271b565b949350505050565b60608247101561277c5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610659565b6001600160a01b0385163b6127d35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610659565b600080866001600160a01b031685876040516127ef9190613251565b60006040518083038185875af1925050503d806000811461282c576040519150601f19603f3d011682016040523d82523d6000602084013e612831565b606091505b509150915061284182828661284c565b979650505050505050565b6060831561285b575081611e80565b82511561286b5782518084602001fd5b8160405162461bcd60e51b8152600401610659919061326d565b6001600160a01b038116811461066b57600080fd5b6000602082840312156128ac57600080fd5b8135611e8081612885565b6000602082840312156128c957600080fd5b5035919050565b80356128db81612885565b919050565b634e487b7160e01b600052604160045260246000fd5b60405160c0810167ffffffffffffffff81118282101715612919576129196128e0565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715612948576129486128e0565b604052919050565b60008060008060008060c0878903121561296957600080fd5b863561297481612885565b955060208781013561298581612885565b955060408801359450606088013561299c81612885565b93506080880135925060a088013567ffffffffffffffff808211156129c057600080fd5b818a0191508a601f8301126129d457600080fd5b8135818111156129e6576129e66128e0565b6129f8601f8201601f1916850161291f565b91508082528b84828501011115612a0e57600080fd5b80848401858401376000848284010152508093505050509295509295509295565b600080600060608486031215612a4457600080fd5b8335612a4f81612885565b92506020840135612a5f81612885565b929592945050506040919091013590565b600060208284031215612a8257600080fd5b813560ff81168114611e8057600080fd5b60008060208385031215612aa657600080fd5b823567ffffffffffffffff80821115612abe57600080fd5b818501915085601f830112612ad257600080fd5b813581811115612ae157600080fd5b8660208260051b8501011115612af657600080fd5b60209290920196919550909350505050565b60008060408385031215612b1b57600080fd5b8235612b2681612885565b91506020830135612b3681612885565b809150509250929050565b600081518084526020808501945080840160005b83811015612b7a5781516001600160a01b031687529582019590820190600101612b55565b509495945050505050565b600081518084526020808501945080840160005b83811015612b7a57815187529582019590820190600101612b99565b604081526000612bc86040830185612b41565b8281036020840152612bda8185612b85565b95945050505050565b600067ffffffffffffffff821115612bfd57612bfd6128e0565b5060051b60200190565b600082601f830112612c1857600080fd5b81356020612c2d612c2883612be3565b61291f565b82815260059290921b84018101918181019086841115612c4c57600080fd5b8286015b84811015612c70578035612c6381612885565b8352918301918301612c50565b509695505050505050565b600082601f830112612c8c57600080fd5b81356020612c9c612c2883612be3565b82815260059290921b84018101918181019086841115612cbb57600080fd5b8286015b84811015612c705780358352918301918301612cbf565b600060408284031215612ce857600080fd5b6040516040810181811067ffffffffffffffff82111715612d0b57612d0b6128e0565b6040529050808235612d1c81612885565b815260208301356bffffffffffffffffffffffff81168114612d3d57600080fd5b6020919091015292915050565b803563ffffffff811681146128db57600080fd5b600060208284031215612d7057600080fd5b813567ffffffffffffffff80821115612d8857600080fd5b9083019060e08286031215612d9c57600080fd5b612da46128f6565b823582811115612db357600080fd5b612dbf87828601612c07565b825250602083013582811115612dd457600080fd5b612de087828601612c7b565b602083015250612df2604084016128d0565b6040820152612e048660608501612cd6565b6060820152612e1560a08401612d4a565b6080820152612e2660c084016128d0565b60a082015295945050505050565b60008060008060808587031215612e4a57600080fd5b8435612e5581612885565b93506020850135612e6581612885565b9250604085013591506060850135612e7c81612885565b939692955090935050565b60008060408385031215612e9a57600080fd5b8235612ea581612885565b946020939093013593505050565b60008060008060808587031215612ec957600080fd5b8435612ed481612885565b93506020850135612ee481612885565b92506040850135612ef481612885565b9396929550929360600135925050565b600060208284031215612f1657600080fd5b8151611e8081612885565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612f7d57600080fd5b81518015158114611e8057600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b602080825260409082018190527f53747261746567794d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b60208082526044908201527f53747261746567794d616e616765722e6f6e6c7953747261746567795768697460408201527f656c69737465723a206e6f742074686520737472617465677957686974656c6960608201526339ba32b960e11b608082015260a00190565b634e487b7160e01b600052603260045260246000fd5b60e0815260006130c660e0830189612b41565b82810360208401526130d88189612b85565b6001600160a01b0397881660408501528651881660608501526020909601516bffffffffffffffffffffffff166080840152505063ffffffff9290921660a083015290921660c09092019190915292915050565b60005b8381101561314757818101518382015260200161312f565b83811115610c535750506000910152565b6000815180845261317081602086016020860161312c565b601f01601f19169290920160200192915050565b8281526040602082015260006127136040830184613158565b6000602082840312156131af57600080fd5b81516001600160e01b031981168114611e8057600080fd5b6000602082840312156131d957600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115613209576132096131e0565b500190565b600082821015613220576132206131e0565b500390565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000825161326381846020870161312c565b9190910192915050565b602081526000611e80602083018461315856fea2646970667358221220c99e78c6fbc4410e29c3ea48b031fc910c9b7450a835091348513b65dca146b064736f6c634300080c0033", + Bin: "0x6101006040523480156200001257600080fd5b50604051620034a7380380620034a7833981016040819052620000359162000140565b6001600160a01b0380841660805280831660a052811660c0526200005862000065565b50504660e0525062000194565b600054610100900460ff1615620000d25760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000125576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200013d57600080fd5b50565b6000806000606084860312156200015657600080fd5b8351620001638162000127565b6020850151909350620001768162000127565b6040850151909250620001898162000127565b809150509250925092565b60805160a05160c05160e0516132b6620001f160003960006113dd015260006104690152600061029001526000818161054f015281816109fc01528181610c7801528181610fdc015281816110e0015261198d01526132b66000f3fe608060405234801561001057600080fd5b50600436106102115760003560e01c80638c80d4e511610125578063c6656702116100ad578063df5cf7231161007c578063df5cf7231461054a578063e7a050aa14610571578063f2fde38b14610584578063f698da2514610597578063fabc1cbc1461059f57600080fd5b8063c6656702146104e7578063cbc2bd62146104fa578063cd293f6f1461050d578063cf756fdf1461053757600080fd5b8063b1344271116100f4578063b134427114610464578063b43b514b1461048b578063b5d8b5b81461049e578063c3c6b3a9146104b1578063c608c7f3146104d457600080fd5b80638c80d4e51461040c5780638da5cb5b1461041f57806394f649dd14610430578063967fc0d21461045157600080fd5b80635ac86ab7116101a8578063715018a611610177578063715018a61461037d5780637a7e0d92146103855780637ecebe00146103b0578063886f1195146103d05780638b8aac3c146103e357600080fd5b80635ac86ab71461030c5780635c975abb1461033f5780635de08ff214610347578063663c1de41461035a57600080fd5b80634665bcda116101e45780634665bcda1461028b57806348825e94146102ca57806350ff7225146102f1578063595c6a671461030457600080fd5b806310d67a2f14610216578063136439dd1461022b57806320606b701461023e57806332e89ace14610278575b600080fd5b61022961022436600461289a565b6105b2565b005b6102296102393660046128b7565b61066e565b6102657f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b610265610286366004612950565b6107ad565b6102b27f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161026f565b6102657f0a564d4cfe5cb0d4ee082aab2ca54b8c48e129485a8f7c77766ab5ef0c3566f181565b6102296102ff366004612a2f565b6109f1565b610229610a49565b61032f61031a366004612a70565b609854600160ff9092169190911b9081161490565b604051901515815260200161026f565b609854610265565b610229610355366004612a93565b610b10565b61032f61036836600461289a565b60d16020526000908152604090205460ff1681565b610229610c59565b610265610393366004612b08565b60cd60209081526000928352604080842090915290825290205481565b6102656103be36600461289a565b60ca6020526000908152604090205481565b6097546102b2906001600160a01b031681565b6102656103f136600461289a565b6001600160a01b0316600090815260ce602052604090205490565b61022961041a366004612a2f565b610c6d565b6033546001600160a01b03166102b2565b61044361043e36600461289a565b610cc0565b60405161026f929190612bb5565b60cb546102b2906001600160a01b031681565b6102b27f000000000000000000000000000000000000000000000000000000000000000081565b610265610499366004612d5e565b610e40565b6102296104ac366004612a93565b610e8d565b61032f6104bf3660046128b7565b60cf6020526000908152604090205460ff1681565b6102296104e2366004612e34565b610fd1565b6102296104f536600461289a565b611089565b6102b2610508366004612e87565b61109a565b61052061051b366004612d5e565b6110d2565b60408051921515835260208301919091520161026f565b610229610545366004612eb3565b611166565b6102b27f000000000000000000000000000000000000000000000000000000000000000081565b61026561057f366004612a2f565b61129a565b61022961059236600461289a565b611363565b6102656113d9565b6102296105ad3660046128b7565b611417565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610605573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106299190612f04565b6001600160a01b0316336001600160a01b0316146106625760405162461bcd60e51b815260040161065990612f21565b60405180910390fd5b61066b81611573565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106da9190612f6b565b6106f65760405162461bcd60e51b815260040161065990612f8d565b6098548181161461076f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610659565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6098546000908190600190811614156108045760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610659565b600260655414156108575760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610659565b6002606555428410156108de5760405162461bcd60e51b815260206004820152604360248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207369676e617475726520657870696064820152621c995960ea1b608482015260a401610659565b6001600160a01b03858116600090815260ca602090815260408083205481517f0a564d4cfe5cb0d4ee082aab2ca54b8c48e129485a8f7c77766ab5ef0c3566f1938101939093528c851691830191909152928a1660608201526080810189905260a0810183905260c0810187905260e00160408051601f1981840301815291815281516020928301206001600160a01b038a16600090815260ca909352908220600185019055915061098e6113d9565b60405161190160f01b60208201526022810191909152604281018390526062016040516020818303038152906040528051906020012090506109d188828861166a565b6109dd888c8c8c611824565b60016065559b9a5050505050505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a395760405162461bcd60e51b815260040161065990612fd5565b610a44838383611a45565b505050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab59190612f6b565b610ad15760405162461bcd60e51b815260040161065990612f8d565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60cb546001600160a01b03163314610b3a5760405162461bcd60e51b815260040161065990613033565b8060005b81811015610c535760d16000858584818110610b5c57610b5c61309d565b9050602002016020810190610b71919061289a565b6001600160a01b0316815260208101919091526040016000205460ff16610c4b57600160d16000868685818110610baa57610baa61309d565b9050602002016020810190610bbf919061289a565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe848483818110610c1a57610c1a61309d565b9050602002016020810190610c2f919061289a565b6040516001600160a01b03909116815260200160405180910390a15b600101610b3e565b50505050565b610c61611c7f565b610c6b6000611cd9565b565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610cb55760405162461bcd60e51b815260040161065990612fd5565b610c53838383611d2b565b6001600160a01b038116600090815260ce60205260408120546060918291908167ffffffffffffffff811115610cf857610cf86128e0565b604051908082528060200260200182016040528015610d21578160200160208202803683370190505b50905060005b82811015610db2576001600160a01b038616600090815260cd6020908152604080832060ce9092528220805491929184908110610d6657610d6661309d565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610d9f57610d9f61309d565b6020908102919091010152600101610d27565b5060ce6000866001600160a01b03166001600160a01b031681526020019081526020016000208181805480602002602001604051908101604052809291908181526020018280548015610e2e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e10575b50505050509150935093505050915091565b80516020808301516040808501516060860151608087015160a08801519351600097610e709790969591016130b3565b604051602081830303815290604052805190602001209050919050565b60cb546001600160a01b03163314610eb75760405162461bcd60e51b815260040161065990613033565b8060005b81811015610c535760d16000858584818110610ed957610ed961309d565b9050602002016020810190610eee919061289a565b6001600160a01b0316815260208101919091526040016000205460ff1615610fc957600060d16000868685818110610f2857610f2861309d565b9050602002016020810190610f3d919061289a565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610f9857610f9861309d565b9050602002016020810190610fad919061289a565b6040516001600160a01b03909116815260200160405180910390a15b600101610ebb565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110195760405162461bcd60e51b815260040161065990612fd5565b604051636ce5768960e11b81526001600160a01b03858116600483015282811660248301526044820184905284169063d9caed1290606401600060405180830381600087803b15801561106b57600080fd5b505af115801561107f573d6000803e3d6000fd5b5050505050505050565b611091611c7f565b61066b81611e87565b60ce60205281600052604060002081815481106110b657600080fd5b6000918252602090912001546001600160a01b03169150829050565b600080336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461111d5760405162461bcd60e51b815260040161065990612fd5565b600061112884610e40565b600081815260cf60205260408120549192509060ff161561115d5750600081815260cf60205260409020805460ff1916905560015b92509050915091565b600054610100900460ff16158080156111865750600054600160ff909116105b806111a05750303b1580156111a0575060005460ff166001145b6112035760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610659565b6000805460ff191660011790558015611226576000805461ff0019166101001790555b61122e611ef0565b60c95561123b8383611f87565b61124485611cd9565b61124d84611e87565b8015611293576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6098546000908190600190811614156112f15760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610659565b600260655414156113445760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610659565b600260655561135533868686611824565b600160655595945050505050565b61136b611c7f565b6001600160a01b0381166113d05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610659565b61066b81611cd9565b60007f000000000000000000000000000000000000000000000000000000000000000046141561140a575060c95490565b611412611ef0565b905090565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561146a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148e9190612f04565b6001600160a01b0316336001600160a01b0316146114be5760405162461bcd60e51b815260040161065990612f21565b60985419811960985419161461153c5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610659565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016107a2565b6001600160a01b0381166116015760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610659565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383163b1561178457604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906116aa9086908690600401613184565b602060405180830381865afa1580156116c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116eb919061319d565b6001600160e01b03191614610a445760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610659565b826001600160a01b03166117988383612071565b6001600160a01b031614610a445760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610659565b6001600160a01b038316600090815260d16020526040812054849060ff166118ca5760405162461bcd60e51b815260206004820152604d60248201527f53747261746567794d616e616765722e6f6e6c7953747261746567696573576860448201527f6974656c6973746564466f724465706f7369743a207374726174656779206e6f60648201526c1d081dda1a5d195b1a5cdd1959609a1b608482015260a401610659565b6118df6001600160a01b038516338786612095565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303816000875af115801561192e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061195291906131c7565b915061195f868684611a45565b604051631452b9d760e11b81526001600160a01b0387811660048301528681166024830152604482018490527f000000000000000000000000000000000000000000000000000000000000000016906328a573ae90606401600060405180830381600087803b1580156119d157600080fd5b505af11580156119e5573d6000803e3d6000fd5b5050604080516001600160a01b038a8116825288811660208301528916818301526060810186905290517f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969350908190036080019150a150949350505050565b6001600160a01b038316611ac15760405162461bcd60e51b815260206004820152603960248201527f53747261746567794d616e616765722e5f6164645368617265733a207374616b60448201527f65722063616e6e6f74206265207a65726f2061646472657373000000000000006064820152608401610659565b80611b2d5760405162461bcd60e51b815260206004820152603660248201527f53747261746567794d616e616765722e5f6164645368617265733a207368617260448201527565732073686f756c64206e6f74206265207a65726f2160501b6064820152608401610659565b6001600160a01b03808416600090815260cd6020908152604080832093861683529290522054611c3e576001600160a01b038316600090815260ce602090815260409091205410611bff5760405162461bcd60e51b815260206004820152605060248201527f53747261746567794d616e616765722e5f6164645368617265733a206465706f60448201527f73697420776f756c6420657863656564204d41585f5354414b45525f5354524160648201526f0a88a8eb2be9892a6a8be988a9c8ea8960831b608482015260a401610659565b6001600160a01b03838116600090815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b6001600160a01b03808416600090815260cd6020908152604080832093861683529290529081208054839290611c759084906131f6565b9091555050505050565b6033546001600160a01b03163314610c6b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610659565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081611da05760405162461bcd60e51b815260206004820152603e60248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f2100006064820152608401610659565b6001600160a01b03808516600090815260cd602090815260408083209387168352929052205480831115611e325760405162461bcd60e51b815260206004820152603360248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b6064820152608401610659565b6001600160a01b03808616600090815260cd602090815260408083209388168352929052208382039081905590831415611e7a57611e7085856120ef565b6001915050611e80565b60009150505b9392505050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b0316158015611fa857506001600160a01b03821615155b61202a5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610659565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261206d82611573565b5050565b600080600061208085856122e1565b9150915061208d81612351565b509392505050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610c5390859061250c565b6001600160a01b038216600090815260ce6020526040812054905b8181101561220a576001600160a01b03848116600090815260ce60205260409020805491851691839081106121415761214161309d565b6000918252602090912001546001600160a01b03161415612202576001600160a01b038416600090815260ce6020526040902080546121829060019061320e565b815481106121925761219261309d565b60009182526020808320909101546001600160a01b03878116845260ce90925260409092208054919092169190839081106121cf576121cf61309d565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555061220a565b60010161210a565b818114156122925760405162461bcd60e51b815260206004820152604960248201527f53747261746567794d616e616765722e5f72656d6f766553747261746567794660448201527f726f6d5374616b657253747261746567794c6973743a207374726174656779206064820152681b9bdd08199bdd5b9960ba1b608482015260a401610659565b6001600160a01b038416600090815260ce602052604090208054806122b9576122b9613225565b600082815260209020810160001990810180546001600160a01b031916905501905550505050565b6000808251604114156123185760208301516040840151606085015160001a61230c878285856125de565b9450945050505061234a565b82516040141561234257602083015160408401516123378683836126cb565b93509350505061234a565b506000905060025b9250929050565b60008160048111156123655761236561323b565b141561236e5750565b60018160048111156123825761238261323b565b14156123d05760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610659565b60028160048111156123e4576123e461323b565b14156124325760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610659565b60038160048111156124465761244661323b565b141561249f5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610659565b60048160048111156124b3576124b361323b565b141561066b5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610659565b6000612561826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166127049092919063ffffffff16565b805190915015610a44578080602001905181019061257f9190612f6b565b610a445760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610659565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561261557506000905060036126c2565b8460ff16601b1415801561262d57508460ff16601c14155b1561263e57506000905060046126c2565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612692573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166126bb576000600192509250506126c2565b9150600090505b94509492505050565b6000806001600160ff1b038316816126e860ff86901c601b6131f6565b90506126f6878288856125de565b935093505050935093915050565b6060612713848460008561271b565b949350505050565b60608247101561277c5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610659565b6001600160a01b0385163b6127d35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610659565b600080866001600160a01b031685876040516127ef9190613251565b60006040518083038185875af1925050503d806000811461282c576040519150601f19603f3d011682016040523d82523d6000602084013e612831565b606091505b509150915061284182828661284c565b979650505050505050565b6060831561285b575081611e80565b82511561286b5782518084602001fd5b8160405162461bcd60e51b8152600401610659919061326d565b6001600160a01b038116811461066b57600080fd5b6000602082840312156128ac57600080fd5b8135611e8081612885565b6000602082840312156128c957600080fd5b5035919050565b80356128db81612885565b919050565b634e487b7160e01b600052604160045260246000fd5b60405160c0810167ffffffffffffffff81118282101715612919576129196128e0565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715612948576129486128e0565b604052919050565b60008060008060008060c0878903121561296957600080fd5b863561297481612885565b955060208781013561298581612885565b955060408801359450606088013561299c81612885565b93506080880135925060a088013567ffffffffffffffff808211156129c057600080fd5b818a0191508a601f8301126129d457600080fd5b8135818111156129e6576129e66128e0565b6129f8601f8201601f1916850161291f565b91508082528b84828501011115612a0e57600080fd5b80848401858401376000848284010152508093505050509295509295509295565b600080600060608486031215612a4457600080fd5b8335612a4f81612885565b92506020840135612a5f81612885565b929592945050506040919091013590565b600060208284031215612a8257600080fd5b813560ff81168114611e8057600080fd5b60008060208385031215612aa657600080fd5b823567ffffffffffffffff80821115612abe57600080fd5b818501915085601f830112612ad257600080fd5b813581811115612ae157600080fd5b8660208260051b8501011115612af657600080fd5b60209290920196919550909350505050565b60008060408385031215612b1b57600080fd5b8235612b2681612885565b91506020830135612b3681612885565b809150509250929050565b600081518084526020808501945080840160005b83811015612b7a5781516001600160a01b031687529582019590820190600101612b55565b509495945050505050565b600081518084526020808501945080840160005b83811015612b7a57815187529582019590820190600101612b99565b604081526000612bc86040830185612b41565b8281036020840152612bda8185612b85565b95945050505050565b600067ffffffffffffffff821115612bfd57612bfd6128e0565b5060051b60200190565b600082601f830112612c1857600080fd5b81356020612c2d612c2883612be3565b61291f565b82815260059290921b84018101918181019086841115612c4c57600080fd5b8286015b84811015612c70578035612c6381612885565b8352918301918301612c50565b509695505050505050565b600082601f830112612c8c57600080fd5b81356020612c9c612c2883612be3565b82815260059290921b84018101918181019086841115612cbb57600080fd5b8286015b84811015612c705780358352918301918301612cbf565b600060408284031215612ce857600080fd5b6040516040810181811067ffffffffffffffff82111715612d0b57612d0b6128e0565b6040529050808235612d1c81612885565b815260208301356bffffffffffffffffffffffff81168114612d3d57600080fd5b6020919091015292915050565b803563ffffffff811681146128db57600080fd5b600060208284031215612d7057600080fd5b813567ffffffffffffffff80821115612d8857600080fd5b9083019060e08286031215612d9c57600080fd5b612da46128f6565b823582811115612db357600080fd5b612dbf87828601612c07565b825250602083013582811115612dd457600080fd5b612de087828601612c7b565b602083015250612df2604084016128d0565b6040820152612e048660608501612cd6565b6060820152612e1560a08401612d4a565b6080820152612e2660c084016128d0565b60a082015295945050505050565b60008060008060808587031215612e4a57600080fd5b8435612e5581612885565b93506020850135612e6581612885565b9250604085013591506060850135612e7c81612885565b939692955090935050565b60008060408385031215612e9a57600080fd5b8235612ea581612885565b946020939093013593505050565b60008060008060808587031215612ec957600080fd5b8435612ed481612885565b93506020850135612ee481612885565b92506040850135612ef481612885565b9396929550929360600135925050565b600060208284031215612f1657600080fd5b8151611e8081612885565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612f7d57600080fd5b81518015158114611e8057600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b602080825260409082018190527f53747261746567794d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b60208082526044908201527f53747261746567794d616e616765722e6f6e6c7953747261746567795768697460408201527f656c69737465723a206e6f742074686520737472617465677957686974656c6960608201526339ba32b960e11b608082015260a00190565b634e487b7160e01b600052603260045260246000fd5b60e0815260006130c660e0830189612b41565b82810360208401526130d88189612b85565b6001600160a01b0397881660408501528651881660608501526020909601516bffffffffffffffffffffffff166080840152505063ffffffff9290921660a083015290921660c09092019190915292915050565b60005b8381101561314757818101518382015260200161312f565b83811115610c535750506000910152565b6000815180845261317081602086016020860161312c565b601f01601f19169290920160200192915050565b8281526040602082015260006127136040830184613158565b6000602082840312156131af57600080fd5b81516001600160e01b031981168114611e8057600080fd5b6000602082840312156131d957600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115613209576132096131e0565b500190565b600082821015613220576132206131e0565b500390565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000825161326381846020870161312c565b9190910192915050565b602081526000611e80602083018461315856fea264697066735822122069cb8b6f1bc4bd0c409b56771443bfea356a028040fe3fff80d17a44b62e902a64736f6c634300080c0033", } // ContractStrategyManagerABI is the input ABI used to generate the binding from. diff --git a/contracts/generate-bindings.sh b/contracts/generate-bindings.sh index 186ea03d..dc06f074 100755 --- a/contracts/generate-bindings.sh +++ b/contracts/generate-bindings.sh @@ -1,5 +1,11 @@ #!/bin/bash +# cd to the directory of this script so that this can be run from anywhere +script_path=$( + cd "$(dirname "${BASH_SOURCE[0]}")" + pwd -P +) + function create_binding { contract_dir=$1 contract=$2 @@ -19,20 +25,20 @@ function create_binding { rm -rf ../data/tmp.abi ../data/tmp.bin } -EIGENLAYER_CONTRACT_PATH=./lib/eigenlayer-contracts -cd $EIGENLAYER_CONTRACT_PATH - -forge clean +EIGENLAYER_MIDDLEWARE_PATH=$script_path/lib/eigenlayer-middleware +cd $EIGENLAYER_MIDDLEWARE_PATH forge build -el_contracts="DelegationManager Slasher StrategyManager IStrategy BLSPublicKeyCompendium EigenPodManager EigenPod" -for contract in $el_contracts; do - create_binding . $contract ./../../bindings -done - -avs_contracts="BLSRegistryCoordinatorWithIndices BLSOperatorStateRetriever StakeRegistry BLSPubkeyRegistry IBLSSignatureChecker" +avs_contracts="BLSRegistryCoordinatorWithIndices BLSOperatorStateRetriever StakeRegistry BLSPubkeyRegistry IBLSSignatureChecker BLSPublicKeyCompendium" for contract in $avs_contracts; do - create_binding . $contract ./../../bindings + create_binding . $contract ../../bindings done -create_binding . IERC20 ./../../bindings \ No newline at end of file +EIGENLAYER_CONTRACT_PATH=$EIGENLAYER_MIDDLEWARE_PATH/lib/eigenlayer-contracts +cd $EIGENLAYER_CONTRACT_PATH +forge build + +el_contracts="DelegationManager Slasher StrategyManager IStrategy EigenPodManager EigenPod IERC20" +for contract in $el_contracts; do + create_binding . $contract ../../../../bindings +done diff --git a/contracts/lib/eigenlayer-contracts b/contracts/lib/eigenlayer-contracts deleted file mode 160000 index 3a0f7d95..00000000 --- a/contracts/lib/eigenlayer-contracts +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 3a0f7d95497526d151ed3f36123a25a25244ceaa diff --git a/contracts/lib/eigenlayer-middleware b/contracts/lib/eigenlayer-middleware new file mode 160000 index 00000000..eed4be6b --- /dev/null +++ b/contracts/lib/eigenlayer-middleware @@ -0,0 +1 @@ +Subproject commit eed4be6bcec2a362952a7d24b81de5bd7127a009