{"abi":[{"type":"constructor","inputs":[{"name":"_delegationManager","type":"address","internalType":"contract IDelegationManager"}],"stateMutability":"nonpayable"},{"type":"function","name":"deregisterOperator","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getLastCheckpointOperatorWeight","inputs":[{"name":"_operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLastCheckpointThresholdWeight","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLastCheckpointThresholdWeightAtBlock","inputs":[{"name":"_blockNumber","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLastCheckpointTotalWeight","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLastCheckpointTotalWeightAtBlock","inputs":[{"name":"_blockNumber","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getOperatorWeight","inputs":[{"name":"_operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getOperatorWeightAtBlock","inputs":[{"name":"_operator","type":"address","internalType":"address"},{"name":"_blockNumber","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_serviceManager","type":"address","internalType":"address"},{"name":"_thresholdWeight","type":"uint256","internalType":"uint256"},{"name":"_quorum","type":"tuple","internalType":"struct Quorum","components":[{"name":"strategies","type":"tuple[]","internalType":"struct StrategyParams[]","components":[{"name":"strategy","type":"address","internalType":"contract IStrategy"},{"name":"multiplier","type":"uint96","internalType":"uint96"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isValidSignature","inputs":[{"name":"_dataHash","type":"bytes32","internalType":"bytes32"},{"name":"_signatureData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"minimumWeight","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"operatorRegistered","inputs":[{"name":"_operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"quorum","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Quorum","components":[{"name":"strategies","type":"tuple[]","internalType":"struct StrategyParams[]","components":[{"name":"strategy","type":"address","internalType":"contract IStrategy"},{"name":"multiplier","type":"uint96","internalType":"uint96"}]}]}],"stateMutability":"view"},{"type":"function","name":"registerOperatorWithSignature","inputs":[{"name":"_operator","type":"address","internalType":"address"},{"name":"_operatorSignature","type":"tuple","internalType":"struct ISignatureUtils.SignatureWithSaltAndExpiry","components":[{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"expiry","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateMinimumWeight","inputs":[{"name":"_newMinimumWeight","type":"uint256","internalType":"uint256"},{"name":"_operators","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateOperators","inputs":[{"name":"_operators","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateOperatorsForQuorum","inputs":[{"name":"operatorsPerQuorum","type":"address[][]","internalType":"address[][]"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateQuorumConfig","inputs":[{"name":"_quorum","type":"tuple","internalType":"struct Quorum","components":[{"name":"strategies","type":"tuple[]","internalType":"struct StrategyParams[]","components":[{"name":"strategy","type":"address","internalType":"contract IStrategy"},{"name":"multiplier","type":"uint96","internalType":"uint96"}]}]},{"name":"_operators","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateStakeThreshold","inputs":[{"name":"_thresholdWeight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"MinimumWeightUpdated","inputs":[{"name":"_old","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"_new","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorDeregistered","inputs":[{"name":"_operator","type":"address","indexed":true,"internalType":"address"},{"name":"_avs","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorRegistered","inputs":[{"name":"_operator","type":"address","indexed":true,"internalType":"address"},{"name":"_avs","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorWeightUpdated","inputs":[{"name":"_operator","type":"address","indexed":true,"internalType":"address"},{"name":"oldWeight","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"newWeight","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"QuorumUpdated","inputs":[{"name":"_old","type":"tuple","indexed":false,"internalType":"struct Quorum","components":[{"name":"strategies","type":"tuple[]","internalType":"struct StrategyParams[]","components":[{"name":"strategy","type":"address","internalType":"contract IStrategy"},{"name":"multiplier","type":"uint96","internalType":"uint96"}]}]},{"name":"_new","type":"tuple","indexed":false,"internalType":"struct Quorum","components":[{"name":"strategies","type":"tuple[]","internalType":"struct StrategyParams[]","components":[{"name":"strategy","type":"address","internalType":"contract IStrategy"},{"name":"multiplier","type":"uint96","internalType":"uint96"}]}]}],"anonymous":false},{"type":"event","name":"ThresholdWeightUpdated","inputs":[{"name":"_thresholdWeight","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"TotalWeightUpdated","inputs":[{"name":"oldTotalWeight","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"newTotalWeight","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"UpdateMinimumWeight","inputs":[{"name":"oldMinimumWeight","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"newMinimumWeight","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"InsufficientSignedStake","inputs":[]},{"type":"error","name":"InsufficientWeight","inputs":[]},{"type":"error","name":"InvalidLength","inputs":[]},{"type":"error","name":"InvalidQuorum","inputs":[]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"InvalidSignedWeight","inputs":[]},{"type":"error","name":"InvalidThreshold","inputs":[]},{"type":"error","name":"LengthMismatch","inputs":[]},{"type":"error","name":"MustUpdateAllOperators","inputs":[]},{"type":"error","name":"NotSorted","inputs":[]},{"type":"error","name":"OperatorAlreadyRegistered","inputs":[]},{"type":"error","name":"OperatorNotRegistered","inputs":[]}],"bytecode":{"object":"0x60a06040523480156200001157600080fd5b50604051620026e1380380620026e1833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b60805161264d62000094600039600061063a015261264d6000f3fe608060405234801561001057600080fd5b50600436106101415760003560e01c8063696255be116100b857806398ec1ac91161007c57806398ec1ac914610282578063ab11899514610295578063b933fa74146102a8578063dec5d1f6146102b0578063ec7fbb31146102c3578063f2fde38b146102ff57600080fd5b8063696255be14610231578063715018a614610244578063857dc1901461024c5780638da5cb5b14610254578063955f2d901461026f57600080fd5b80631e4cd85e1161010a5780631e4cd85e146101d5578063314f3a49146101e85780633b242e4a146101f057806340bf2fb7146102035780635140a5481461020b5780635ef533291461021e57600080fd5b8062cf2ab5146101465780630a601a121461015b5780630dba33941461016e5780631626ba7e146101945780631703a018146101c0575b600080fd5b610159610154366004611bae565b610312565b005b610159610169366004611c62565b61031e565b61018161017c366004611d1f565b61032c565b6040519081526020015b60405180910390f35b6101a76101a2366004611d3c565b610348565b6040516001600160e01b0319909116815260200161018b565b6101c8610386565b60405161018b9190611de5565b6101816101e3366004611d1f565b610419565b61018161042f565b6101816101fe366004611df8565b610440565b606754610181565b610159610219366004611e15565b610461565b61015961022c366004611ede565b610484565b61015961023f366004611ef7565b610495565b6101596104af565b6101596104c3565b6033546040516001600160a01b03909116815260200161018b565b61018161027d366004611f33565b6104cc565b610181610290366004611df8565b6104fe565b6101596102a336600461204d565b610751565b61018161086d565b6101596102be3660046120a5565b610879565b6102ef6102d1366004611df8565b6001600160a01b03166000908152606d602052604090205460ff1690565b604051901515815260200161018b565b61015961030d366004611df8565b61088a565b61031b81610900565b50565b610328828261094d565b5050565b6000610342606a63ffffffff80851690610a7a16565b92915050565b6000806000808480602001905181019061036291906121e8565b92509250925061037486848484610b89565b50630b135d3f60e11b95945050505050565b6040805160208101909152606081526040805160668054602081810284018501855283018181529293919284929091849160009085015b8282101561040c57600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b90046001600160601b0316818301528252600190920191016103bd565b5050505081525050905090565b6000610342606b63ffffffff80851690610a7a16565b600061043b606a610c2f565b905090565b6001600160a01b0381166000908152606c6020526040812061034290610c2f565b61032882600081518110610477576104776122bc565b6020026020010151610c8b565b61048c610cae565b61031b81610d08565b61049d610cae565b6104a682610d4b565b61032881610900565b6104b7610cae565b6104c16000610d91565b565b6104c133610de3565b6001600160a01b0382166000908152606c602052604081206104f79063ffffffff80851690610a7a16565b9392505050565b6000806066600001805480602002602001604051908101604052809291908181526020016000905b8282101561057557600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b90046001600160601b031681830152825260019092019101610526565b50505050905060008082516001600160401b0381111561059757610597611a6e565b6040519080825280602002602001820160405280156105c0578160200160208202803683370190505b50905060005b835181101561061f578381815181106105e1576105e16122bc565b6020026020010151600001518282815181106105ff576105ff6122bc565b6001600160a01b03909216602092830291909101909101526001016105c6565b50604051639004134760e01b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063900413479061067190899086906004016122d2565b600060405180830381865afa15801561068e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106b6919081019061232e565b905060005b8451811015610723578481815181106106d6576106d66122bc565b6020026020010151602001516001600160601b03168282815181106106fd576106fd6122bc565b602002602001015161070f91906123d4565b61071990856123eb565b93506001016106bb565b50610730612710846123fe565b92506067548310610745575090949350505050565b50600095945050505050565b600054610100900460ff16158080156107715750600054600160ff909116105b8061078b5750303b15801561078b575060005460ff166001145b6107f35760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610816576000805461ff0019166101001790555b610821848484610f06565b8015610867576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b600061043b606b610c2f565b610881610cae565b6104a682610f67565b610892610cae565b6001600160a01b0381166108f75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107ea565b61031b81610d91565b6000805b82518110156109435761092f838281518110610922576109226122bc565b60200260200101516110be565b6109399083612420565b9150600101610904565b50610867816111e7565b6001600160a01b0382166000908152606d602052604090205460ff1615610987576040516342ee68b560e01b815260040160405180910390fd5b6065805490600061099783612448565b90915550506001600160a01b0382166000908152606d60205260408120805460ff191660011790556109c8836110be565b90506109d3816111e7565b5050606854604051639926ee7d60e01b81526001600160a01b0390911690639926ee7d90610a07908690869060040161248d565b600060405180830381600087803b158015610a2157600080fd5b505af1158015610a35573d6000803e3d6000fd5b50506068546040516001600160a01b03918216935090861691507fa453db612af59e5521d6ab9284dc3e2d06af286eb1b1b7b771fce4716c19f2c190600090a3505050565b6000438210610acb5760405162461bcd60e51b815260206004820181905260248201527f436865636b706f696e74733a20626c6f636b206e6f7420796574206d696e656460448201526064016107ea565b825460005b81811015610b30576000610ae48284611253565b905084866000018281548110610afc57610afc6122bc565b60009182526020909120015463ffffffff161115610b1c57809250610b2a565b610b278160016123eb565b91505b50610ad0565b8115610b745784610b426001846124d8565b81548110610b5257610b526122bc565b60009182526020909120015464010000000090046001600160e01b0316610b77565b60005b6001600160e01b031695945050505050565b600083519050600080610b9d83865161126e565b60005b83811015610c1b576000878281518110610bbc57610bbc6122bc565b60200260200101519050610bd084826112b2565b610bf4818a898581518110610be757610be76122bc565b60200260200101516112e4565b8093506000610c038288611315565b9050610c0f81856123eb565b93505050600101610ba0565b50610c26818561137c565b50505050505050565b80546000908015610c785782610c466001836124d8565b81548110610c5657610c566122bc565b60009182526020909120015464010000000090046001600160e01b0316610c7b565b60005b6001600160e01b03169392505050565b6065548151146103125760405163169efb5b60e11b815260040160405180910390fd5b6033546001600160a01b031633146104c15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107ea565b610d13606b826113d8565b50506040518181527f9324f7e5a7c0288808a634ccde44b8e979676474b22e29ee9dd569b55e791a4b9060200160405180910390a150565b606780549082905560408051828152602081018490527f713ca53b88d6eb63f5b1854cb8cbdd736ec51eda225e46791aa9298b0160648f91015b60405180910390a15050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0381166000908152606d602052604090205460ff16610e1c576040516325ec6c1f60e01b815260040160405180910390fd5b60658054906000610e2c836124eb565b90915550506001600160a01b0381166000908152606d60205260408120805460ff19169055610e5a826110be565b9050610e65816111e7565b50506068546040516351b27a6d60e11b81526001600160a01b0384811660048301529091169063a364f4da90602401600060405180830381600087803b158015610eae57600080fd5b505af1158015610ec2573d6000803e3d6000fd5b50506068546040516001600160a01b03918216935090851691507f31e0adfec71bccee37b6e83a90c2fedb17d8f1693fee863c4771e7bfe2aed58090600090a35050565b600054610100900460ff16610f2d5760405162461bcd60e51b81526004016107ea90612502565b606880546001600160a01b0319166001600160a01b038516179055610f5182610d08565b610f5a81610f67565b610f62611503565b505050565b610f7081611532565b610f8d5760405163d173577960e01b815260040160405180910390fd5b60408051606680546020818102840185018552830181815260009484928491879085015b8282101561100057600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b90046001600160601b031681830152825260019092019101610fb1565b5050509152509091506066905060006110198282611a40565b505060005b82515181101561108c57825180516066919083908110611040576110406122bc565b602090810291909101810151825460018181018555600094855293839020825192909301516001600160601b0316600160a01b026001600160a01b03909216919091179101550161101e565b507f23aad4e61744ece164130aa415c1616e80136b0f0770e56589438b90b269265e8183604051610d8592919061254d565b6001600160a01b0381166000908152606c602052604081208190819081906110e590610c2f565b6001600160a01b0386166000908152606d602052604090205490915060ff1661114d57611112818461257b565b9250826000036111255750909392505050565b6001600160a01b0385166000908152606c60205260408120611146916113d8565b505061119a565b611156856104fe565b9150611162818361257b565b9250826000036111755750909392505050565b6001600160a01b0385166000908152606c6020526040902061119790836113d8565b50505b60408051828152602081018490526001600160a01b038716917f88770dc862e47a7ed586907857eb1b75e4c5ffc8b707c7ee10eb74d6885fe594910160405180910390a250909392505050565b6000806111f4606a610c2f565b915060006112028484612420565b9150819050611212606a826113d8565b505060408051848152602081018490527f86dcf86b12dfeedea74ae9300dbdaa193bcce5809369c8177ea2f4eaaa65729b910160405180910390a150915091565b600061126260028484186123fe565b6104f7908484166123eb565b808214611291576040516001621398b960e31b0319815260040160405180910390fd5b816000036103285760405163251f56a160e21b815260040160405180910390fd5b806001600160a01b0316826001600160a01b0316106103285760405163ba50f91160e01b815260040160405180910390fd5b6112f86001600160a01b03841683836115f8565b610f6257604051638baa579f60e01b815260040160405180910390fd5b600063fffffffe1963ffffffff831601611351576001600160a01b0383166000908152606c6020526040902061134a90610c2f565b9050610342565b6001600160a01b0383166000908152606c6020526040902061134a9063ffffffff80851690610a7a16565b600061138782611744565b9050808311156113aa57604051634b05a0f760e11b815260040160405180910390fd5b60006113b58361177b565b9050838111156108675760405163e121632f60e01b815260040160405180910390fd5b81546000908190816113e986610c2f565b9050600082118015611427575043866114036001856124d8565b81548110611413576114136122bc565b60009182526020909120015463ffffffff16145b1561148757611435856117ad565b866114416001856124d8565b81548110611451576114516122bc565b9060005260206000200160000160046101000a8154816001600160e01b0302191690836001600160e01b031602179055506114f5565b85600001604051806040016040528061149f4361181a565b63ffffffff1681526020016114b3886117ad565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b9250839150505b9250929050565b600054610100900460ff1661152a5760405162461bcd60e51b81526004016107ea90612502565b6104c161187f565b8051600090818080805b84518110156115d657848181518110611557576115576122bc565b6020026020010151600001519250826001600160a01b0316846001600160a01b0316106115975760405163ba50f91160e01b815260040160405180910390fd5b8293508481815181106115ac576115ac6122bc565b6020026020010151602001516001600160601b0316826115cc91906123eb565b915060010161153c565b5061271081146115ec5750600095945050505050565b50600195945050505050565b600080600061160785856118af565b90925090506000816004811115611620576116206125a2565b14801561163e5750856001600160a01b0316826001600160a01b0316145b1561164e576001925050506104f7565b600080876001600160a01b0316631626ba7e60e01b88886040516024016116769291906125b8565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516116b491906125d1565b600060405180830381855afa9150503d80600081146116ef576040519150601f19603f3d011682016040523d82523d6000602084013e6116f4565b606091505b5091509150818015611707575080516020145b801561173857508051630b135d3f60e11b9061172c90830160209081019084016125ed565b6001600160e01b031916145b98975050505050505050565b600063fffffffe1963ffffffff83160161176257610342606a610c2f565b610342606a63ffffffff80851690610a7a16565b919050565b600063fffffffe1963ffffffff83160161179957610342606b610c2f565b610342606b63ffffffff80851690610a7a16565b60006001600160e01b038211156118165760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b60648201526084016107ea565b5090565b600063ffffffff8211156118165760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b60648201526084016107ea565b600054610100900460ff166118a65760405162461bcd60e51b81526004016107ea90612502565b6104c133610d91565b60008082516041036118e55760208301516040840151606085015160001a6118d98782858561191a565b945094505050506114fc565b825160400361190e5760208301516040840151611903868383611a07565b9350935050506114fc565b506000905060026114fc565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561195157506000905060036119fe565b8460ff16601b1415801561196957508460ff16601c14155b1561197a57506000905060046119fe565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156119ce573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166119f7576000600192509250506119fe565b9150600090505b94509492505050565b6000806001600160ff1b03831681611a2460ff86901c601b6123eb565b9050611a328782888561191a565b935093505050935093915050565b508054600082559060005260206000209081019061031b91905b808211156118165760008155600101611a5a565b634e487b7160e01b600052604160045260246000fd5b604051602081016001600160401b0381118282101715611aa657611aa6611a6e565b60405290565b604080519081016001600160401b0381118282101715611aa657611aa6611a6e565b604051601f8201601f191681016001600160401b0381118282101715611af657611af6611a6e565b604052919050565b60006001600160401b03821115611b1757611b17611a6e565b5060051b60200190565b6001600160a01b038116811461031b57600080fd5b600082601f830112611b4757600080fd5b81356020611b5c611b5783611afe565b611ace565b8083825260208201915060208460051b870101935086841115611b7e57600080fd5b602086015b84811015611ba3578035611b9681611b21565b8352918301918301611b83565b509695505050505050565b600060208284031215611bc057600080fd5b81356001600160401b03811115611bd657600080fd5b611be284828501611b36565b949350505050565b60006001600160401b03821115611c0357611c03611a6e565b50601f01601f191660200190565b600082601f830112611c2257600080fd5b8135611c30611b5782611bea565b818152846020838601011115611c4557600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215611c7557600080fd5b8235611c8081611b21565b915060208301356001600160401b0380821115611c9c57600080fd5b9084019060608287031215611cb057600080fd5b604051606081018181108382111715611ccb57611ccb611a6e565b604052823582811115611cdd57600080fd5b611ce988828601611c11565b82525060208301356020820152604083013560408201528093505050509250929050565b63ffffffff8116811461031b57600080fd5b600060208284031215611d3157600080fd5b81356104f781611d0d565b60008060408385031215611d4f57600080fd5b8235915060208301356001600160401b03811115611d6c57600080fd5b611d7885828601611c11565b9150509250929050565b8051602080845281518482018190526000926040919083019082870190855b81811015611dd857835180516001600160a01b031684528601516001600160601b0316868401529285019291840191600101611da1565b5090979650505050505050565b6020815260006104f76020830184611d82565b600060208284031215611e0a57600080fd5b81356104f781611b21565b60008060408385031215611e2857600080fd5b82356001600160401b0380821115611e3f57600080fd5b818501915085601f830112611e5357600080fd5b81356020611e63611b5783611afe565b82815260059290921b84018101918181019089841115611e8257600080fd5b8286015b84811015611eba57803586811115611e9e5760008081fd5b611eac8c86838b0101611b36565b845250918301918301611e86565b5096505086013592505080821115611ed157600080fd5b50611d7885828601611c11565b600060208284031215611ef057600080fd5b5035919050565b60008060408385031215611f0a57600080fd5b8235915060208301356001600160401b03811115611f2757600080fd5b611d7885828601611b36565b60008060408385031215611f4657600080fd5b8235611f5181611b21565b91506020830135611f6181611d0d565b809150509250929050565b60006020808385031215611f7f57600080fd5b611f87611a84565b915082356001600160401b03811115611f9f57600080fd5b8301601f81018513611fb057600080fd5b8035611fbe611b5782611afe565b81815260069190911b82018301908381019087831115611fdd57600080fd5b928401925b828410156120405760408489031215611ffb5760008081fd5b612003611aac565b843561200e81611b21565b8152848601356001600160601b038116811461202a5760008081fd5b8187015282526040939093019290840190611fe2565b8552509295945050505050565b60008060006060848603121561206257600080fd5b833561206d81611b21565b92506020840135915060408401356001600160401b0381111561208f57600080fd5b61209b86828701611f6c565b9150509250925092565b600080604083850312156120b857600080fd5b82356001600160401b03808211156120cf57600080fd5b6120db86838701611f6c565b935060208501359150808211156120f157600080fd5b50611d7885828601611b36565b60005b83811015612119578181015183820152602001612101565b50506000910152565b600082601f83011261213357600080fd5b81516020612143611b5783611afe565b82815260059290921b8401810191818101908684111561216257600080fd5b8286015b84811015611ba35780516001600160401b038111156121855760008081fd5b8701603f810189136121975760008081fd5b8481015160406121a9611b5783611bea565b8281528b828486010111156121be5760008081fd5b6121cd838983018487016120fe565b8652505050918301918301612166565b805161177681611d0d565b6000806000606084860312156121fd57600080fd5b83516001600160401b038082111561221457600080fd5b818601915086601f83011261222857600080fd5b81516020612238611b5783611afe565b82815260059290921b8401810191818101908a84111561225757600080fd5b948201945b8386101561227e57855161226f81611b21565b8252948201949082019061225c565b9189015191975090935050508082111561229757600080fd5b506122a486828701612122565b9250506122b3604085016121dd565b90509250925092565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038381168252604060208084018290528451918401829052600092858201929091906060860190855b81811015612320578551851683529483019491830191600101612302565b509098975050505050505050565b6000602080838503121561234157600080fd5b82516001600160401b0381111561235757600080fd5b8301601f8101851361236857600080fd5b8051612376611b5782611afe565b81815260059190911b8201830190838101908783111561239557600080fd5b928401925b828410156123b35783518252928401929084019061239a565b979650505050505050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610342576103426123be565b80820180821115610342576103426123be565b60008261241b57634e487b7160e01b600052601260045260246000fd5b500490565b8082018281126000831280158216821582161715612440576124406123be565b505092915050565b60006001820161245a5761245a6123be565b5060010190565b600081518084526124798160208601602086016120fe565b601f01601f19169290920160200192915050565b60018060a01b03831681526040602082015260008251606060408401526124b760a0840182612461565b90506020840151606084015260408401516080840152809150509392505050565b81810381811115610342576103426123be565b6000816124fa576124fa6123be565b506000190190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6040815260006125606040830185611d82565b82810360208401526125728185611d82565b95945050505050565b818103600083128015838313168383128216171561259b5761259b6123be565b5092915050565b634e487b7160e01b600052602160045260246000fd5b828152604060208201526000611be26040830184612461565b600082516125e38184602087016120fe565b9190910192915050565b6000602082840312156125ff57600080fd5b81516001600160e01b0319811681146104f757600080fdfea2646970667358221220483716b837d4d01115f634990b93cdcc240ed08cb379a2802ab77f07e11f1c3564736f6c63430008180033","sourceMap":"1122:21878:67:-:0;;;1525:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1959:39:68;;;1122:21878:67;;14:317:99;111:6;164:2;152:9;143:7;139:23;135:32;132:52;;;180:1;177;170:12;132:52;206:16;;-1:-1:-1;;;;;251:31:99;;241:42;;231:70;;297:1;294;287:12;231:70;320:5;14:317;-1:-1:-1;;;14:317:99:o;:::-;1122:21878:67;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101415760003560e01c8063696255be116100b857806398ec1ac91161007c57806398ec1ac914610282578063ab11899514610295578063b933fa74146102a8578063dec5d1f6146102b0578063ec7fbb31146102c3578063f2fde38b146102ff57600080fd5b8063696255be14610231578063715018a614610244578063857dc1901461024c5780638da5cb5b14610254578063955f2d901461026f57600080fd5b80631e4cd85e1161010a5780631e4cd85e146101d5578063314f3a49146101e85780633b242e4a146101f057806340bf2fb7146102035780635140a5481461020b5780635ef533291461021e57600080fd5b8062cf2ab5146101465780630a601a121461015b5780630dba33941461016e5780631626ba7e146101945780631703a018146101c0575b600080fd5b610159610154366004611bae565b610312565b005b610159610169366004611c62565b61031e565b61018161017c366004611d1f565b61032c565b6040519081526020015b60405180910390f35b6101a76101a2366004611d3c565b610348565b6040516001600160e01b0319909116815260200161018b565b6101c8610386565b60405161018b9190611de5565b6101816101e3366004611d1f565b610419565b61018161042f565b6101816101fe366004611df8565b610440565b606754610181565b610159610219366004611e15565b610461565b61015961022c366004611ede565b610484565b61015961023f366004611ef7565b610495565b6101596104af565b6101596104c3565b6033546040516001600160a01b03909116815260200161018b565b61018161027d366004611f33565b6104cc565b610181610290366004611df8565b6104fe565b6101596102a336600461204d565b610751565b61018161086d565b6101596102be3660046120a5565b610879565b6102ef6102d1366004611df8565b6001600160a01b03166000908152606d602052604090205460ff1690565b604051901515815260200161018b565b61015961030d366004611df8565b61088a565b61031b81610900565b50565b610328828261094d565b5050565b6000610342606a63ffffffff80851690610a7a16565b92915050565b6000806000808480602001905181019061036291906121e8565b92509250925061037486848484610b89565b50630b135d3f60e11b95945050505050565b6040805160208101909152606081526040805160668054602081810284018501855283018181529293919284929091849160009085015b8282101561040c57600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b90046001600160601b0316818301528252600190920191016103bd565b5050505081525050905090565b6000610342606b63ffffffff80851690610a7a16565b600061043b606a610c2f565b905090565b6001600160a01b0381166000908152606c6020526040812061034290610c2f565b61032882600081518110610477576104776122bc565b6020026020010151610c8b565b61048c610cae565b61031b81610d08565b61049d610cae565b6104a682610d4b565b61032881610900565b6104b7610cae565b6104c16000610d91565b565b6104c133610de3565b6001600160a01b0382166000908152606c602052604081206104f79063ffffffff80851690610a7a16565b9392505050565b6000806066600001805480602002602001604051908101604052809291908181526020016000905b8282101561057557600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b90046001600160601b031681830152825260019092019101610526565b50505050905060008082516001600160401b0381111561059757610597611a6e565b6040519080825280602002602001820160405280156105c0578160200160208202803683370190505b50905060005b835181101561061f578381815181106105e1576105e16122bc565b6020026020010151600001518282815181106105ff576105ff6122bc565b6001600160a01b03909216602092830291909101909101526001016105c6565b50604051639004134760e01b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063900413479061067190899086906004016122d2565b600060405180830381865afa15801561068e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106b6919081019061232e565b905060005b8451811015610723578481815181106106d6576106d66122bc565b6020026020010151602001516001600160601b03168282815181106106fd576106fd6122bc565b602002602001015161070f91906123d4565b61071990856123eb565b93506001016106bb565b50610730612710846123fe565b92506067548310610745575090949350505050565b50600095945050505050565b600054610100900460ff16158080156107715750600054600160ff909116105b8061078b5750303b15801561078b575060005460ff166001145b6107f35760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610816576000805461ff0019166101001790555b610821848484610f06565b8015610867576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b600061043b606b610c2f565b610881610cae565b6104a682610f67565b610892610cae565b6001600160a01b0381166108f75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107ea565b61031b81610d91565b6000805b82518110156109435761092f838281518110610922576109226122bc565b60200260200101516110be565b6109399083612420565b9150600101610904565b50610867816111e7565b6001600160a01b0382166000908152606d602052604090205460ff1615610987576040516342ee68b560e01b815260040160405180910390fd5b6065805490600061099783612448565b90915550506001600160a01b0382166000908152606d60205260408120805460ff191660011790556109c8836110be565b90506109d3816111e7565b5050606854604051639926ee7d60e01b81526001600160a01b0390911690639926ee7d90610a07908690869060040161248d565b600060405180830381600087803b158015610a2157600080fd5b505af1158015610a35573d6000803e3d6000fd5b50506068546040516001600160a01b03918216935090861691507fa453db612af59e5521d6ab9284dc3e2d06af286eb1b1b7b771fce4716c19f2c190600090a3505050565b6000438210610acb5760405162461bcd60e51b815260206004820181905260248201527f436865636b706f696e74733a20626c6f636b206e6f7420796574206d696e656460448201526064016107ea565b825460005b81811015610b30576000610ae48284611253565b905084866000018281548110610afc57610afc6122bc565b60009182526020909120015463ffffffff161115610b1c57809250610b2a565b610b278160016123eb565b91505b50610ad0565b8115610b745784610b426001846124d8565b81548110610b5257610b526122bc565b60009182526020909120015464010000000090046001600160e01b0316610b77565b60005b6001600160e01b031695945050505050565b600083519050600080610b9d83865161126e565b60005b83811015610c1b576000878281518110610bbc57610bbc6122bc565b60200260200101519050610bd084826112b2565b610bf4818a898581518110610be757610be76122bc565b60200260200101516112e4565b8093506000610c038288611315565b9050610c0f81856123eb565b93505050600101610ba0565b50610c26818561137c565b50505050505050565b80546000908015610c785782610c466001836124d8565b81548110610c5657610c566122bc565b60009182526020909120015464010000000090046001600160e01b0316610c7b565b60005b6001600160e01b03169392505050565b6065548151146103125760405163169efb5b60e11b815260040160405180910390fd5b6033546001600160a01b031633146104c15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107ea565b610d13606b826113d8565b50506040518181527f9324f7e5a7c0288808a634ccde44b8e979676474b22e29ee9dd569b55e791a4b9060200160405180910390a150565b606780549082905560408051828152602081018490527f713ca53b88d6eb63f5b1854cb8cbdd736ec51eda225e46791aa9298b0160648f91015b60405180910390a15050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0381166000908152606d602052604090205460ff16610e1c576040516325ec6c1f60e01b815260040160405180910390fd5b60658054906000610e2c836124eb565b90915550506001600160a01b0381166000908152606d60205260408120805460ff19169055610e5a826110be565b9050610e65816111e7565b50506068546040516351b27a6d60e11b81526001600160a01b0384811660048301529091169063a364f4da90602401600060405180830381600087803b158015610eae57600080fd5b505af1158015610ec2573d6000803e3d6000fd5b50506068546040516001600160a01b03918216935090851691507f31e0adfec71bccee37b6e83a90c2fedb17d8f1693fee863c4771e7bfe2aed58090600090a35050565b600054610100900460ff16610f2d5760405162461bcd60e51b81526004016107ea90612502565b606880546001600160a01b0319166001600160a01b038516179055610f5182610d08565b610f5a81610f67565b610f62611503565b505050565b610f7081611532565b610f8d5760405163d173577960e01b815260040160405180910390fd5b60408051606680546020818102840185018552830181815260009484928491879085015b8282101561100057600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b90046001600160601b031681830152825260019092019101610fb1565b5050509152509091506066905060006110198282611a40565b505060005b82515181101561108c57825180516066919083908110611040576110406122bc565b602090810291909101810151825460018181018555600094855293839020825192909301516001600160601b0316600160a01b026001600160a01b03909216919091179101550161101e565b507f23aad4e61744ece164130aa415c1616e80136b0f0770e56589438b90b269265e8183604051610d8592919061254d565b6001600160a01b0381166000908152606c602052604081208190819081906110e590610c2f565b6001600160a01b0386166000908152606d602052604090205490915060ff1661114d57611112818461257b565b9250826000036111255750909392505050565b6001600160a01b0385166000908152606c60205260408120611146916113d8565b505061119a565b611156856104fe565b9150611162818361257b565b9250826000036111755750909392505050565b6001600160a01b0385166000908152606c6020526040902061119790836113d8565b50505b60408051828152602081018490526001600160a01b038716917f88770dc862e47a7ed586907857eb1b75e4c5ffc8b707c7ee10eb74d6885fe594910160405180910390a250909392505050565b6000806111f4606a610c2f565b915060006112028484612420565b9150819050611212606a826113d8565b505060408051848152602081018490527f86dcf86b12dfeedea74ae9300dbdaa193bcce5809369c8177ea2f4eaaa65729b910160405180910390a150915091565b600061126260028484186123fe565b6104f7908484166123eb565b808214611291576040516001621398b960e31b0319815260040160405180910390fd5b816000036103285760405163251f56a160e21b815260040160405180910390fd5b806001600160a01b0316826001600160a01b0316106103285760405163ba50f91160e01b815260040160405180910390fd5b6112f86001600160a01b03841683836115f8565b610f6257604051638baa579f60e01b815260040160405180910390fd5b600063fffffffe1963ffffffff831601611351576001600160a01b0383166000908152606c6020526040902061134a90610c2f565b9050610342565b6001600160a01b0383166000908152606c6020526040902061134a9063ffffffff80851690610a7a16565b600061138782611744565b9050808311156113aa57604051634b05a0f760e11b815260040160405180910390fd5b60006113b58361177b565b9050838111156108675760405163e121632f60e01b815260040160405180910390fd5b81546000908190816113e986610c2f565b9050600082118015611427575043866114036001856124d8565b81548110611413576114136122bc565b60009182526020909120015463ffffffff16145b1561148757611435856117ad565b866114416001856124d8565b81548110611451576114516122bc565b9060005260206000200160000160046101000a8154816001600160e01b0302191690836001600160e01b031602179055506114f5565b85600001604051806040016040528061149f4361181a565b63ffffffff1681526020016114b3886117ad565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b9250839150505b9250929050565b600054610100900460ff1661152a5760405162461bcd60e51b81526004016107ea90612502565b6104c161187f565b8051600090818080805b84518110156115d657848181518110611557576115576122bc565b6020026020010151600001519250826001600160a01b0316846001600160a01b0316106115975760405163ba50f91160e01b815260040160405180910390fd5b8293508481815181106115ac576115ac6122bc565b6020026020010151602001516001600160601b0316826115cc91906123eb565b915060010161153c565b5061271081146115ec5750600095945050505050565b50600195945050505050565b600080600061160785856118af565b90925090506000816004811115611620576116206125a2565b14801561163e5750856001600160a01b0316826001600160a01b0316145b1561164e576001925050506104f7565b600080876001600160a01b0316631626ba7e60e01b88886040516024016116769291906125b8565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516116b491906125d1565b600060405180830381855afa9150503d80600081146116ef576040519150601f19603f3d011682016040523d82523d6000602084013e6116f4565b606091505b5091509150818015611707575080516020145b801561173857508051630b135d3f60e11b9061172c90830160209081019084016125ed565b6001600160e01b031916145b98975050505050505050565b600063fffffffe1963ffffffff83160161176257610342606a610c2f565b610342606a63ffffffff80851690610a7a16565b919050565b600063fffffffe1963ffffffff83160161179957610342606b610c2f565b610342606b63ffffffff80851690610a7a16565b60006001600160e01b038211156118165760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b60648201526084016107ea565b5090565b600063ffffffff8211156118165760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b60648201526084016107ea565b600054610100900460ff166118a65760405162461bcd60e51b81526004016107ea90612502565b6104c133610d91565b60008082516041036118e55760208301516040840151606085015160001a6118d98782858561191a565b945094505050506114fc565b825160400361190e5760208301516040840151611903868383611a07565b9350935050506114fc565b506000905060026114fc565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561195157506000905060036119fe565b8460ff16601b1415801561196957508460ff16601c14155b1561197a57506000905060046119fe565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156119ce573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166119f7576000600192509250506119fe565b9150600090505b94509492505050565b6000806001600160ff1b03831681611a2460ff86901c601b6123eb565b9050611a328782888561191a565b935093505050935093915050565b508054600082559060005260206000209081019061031b91905b808211156118165760008155600101611a5a565b634e487b7160e01b600052604160045260246000fd5b604051602081016001600160401b0381118282101715611aa657611aa6611a6e565b60405290565b604080519081016001600160401b0381118282101715611aa657611aa6611a6e565b604051601f8201601f191681016001600160401b0381118282101715611af657611af6611a6e565b604052919050565b60006001600160401b03821115611b1757611b17611a6e565b5060051b60200190565b6001600160a01b038116811461031b57600080fd5b600082601f830112611b4757600080fd5b81356020611b5c611b5783611afe565b611ace565b8083825260208201915060208460051b870101935086841115611b7e57600080fd5b602086015b84811015611ba3578035611b9681611b21565b8352918301918301611b83565b509695505050505050565b600060208284031215611bc057600080fd5b81356001600160401b03811115611bd657600080fd5b611be284828501611b36565b949350505050565b60006001600160401b03821115611c0357611c03611a6e565b50601f01601f191660200190565b600082601f830112611c2257600080fd5b8135611c30611b5782611bea565b818152846020838601011115611c4557600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215611c7557600080fd5b8235611c8081611b21565b915060208301356001600160401b0380821115611c9c57600080fd5b9084019060608287031215611cb057600080fd5b604051606081018181108382111715611ccb57611ccb611a6e565b604052823582811115611cdd57600080fd5b611ce988828601611c11565b82525060208301356020820152604083013560408201528093505050509250929050565b63ffffffff8116811461031b57600080fd5b600060208284031215611d3157600080fd5b81356104f781611d0d565b60008060408385031215611d4f57600080fd5b8235915060208301356001600160401b03811115611d6c57600080fd5b611d7885828601611c11565b9150509250929050565b8051602080845281518482018190526000926040919083019082870190855b81811015611dd857835180516001600160a01b031684528601516001600160601b0316868401529285019291840191600101611da1565b5090979650505050505050565b6020815260006104f76020830184611d82565b600060208284031215611e0a57600080fd5b81356104f781611b21565b60008060408385031215611e2857600080fd5b82356001600160401b0380821115611e3f57600080fd5b818501915085601f830112611e5357600080fd5b81356020611e63611b5783611afe565b82815260059290921b84018101918181019089841115611e8257600080fd5b8286015b84811015611eba57803586811115611e9e5760008081fd5b611eac8c86838b0101611b36565b845250918301918301611e86565b5096505086013592505080821115611ed157600080fd5b50611d7885828601611c11565b600060208284031215611ef057600080fd5b5035919050565b60008060408385031215611f0a57600080fd5b8235915060208301356001600160401b03811115611f2757600080fd5b611d7885828601611b36565b60008060408385031215611f4657600080fd5b8235611f5181611b21565b91506020830135611f6181611d0d565b809150509250929050565b60006020808385031215611f7f57600080fd5b611f87611a84565b915082356001600160401b03811115611f9f57600080fd5b8301601f81018513611fb057600080fd5b8035611fbe611b5782611afe565b81815260069190911b82018301908381019087831115611fdd57600080fd5b928401925b828410156120405760408489031215611ffb5760008081fd5b612003611aac565b843561200e81611b21565b8152848601356001600160601b038116811461202a5760008081fd5b8187015282526040939093019290840190611fe2565b8552509295945050505050565b60008060006060848603121561206257600080fd5b833561206d81611b21565b92506020840135915060408401356001600160401b0381111561208f57600080fd5b61209b86828701611f6c565b9150509250925092565b600080604083850312156120b857600080fd5b82356001600160401b03808211156120cf57600080fd5b6120db86838701611f6c565b935060208501359150808211156120f157600080fd5b50611d7885828601611b36565b60005b83811015612119578181015183820152602001612101565b50506000910152565b600082601f83011261213357600080fd5b81516020612143611b5783611afe565b82815260059290921b8401810191818101908684111561216257600080fd5b8286015b84811015611ba35780516001600160401b038111156121855760008081fd5b8701603f810189136121975760008081fd5b8481015160406121a9611b5783611bea565b8281528b828486010111156121be5760008081fd5b6121cd838983018487016120fe565b8652505050918301918301612166565b805161177681611d0d565b6000806000606084860312156121fd57600080fd5b83516001600160401b038082111561221457600080fd5b818601915086601f83011261222857600080fd5b81516020612238611b5783611afe565b82815260059290921b8401810191818101908a84111561225757600080fd5b948201945b8386101561227e57855161226f81611b21565b8252948201949082019061225c565b9189015191975090935050508082111561229757600080fd5b506122a486828701612122565b9250506122b3604085016121dd565b90509250925092565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038381168252604060208084018290528451918401829052600092858201929091906060860190855b81811015612320578551851683529483019491830191600101612302565b509098975050505050505050565b6000602080838503121561234157600080fd5b82516001600160401b0381111561235757600080fd5b8301601f8101851361236857600080fd5b8051612376611b5782611afe565b81815260059190911b8201830190838101908783111561239557600080fd5b928401925b828410156123b35783518252928401929084019061239a565b979650505050505050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610342576103426123be565b80820180821115610342576103426123be565b60008261241b57634e487b7160e01b600052601260045260246000fd5b500490565b8082018281126000831280158216821582161715612440576124406123be565b505092915050565b60006001820161245a5761245a6123be565b5060010190565b600081518084526124798160208601602086016120fe565b601f01601f19169290920160200192915050565b60018060a01b03831681526040602082015260008251606060408401526124b760a0840182612461565b90506020840151606084015260408401516080840152809150509392505050565b81810381811115610342576103426123be565b6000816124fa576124fa6123be565b506000190190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6040815260006125606040830185611d82565b82810360208401526125728185611d82565b95945050505050565b818103600083128015838313168383128216171561259b5761259b6123be565b5092915050565b634e487b7160e01b600052602160045260246000fd5b828152604060208201526000611be26040830184612461565b600082516125e38184602087016120fe565b9190910192915050565b6000602082840312156125ff57600080fd5b81516001600160e01b0319811681146104f757600080fdfea2646970667358221220483716b837d4d01115f634990b93cdcc240ed08cb379a2802ab77f07e11f1c3564736f6c63430008180033","sourceMap":"1122:21878:67:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3047:108;;;;;;:::i;:::-;;:::i;:::-;;2370:231;;;;;;:::i;:::-;;:::i;7607:180::-;;;;;;:::i;:::-;;:::i;:::-;;;4583:25:99;;;4571:2;4556:18;7607:180:67;;;;;;;;5285:461;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;;5174:33:99;;;5156:52;;5144:2;5129:18;5285:461:67;5012:202:99;5882:87:67;;;:::i;:::-;;;;;;;:::i;8020:188::-;;;;;;:::i;:::-;;:::i;6471:124::-;;;:::i;6163:172::-;;;;;;:::i;:::-;;:::i;8456:95::-;8530:14;;8456:95;;10419:177;;;;;;:::i;:::-;;:::i;4746:131::-;;;;;;:::i;:::-;;:::i;4000:220::-;;;;;;:::i;:::-;;:::i;2071:101:0:-;;;:::i;2656:87:67:-;;;:::i;1441:85:0:-;1513:6;;1441:85;;-1:-1:-1;;;;;1513:6:0;;;8601:51:99;;8589:2;8574:18;1441:85:0;8455:203:99;7173:210:67;;;;;;:::i;:::-;;:::i;8842:803::-;;;;;;:::i;:::-;;:::i;1979:231::-;;;;;;:::i;:::-;;:::i;6717:160::-;;;:::i;3560:204::-;;;;;;:::i;:::-;;:::i;8214:144::-;;;;;;:::i;:::-;-1:-1:-1;;;;;8321:30:67;8298:4;8321:30;;;:19;:30;;;;;;;;;8214:144;;;;11827:14:99;;11820:22;11802:41;;11790:2;11775:18;8214:144:67;11662:187:99;2321:198:0;;;;;;:::i;:::-;;:::i;3047:108:67:-;3120:28;3137:10;3120:16;:28::i;:::-;3047:108;:::o;2370:231::-;2539:55;2564:9;2575:18;2539:24;:55::i;:::-;2370:231;;:::o;7607:180::-;7710:7;7736:44;:19;:44;;;;;:30;:44;:::i;:::-;7729:51;7607:180;-1:-1:-1;;7607:180:67:o;5285:461::-;5404:6;5436:24;5474:25;5513:21;5558:14;5547:56;;;;;;;;;;;;:::i;:::-;5422:181;;;;;;5613:64;5630:9;5641:7;5650:10;5662:14;5613:16;:64::i;:::-;-1:-1:-1;;;;5694:45:67;5285:461;-1:-1:-1;;;;;5285:461:67:o;5882:87::-;-1:-1:-1;;;;;;;;;;;;5948:14:67;;;5955:7;5948:14;;;;;;;;;;;;;;;;;;;5955:7;;5948:14;;;;5955:7;;-1:-1:-1;;5948:14:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5948:14:67;;;;-1:-1:-1;;;5948:14:67;;-1:-1:-1;;;;;5948:14:67;;;;;;;;;;;;;;;;;;;;;;;;;;5882:87;:::o;8020:188::-;8127:7;8153:48;:23;:48;;;;;:34;:48;:::i;6471:124::-;6534:7;6560:28;:19;:26;:28::i;:::-;6553:35;;6471:124;:::o;6163:172::-;-1:-1:-1;;;;;6286:33:67;;6260:7;6286:33;;;:22;:33;;;;;:42;;:40;:42::i;10419:177::-;10547:42;10567:18;10586:1;10567:21;;;;;;;;:::i;:::-;;;;;;;10547:19;:42::i;4746:131::-;1334:13:0;:11;:13::i;:::-;4831:39:67::1;4853:16;4831:21;:39::i;4000:220::-:0;1334:13:0;:11;:13::i;:::-;4136:39:67::1;4157:17;4136:20;:39::i;:::-;4185:28;4202:10;4185:16;:28::i;2071:101:0:-:0;1334:13;:11;:13::i;:::-;2135:30:::1;2162:1;2135:18;:30::i;:::-;2071:101::o:0;2656:87:67:-;2705:31;2725:10;2705:19;:31::i;7173:210::-;-1:-1:-1;;;;;7318:33:67;;7292:7;7318:33;;;:22;:33;;;;;:58;;;;;;;:44;:58;:::i;:::-;7311:65;7173:210;-1:-1:-1;;;7173:210:67:o;8842:803::-;8923:7;8942:38;8983:7;:18;;8942:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8942:59:67;;;;-1:-1:-1;;;8942:59:67;;-1:-1:-1;;;;;8942:59:67;;;;;;;;;;;;;;;;;;;;;;9011:14;9035:29;9083:14;:21;-1:-1:-1;;;;;9067:38:67;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9067:38:67;;9035:70;;9120:9;9115:115;9135:14;:21;9131:1;:25;9115:115;;;9193:14;9208:1;9193:17;;;;;;;;:::i;:::-;;;;;;;:26;;;9177:10;9188:1;9177:13;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9177:42:67;;;:13;;;;;;;;;;;:42;9158:3;;9115:115;;;-1:-1:-1;9265:93:67;;-1:-1:-1;;;9265:93:67;;9239:23;;-1:-1:-1;;;;;9265:18:67;:36;;;;:93;;9315:9;;9338:10;;9265:93;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9265:93:67;;;;;;;;;;;;:::i;:::-;9239:119;;9373:9;9368:123;9388:14;:21;9384:1;:25;9368:123;;;9452:14;9467:1;9452:17;;;;;;;;:::i;:::-;;;;;;;:28;;;-1:-1:-1;;;;;9440:40:67;:6;9447:1;9440:9;;;;;;;;:::i;:::-;;;;;;;:40;;;;:::i;:::-;9430:50;;;;:::i;:::-;;-1:-1:-1;9411:3:67;;9368:123;;;-1:-1:-1;9509:12:67;725:6:68;9509::67;:12;:::i;:::-;9500:21;;9546:14;;9536:6;:24;9532:107;;-1:-1:-1;9583:6:67;;8842:803;-1:-1:-1;;;;8842:803:67:o;9532:107::-;-1:-1:-1;9627:1:67;;8842:803;-1:-1:-1;;;;;8842:803:67:o;1979:231::-;3111:19:2;3134:13;;;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:2;;3212:1;3197:12;;;;:16;3179:34;3178:108;;;-1:-1:-1;3258:4:2;1476:19:4;:23;;;3219:66:2;;-1:-1:-1;3268:12:2;;;;;:17;3219:66;3157:201;;;;-1:-1:-1;;;3157:201:2;;17620:2:99;3157:201:2;;;17602:21:99;17659:2;17639:18;;;17632:30;17698:34;17678:18;;;17671:62;-1:-1:-1;;;17749:18:99;;;17742:44;17803:19;;3157:201:2;;;;;;;;;3368:12;:16;;-1:-1:-1;;3368:16:2;3383:1;3368:16;;;3394:65;;;;3428:13;:20;;-1:-1:-1;;3428:20:2;;;;;3394:65;2134:69:67::1;2160:15;2177:16;2195:7;2134:25;:69::i;:::-;3483:14:2::0;3479:99;;;3529:5;3513:21;;-1:-1:-1;;3513:21:2;;;3553:14;;-1:-1:-1;17985:36:99;;3553:14:2;;17973:2:99;17958:18;3553:14:2;;;;;;;3479:99;3101:483;1979:231:67;;;:::o;6717:160::-;6808:7;6838:32;:23;:30;:32::i;3560:204::-;1334:13:0;:11;:13::i;:::-;3691:28:67::1;3711:7;3691:19;:28::i;2321:198:0:-:0;1334:13;:11;:13::i;:::-;-1:-1:-1;;;;;2409:22:0;::::1;2401:73;;;::::0;-1:-1:-1;;;2401:73:0;;18234:2:99;2401:73:0::1;::::0;::::1;18216:21:99::0;18273:2;18253:18;;;18246:30;18312:34;18292:18;;;18285:62;-1:-1:-1;;;18363:18:99;;;18356:36;18409:19;;2401:73:0::1;18032:402:99::0;2401:73:0::1;2484:28;2503:8;2484:18;:28::i;11343:251:67:-:0;11417:12;11444:9;11439:114;11459:10;:17;11455:1;:21;11439:114;;;11506:36;11528:10;11539:1;11528:13;;;;;;;;:::i;:::-;;;;;;;11506:21;:36::i;:::-;11497:45;;;;:::i;:::-;;-1:-1:-1;11478:3:67;;11439:114;;;;11562:25;11581:5;11562:18;:25::i;13911:629::-;-1:-1:-1;;;;;14087:30:67;;;;;;:19;:30;;;;;;;;14083:95;;;14140:27;;-1:-1:-1;;;14140:27:67;;;;;;;;;;;14083:95;14187:15;:17;;;:15;:17;;;:::i;:::-;;;;-1:-1:-1;;;;;;;14214:30:67;;;;;;:19;:30;;;;;:37;;-1:-1:-1;;14214:37:67;14247:4;14214:37;;;14276:32;14234:9;14276:21;:32::i;:::-;14261:47;;14318:25;14337:5;14318:18;:25::i;:::-;-1:-1:-1;;14369:15:67;;14353:119;;-1:-1:-1;;;14353:119:67;;-1:-1:-1;;;;;14369:15:67;;;;14353:54;;:119;;14421:9;;14444:18;;14353:119;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14517:15:67;;14487:46;;-1:-1:-1;;;;;14517:15:67;;;;-1:-1:-1;14487:46:67;;;;-1:-1:-1;14487:46:67;;14517:15;;14487:46;14073:467;13911:629;;:::o;1314:589:5:-;1400:7;1441:12;1427:11;:26;1419:71;;;;-1:-1:-1;;;1419:71:5;;19908:2:99;1419:71:5;;;19890:21:99;;;19927:18;;;19920:30;19986:34;19966:18;;;19959:62;20038:18;;1419:71:5;19706:356:99;1419:71:5;1516:24;;1501:12;1575:255;1588:4;1582:3;:10;1575:255;;;1608:11;1622:34;1646:3;1651:4;1622:23;:34::i;:::-;1608:48;;1712:11;1674:4;:17;;1692:3;1674:22;;;;;;;;:::i;:::-;;;;;;;;;;:35;;;:49;1670:150;;;1750:3;1743:10;;1670:150;;;1798:7;:3;1804:1;1798:7;:::i;:::-;1792:13;;1670:150;1594:236;1575:255;;;1846:9;;:50;;1862:4;1880:8;1887:1;1880:4;:8;:::i;:::-;1862:27;;;;;;;;:::i;:::-;;;;;;;;;;:34;;;;-1:-1:-1;;;;;1862:34:5;1846:50;;;1858:1;1846:50;-1:-1:-1;;;;;1839:57:5;;1314:589;-1:-1:-1;;;;;1314:589:5:o;17808:893:67:-;17994:21;18018:8;:15;17994:39;;18043:18;18071:20;18102:60;18128:13;18143:11;:18;18102:25;:60::i;:::-;18177:9;18172:458;18192:13;18188:1;:17;18172:458;;;18226:21;18250:8;18259:1;18250:11;;;;;;;;:::i;:::-;;;;;;;18226:35;;18276:49;18299:10;18311:13;18276:22;:49::i;:::-;18339:60;18358:13;18373:9;18384:11;18396:1;18384:14;;;;;;;;:::i;:::-;;;;;;;18339:18;:60::i;:::-;18427:13;18414:26;;18454:22;18479:96;18515:13;18546:15;18479:18;:96::i;:::-;18454:121;-1:-1:-1;18589:30:67;18454:121;18589:30;;:::i;:::-;;-1:-1:-1;;;18207:3:67;;18172:458;;;;18640:54;18664:12;18678:15;18640:23;:54::i;:::-;17984:717;;;17808:893;;;;:::o;934:190:5:-;1028:24;;995:7;;1069:8;;:48;;1084:4;1102:7;1108:1;1102:3;:7;:::i;:::-;1084:26;;;;;;;;:::i;:::-;;;;;;;;;;:33;;;;-1:-1:-1;;;;;1084:33:5;1069:48;;;1080:1;1069:48;-1:-1:-1;;;;;1062:55:5;;934:190;-1:-1:-1;;;934:190:5:o;10875:219:67:-;10977:15;;10956:10;:17;:36;10952:98;;11015:24;;-1:-1:-1;;;11015:24:67;;;;;;;;;;;1599:130:0;1513:6;;-1:-1:-1;;;;;1513:6:0;929:10:6;1662:23:0;1654:68;;;;-1:-1:-1;;;1654:68:0;;20402:2:99;1654:68:0;;;20384:21:99;;;20421:18;;;20414:30;20480:34;20460:18;;;20453:62;20532:18;;1654:68:0;20200:356:99;11764:184:67;11840:46;:23;11869:16;11840:28;:46::i;:::-;-1:-1:-1;;11901:40:67;;4583:25:99;;;11901:40:67;;4571:2:99;4556:18;11901:40:67;;;;;;;11764:184;:::o;12128:240::-;12231:14;;;12255:34;;;;12304:57;;;20735:25:99;;;20791:2;20776:18;;20769:34;;;12304:57:67;;20708:18:99;12304:57:67;;;;;;;;12194:174;12128:240;:::o;2673:187:0:-;2765:6;;;-1:-1:-1;;;;;2781:17:0;;;-1:-1:-1;;;;;;2781:17:0;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;13273:482:67:-;-1:-1:-1;;;;;13345:30:67;;;;;;:19;:30;;;;;;;;13340:92;;13398:23;;-1:-1:-1;;;13398:23:67;;;;;;;;;;;13340:92;13441:15;:17;;;:15;:17;;;:::i;:::-;;;;-1:-1:-1;;;;;;;13475:30:67;;;;;;:19;:30;;;;;13468:37;;-1:-1:-1;;13468:37:67;;;13530:32;13495:9;13530:21;:32::i;:::-;13515:47;;13572:25;13591:5;13572:18;:25::i;:::-;-1:-1:-1;;13623:15:67;;13607:69;;-1:-1:-1;;;13607:69:67;;-1:-1:-1;;;;;8619:32:99;;;13607:69:67;;;8601:51:99;13623:15:67;;;;13607:58;;8574:18:99;;13607:69:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13731:15:67;;13691:57;;-1:-1:-1;;;;;13731:15:67;;;;-1:-1:-1;13691:57:67;;;;-1:-1:-1;13691:57:67;;13731:15;;13691:57;13330:425;13273:482;:::o;9785:336::-;4910:13:2;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:2;;;;;;;:::i;:::-;9964:15:67::1;:37:::0;;-1:-1:-1;;;;;;9964:37:67::1;-1:-1:-1::0;;;;;9964:37:67;::::1;;::::0;;10011:39:::1;10033:16:::0;10011:21:::1;:39::i;:::-;10060:28;10080:7;10060:19;:28::i;:::-;10098:16;:14;:16::i;:::-;9785:336:::0;;;:::o;12732:416::-;12811:26;12826:10;12811:14;:26::i;:::-;12806:80;;12860:15;;-1:-1:-1;;;12860:15:67;;;;;;;;;;;12806:80;12895:33;;;12921:7;12895:33;;;;;;;;;;;;;;;;;:23;;:33;;12921:7;;12895:23;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12895:33:67;;;;-1:-1:-1;;;12895:33:67;;-1:-1:-1;;;;;12895:33:67;;;;;;;;;;;;;;;;-1:-1:-1;;;12895:33:67;;-1:-1:-1;12895:33:67;;-1:-1:-1;12945:7:67;;-1:-1:-1;12945:7:67;12938:14;12945:7;;12938:14;:::i;:::-;;;12967:9;12962:129;12982:21;;:28;12978:32;;12962:129;;;13055:21;;:24;;13031:7;;13055:21;13077:1;;13055:24;;;;;;:::i;:::-;;;;;;;;;;;;13031:49;;;;;;;;-1:-1:-1;13031:49:67;;;;;;;;;;;;;;-1:-1:-1;;;;;13031:49:67;-1:-1:-1;;;13031:49:67;-1:-1:-1;;;;;13031:49:67;;;;;;;;;;13012:3;12962:129;;;;13105:36;13119:9;13130:10;13105:36;;;;;;;:::i;14720:807::-;-1:-1:-1;;;;;14897:33:67;;14810:6;14897:33;;;:22;:33;;;;;14810:6;;;;;;14897:42;;:40;:42::i;:::-;-1:-1:-1;;;;;14954:30:67;;;;;;:19;:30;;;;;;14877:62;;-1:-1:-1;14954:30:67;;14949:481;;15000:23;15013:9;15000:23;;:::i;:::-;;;15041:5;15050:1;15041:10;15037:61;;-1:-1:-1;15078:5:67;;14720:807;-1:-1:-1;;;14720:807:67:o;15037:61::-;-1:-1:-1;;;;;15111:33:67;;15150:1;15111:33;;;:22;:33;;;;;:41;;:38;:41::i;:::-;;;14949:481;;;15195:28;15213:9;15195:17;:28::i;:::-;15183:40;-1:-1:-1;15245:37:67;15272:9;15183:40;15245:37;:::i;:::-;15237:45;;15300:5;15309:1;15300:10;15296:61;;-1:-1:-1;15337:5:67;;14720:807;-1:-1:-1;;;14720:807:67:o;15296:61::-;-1:-1:-1;;;;;15370:33:67;;;;;;:22;:33;;;;;:49;;15409:9;15370:38;:49::i;:::-;;;14949:481;15444:54;;;20735:25:99;;;20791:2;20776:18;;20769:34;;;-1:-1:-1;;;;;15444:54:67;;;;;20708:18:99;15444:54:67;;;;;;;-1:-1:-1;15515:5:67;;14720:807;-1:-1:-1;;;14720:807:67:o;15806:403::-;15880:22;15904;15955:28;:19;:26;:28::i;:::-;15938:45;-1:-1:-1;15993:16:67;16012:30;16037:5;15938:45;16012:30;:::i;:::-;15993:49;-1:-1:-1;15993:49:67;;-1:-1:-1;16097:40:67;:19;15993:49;16097:24;:40::i;:::-;-1:-1:-1;;16152:50:67;;;20735:25:99;;;20791:2;20776:18;;20769:34;;;16152:50:67;;20708:18:99;16152:50:67;;;;;;;15928:281;15806:403;;;:::o;817:153:10:-;879:7;952:11;962:1;953:5;;;952:11;:::i;:::-;942:21;;943:5;;;942:21;:::i;18926:308:67:-;19080:17;19062:14;:35;19058:89;;19120:16;;-1:-1:-1;;;;;;19120:16:67;;;;;;;;;;;19058:89;19160:14;19178:1;19160:19;19156:72;;19202:15;;-1:-1:-1;;;19202:15:67;;;;;;;;;;;19443:207;19585:14;-1:-1:-1;;;;;19570:29:67;:11;-1:-1:-1;;;;;19570:29:67;;19566:78;;19622:11;;-1:-1:-1;;;19622:11:67;;;;;;;;;;;19921:256;20069:50;-1:-1:-1;;;;;20069:27:67;;20097:9;20108:10;20069:27;:50::i;:::-;20064:107;;20142:18;;-1:-1:-1;;;20142:18:67;;;;;;;;;;;20550:349;20664:7;-1:-1:-1;;20706:16:67;20687:35;;;20683:210;;-1:-1:-1;;;;;20745:31:67;;;;;;:22;:31;;;;;:40;;:38;:40::i;:::-;20738:47;;;;20683:210;-1:-1:-1;;;;;20823:31:67;;;;;;:22;:31;;;;;:59;;;;;;;:42;:59;:::i;22544:454::-;22670:19;22692:32;22708:15;22692;:32::i;:::-;22670:54;;22754:11;22738:13;:27;22734:86;;;22788:21;;-1:-1:-1;;;22788:21:67;;;;;;;;;;;22734:86;22829:22;22854:35;22873:15;22854:18;:35::i;:::-;22829:60;;22920:13;22903:14;:30;22899:93;;;22956:25;;-1:-1:-1;;;22956:25:67;;;;;;;;;;;2081:586:5;2192:24;;2150:7;;;;;2240:12;2192:4;2240:6;:12::i;:::-;2226:26;;2272:1;2266:3;:7;:66;;;;-1:-1:-1;2320:12:5;2277:4;2295:7;2301:1;2295:3;:7;:::i;:::-;2277:26;;;;;;;;:::i;:::-;;;;;;;;;;:39;;;:55;2266:66;2262:370;;;2384:36;2414:5;2384:29;:36::i;:::-;2348:4;2366:7;2372:1;2366:3;:7;:::i;:::-;2348:26;;;;;;;;:::i;:::-;;;;;;;;:33;;;:72;;;;;-1:-1:-1;;;;;2348:72:5;;;;;-1:-1:-1;;;;;2348:72:5;;;;;;2262:370;;;2451:4;:17;;2491:116;;;;;;;;2517:42;2546:12;2517:28;:42::i;:::-;2491:116;;;;;;2569:36;2599:5;2569:29;:36::i;:::-;-1:-1:-1;;;;;2491:116:5;;;;;;2451:170;;;;;;;-1:-1:-1;2451:170:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2262:370;2649:3;-1:-1:-1;2654:5:5;;-1:-1:-1;;2081:586:5;;;;;;:::o;1003:95:0:-;4910:13:2;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:2;;;;;;;:::i;:::-;1065:26:0::1;:24;:26::i;16648:671:67:-:0;16785:18;;16732:4;;;;;;16909:288;16929:10;:17;16925:1;:21;16909:288;;;16993:10;17004:1;16993:13;;;;;;;;:::i;:::-;;;;;;;:22;;;16967:49;;17050:15;-1:-1:-1;;;;;17034:31:67;:12;-1:-1:-1;;;;;17034:31:67;;17030:55;;17074:11;;-1:-1:-1;;;17074:11:67;;;;;;;;;;;17030:55;17114:15;17099:30;;17162:10;17173:1;17162:13;;;;;;;;:::i;:::-;;;;;;;:24;;;-1:-1:-1;;;;;17143:43:67;;;;;;:::i;:::-;;-1:-1:-1;16948:3:67;;16909:288;;;;725:6:68;17210:15:67;:22;17206:107;;-1:-1:-1;17255:5:67;;16648:671;-1:-1:-1;;;;;16648:671:67:o;17206:107::-;-1:-1:-1;17298:4:67;;16648:671;-1:-1:-1;;;;;16648:671:67:o;1083:688:9:-;1219:4;1236:17;1255:35;1294:44;1322:4;1328:9;1294:27;:44::i;:::-;1235:103;;-1:-1:-1;1235:103:9;-1:-1:-1;1361:37:9;1352:5;:46;;;;;;;;:::i;:::-;;:69;;;;;1415:6;-1:-1:-1;;;;;1402:19:9;:9;-1:-1:-1;;;;;1402:19:9;;1352:69;1348:111;;;1444:4;1437:11;;;;;;1348:111;1470:12;1484:19;1507:6;-1:-1:-1;;;;;1507:17:9;1561:45;;;1608:4;1614:9;1538:86;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1538:86:9;;;;;;;;;;;;;;-1:-1:-1;;;;;1538:86:9;-1:-1:-1;;;;;;1538:86:9;;;;;;;;;;1507:127;;;;1538:86;1507:127;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1469:165;;;;1652:7;:30;;;;;1663:6;:13;1680:2;1663:19;1652:30;:111;;;;-1:-1:-1;1686:28:9;;-1:-1:-1;;;1718:45:9;1686:28;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;1686:77:9;;1652:111;1644:120;1083:688;-1:-1:-1;;;;;;;;1083:688:9:o;21318:297:67:-;21404:7;-1:-1:-1;;21446:16:67;21427:35;;;21423:186;;21485:28;:19;:26;:28::i;21423:186::-;21551:47;:19;:47;;;;;:30;:47;:::i;21423:186::-;21318:297;;;:::o;21940:308::-;22029:7;-1:-1:-1;;22071:16:67;22052:35;;;22048:194;;22110:32;:23;:30;:32::i;22048:194::-;22180:51;:23;:51;;;;;:34;:51;:::i;2762:192:11:-;2819:7;-1:-1:-1;;;;;2846:26:11;;;2838:78;;;;-1:-1:-1;;;2838:78:11;;23248:2:99;2838:78:11;;;23230:21:99;23287:2;23267:18;;;23260:30;23326:34;23306:18;;;23299:62;-1:-1:-1;;;23377:18:99;;;23370:37;23424:19;;2838:78:11;23046:403:99;2838:78:11;-1:-1:-1;2941:5:11;2762:192::o;15190:187::-;15246:6;15281:16;15272:25;;;15264:76;;;;-1:-1:-1;;;15264:76:11;;23656:2:99;15264:76:11;;;23638:21:99;23695:2;23675:18;;;23668:30;23734:34;23714:18;;;23707:62;-1:-1:-1;;;23785:18:99;;;23778:36;23831:19;;15264:76:11;23454:402:99;1104:111:0;4910:13:2;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:2;;;;;;;:::i;:::-;1176:32:0::1;929:10:6::0;1176:18:0::1;:32::i;2265:1373:8:-:0;2346:7;2355:12;2576:9;:16;2596:2;2576:22;2572:1060;;2912:4;2897:20;;2891:27;2961:4;2946:20;;2940:27;3018:4;3003:20;;2997:27;2614:9;2989:36;3059:25;3070:4;2989:36;2891:27;2940;3059:10;:25::i;:::-;3052:32;;;;;;;;;2572:1060;3105:9;:16;3125:2;3105:22;3101:531;;3421:4;3406:20;;3400:27;3471:4;3456:20;;3450:27;3511:23;3522:4;3400:27;3450;3511:10;:23::i;:::-;3504:30;;;;;;;;3101:531;-1:-1:-1;3581:1:8;;-1:-1:-1;3585:35:8;3565:56;;5832:1603;5958:7;;6882:66;6869:79;;6865:161;;;-1:-1:-1;6980:1:8;;-1:-1:-1;6984:30:8;6964:51;;6865:161;7039:1;:7;;7044:2;7039:7;;:18;;;;;7050:1;:7;;7055:2;7050:7;;7039:18;7035:100;;;-1:-1:-1;7089:1:8;;-1:-1:-1;7093:30:8;7073:51;;7035:100;7246:24;;;7229:14;7246:24;;;;;;;;;24088:25:99;;;24161:4;24149:17;;24129:18;;;24122:45;;;;24183:18;;;24176:34;;;24226:18;;;24219:34;;;7246:24:8;;24060:19:99;;7246:24:8;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7246:24:8;;-1:-1:-1;;7246:24:8;;;-1:-1:-1;;;;;;;7284:20:8;;7280:101;;7336:1;7340:29;7320:50;;;;;;;7280:101;7399:6;-1:-1:-1;7407:20:8;;-1:-1:-1;5832:1603:8;;;;;;;;:::o;4905:336::-;5015:7;;-1:-1:-1;;;;;5060:80:8;;5015:7;5166:25;5182:3;5167:18;;;5189:2;5166:25;:::i;:::-;5150:42;;5209:25;5220:4;5226:1;5229;5232;5209:10;:25::i;:::-;5202:32;;;;;;4905:336;;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:127:99;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:253;218:2;212:9;260:4;248:17;;-1:-1:-1;;;;;280:34:99;;316:22;;;277:62;274:88;;;342:18;;:::i;:::-;378:2;371:22;146:253;:::o;404:257::-;476:4;470:11;;;508:17;;-1:-1:-1;;;;;540:34:99;;576:22;;;537:62;534:88;;;602:18;;:::i;666:275::-;737:2;731:9;802:2;783:13;;-1:-1:-1;;779:27:99;767:40;;-1:-1:-1;;;;;822:34:99;;858:22;;;819:62;816:88;;;884:18;;:::i;:::-;920:2;913:22;666:275;;-1:-1:-1;666:275:99:o;946:183::-;1006:4;-1:-1:-1;;;;;1031:6:99;1028:30;1025:56;;;1061:18;;:::i;:::-;-1:-1:-1;1106:1:99;1102:14;1118:4;1098:25;;946:183::o;1134:131::-;-1:-1:-1;;;;;1209:31:99;;1199:42;;1189:70;;1255:1;1252;1245:12;1270:743;1324:5;1377:3;1370:4;1362:6;1358:17;1354:27;1344:55;;1395:1;1392;1385:12;1344:55;1431:6;1418:20;1457:4;1481:60;1497:43;1537:2;1497:43;:::i;:::-;1481:60;:::i;:::-;1563:3;1587:2;1582:3;1575:15;1615:4;1610:3;1606:14;1599:21;;1672:4;1666:2;1663:1;1659:10;1651:6;1647:23;1643:34;1629:48;;1700:3;1692:6;1689:15;1686:35;;;1717:1;1714;1707:12;1686:35;1753:4;1745:6;1741:17;1767:217;1783:6;1778:3;1775:15;1767:217;;;1863:3;1850:17;1880:31;1905:5;1880:31;:::i;:::-;1924:18;;1962:12;;;;1800;;1767:217;;;-1:-1:-1;2002:5:99;1270:743;-1:-1:-1;;;;;;1270:743:99:o;2018:348::-;2102:6;2155:2;2143:9;2134:7;2130:23;2126:32;2123:52;;;2171:1;2168;2161:12;2123:52;2211:9;2198:23;-1:-1:-1;;;;;2236:6:99;2233:30;2230:50;;;2276:1;2273;2266:12;2230:50;2299:61;2352:7;2343:6;2332:9;2328:22;2299:61;:::i;:::-;2289:71;2018:348;-1:-1:-1;;;;2018:348:99:o;2371:186::-;2419:4;-1:-1:-1;;;;;2444:6:99;2441:30;2438:56;;;2474:18;;:::i;:::-;-1:-1:-1;2540:2:99;2519:15;-1:-1:-1;;2515:29:99;2546:4;2511:40;;2371:186::o;2562:462::-;2604:5;2657:3;2650:4;2642:6;2638:17;2634:27;2624:55;;2675:1;2672;2665:12;2624:55;2711:6;2698:20;2742:48;2758:31;2786:2;2758:31;:::i;2742:48::-;2815:2;2806:7;2799:19;2861:3;2854:4;2849:2;2841:6;2837:15;2833:26;2830:35;2827:55;;;2878:1;2875;2868:12;2827:55;2943:2;2936:4;2928:6;2924:17;2917:4;2908:7;2904:18;2891:55;2991:1;2966:16;;;2984:4;2962:27;2955:38;;;;2970:7;2562:462;-1:-1:-1;;;2562:462:99:o;3029:1027::-;3142:6;3150;3203:2;3191:9;3182:7;3178:23;3174:32;3171:52;;;3219:1;3216;3209:12;3171:52;3258:9;3245:23;3277:31;3302:5;3277:31;:::i;:::-;3327:5;-1:-1:-1;3383:2:99;3368:18;;3355:32;-1:-1:-1;;;;;3436:14:99;;;3433:34;;;3463:1;3460;3453:12;3433:34;3486:22;;;;3542:4;3524:16;;;3520:27;3517:47;;;3560:1;3557;3550:12;3517:47;3593:2;3587:9;3635:4;3627:6;3623:17;3690:6;3678:10;3675:22;3670:2;3658:10;3655:18;3652:46;3649:72;;;3701:18;;:::i;:::-;3737:2;3730:22;3777:16;;3805;;;3802:36;;;3834:1;3831;3824:12;3802:36;3862:44;3898:7;3887:8;3883:2;3879:17;3862:44;:::i;:::-;3854:6;3847:60;;3961:2;3957;3953:11;3940:25;3935:2;3927:6;3923:15;3916:50;4020:2;4016;4012:11;3999:25;3994:2;3986:6;3982:15;3975:50;4044:6;4034:16;;;;;3029:1027;;;;;:::o;4061:121::-;4146:10;4139:5;4135:22;4128:5;4125:33;4115:61;;4172:1;4169;4162:12;4187:245;4245:6;4298:2;4286:9;4277:7;4273:23;4269:32;4266:52;;;4314:1;4311;4304:12;4266:52;4353:9;4340:23;4372:30;4396:5;4372:30;:::i;4619:388::-;4696:6;4704;4757:2;4745:9;4736:7;4732:23;4728:32;4725:52;;;4773:1;4770;4763:12;4725:52;4809:9;4796:23;4786:33;;4870:2;4859:9;4855:18;4842:32;-1:-1:-1;;;;;4889:6:99;4886:30;4883:50;;;4929:1;4926;4919:12;4883:50;4952:49;4993:7;4984:6;4973:9;4969:22;4952:49;:::i;:::-;4942:59;;;4619:388;;;;;:::o;5219:747::-;5362:12;;5296:4;5383:15;;;5447:19;;5321:12;;;5475:20;;;5268:3;;5514:2;;5569:21;;;;5534:12;;;;5268:3;5618:321;5632:6;5629:1;5626:13;5618:321;;;5691:13;;5735:9;;-1:-1:-1;;;;;5731:35:99;5717:50;;5813:11;;5807:18;-1:-1:-1;;;;;5803:51:99;5787:14;;;5780:75;5914:15;;;;5877:14;;;;5763:1;5647:9;5618:321;;;-1:-1:-1;5955:5:99;;5219:747;-1:-1:-1;;;;;;;5219:747:99:o;5971:257::-;6150:2;6139:9;6132:21;6113:4;6170:52;6218:2;6207:9;6203:18;6195:6;6170:52;:::i;6233:247::-;6292:6;6345:2;6333:9;6324:7;6320:23;6316:32;6313:52;;;6361:1;6358;6351:12;6313:52;6400:9;6387:23;6419:31;6444:5;6419:31;:::i;6485:1359::-;6612:6;6620;6673:2;6661:9;6652:7;6648:23;6644:32;6641:52;;;6689:1;6686;6679:12;6641:52;6729:9;6716:23;-1:-1:-1;;;;;6799:2:99;6791:6;6788:14;6785:34;;;6815:1;6812;6805:12;6785:34;6853:6;6842:9;6838:22;6828:32;;6898:7;6891:4;6887:2;6883:13;6879:27;6869:55;;6920:1;6917;6910:12;6869:55;6956:2;6943:16;6978:4;7002:60;7018:43;7058:2;7018:43;:::i;7002:60::-;7096:15;;;7178:1;7174:10;;;;7166:19;;7162:28;;;7127:12;;;;7202:19;;;7199:39;;;7234:1;7231;7224:12;7199:39;7266:2;7262;7258:11;7278:364;7294:6;7289:3;7286:15;7278:364;;;7380:3;7367:17;7416:2;7403:11;7400:19;7397:109;;;7460:1;7489:2;7485;7478:14;7397:109;7531:68;7591:7;7586:2;7572:11;7568:2;7564:20;7560:29;7531:68;:::i;:::-;7519:81;;-1:-1:-1;7620:12:99;;;;7311;;7278:364;;;-1:-1:-1;7661:5:99;-1:-1:-1;;7704:18:99;;7691:32;;-1:-1:-1;;7735:16:99;;;7732:36;;;7764:1;7761;7754:12;7732:36;;7787:51;7830:7;7819:8;7808:9;7804:24;7787:51;:::i;7849:180::-;7908:6;7961:2;7949:9;7940:7;7936:23;7932:32;7929:52;;;7977:1;7974;7967:12;7929:52;-1:-1:-1;8000:23:99;;7849:180;-1:-1:-1;7849:180:99:o;8034:416::-;8127:6;8135;8188:2;8176:9;8167:7;8163:23;8159:32;8156:52;;;8204:1;8201;8194:12;8156:52;8240:9;8227:23;8217:33;;8301:2;8290:9;8286:18;8273:32;-1:-1:-1;;;;;8320:6:99;8317:30;8314:50;;;8360:1;8357;8350:12;8314:50;8383:61;8436:7;8427:6;8416:9;8412:22;8383:61;:::i;8663:386::-;8730:6;8738;8791:2;8779:9;8770:7;8766:23;8762:32;8759:52;;;8807:1;8804;8797:12;8759:52;8846:9;8833:23;8865:31;8890:5;8865:31;:::i;:::-;8915:5;-1:-1:-1;8972:2:99;8957:18;;8944:32;8985;8944;8985;:::i;:::-;9036:7;9026:17;;;8663:386;;;;;:::o;9054:1455::-;9107:5;9137:4;9178:2;9166:9;9161:3;9157:19;9153:28;9150:48;;;9194:1;9191;9184:12;9150:48;9216:22;;:::i;:::-;9207:31;;9274:9;9261:23;-1:-1:-1;;;;;9299:6:99;9296:30;9293:50;;;9339:1;9336;9329:12;9293:50;9362:22;;9415:4;9407:13;;9403:23;-1:-1:-1;9393:51:99;;9440:1;9437;9430:12;9393:51;9476:2;9463:16;9499:60;9515:43;9555:2;9515:43;:::i;9499:60::-;9593:15;;;9675:1;9671:10;;;;9663:19;;9659:28;;;9624:12;;;;9699:15;;;9696:35;;;9727:1;9724;9717:12;9696:35;9751:11;;;;9771:703;9787:6;9782:3;9779:15;9771:703;;;9865:4;9859:3;9854;9850:13;9846:24;9843:114;;;9911:1;9940:2;9936;9929:14;9843:114;9985:22;;:::i;:::-;10048:3;10035:17;10065:33;10090:7;10065:33;:::i;:::-;10111:24;;10176:12;;;10163:26;-1:-1:-1;;;;;10224:40:99;;10212:53;;10202:151;;10307:1;10336:2;10332;10325:14;10202:151;10373:16;;;10366:33;10412:20;;9813:4;9804:14;;;;;10452:12;;;;9771:703;;;10483:20;;-1:-1:-1;10490:5:99;;9054:1455;-1:-1:-1;;;;;9054:1455:99:o;10514:547::-;10616:6;10624;10632;10685:2;10673:9;10664:7;10660:23;10656:32;10653:52;;;10701:1;10698;10691:12;10653:52;10740:9;10727:23;10759:31;10784:5;10759:31;:::i;:::-;10809:5;-1:-1:-1;10861:2:99;10846:18;;10833:32;;-1:-1:-1;10916:2:99;10901:18;;10888:32;-1:-1:-1;;;;;10932:30:99;;10929:50;;;10975:1;10972;10965:12;10929:50;10998:57;11047:7;11038:6;11027:9;11023:22;10998:57;:::i;:::-;10988:67;;;10514:547;;;;;:::o;11066:591::-;11184:6;11192;11245:2;11233:9;11224:7;11220:23;11216:32;11213:52;;;11261:1;11258;11251:12;11213:52;11301:9;11288:23;-1:-1:-1;;;;;11371:2:99;11363:6;11360:14;11357:34;;;11387:1;11384;11377:12;11357:34;11410:57;11459:7;11450:6;11439:9;11435:22;11410:57;:::i;:::-;11400:67;;11520:2;11509:9;11505:18;11492:32;11476:48;;11549:2;11539:8;11536:16;11533:36;;;11565:1;11562;11555:12;11533:36;;11588:63;11643:7;11632:8;11621:9;11617:24;11588:63;:::i;11854:250::-;11939:1;11949:113;11963:6;11960:1;11957:13;11949:113;;;12039:11;;;12033:18;12020:11;;;12013:39;11985:2;11978:10;11949:113;;;-1:-1:-1;;12096:1:99;12078:16;;12071:27;11854:250::o;12109:1401::-;12172:5;12225:3;12218:4;12210:6;12206:17;12202:27;12192:55;;12243:1;12240;12233:12;12192:55;12272:6;12266:13;12298:4;12322:60;12338:43;12378:2;12338:43;:::i;12322:60::-;12416:15;;;12502:1;12498:10;;;;12486:23;;12482:32;;;12447:12;;;;12526:15;;;12523:35;;;12554:1;12551;12544:12;12523:35;12590:2;12582:6;12578:15;12602:879;12618:6;12613:3;12610:15;12602:879;;;12697:3;12691:10;-1:-1:-1;;;;;12720:11:99;12717:35;12714:125;;;12793:1;12822:2;12818;12811:14;12714:125;12862:24;;12921:2;12913:11;;12909:21;-1:-1:-1;12899:119:99;;12972:1;13001:2;12997;12990:14;12899:119;13055:2;13051;13047:11;13041:18;13082:2;13112:48;13128:31;13156:2;13128:31;:::i;13112:48::-;13189:2;13180:7;13173:19;13233:3;13228:2;13223;13219;13215:11;13211:20;13208:29;13205:119;;;13278:1;13307:2;13303;13296:14;13205:119;13337:69;13403:2;13398;13389:7;13385:16;13380:2;13376;13372:11;13337:69;:::i;:::-;13419:20;;-1:-1:-1;;;13459:12:99;;;;12635;;12602:879;;13515:136;13593:13;;13615:30;13593:13;13615:30;:::i;13656:1299::-;13802:6;13810;13818;13871:2;13859:9;13850:7;13846:23;13842:32;13839:52;;;13887:1;13884;13877:12;13839:52;13920:9;13914:16;-1:-1:-1;;;;;13990:2:99;13982:6;13979:14;13976:34;;;14006:1;14003;13996:12;13976:34;14044:6;14033:9;14029:22;14019:32;;14089:7;14082:4;14078:2;14074:13;14070:27;14060:55;;14111:1;14108;14101:12;14060:55;14140:2;14134:9;14162:4;14186:60;14202:43;14242:2;14202:43;:::i;14186:60::-;14280:15;;;14362:1;14358:10;;;;14350:19;;14346:28;;;14311:12;;;;14386:19;;;14383:39;;;14418:1;14415;14408:12;14383:39;14442:11;;;;14462:210;14478:6;14473:3;14470:15;14462:210;;;14551:3;14545:10;14568:31;14593:5;14568:31;:::i;:::-;14612:18;;14495:12;;;;14650;;;;14462:210;;;14727:18;;;14721:25;14691:5;;-1:-1:-1;14721:25:99;;-1:-1:-1;;;14758:16:99;;;14755:36;;;14787:1;14784;14777:12;14755:36;;14810:72;14874:7;14863:8;14852:9;14848:24;14810:72;:::i;:::-;14800:82;;;14901:48;14945:2;14934:9;14930:18;14901:48;:::i;:::-;14891:58;;13656:1299;;;;;:::o;14960:127::-;15021:10;15016:3;15012:20;15009:1;15002:31;15052:4;15049:1;15042:15;15076:4;15073:1;15066:15;15092:778;-1:-1:-1;;;;;15397:15:99;;;15379:34;;15329:2;15432;15450:18;;;15443:30;;;15522:13;;15314:18;;;15544:22;;;15281:4;;15623:15;;;;15351:19;;15432:2;15597;15582:18;;;15281:4;15666:178;15680:6;15677:1;15674:13;15666:178;;;15745:13;;15741:22;;15729:35;;15819:15;;;;15784:12;;;;15702:1;15695:9;15666:178;;;-1:-1:-1;15861:3:99;;15092:778;-1:-1:-1;;;;;;;;15092:778:99:o;15875:881::-;15970:6;16001:2;16044;16032:9;16023:7;16019:23;16015:32;16012:52;;;16060:1;16057;16050:12;16012:52;16093:9;16087:16;-1:-1:-1;;;;;16118:6:99;16115:30;16112:50;;;16158:1;16155;16148:12;16112:50;16181:22;;16234:4;16226:13;;16222:27;-1:-1:-1;16212:55:99;;16263:1;16260;16253:12;16212:55;16292:2;16286:9;16315:60;16331:43;16371:2;16331:43;:::i;16315:60::-;16409:15;;;16491:1;16487:10;;;;16479:19;;16475:28;;;16440:12;;;;16515:19;;;16512:39;;;16547:1;16544;16537:12;16512:39;16571:11;;;;16591:135;16607:6;16602:3;16599:15;16591:135;;;16673:10;;16661:23;;16624:12;;;;16704;;;;16591:135;;;16745:5;15875:881;-1:-1:-1;;;;;;;15875:881:99:o;16761:127::-;16822:10;16817:3;16813:20;16810:1;16803:31;16853:4;16850:1;16843:15;16877:4;16874:1;16867:15;16893:168;16966:9;;;16997;;17014:15;;;17008:22;;16994:37;16984:71;;17035:18;;:::i;17066:125::-;17131:9;;;17152:10;;;17149:36;;;17165:18;;:::i;17196:217::-;17236:1;17262;17252:132;;17306:10;17301:3;17297:20;17294:1;17287:31;17341:4;17338:1;17331:15;17369:4;17366:1;17359:15;17252:132;-1:-1:-1;17398:9:99;;17196:217::o;18439:216::-;18503:9;;;18531:11;;;18478:3;18561:9;;18589:10;;18585:19;;18614:10;;18606:19;;18582:44;18579:70;;;18629:18;;:::i;:::-;18579:70;;18439:216;;;;:::o;18660:135::-;18699:3;18720:17;;;18717:43;;18740:18;;:::i;:::-;-1:-1:-1;18787:1:99;18776:13;;18660:135::o;18800:270::-;18841:3;18879:5;18873:12;18906:6;18901:3;18894:19;18922:76;18991:6;18984:4;18979:3;18975:14;18968:4;18961:5;18957:16;18922:76;:::i;:::-;19052:2;19031:15;-1:-1:-1;;19027:29:99;19018:39;;;;19059:4;19014:50;;18800:270;-1:-1:-1;;18800:270:99:o;19075:626::-;19351:1;19347;19342:3;19338:11;19334:19;19326:6;19322:32;19311:9;19304:51;19391:2;19386;19375:9;19371:18;19364:30;19285:4;19429:6;19423:13;19472:4;19467:2;19456:9;19452:18;19445:32;19500:51;19546:3;19535:9;19531:19;19517:12;19500:51;:::i;:::-;19486:65;;19607:2;19599:6;19595:15;19589:22;19582:4;19571:9;19567:20;19560:52;19667:2;19659:6;19655:15;19649:22;19643:3;19632:9;19628:19;19621:51;19689:6;19681:14;;;19075:626;;;;;:::o;20067:128::-;20134:9;;;20155:11;;;20152:37;;;20169:18;;:::i;20814:136::-;20853:3;20881:5;20871:39;;20890:18;;:::i;:::-;-1:-1:-1;;;20926:18:99;;20814:136::o;20955:407::-;21157:2;21139:21;;;21196:2;21176:18;;;21169:30;21235:34;21230:2;21215:18;;21208:62;-1:-1:-1;;;21301:2:99;21286:18;;21279:41;21352:3;21337:19;;20955:407::o;21367:457::-;21624:2;21613:9;21606:21;21587:4;21650:52;21698:2;21687:9;21683:18;21675:6;21650:52;:::i;:::-;21750:9;21742:6;21738:22;21733:2;21722:9;21718:18;21711:50;21778:40;21811:6;21803;21778:40;:::i;:::-;21770:48;21367:457;-1:-1:-1;;;;;21367:457:99:o;21829:200::-;21895:9;;;21868:4;21923:9;;21951:10;;21963:12;;;21947:29;21986:12;;;21978:21;;21944:56;21941:82;;;22003:18;;:::i;:::-;21941:82;21829:200;;;;:::o;22034:127::-;22095:10;22090:3;22086:20;22083:1;22076:31;22126:4;22123:1;22116:15;22150:4;22147:1;22140:15;22166:288;22341:6;22330:9;22323:25;22384:2;22379;22368:9;22364:18;22357:30;22304:4;22404:44;22444:2;22433:9;22429:18;22421:6;22404:44;:::i;22459:287::-;22588:3;22626:6;22620:13;22642:66;22701:6;22696:3;22689:4;22681:6;22677:17;22642:66;:::i;:::-;22724:16;;;;;22459:287;-1:-1:-1;;22459:287:99:o;22751:290::-;22820:6;22873:2;22861:9;22852:7;22848:23;22844:32;22841:52;;;22889:1;22886;22879:12;22841:52;22915:16;;-1:-1:-1;;;;;;22960:32:99;;22950:43;;22940:71;;23007:1;23004;22997:12","linkReferences":{},"immutableReferences":{"18051":[{"start":1594,"length":32}]}},"methodIdentifiers":{"deregisterOperator()":"857dc190","getLastCheckpointOperatorWeight(address)":"3b242e4a","getLastCheckpointThresholdWeight()":"b933fa74","getLastCheckpointThresholdWeightAtBlock(uint32)":"1e4cd85e","getLastCheckpointTotalWeight()":"314f3a49","getLastCheckpointTotalWeightAtBlock(uint32)":"0dba3394","getOperatorWeight(address)":"98ec1ac9","getOperatorWeightAtBlock(address,uint32)":"955f2d90","initialize(address,uint256,((address,uint96)[]))":"ab118995","isValidSignature(bytes32,bytes)":"1626ba7e","minimumWeight()":"40bf2fb7","operatorRegistered(address)":"ec7fbb31","owner()":"8da5cb5b","quorum()":"1703a018","registerOperatorWithSignature(address,(bytes,bytes32,uint256))":"0a601a12","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","updateMinimumWeight(uint256,address[])":"696255be","updateOperators(address[])":"00cf2ab5","updateOperatorsForQuorum(address[][],bytes)":"5140a548","updateQuorumConfig(((address,uint96)[]),address[])":"dec5d1f6","updateStakeThreshold(uint256)":"5ef53329"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IDelegationManager\",\"name\":\"_delegationManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InsufficientSignedStake\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientWeight\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidQuorum\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignedWeight\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidThreshold\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MustUpdateAllOperators\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSorted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorNotRegistered\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_old\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_new\",\"type\":\"uint256\"}],\"name\":\"MinimumWeightUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avs\",\"type\":\"address\"}],\"name\":\"OperatorDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avs\",\"type\":\"address\"}],\"name\":\"OperatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldWeight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newWeight\",\"type\":\"uint256\"}],\"name\":\"OperatorWeightUpdated\",\"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\":[{\"components\":[{\"components\":[{\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"multiplier\",\"type\":\"uint96\"}],\"internalType\":\"struct StrategyParams[]\",\"name\":\"strategies\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"struct Quorum\",\"name\":\"_old\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"multiplier\",\"type\":\"uint96\"}],\"internalType\":\"struct StrategyParams[]\",\"name\":\"strategies\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"struct Quorum\",\"name\":\"_new\",\"type\":\"tuple\"}],\"name\":\"QuorumUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_thresholdWeight\",\"type\":\"uint256\"}],\"name\":\"ThresholdWeightUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldTotalWeight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newTotalWeight\",\"type\":\"uint256\"}],\"name\":\"TotalWeightUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMinimumWeight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMinimumWeight\",\"type\":\"uint256\"}],\"name\":\"UpdateMinimumWeight\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"deregisterOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"getLastCheckpointOperatorWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastCheckpointThresholdWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_blockNumber\",\"type\":\"uint32\"}],\"name\":\"getLastCheckpointThresholdWeightAtBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastCheckpointTotalWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_blockNumber\",\"type\":\"uint32\"}],\"name\":\"getLastCheckpointTotalWeightAtBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"getOperatorWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_blockNumber\",\"type\":\"uint32\"}],\"name\":\"getOperatorWeightAtBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_serviceManager\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_thresholdWeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"multiplier\",\"type\":\"uint96\"}],\"internalType\":\"struct StrategyParams[]\",\"name\":\"strategies\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Quorum\",\"name\":\"_quorum\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_dataHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_signatureData\",\"type\":\"bytes\"}],\"name\":\"isValidSignature\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minimumWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"operatorRegistered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"quorum\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"multiplier\",\"type\":\"uint96\"}],\"internalType\":\"struct StrategyParams[]\",\"name\":\"strategies\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Quorum\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"internalType\":\"struct ISignatureUtils.SignatureWithSaltAndExpiry\",\"name\":\"_operatorSignature\",\"type\":\"tuple\"}],\"name\":\"registerOperatorWithSignature\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newMinimumWeight\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"_operators\",\"type\":\"address[]\"}],\"name\":\"updateMinimumWeight\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_operators\",\"type\":\"address[]\"}],\"name\":\"updateOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[][]\",\"name\":\"operatorsPerQuorum\",\"type\":\"address[][]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"updateOperatorsForQuorum\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"multiplier\",\"type\":\"uint96\"}],\"internalType\":\"struct StrategyParams[]\",\"name\":\"strategies\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Quorum\",\"name\":\"_quorum\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"_operators\",\"type\":\"address[]\"}],\"name\":\"updateQuorumConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_thresholdWeight\",\"type\":\"uint256\"}],\"name\":\"updateStakeThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"THIS CONTRACT IS NOT AUDITED\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"MinimumWeightUpdated(uint256,uint256)\":{\"params\":{\"_new\":\"The new minimumWeight\",\"_old\":\"The previous minimum weight\"}},\"OperatorDeregistered(address,address)\":{\"params\":{\"_avs\":\"The address of the associated AVS\",\"_operator\":\"The address of the deregistered operator\"}},\"OperatorRegistered(address,address)\":{\"params\":{\"_avs\":\"The address of the associated AVS\",\"_operator\":\"The address of the registered operator\"}},\"OperatorWeightUpdated(address,uint256,uint256)\":{\"params\":{\"_operator\":\"The address of the operator updated\",\"newWeight\":\"The operator's weight after the update\",\"oldWeight\":\"The operator's weight before the update\"}},\"QuorumUpdated(((address,uint96)[]),((address,uint96)[]))\":{\"params\":{\"_new\":\"The new quorum configuration\",\"_old\":\"The previous quorum configuration\"}},\"TotalWeightUpdated(uint256,uint256)\":{\"params\":{\"newTotalWeight\":\"The total weight after the update\",\"oldTotalWeight\":\"The total weight before the update\"}},\"UpdateMinimumWeight(uint256,uint256)\":{\"params\":{\"newMinimumWeight\":\"The updated weight\",\"oldMinimumWeight\":\"The previous weight\"}}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Constructor to create ECDSAStakeRegistry.\",\"params\":{\"_delegationManager\":\"Address of the DelegationManager contract that this registry interacts with.\"}},\"getLastCheckpointOperatorWeight(address)\":{\"params\":{\"_operator\":\"The address of the operator.\"},\"returns\":{\"_0\":\"uint256 - The latest weight of the operator.\"}},\"getLastCheckpointThresholdWeight()\":{\"returns\":{\"_0\":\"uint256 - The latest threshold weight.\"}},\"getLastCheckpointThresholdWeightAtBlock(uint32)\":{\"params\":{\"_blockNumber\":\"The block number to get the threshold weight for the quorum\"},\"returns\":{\"_0\":\"uint256 - The threshold weight the given block.\"}},\"getLastCheckpointTotalWeight()\":{\"returns\":{\"_0\":\"uint256 - The latest total weight.\"}},\"getLastCheckpointTotalWeightAtBlock(uint32)\":{\"params\":{\"_blockNumber\":\"The block number to get the total weight for the quorum\"},\"returns\":{\"_0\":\"uint256 - The total weight at the given block.\"}},\"getOperatorWeight(address)\":{\"params\":{\"_operator\":\"The address of the operator.\"},\"returns\":{\"_0\":\"uint256 - The current weight of the operator; returns 0 if below the threshold.\"}},\"getOperatorWeightAtBlock(address,uint32)\":{\"params\":{\"_blockNumber\":\"The block number to get the operator weight for the quorum\",\"_operator\":\"The address of the operator.\"},\"returns\":{\"_0\":\"uint256 - The weight of the operator at the given block.\"}},\"initialize(address,uint256,((address,uint96)[]))\":{\"params\":{\"_quorum\":\"The quorum struct containing the details of the quorum thresholds.\",\"_serviceManager\":\"The address of the service manager.\",\"_thresholdWeight\":\"The threshold weight in basis points.\"}},\"isValidSignature(bytes32,bytes)\":{\"params\":{\"_dataHash\":\"The hash of the data that was signed.\",\"_signatureData\":\"Encoded signature data consisting of an array of signers, an array of signatures, and a reference block number.\"},\"returns\":{\"_0\":\"The function selector that indicates the signature is valid according to ERC1271 standard.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"quorum()\":{\"returns\":{\"_0\":\"Quorum - The current quorum of strategies and weights\"}},\"registerOperatorWithSignature(address,(bytes,bytes32,uint256))\":{\"params\":{\"_operatorSignature\":\"Contains the operator's signature, salt, and expiry\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"updateMinimumWeight(uint256,address[])\":{\"details\":\"Access controlled to the contract owner\",\"params\":{\"_newMinimumWeight\":\"The new weight an operator must have to join the operator set\"}},\"updateOperators(address[])\":{\"details\":\"Queries stakes from the Eigenlayer core DelegationManager contract\",\"params\":{\"_operators\":\"A list of operator addresses to update\"}},\"updateOperatorsForQuorum(address[][],bytes)\":{\"details\":\"This interface maintains compatibility with avs-sync which handles multiquorums while this registry has a single quorum\",\"params\":{\"operatorsPerQuorum\":\"An array of operator address arrays, one for each quorum.\"}},\"updateQuorumConfig(((address,uint96)[]),address[])\":{\"details\":\"Only callable by the contract owner. It first updates the quorum configuration and then updates the list of operators.\",\"params\":{\"_operators\":\"The list of operator addresses to update stakes for\",\"_quorum\":\"The new quorum configuration, including strategies and their new weights\"}},\"updateStakeThreshold(uint256)\":{\"details\":\"This function can only be invoked by the owner of the contract. It delegates the update to an internal function `_updateStakeThreshold`.\",\"params\":{\"_thresholdWeight\":\"The updated threshold weight required to validate a message. This is the cumulative weight that must be met or exceeded by the sum of the stakes of the signatories for a message to be deemed valid.\"}}},\"title\":\"ECDSA Stake Registry\",\"version\":1},\"userdoc\":{\"errors\":{\"InsufficientSignedStake()\":[{\"notice\":\"Indicates the total signed stake fails to meet the required threshold.\"}],\"InsufficientWeight()\":[{\"notice\":\"Indicates an individual signer's weight fails to meet the required threshold.\"}],\"InvalidLength()\":[{\"notice\":\"Indicates encountering an invalid length for the signers or signatures array.\"}],\"InvalidQuorum()\":[{\"notice\":\"Indicates the quorum is invalid\"}],\"InvalidSignature()\":[{\"notice\":\"Indicates encountering an invalid signature.\"}],\"InvalidSignedWeight()\":[{\"notice\":\"Indicates operator weights were out of sync and the signed weight exceed the total\"}],\"InvalidThreshold()\":[{\"notice\":\"Thrown when the threshold update is greater than BPS\"}],\"LengthMismatch()\":[{\"notice\":\"Indicates when the lengths of the signers array and signatures array do not match.\"}],\"MustUpdateAllOperators()\":[{\"notice\":\"Thrown when missing operators in an update \"}],\"NotSorted()\":[{\"notice\":\"Indicates the system finds a list of items unsorted\"}],\"OperatorAlreadyRegistered()\":[{\"notice\":\"Thrown when registering an already registered operator\"}],\"OperatorNotRegistered()\":[{\"notice\":\"Thrown when de-registering or updating the stake for an unregisted operator\"}]},\"events\":{\"MinimumWeightUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the weight to join the operator set updates\"},\"OperatorDeregistered(address,address)\":{\"notice\":\"Emitted when the system deregisters an operator\"},\"OperatorRegistered(address,address)\":{\"notice\":\"Emitted when the system registers an operator\"},\"OperatorWeightUpdated(address,uint256,uint256)\":{\"notice\":\"Emitted when the system updates an operator's weight\"},\"QuorumUpdated(((address,uint96)[]),((address,uint96)[]))\":{\"notice\":\"Emitted when the system updates the quorum\"},\"ThresholdWeightUpdated(uint256)\":{\"notice\":\"Emits when setting a new threshold weight.\"},\"TotalWeightUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the system updates the total weight\"},\"UpdateMinimumWeight(uint256,uint256)\":{\"notice\":\"Emitted when the weight required to be an operator changes\"}},\"kind\":\"user\",\"methods\":{\"deregisterOperator()\":{\"notice\":\"Deregisters an existing operator\"},\"getLastCheckpointOperatorWeight(address)\":{\"notice\":\"Retrieves the last recorded weight for a given operator.\"},\"getLastCheckpointThresholdWeight()\":{\"notice\":\"Retrieves the last recorded threshold weight\"},\"getLastCheckpointThresholdWeightAtBlock(uint32)\":{\"notice\":\"Retrieves the threshold weight at a specific block number.\"},\"getLastCheckpointTotalWeight()\":{\"notice\":\"Retrieves the last recorded total weight across all operators.\"},\"getLastCheckpointTotalWeightAtBlock(uint32)\":{\"notice\":\"Retrieves the total weight at a specific block number.\"},\"getOperatorWeight(address)\":{\"notice\":\"Calculates the current weight of an operator based on their delegated stake in the strategies considered in the quorum\"},\"getOperatorWeightAtBlock(address,uint32)\":{\"notice\":\"Retrieves the operator's weight at a specific block number.\"},\"initialize(address,uint256,((address,uint96)[]))\":{\"notice\":\"Initializes the contract with the given parameters.\"},\"isValidSignature(bytes32,bytes)\":{\"notice\":\"Verifies if the provided signature data is valid for the given data hash.\"},\"minimumWeight()\":{\"notice\":\"Returns the weight an operator must have to contribute to validating an AVS\"},\"quorum()\":{\"notice\":\"Retrieves the current stake quorum details.\"},\"registerOperatorWithSignature(address,(bytes,bytes32,uint256))\":{\"notice\":\"Registers a new operator using a provided signature\"},\"updateMinimumWeight(uint256,address[])\":{\"notice\":\"Updates the weight an operator must have to join the operator set\"},\"updateOperators(address[])\":{\"notice\":\"Updates the StakeRegistry's view of one or more operators' stakes adding a new entry in their history of stake checkpoints,\"},\"updateOperatorsForQuorum(address[][],bytes)\":{\"notice\":\"Updates the set of operators for the first quorum.\"},\"updateQuorumConfig(((address,uint96)[]),address[])\":{\"notice\":\"Updates the quorum configuration and the set of operators\"},\"updateStakeThreshold(uint256)\":{\"notice\":\"Sets a new cumulative threshold weight for message validation by operator set signatures.\"}},\"notice\":\"Manages operator registration and quorum updates for an AVS using ECDSA signatures.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/eigenlayer-middleware/src/unaudited/ECDSAStakeRegistry.sol\":\"ECDSAStakeRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@eigenlayer-middleware/=lib/eigenlayer-middleware/\",\":@eigenlayer-scripts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":@eigenlayer/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":@openzeppelin-upgrades-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":@openzeppelin-upgrades/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":@openzeppelin/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts/\",\":ds-test/=lib/eigenlayer-middleware/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-middleware/=lib/eigenlayer-middleware/\",\":erc4626-tests/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/contracts/\"]},\"sources\":{\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1271Upgradeable.sol\":{\"keccak256\":\"0x4473c09c087ee1a48c5547b23799c0474b2e08cde6fec5921c628171c4ebcdc0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d92614db0b346b756af8ba9bd0098db81b031026361635fb4f55a420254637d\",\"dweb:/ipfs/QmVviVD57zX54ny1zvVsksfYF9RantBwVyJBTdHqPywFuP\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/CheckpointsUpgradeable.sol\":{\"keccak256\":\"0x7fb4716864bc9693785f07ce15f325a44413ad5d2d5685852a9e6112927abd60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2abe805bc615c15daea179f3ff3e3b890f9c0d5ec18d0bb8fad03ab128157ee3\",\"dweb:/ipfs/Qma4UizH7DhTeDfGfkhFFKLnU6p8U9cmodTbgTdRzeFoXX\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c\",\"dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/ECDSAUpgradeable.sol\":{\"keccak256\":\"0xe8c62ca00ed2d0a4d9b7e3c4bf7d62c821618b2cdb3c844da91a1193986851bf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a459d8907c5fe73d70b4c522e48127b13b9aaa29a223670e928a2a5e5e4c8f8\",\"dweb:/ipfs/QmcwBnMVrajEBgj2i1saNXnQ6ytHQdnpQF978E86EuhvtX\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/SignatureCheckerUpgradeable.sol\":{\"keccak256\":\"0xb19a57535ad6c6d773f61c1e8f8cc190fa35e12bfadf3743092537c7695fd96a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79811c8c7aabd4fae5ff3021ae67688fc6f6a820f784676bf4b8e41c0c71577d\",\"dweb:/ipfs/QmSo7DdJSzx4U5xvLPnCLNn2SFBPin8dHxYnJrrwxEYQje\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x3b39e1a87bb94b9145d91007bbd2c964438e99a659b4accc6ec6df6a1c62589a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c983bca009e0c413b39f851ca4728c20c42bcf5359252131d48f612ee5757a70\",\"dweb:/ipfs/QmP1c7MV6FdzTBYTFdosLNijvGa1dKeaGXy5Ax5UV381GZ\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SafeCastUpgradeable.sol\":{\"keccak256\":\"0xd7ebe0f80affaa622b9efd95cc8db3e03e70d699176f7457b4a95e34a11f9834\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8cf00c5981b953e57af6f8d6dad38ff0c90c61f1f1b03042039a41797aa198b\",\"dweb:/ipfs/QmdngJRARxdVwxqG7vHDRf2QSBxK6294Ab16G6hsMoXqew\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xe1626408822f552043f945d9aea18c5cbf878ef160da55e6f98706ed3a2acc07\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://426f6dddc040f2040f48dd4236c4201a3c978b4417ec3b4bd1004f8a48b29aaa\",\"dweb:/ipfs/QmWgY46nZiw1KQYNYMrJDTz7S9Y4KhyUoM9zVD92Mkf51S\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPaymentCoordinator.sol\":{\"keccak256\":\"0x399d4d6a99f8d9ca0a1f422e11d5c2c1784bd1c4118859c17cdb1fabfc0367e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://abfa22018a78703c39c082b929ebf7b73484f8ef86c2e0264c212004f5fac8a0\",\"dweb:/ipfs/QmVqAexXLD7zbAmbrRHkmQaVjgSahnoY2XpzNvKrLLsyet\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0xccd308b0996295c92058b70c3b83563c009c074cb6815329c5f35e1b1a0571f4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cd1050445ff7aeb588b3b037aab53e2d92c3abd4620e94dfc95aca870e71b821\",\"dweb:/ipfs/QmUC96Ctwn3KQr6VSqHPpAVJ5qEUSVnugaxiZ8gfXygW92\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/eigenlayer-middleware/src/interfaces/IECDSAStakeRegistryEventsAndErrors.sol\":{\"keccak256\":\"0x1efbf9f8c85ac67710ed47b1952cebea79226b93846f02a7e939b4d6f45ec883\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be810995472d5c3694dd83d3ce81f75d2719b1efd3df2c893a82c788ff6998cd\",\"dweb:/ipfs/QmXkKu9v5sDsRQWv7uR6o3XAH8PR76CgAfstPdFb6BVrKK\"]},\"lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0xde4d88891f393ef6f3fefabd71a5b3d1305c7373f9e33a13ad30683c1d8c63a5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fbab45eee5148f1764396a76a427cbec1dff1854ee4a2ecf7e47acf129f4797d\",\"dweb:/ipfs/Qmc2yBePJYJMwmXPryAodK2MmBjJx2xYa3Na4pWNUwc3rJ\"]},\"lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/eigenlayer-middleware/src/unaudited/ECDSAStakeRegistry.sol\":{\"keccak256\":\"0xdc37c3c238575fa7620db775565eb573a56293c169a3e146ec66d531cb8e39ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b962f999f89093b41f1e0fc4b8e2a0c7c2c69e8a5c370dc521b55d9b64e93f6\",\"dweb:/ipfs/QmNyB4SgzyKkqGK1tnMscm2X12XZcUmyr99KntJbNRtyLR\"]},\"lib/eigenlayer-middleware/src/unaudited/ECDSAStakeRegistryStorage.sol\":{\"keccak256\":\"0x1381e86d83925969b464f00cc70cbcd52b72a4abb1a54b27b2a48ebe989ecbf5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce671e90dbf8a4279de587f02566f3430c757b610961c81e2f1c806d6bc8d1cf\",\"dweb:/ipfs/QmaDzRgKRg6xeLy7goFF5PkkhwiMuVRSsRmkFCpWc9dq6A\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IDelegationManager","name":"_delegationManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"InsufficientSignedStake"},{"inputs":[],"type":"error","name":"InsufficientWeight"},{"inputs":[],"type":"error","name":"InvalidLength"},{"inputs":[],"type":"error","name":"InvalidQuorum"},{"inputs":[],"type":"error","name":"InvalidSignature"},{"inputs":[],"type":"error","name":"InvalidSignedWeight"},{"inputs":[],"type":"error","name":"InvalidThreshold"},{"inputs":[],"type":"error","name":"LengthMismatch"},{"inputs":[],"type":"error","name":"MustUpdateAllOperators"},{"inputs":[],"type":"error","name":"NotSorted"},{"inputs":[],"type":"error","name":"OperatorAlreadyRegistered"},{"inputs":[],"type":"error","name":"OperatorNotRegistered"},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_old","type":"uint256","indexed":false},{"internalType":"uint256","name":"_new","type":"uint256","indexed":false}],"type":"event","name":"MinimumWeightUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"_operator","type":"address","indexed":true},{"internalType":"address","name":"_avs","type":"address","indexed":true}],"type":"event","name":"OperatorDeregistered","anonymous":false},{"inputs":[{"internalType":"address","name":"_operator","type":"address","indexed":true},{"internalType":"address","name":"_avs","type":"address","indexed":true}],"type":"event","name":"OperatorRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"_operator","type":"address","indexed":true},{"internalType":"uint256","name":"oldWeight","type":"uint256","indexed":false},{"internalType":"uint256","name":"newWeight","type":"uint256","indexed":false}],"type":"event","name":"OperatorWeightUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"struct Quorum","name":"_old","type":"tuple","components":[{"internalType":"struct StrategyParams[]","name":"strategies","type":"tuple[]","components":[{"internalType":"contract IStrategy","name":"strategy","type":"address"},{"internalType":"uint96","name":"multiplier","type":"uint96"}]}],"indexed":false},{"internalType":"struct Quorum","name":"_new","type":"tuple","components":[{"internalType":"struct StrategyParams[]","name":"strategies","type":"tuple[]","components":[{"internalType":"contract IStrategy","name":"strategy","type":"address"},{"internalType":"uint96","name":"multiplier","type":"uint96"}]}],"indexed":false}],"type":"event","name":"QuorumUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_thresholdWeight","type":"uint256","indexed":false}],"type":"event","name":"ThresholdWeightUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"oldTotalWeight","type":"uint256","indexed":false},{"internalType":"uint256","name":"newTotalWeight","type":"uint256","indexed":false}],"type":"event","name":"TotalWeightUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"oldMinimumWeight","type":"uint256","indexed":false},{"internalType":"uint256","name":"newMinimumWeight","type":"uint256","indexed":false}],"type":"event","name":"UpdateMinimumWeight","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"deregisterOperator"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"}],"stateMutability":"view","type":"function","name":"getLastCheckpointOperatorWeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLastCheckpointThresholdWeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint32","name":"_blockNumber","type":"uint32"}],"stateMutability":"view","type":"function","name":"getLastCheckpointThresholdWeightAtBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLastCheckpointTotalWeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint32","name":"_blockNumber","type":"uint32"}],"stateMutability":"view","type":"function","name":"getLastCheckpointTotalWeightAtBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorWeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"uint32","name":"_blockNumber","type":"uint32"}],"stateMutability":"view","type":"function","name":"getOperatorWeightAtBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_serviceManager","type":"address"},{"internalType":"uint256","name":"_thresholdWeight","type":"uint256"},{"internalType":"struct Quorum","name":"_quorum","type":"tuple","components":[{"internalType":"struct StrategyParams[]","name":"strategies","type":"tuple[]","components":[{"internalType":"contract IStrategy","name":"strategy","type":"address"},{"internalType":"uint96","name":"multiplier","type":"uint96"}]}]}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"_dataHash","type":"bytes32"},{"internalType":"bytes","name":"_signatureData","type":"bytes"}],"stateMutability":"view","type":"function","name":"isValidSignature","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minimumWeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_operator","type":"address"}],"stateMutability":"view","type":"function","name":"operatorRegistered","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"quorum","outputs":[{"internalType":"struct Quorum","name":"","type":"tuple","components":[{"internalType":"struct StrategyParams[]","name":"strategies","type":"tuple[]","components":[{"internalType":"contract IStrategy","name":"strategy","type":"address"},{"internalType":"uint96","name":"multiplier","type":"uint96"}]}]}]},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"struct ISignatureUtils.SignatureWithSaltAndExpiry","name":"_operatorSignature","type":"tuple","components":[{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256","name":"expiry","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"registerOperatorWithSignature"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"uint256","name":"_newMinimumWeight","type":"uint256"},{"internalType":"address[]","name":"_operators","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"updateMinimumWeight"},{"inputs":[{"internalType":"address[]","name":"_operators","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"updateOperators"},{"inputs":[{"internalType":"address[][]","name":"operatorsPerQuorum","type":"address[][]"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"updateOperatorsForQuorum"},{"inputs":[{"internalType":"struct Quorum","name":"_quorum","type":"tuple","components":[{"internalType":"struct StrategyParams[]","name":"strategies","type":"tuple[]","components":[{"internalType":"contract IStrategy","name":"strategy","type":"address"},{"internalType":"uint96","name":"multiplier","type":"uint96"}]}]},{"internalType":"address[]","name":"_operators","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"updateQuorumConfig"},{"inputs":[{"internalType":"uint256","name":"_thresholdWeight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"updateStakeThreshold"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Constructor to create ECDSAStakeRegistry.","params":{"_delegationManager":"Address of the DelegationManager contract that this registry interacts with."}},"getLastCheckpointOperatorWeight(address)":{"params":{"_operator":"The address of the operator."},"returns":{"_0":"uint256 - The latest weight of the operator."}},"getLastCheckpointThresholdWeight()":{"returns":{"_0":"uint256 - The latest threshold weight."}},"getLastCheckpointThresholdWeightAtBlock(uint32)":{"params":{"_blockNumber":"The block number to get the threshold weight for the quorum"},"returns":{"_0":"uint256 - The threshold weight the given block."}},"getLastCheckpointTotalWeight()":{"returns":{"_0":"uint256 - The latest total weight."}},"getLastCheckpointTotalWeightAtBlock(uint32)":{"params":{"_blockNumber":"The block number to get the total weight for the quorum"},"returns":{"_0":"uint256 - The total weight at the given block."}},"getOperatorWeight(address)":{"params":{"_operator":"The address of the operator."},"returns":{"_0":"uint256 - The current weight of the operator; returns 0 if below the threshold."}},"getOperatorWeightAtBlock(address,uint32)":{"params":{"_blockNumber":"The block number to get the operator weight for the quorum","_operator":"The address of the operator."},"returns":{"_0":"uint256 - The weight of the operator at the given block."}},"initialize(address,uint256,((address,uint96)[]))":{"params":{"_quorum":"The quorum struct containing the details of the quorum thresholds.","_serviceManager":"The address of the service manager.","_thresholdWeight":"The threshold weight in basis points."}},"isValidSignature(bytes32,bytes)":{"params":{"_dataHash":"The hash of the data that was signed.","_signatureData":"Encoded signature data consisting of an array of signers, an array of signatures, and a reference block number."},"returns":{"_0":"The function selector that indicates the signature is valid according to ERC1271 standard."}},"owner()":{"details":"Returns the address of the current owner."},"quorum()":{"returns":{"_0":"Quorum - The current quorum of strategies and weights"}},"registerOperatorWithSignature(address,(bytes,bytes32,uint256))":{"params":{"_operatorSignature":"Contains the operator's signature, salt, and expiry"}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"updateMinimumWeight(uint256,address[])":{"details":"Access controlled to the contract owner","params":{"_newMinimumWeight":"The new weight an operator must have to join the operator set"}},"updateOperators(address[])":{"details":"Queries stakes from the Eigenlayer core DelegationManager contract","params":{"_operators":"A list of operator addresses to update"}},"updateOperatorsForQuorum(address[][],bytes)":{"details":"This interface maintains compatibility with avs-sync which handles multiquorums while this registry has a single quorum","params":{"operatorsPerQuorum":"An array of operator address arrays, one for each quorum."}},"updateQuorumConfig(((address,uint96)[]),address[])":{"details":"Only callable by the contract owner. It first updates the quorum configuration and then updates the list of operators.","params":{"_operators":"The list of operator addresses to update stakes for","_quorum":"The new quorum configuration, including strategies and their new weights"}},"updateStakeThreshold(uint256)":{"details":"This function can only be invoked by the owner of the contract. It delegates the update to an internal function `_updateStakeThreshold`.","params":{"_thresholdWeight":"The updated threshold weight required to validate a message. This is the cumulative weight that must be met or exceeded by the sum of the stakes of the signatories for a message to be deemed valid."}}},"version":1},"userdoc":{"kind":"user","methods":{"deregisterOperator()":{"notice":"Deregisters an existing operator"},"getLastCheckpointOperatorWeight(address)":{"notice":"Retrieves the last recorded weight for a given operator."},"getLastCheckpointThresholdWeight()":{"notice":"Retrieves the last recorded threshold weight"},"getLastCheckpointThresholdWeightAtBlock(uint32)":{"notice":"Retrieves the threshold weight at a specific block number."},"getLastCheckpointTotalWeight()":{"notice":"Retrieves the last recorded total weight across all operators."},"getLastCheckpointTotalWeightAtBlock(uint32)":{"notice":"Retrieves the total weight at a specific block number."},"getOperatorWeight(address)":{"notice":"Calculates the current weight of an operator based on their delegated stake in the strategies considered in the quorum"},"getOperatorWeightAtBlock(address,uint32)":{"notice":"Retrieves the operator's weight at a specific block number."},"initialize(address,uint256,((address,uint96)[]))":{"notice":"Initializes the contract with the given parameters."},"isValidSignature(bytes32,bytes)":{"notice":"Verifies if the provided signature data is valid for the given data hash."},"minimumWeight()":{"notice":"Returns the weight an operator must have to contribute to validating an AVS"},"quorum()":{"notice":"Retrieves the current stake quorum details."},"registerOperatorWithSignature(address,(bytes,bytes32,uint256))":{"notice":"Registers a new operator using a provided signature"},"updateMinimumWeight(uint256,address[])":{"notice":"Updates the weight an operator must have to join the operator set"},"updateOperators(address[])":{"notice":"Updates the StakeRegistry's view of one or more operators' stakes adding a new entry in their history of stake checkpoints,"},"updateOperatorsForQuorum(address[][],bytes)":{"notice":"Updates the set of operators for the first quorum."},"updateQuorumConfig(((address,uint96)[]),address[])":{"notice":"Updates the quorum configuration and the set of operators"},"updateStakeThreshold(uint256)":{"notice":"Sets a new cumulative threshold weight for message validation by operator set signatures."}},"version":1}},"settings":{"remappings":["@eigenlayer-middleware/=lib/eigenlayer-middleware/","@eigenlayer-scripts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","@eigenlayer/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","@openzeppelin-upgrades-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","@openzeppelin-upgrades/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable/","@openzeppelin-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","@openzeppelin/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts/","ds-test/=lib/eigenlayer-middleware/lib/ds-test/src/","eigenlayer-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-middleware/=lib/eigenlayer-middleware/","erc4626-tests/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/eigenlayer-middleware/src/unaudited/ECDSAStakeRegistry.sol":"ECDSAStakeRegistry"},"evmVersion":"paris","libraries":{}},"sources":{"lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1271Upgradeable.sol":{"keccak256":"0x4473c09c087ee1a48c5547b23799c0474b2e08cde6fec5921c628171c4ebcdc0","urls":["bzz-raw://6d92614db0b346b756af8ba9bd0098db81b031026361635fb4f55a420254637d","dweb:/ipfs/QmVviVD57zX54ny1zvVsksfYF9RantBwVyJBTdHqPywFuP"],"license":"MIT"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/CheckpointsUpgradeable.sol":{"keccak256":"0x7fb4716864bc9693785f07ce15f325a44413ad5d2d5685852a9e6112927abd60","urls":["bzz-raw://2abe805bc615c15daea179f3ff3e3b890f9c0d5ec18d0bb8fad03ab128157ee3","dweb:/ipfs/Qma4UizH7DhTeDfGfkhFFKLnU6p8U9cmodTbgTdRzeFoXX"],"license":"MIT"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xea5339a7fff0ed42b45be56a88efdd0b2ddde9fa480dc99fef9a6a4c5b776863","urls":["bzz-raw://841619682637df5579b4c396d281d6c55b26f1b1acce1d0ab67bead5e39cf60c","dweb:/ipfs/QmNRtuKp43ZHJwswdyT3GivY4fDMvz3cxBe1FfDthG1JGj"],"license":"MIT"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/ECDSAUpgradeable.sol":{"keccak256":"0xe8c62ca00ed2d0a4d9b7e3c4bf7d62c821618b2cdb3c844da91a1193986851bf","urls":["bzz-raw://2a459d8907c5fe73d70b4c522e48127b13b9aaa29a223670e928a2a5e5e4c8f8","dweb:/ipfs/QmcwBnMVrajEBgj2i1saNXnQ6ytHQdnpQF978E86EuhvtX"],"license":"MIT"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/SignatureCheckerUpgradeable.sol":{"keccak256":"0xb19a57535ad6c6d773f61c1e8f8cc190fa35e12bfadf3743092537c7695fd96a","urls":["bzz-raw://79811c8c7aabd4fae5ff3021ae67688fc6f6a820f784676bf4b8e41c0c71577d","dweb:/ipfs/QmSo7DdJSzx4U5xvLPnCLNn2SFBPin8dHxYnJrrwxEYQje"],"license":"MIT"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol":{"keccak256":"0x3b39e1a87bb94b9145d91007bbd2c964438e99a659b4accc6ec6df6a1c62589a","urls":["bzz-raw://c983bca009e0c413b39f851ca4728c20c42bcf5359252131d48f612ee5757a70","dweb:/ipfs/QmP1c7MV6FdzTBYTFdosLNijvGa1dKeaGXy5Ax5UV381GZ"],"license":"MIT"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SafeCastUpgradeable.sol":{"keccak256":"0xd7ebe0f80affaa622b9efd95cc8db3e03e70d699176f7457b4a95e34a11f9834","urls":["bzz-raw://f8cf00c5981b953e57af6f8d6dad38ff0c90c61f1f1b03042039a41797aa198b","dweb:/ipfs/QmdngJRARxdVwxqG7vHDRf2QSBxK6294Ab16G6hsMoXqew"],"license":"MIT"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xe1626408822f552043f945d9aea18c5cbf878ef160da55e6f98706ed3a2acc07","urls":["bzz-raw://426f6dddc040f2040f48dd4236c4201a3c978b4417ec3b4bd1004f8a48b29aaa","dweb:/ipfs/QmWgY46nZiw1KQYNYMrJDTz7S9Y4KhyUoM9zVD92Mkf51S"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPaymentCoordinator.sol":{"keccak256":"0x399d4d6a99f8d9ca0a1f422e11d5c2c1784bd1c4118859c17cdb1fabfc0367e5","urls":["bzz-raw://abfa22018a78703c39c082b929ebf7b73484f8ef86c2e0264c212004f5fac8a0","dweb:/ipfs/QmVqAexXLD7zbAmbrRHkmQaVjgSahnoY2XpzNvKrLLsyet"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0xccd308b0996295c92058b70c3b83563c009c074cb6815329c5f35e1b1a0571f4","urls":["bzz-raw://cd1050445ff7aeb588b3b037aab53e2d92c3abd4620e94dfc95aca870e71b821","dweb:/ipfs/QmUC96Ctwn3KQr6VSqHPpAVJ5qEUSVnugaxiZ8gfXygW92"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/eigenlayer-middleware/src/interfaces/IECDSAStakeRegistryEventsAndErrors.sol":{"keccak256":"0x1efbf9f8c85ac67710ed47b1952cebea79226b93846f02a7e939b4d6f45ec883","urls":["bzz-raw://be810995472d5c3694dd83d3ce81f75d2719b1efd3df2c893a82c788ff6998cd","dweb:/ipfs/QmXkKu9v5sDsRQWv7uR6o3XAH8PR76CgAfstPdFb6BVrKK"],"license":"MIT"},"lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0xde4d88891f393ef6f3fefabd71a5b3d1305c7373f9e33a13ad30683c1d8c63a5","urls":["bzz-raw://fbab45eee5148f1764396a76a427cbec1dff1854ee4a2ecf7e47acf129f4797d","dweb:/ipfs/Qmc2yBePJYJMwmXPryAodK2MmBjJx2xYa3Na4pWNUwc3rJ"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/unaudited/ECDSAStakeRegistry.sol":{"keccak256":"0xdc37c3c238575fa7620db775565eb573a56293c169a3e146ec66d531cb8e39ee","urls":["bzz-raw://0b962f999f89093b41f1e0fc4b8e2a0c7c2c69e8a5c370dc521b55d9b64e93f6","dweb:/ipfs/QmNyB4SgzyKkqGK1tnMscm2X12XZcUmyr99KntJbNRtyLR"],"license":"MIT"},"lib/eigenlayer-middleware/src/unaudited/ECDSAStakeRegistryStorage.sol":{"keccak256":"0x1381e86d83925969b464f00cc70cbcd52b72a4abb1a54b27b2a48ebe989ecbf5","urls":["bzz-raw://ce671e90dbf8a4279de587f02566f3430c757b610961c81e2f1c806d6bc8d1cf","dweb:/ipfs/QmaDzRgKRg6xeLy7goFF5PkkhwiMuVRSsRmkFCpWc9dq6A"],"license":"MIT"}},"version":1},"id":67}