0 txs
583 calls
constructor
constructor(address _registryCoordinator, address _delegationManager)
functions
delegation
viewfunction delegation() view returns (address)
getCurrentStake
viewfunction getCurrentStake(bytes32 operatorId, uint8 quorumNumber) view returns (uint96)
getCurrentTotalStake
viewfunction getCurrentTotalStake(uint8 quorumNumber) view returns (uint96)
getLatestStakeUpdate
viewfunction getLatestStakeUpdate(bytes32 operatorId, uint8 quorumNumber) view returns (tuple)
getStakeAtBlockNumber
viewfunction getStakeAtBlockNumber(bytes32 operatorId, uint8 quorumNumber, uint32 blockNumber) view returns (uint96)
getStakeAtBlockNumberAndIndex
viewfunction getStakeAtBlockNumberAndIndex(uint8 quorumNumber, uint32 blockNumber, bytes32 operatorId, uint256 index) view returns (uint96)
getStakeHistory
viewfunction getStakeHistory(bytes32 operatorId, uint8 quorumNumber) view returns (tuple[])
getStakeHistoryLength
viewfunction getStakeHistoryLength(bytes32 operatorId, uint8 quorumNumber) view returns (uint256)
getStakeUpdateAtIndex
viewfunction getStakeUpdateAtIndex(uint8 quorumNumber, bytes32 operatorId, uint256 index) view returns (tuple)
getStakeUpdateIndexAtBlockNumber
viewfunction getStakeUpdateIndexAtBlockNumber(bytes32 operatorId, uint8 quorumNumber, uint32 blockNumber) view returns (uint32)
getTotalStakeAtBlockNumberFromIndex
viewfunction getTotalStakeAtBlockNumberFromIndex(uint8 quorumNumber, uint32 blockNumber, uint256 index) view returns (uint96)
getTotalStakeHistoryLength
viewfunction getTotalStakeHistoryLength(uint8 quorumNumber) view returns (uint256)
getTotalStakeIndicesAtBlockNumber
viewfunction getTotalStakeIndicesAtBlockNumber(uint32 blockNumber, bytes quorumNumbers) view returns (uint32[])
getTotalStakeUpdateAtIndex
viewfunction getTotalStakeUpdateAtIndex(uint8 quorumNumber, uint256 index) view returns (tuple)
MAX_WEIGHING_FUNCTION_LENGTH
viewfunction MAX_WEIGHING_FUNCTION_LENGTH() view returns (uint8)
minimumStakeForQuorum
viewfunction minimumStakeForQuorum(uint8) view returns (uint96)
registryCoordinator
viewfunction registryCoordinator() view returns (address)
strategiesPerQuorum
viewfunction strategiesPerQuorum(uint8, uint256) view returns (address)
strategyParams
viewfunction strategyParams(uint8, uint256) view returns (address strategy, uint96 multiplier)
strategyParamsByIndex
viewfunction strategyParamsByIndex(uint8 quorumNumber, uint256 index) view returns (tuple)
strategyParamsLength
viewfunction strategyParamsLength(uint8 quorumNumber) view returns (uint256)
WEIGHTING_DIVISOR
viewfunction WEIGHTING_DIVISOR() view returns (uint256)
weightOfOperatorForQuorum
viewfunction weightOfOperatorForQuorum(uint8 quorumNumber, address operator) view returns (uint96)
addStrategies
nonpayablefunction addStrategies(uint8 quorumNumber, tuple[] _strategyParams)
deregisterOperator
nonpayablefunction deregisterOperator(bytes32 operatorId, bytes quorumNumbers)
initializeQuorum
nonpayablefunction initializeQuorum(uint8 quorumNumber, uint96 minimumStake, tuple[] _strategyParams)
modifyStrategyParams
nonpayablefunction modifyStrategyParams(uint8 quorumNumber, uint256[] strategyIndices, uint96[] newMultipliers)
registerOperator
nonpayablefunction registerOperator(address operator, bytes32 operatorId, bytes quorumNumbers) returns (uint96[], uint96[])
removeStrategies
nonpayablefunction removeStrategies(uint8 quorumNumber, uint256[] indicesToRemove)
setMinimumStakeForQuorum
nonpayablefunction setMinimumStakeForQuorum(uint8 quorumNumber, uint96 minimumStake)
updateOperatorStake
nonpayablefunction updateOperatorStake(address operator, bytes32 operatorId, bytes quorumNumbers) returns (uint192)
events
MinimumStakeForQuorumUpdated
event MinimumStakeForQuorumUpdated(uint8 indexed quorumNumber, uint96 minimumStake)
OperatorStakeUpdate
event OperatorStakeUpdate(bytes32 indexed operatorId, uint8 quorumNumber, uint96 stake)
QuorumCreated
event QuorumCreated(uint8 indexed quorumNumber)
StrategyAddedToQuorum
event StrategyAddedToQuorum(uint8 indexed quorumNumber, address strategy)
StrategyMultiplierUpdated
event StrategyMultiplierUpdated(uint8 indexed quorumNumber, address strategy, uint256 multiplier)
StrategyRemovedFromQuorum
event StrategyRemovedFromQuorum(uint8 indexed quorumNumber, address strategy)
errors
No errors.
creation bytecode
0x60c06040523480156200001157600080fd5b506040516200389f3803806200389f833981016040819052620000349162000065565b6001600160a01b0391821660a05216608052620000a4565b6001600160a01b03811681146200006257600080fd5b50565b600080604083850312156200007957600080fd5b825162000086816200004c565b602084015190925062000099816200004c565b809150509250929050565b60805160a051613796620001096000396000818161037a015281816106340152818161096701528181610ccf015281816110f0015281816116d0015281816117d2015281816118eb0152611cad0152600081816105290152611e6e01526137966000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80639f3ccf651161010f578063c8294c56116100a2578063f2be94ae11610071578063f2be94ae1461054b578063f851e1981461055e578063fa28c62714610571578063ff694a771461058457600080fd5b8063c8294c56146104d6578063d5eccc05146104e9578063dd9846b9146104fc578063df5cf7231461052457600080fd5b8063bc9a40c3116100de578063bc9a40c314610474578063bd29b8cd14610487578063c46778a51461049a578063c601527d146104c357600080fd5b80639f3ccf65146103ee578063ac6bfb0314610401578063adc804da14610421578063b6904b781461046157600080fd5b80634bd26e091161018757806366acfefe1161015657806366acfefe1461034a5780636d14a987146103755780637c172347146103b457806381c07502146103ce57600080fd5b80634bd26e09146102e55780635401ed27146103155780635e5a6775146103285780635f1f2d771461033757600080fd5b806320b66298116101c357806320b662981461026c57806325504777146102815780632cd95940146102a25780633ca5a5f5146102c257600080fd5b80630491b41c146101ea57806308732461146102205780631f9b74e014610241575b600080fd5b61020d6101f8366004612bca565b60ff1660009081526001602052604090205490565b6040519081526020015b60405180910390f35b61023361022e366004612be5565b610597565b604051610217929190612c0f565b61025461024f366004612c49565b6105e0565b6040516001600160601b039091168152602001610217565b61027f61027a366004612cc4565b610632565b005b61029461028f366004612d85565b610959565b604051610217929190612e25565b6102b56102b0366004612e4a565b610c15565b6040516102179190612e76565b61020d6102d0366004612bca565b60ff1660009081526003602052604090205490565b61020d6102f3366004612e4a565b600091825260026020908152604080842060ff93909316845291905290205490565b610254610323366004612e4a565b610cb4565b61020d670de0b6b3a764000081565b61027f610345366004612f7f565b610ccd565b61035d610358366004612d85565b6110e3565b6040516001600160c01b039091168152602001610217565b61039c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610217565b6103bc602081565b60405160ff9091168152602001610217565b6103e16103dc36600461303b565b611240565b604051610217919061308d565b61039c6103fc366004612be5565b6114f5565b61041461040f3660046130cb565b61152d565b60405161021791906130fe565b61043461042f366004612be5565b6115c5565b6040805182516001600160a01b031681526020928301516001600160601b03169281019290925201610217565b61041461046f366004612be5565b61163f565b61027f61048236600461314a565b6116ce565b61027f610495366004613174565b6117c7565b6102546104a8366004612bca565b6000602081905290815260409020546001600160601b031681565b61027f6104d1366004613240565b6118e9565b6102546104e436600461328d565b6119dd565b6102546104f7366004612bca565b611a5b565b61050f61050a3660046132c9565b611aae565b60405163ffffffff9091168152602001610217565b61039c7f000000000000000000000000000000000000000000000000000000000000000081565b610254610559366004613305565b611ac3565b61041461056c366004612e4a565b611b58565b61025461057f3660046132c9565b611c41565b61027f610592366004613347565b611ca2565b600360205281600052604060002081815481106105b357600080fd5b6000918252602090912001546001600160a01b0381169250600160a01b90046001600160601b0316905082565b60ff8216600090815260016020526040812054839061061a5760405162461bcd60e51b8152600401610611906133a4565b60405180910390fd5b60006106268585611e0d565b509250505b5092915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610690573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b491906133f5565b6001600160a01b0316336001600160a01b0316146106e45760405162461bcd60e51b815260040161061190613412565b846107008160ff16600090815260016020526040902054151590565b61071c5760405162461bcd60e51b8152600401610611906133a4565b8380610792576040805162461bcd60e51b81526020600482015260248101919091527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a206e6f20737472617465677920696e64696365732070726f76696465646064820152608401610611565b8281146108075760405162461bcd60e51b815260206004820152603960248201527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a20696e707574206c656e677468206d69736d61746368000000000000006064820152608401610611565b60ff87166000908152600360205260408120905b8281101561094e578585828181106108355761083561348e565b905060200201602081019061084a91906134a4565b8289898481811061085d5761085d61348e565b90506020020135815481106108745761087461348e565b9060005260206000200160000160146101000a8154816001600160601b0302191690836001600160601b031602179055508860ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75838a8a858181106108dd576108dd61348e565b90506020020135815481106108f4576108f461348e565b6000918252602090912001546001600160a01b031688888581811061091b5761091b61348e565b905060200201602081019061093091906134a4565b60405161093e929190612c0f565b60405180910390a260010161081b565b505050505050505050565b606080336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109a45760405162461bcd60e51b8152600401610611906134bf565b6000836001600160401b038111156109be576109be612eee565b6040519080825280602002602001820160405280156109e7578160200160208202803683370190505b5090506000846001600160401b03811115610a0457610a04612eee565b604051908082528060200260200182016040528015610a2d578160200160208202803683370190505b50905060005b85811015610c07576000878783818110610a4f57610a4f61348e565b919091013560f81c60008181526001602052604090205490925015159050610ad75760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a206044820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b6064820152608401610611565b600080610ae4838d611e0d565b9150915080610b815760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a2060448201527f4f70657261746f7220646f6573206e6f74206d656574206d696e696d756d207360648201527f74616b6520726571756972656d656e7420666f722071756f72756d0000000000608482015260a401610611565b6000610b8e8c8585612001565b905082878681518110610ba357610ba361348e565b60200260200101906001600160601b031690816001600160601b031681525050610bcd8482612280565b868681518110610bdf57610bdf61348e565b6001600160601b0390921660209283029190910190910152505060019092019150610a339050565b509097909650945050505050565b600082815260026020908152604080832060ff851684528252808320805482518185028101850190935280835260609492939192909184015b82821015610ca7576000848152602090819020604080516060810182529185015463ffffffff8082168452600160201b82041683850152600160401b90046001600160601b031690820152825260019092019101610c4e565b5050505090505b92915050565b600080610cc18484611b58565b60400151949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4f91906133f5565b6001600160a01b0316336001600160a01b031614610d7f5760405162461bcd60e51b815260040161061190613412565b81610d9b8160ff16600090815260016020526040902054151590565b610db75760405162461bcd60e51b8152600401610611906133a4565b815180610e2c5760405162461bcd60e51b815260206004820152603d60248201527f5374616b6552656769737472792e72656d6f7665537472617465676965733a2060448201527f6e6f20696e646963657320746f2072656d6f76652070726f76696465640000006064820152608401610611565b60ff841660009081526003602090815260408083206004909252822090915b838110156110da578660ff167f31fa2e2cd280c9375e13ffcf3d81e2378100186e4058f8d3ddb690b82dcd31f784888481518110610e8b57610e8b61348e565b602002602001015181548110610ea357610ea361348e565b600091825260209182902001546040516001600160a01b0390911681520160405180910390a28660ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7584888481518110610f0157610f0161348e565b602002602001015181548110610f1957610f1961348e565b600091825260208083209190910154604080516001600160a01b039092168252918101929092520160405180910390a282548390610f5990600190613547565b81548110610f6957610f6961348e565b9060005260206000200183878381518110610f8657610f8661348e565b602002602001015181548110610f9e57610f9e61348e565b600091825260209091208254910180546001600160a01b0319166001600160a01b03909216918217815591546001600160601b03600160a01b9182900416021790558254839080610ff157610ff161355a565b6000828152602081208201600019908101919091550190558154829061101990600190613547565b815481106110295761102961348e565b9060005260206000200160009054906101000a90046001600160a01b03168287838151811061105a5761105a61348e565b6020026020010151815481106110725761107261348e565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550818054806110b0576110b061355a565b600082815260209020810160001990810180546001600160a01b0319169055019055600101610e4b565b50505050505050565b6000336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461112d5760405162461bcd60e51b8152600401610611906134bf565b6000805b8381101561123657600085858381811061114d5761114d61348e565b919091013560f81c600081815260016020526040902054909250151590506111dd5760405162461bcd60e51b815260206004820152603860248201527f5374616b6552656769737472792e7570646174654f70657261746f725374616b60448201527f653a2071756f72756d20646f6573206e6f7420657869737400000000000000006064820152608401610611565b6000806111ea838b611e0d565b915091508061120c5760009150600160ff84161b6001600160c01b0386161794505b60006112198a8585612001565b90506112258482612280565b505060019093019250611131915050565b5095945050505050565b60606000826001600160401b0381111561125c5761125c612eee565b604051908082528060200260200182016040528015611285578160200160208202803683370190505b50905060005b838110156114ea5760008585838181106112a7576112a761348e565b919091013560f81c600081815260016020526040902054909250151590506113465760405162461bcd60e51b815260206004820152604660248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20646f6573206e6f7460648201526508195e1a5cdd60d21b608482015260a401610611565b60ff81166000908152600160205260408120805463ffffffff8a16929061136f5761136f61348e565b60009182526020909120015463ffffffff16111561141b5760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20686173206e6f207360648201527f74616b6520686973746f727920617420626c6f636b4e756d6265720000000000608482015260a401610611565b60ff8116600090815260016020526040812054905b818110156114df5760ff8316600090815260016020819052604090912063ffffffff8b169161145f8486613547565b6114699190613547565b815481106114795761147961348e565b60009182526020909120015463ffffffff16116114d757600161149c8284613547565b6114a69190613547565b8585815181106114b8576114b861348e565b602002602001019063ffffffff16908163ffffffff16815250506114df565b600101611430565b50505060010161128b565b5090505b9392505050565b6004602052816000526040600020818154811061151157600080fd5b6000918252602090912001546001600160a01b03169150829050565b60408051606081018252600080825260208083018290528284018290528582526002815283822060ff881683529052919091208054839081106115725761157261348e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b031691810191909152949350505050565b604080518082019091526000808252602082015260ff831660009081526003602052604090208054839081106115fd576115fd61348e565b6000918252602091829020604080518082019091529101546001600160a01b0381168252600160a01b90046001600160601b0316918101919091529392505050565b604080516060810182526000808252602080830182905282840182905260ff86168252600190529190912080548390811061167c5761167c61348e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b0316918101919091529392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561172c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175091906133f5565b6001600160a01b0316336001600160a01b0316146117805760405162461bcd60e51b815260040161061190613412565b8161179c8160ff16600090815260016020526040902054151590565b6117b85760405162461bcd60e51b8152600401610611906133a4565b6117c283836123f7565b505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461180f5760405162461bcd60e51b8152600401610611906134bf565b60005b818110156118e357600083838381811061182e5761182e61348e565b919091013560f81c600081815260016020526040902054909250151590506118be5760405162461bcd60e51b815260206004820152603760248201527f5374616b6552656769737472792e646572656769737465724f70657261746f7260448201527f3a2071756f72756d20646f6573206e6f742065786973740000000000000000006064820152608401610611565b60006118cc86836000612001565b90506118d88282612280565b505050600101611812565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196b91906133f5565b6001600160a01b0316336001600160a01b03161461199b5760405162461bcd60e51b815260040161061190613412565b816119b78160ff16600090815260016020526040902054151590565b6119d35760405162461bcd60e51b8152600401610611906133a4565b6117c28383612460565b60ff83166000908152600160205260408120805482919084908110611a0457611a0461348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050610cc1818561288e565b60ff81166000908152600160208190526040822080549091611a7c91613547565b81548110611a8c57611a8c61348e565b600091825260209091200154600160401b90046001600160601b031692915050565b6000611abb848484612a08565b949350505050565b600082815260026020908152604080832060ff881684529091528120805482919084908110611af457611af461348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050611b4b818661288e565b6040015195945050505050565b6040805160608082018352600080835260208084018290528385018290528682526002815284822060ff8716835281528482205485519384018652828452908301829052938201819052919291829003611bb5579150610cae9050565b600085815260026020908152604080832060ff881684529091529020611bdc600184613547565b81548110611bec57611bec61348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529250610cae915050565b600083815260026020908152604080832060ff861684529091528120611c68858585612a08565b63ffffffff1681548110611c7e57611c7e61348e565b600091825260209091200154600160401b90046001600160601b0316949350505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611cea5760405162461bcd60e51b8152600401610611906134bf565b60ff831660009081526001602052604090205415611d685760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e696e697469616c697a6551756f72756d3a2060448201527471756f72756d20616c72656164792065786973747360581b6064820152608401610611565b611d728382612460565b611d7c83836123f7565b505060ff166000908152600160208181526040808420815160608101835263ffffffff438116825281850187815293820187815283549687018455928752939095209451949093018054915193516001600160601b0316600160401b02600160401b600160a01b0319948416600160201b0267ffffffffffffffff1990931695909316949094171791909116179055565b600080600080611e2c8660ff1660009081526003602052604090205490565b604080518082019091526000808252602082015290915060ff871660009081526004602081905260408083209051639004134760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692639004134792611ea1928c9201613570565b600060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ee691908101906135d1565b905060005b83811015611fcd5760ff89166000908152600360205260409020805482908110611f1757611f1761348e565b60009182526020808320604080518082019091529201546001600160a01b0381168352600160a01b90046001600160601b0316908201528351909450839083908110611f6557611f6561348e565b60200260200101511115611fc557670de0b6b3a764000083602001516001600160601b0316838381518110611f9c57611f9c61348e565b6020026020010151611fae9190613661565b611fb89190613678565b611fc2908661369a565b94505b600101611eeb565b50505060ff8616600090815260208190526040902054919350506001600160601b03908116908316101590505b9250929050565b600083815260026020908152604080832060ff8616845290915281205481908082036120c757600086815260026020908152604080832060ff891684528252808320815160608101835263ffffffff43811682528185018681526001600160601b03808c16958401958652845460018101865594885295909620915191909201805495519351909416600160401b02600160401b600160a01b0319938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055612226565b600086815260026020908152604080832060ff8916845290915281206120ee600184613547565b815481106120fe576120fe61348e565b600091825260209091200180546001600160601b03600160401b909104811694509091508516830361213657600093505050506114ee565b805463ffffffff43811691160361216e578054600160401b600160a01b031916600160401b6001600160601b03871602178155612224565b805467ffffffff000000001916600160201b4363ffffffff90811682810293909317845560008a815260026020908152604080832060ff8d168452825280832081516060810183529687528683018481526001600160601b038d81169389019384528254600181018455928652939094209651960180549351915196851667ffffffffffffffff1990941693909317931690930291909117600160401b600160a01b031916600160401b93909216929092021790555b505b6040805160ff871681526001600160601b038616602082015287917f2f527d527e95d8fe40aec55377743bb779087da3f6d0d08f12e36444da62327d910160405180910390a26122768285612b6e565b9695505050505050565b60ff8216600090815260016020819052604082208054918391906122a49084613547565b815481106122b4576122b461348e565b906000526020600020019050836000036122e25754600160401b90046001600160601b03169150610cae9050565b805460009061230190600160401b90046001600160601b031686612b86565b825490915063ffffffff43811691160361233c578154600160401b600160a01b031916600160401b6001600160601b038316021782556123ee565b815463ffffffff438116600160201b81810267ffffffff000000001990941693909317855560ff8916600090815260016020818152604080842081516060810183529586528583018581526001600160601b03808b169388019384528254958601835591865292909420945194909201805491519251909316600160401b02600160401b600160a01b031992861690960267ffffffffffffffff19909116939094169290921792909217169190911790555b95945050505050565b60ff82166000818152602081815260409182902080546bffffffffffffffffffffffff19166001600160601b03861690811790915591519182527f26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf910160405180910390a25050565b60008151116124c55760405162461bcd60e51b8152602060048201526038602482015260008051602061374183398151915260448201527f3a206e6f20737472617465676965732070726f766964656400000000000000006064820152608401610611565b805160ff8316600090815260036020908152604090912054906124e883836136ba565b11156125585760405162461bcd60e51b8152602060048201526045602482015260008051602061374183398151915260448201527f3a20657863656564204d41585f5745494748494e475f46554e4354494f4e5f4c60648201526408a9c8ea8960db1b608482015260a401610611565b60005b828110156128875760005b61257082846136ba565b811015612646578482815181106125895761258961348e565b6020026020010151600001516001600160a01b0316600360008860ff1660ff16815260200190815260200160002082815481106125c8576125c861348e565b6000918252602090912001546001600160a01b03160361263e5760405162461bcd60e51b815260206004820152603d602482015260008051602061374183398151915260448201527f3a2063616e6e6f74206164642073616d652073747261746567792032780000006064820152608401610611565b600101612566565b50600084828151811061265b5761265b61348e565b6020026020010151602001516001600160601b0316116126e05760405162461bcd60e51b8152602060048201526046602482015260008051602061374183398151915260448201527f3a2063616e6e6f74206164642073747261746567792077697468207a65726f206064820152651dd95a59da1d60d21b608482015260a401610611565b60ff8516600090815260036020526040902084518590839081106127065761270661348e565b602090810291909101810151825460018101845560009384528284208251928401516001600160601b0316600160a01b026001600160a01b039093169290921791015560ff871682526004905260409020845185908390811061276b5761276b61348e565b6020908102919091018101515182546001810184556000938452919092200180546001600160a01b0319166001600160a01b03909216919091179055835160ff8616907f10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f5404908690849081106127e2576127e261348e565b602090810291909101810151516040516001600160a01b0390911681520160405180910390a28460ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7585838151811061283f5761283f61348e565b60200260200101516000015186848151811061285d5761285d61348e565b602002602001015160200151604051612877929190612c0f565b60405180910390a260010161255b565b5050505050565b816000015163ffffffff168163ffffffff1610156129335760405162461bcd60e51b815260206004820152605660248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a207374616b6555706461746520697320606482015275333937b69030b33a32b910313637b1b5a73ab6b132b960511b608482015260a401610611565b602082015163ffffffff1615806129595750816020015163ffffffff168163ffffffff16105b612a045760405162461bcd60e51b815260206004820152606a60248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a2074686572652069732061206e65776560648201527f72207374616b6555706461746520617661696c61626c65206265666f726520626084820152693637b1b5a73ab6b132b960b11b60a482015260c401610611565b5050565b600083815260026020908152604080832060ff86168452909152812054805b8015612aa957600086815260026020908152604080832060ff89168452909152902063ffffffff851690612a5c600184613547565b81548110612a6c57612a6c61348e565b60009182526020909120015463ffffffff1611612a9757612a8e600182613547565b925050506114ee565b80612aa1816136cd565b915050612a27565b5060405162461bcd60e51b815260206004820152608160248201527f5374616b6552656769737472792e5f6765745374616b65557064617465496e6460448201527f6578466f724f70657261746f724174426c6f636b4e756d6265723a206e6f207360648201527f74616b652075706461746520666f756e6420666f72206f70657261746f72496460848201527f20616e642071756f72756d4e756d62657220617420626c6f636b206e756d626560a4820152603960f91b60c482015260e401610611565b60006114ee6001600160601b038085169084166136e4565b600080821215612baa57612b9982613704565b612ba39084613720565b9050610cae565b612ba3828461369a565b803560ff81168114612bc557600080fd5b919050565b600060208284031215612bdc57600080fd5b6114ee82612bb4565b60008060408385031215612bf857600080fd5b612c0183612bb4565b946020939093013593505050565b6001600160a01b039290921682526001600160601b0316602082015260400190565b6001600160a01b0381168114612c4657600080fd5b50565b60008060408385031215612c5c57600080fd5b612c6583612bb4565b91506020830135612c7581612c31565b809150509250929050565b60008083601f840112612c9257600080fd5b5081356001600160401b03811115612ca957600080fd5b6020830191508360208260051b8501011115611ffa57600080fd5b600080600080600060608688031215612cdc57600080fd5b612ce586612bb4565b945060208601356001600160401b0380821115612d0157600080fd5b612d0d89838a01612c80565b90965094506040880135915080821115612d2657600080fd5b50612d3388828901612c80565b969995985093965092949392505050565b60008083601f840112612d5657600080fd5b5081356001600160401b03811115612d6d57600080fd5b602083019150836020828501011115611ffa57600080fd5b60008060008060608587031215612d9b57600080fd5b8435612da681612c31565b93506020850135925060408501356001600160401b03811115612dc857600080fd5b612dd487828801612d44565b95989497509550505050565b60008151808452602080850194506020840160005b83811015612e1a5781516001600160601b031687529582019590820190600101612df5565b509495945050505050565b604081526000612e386040830185612de0565b82810360208401526123ee8185612de0565b60008060408385031215612e5d57600080fd5b82359150612e6d60208401612bb4565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015612ee257612ecf83855163ffffffff808251168352806020830151166020840152506001600160601b0360408201511660408301525050565b9284019260609290920191600101612e92565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612f2657612f26612eee565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612f5457612f54612eee565b604052919050565b60006001600160401b03821115612f7557612f75612eee565b5060051b60200190565b60008060408385031215612f9257600080fd5b612f9b83612bb4565b91506020808401356001600160401b03811115612fb757600080fd5b8401601f81018613612fc857600080fd5b8035612fdb612fd682612f5c565b612f2c565b81815260059190911b82018301908381019088831115612ffa57600080fd5b928401925b8284101561301857833582529284019290840190612fff565b80955050505050509250929050565b803563ffffffff81168114612bc557600080fd5b60008060006040848603121561305057600080fd5b61305984613027565b925060208401356001600160401b0381111561307457600080fd5b61308086828701612d44565b9497909650939450505050565b6020808252825182820181905260009190848201906040850190845b81811015612ee257835163ffffffff16835292840192918401916001016130a9565b6000806000606084860312156130e057600080fd5b6130e984612bb4565b95602085013595506040909401359392505050565b815163ffffffff9081168252602080840151909116908201526040808301516001600160601b03169082015260608101610cae565b80356001600160601b0381168114612bc557600080fd5b6000806040838503121561315d57600080fd5b61316683612bb4565b9150612e6d60208401613133565b60008060006040848603121561318957600080fd5b8335925060208401356001600160401b0381111561307457600080fd5b600082601f8301126131b757600080fd5b813560206131c7612fd683612f5c565b82815260069290921b840181019181810190868411156131e657600080fd5b8286015b8481101561323557604081890312156132035760008081fd5b61320b612f04565b813561321681612c31565b8152613223828601613133565b818601528352918301916040016131ea565b509695505050505050565b6000806040838503121561325357600080fd5b61325c83612bb4565b915060208301356001600160401b0381111561327757600080fd5b613283858286016131a6565b9150509250929050565b6000806000606084860312156132a257600080fd5b6132ab84612bb4565b92506132b960208501613027565b9150604084013590509250925092565b6000806000606084860312156132de57600080fd5b833592506132ee60208501612bb4565b91506132fc60408501613027565b90509250925092565b6000806000806080858703121561331b57600080fd5b61332485612bb4565b935061333260208601613027565b93969395505050506040820135916060013590565b60008060006060848603121561335c57600080fd5b61336584612bb4565b925061337360208501613133565b915060408401356001600160401b0381111561338e57600080fd5b61339a868287016131a6565b9150509250925092565b60208082526031908201527f5374616b6552656769737472792e71756f72756d4578697374733a2071756f726040820152701d5b48191bd95cc81b9bdd08195e1a5cdd607a1b606082015260800190565b60006020828403121561340757600080fd5b81516114ee81612c31565b60208082526056908201527f5374616b6552656769737472792e6f6e6c79436f6f7264696e61746f724f776e60408201527f65723a2063616c6c6572206973206e6f7420746865206f776e6572206f6620746060820152753432903932b3b4b9ba393ca1b7b7b93234b730ba37b960511b608082015260a00190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156134b657600080fd5b6114ee82613133565b6020808252604c908201527f5374616b6552656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865205265676973747260608201526b3ca1b7b7b93234b730ba37b960a11b608082015260a00190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610cae57610cae613531565b634e487b7160e01b600052603160045260246000fd5b60006040820160018060a01b038086168452602060406020860152828654808552606087019150876000526020600020945060005b818110156135c35785548516835260019586019592840192016135a5565b509098975050505050505050565b600060208083850312156135e457600080fd5b82516001600160401b038111156135fa57600080fd5b8301601f8101851361360b57600080fd5b8051613619612fd682612f5c565b81815260059190911b8201830190838101908783111561363857600080fd5b928401925b828410156136565783518252928401929084019061363d565b979650505050505050565b8082028115828204841417610cae57610cae613531565b60008261369557634e487b7160e01b600052601260045260246000fd5b500490565b6001600160601b0381811683821601908082111561062b5761062b613531565b80820180821115610cae57610cae613531565b6000816136dc576136dc613531565b506000190190565b818103600083128015838313168383128216171561062b5761062b613531565b6000600160ff1b820161371957613719613531565b5060000390565b6001600160601b0382811682821603908082111561062b5761062b61353156fe5374616b6552656769737472792e5f6164645374726174656779506172616d73a264697066735822122097d12aad41a1525b2e55ced950ca7ae6bee8f79b4b8e98006e0de01a1b18795f64736f6c6343000818003300000000000000000000000028c486660aff4c3ffc671cb72ff36fea214e8de100000000000000000000000039053d51b77dc0d36036fc1fcc8cb819df8ef37a