-
Notifications
You must be signed in to change notification settings - Fork 396
Expand file tree
/
Copy pathAlignedLayerServiceManager.json
More file actions
1 lines (1 loc) · 262 KB
/
AlignedLayerServiceManager.json
File metadata and controls
1 lines (1 loc) · 262 KB
1
{"abi":[{"type":"constructor","inputs":[{"name":"__avsDirectory","type":"address","internalType":"contract IAVSDirectory"},{"name":"__rewardsCoordinator","type":"address","internalType":"contract IRewardsCoordinator"},{"name":"__registryCoordinator","type":"address","internalType":"contract IRegistryCoordinator"},{"name":"__stakeRegistry","type":"address","internalType":"contract IStakeRegistry"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"alignedAggregator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"avsDirectory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"batchersBalances","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"batchesState","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"taskCreatedBlock","type":"uint32","internalType":"uint32"},{"name":"responded","type":"bool","internalType":"bool"},{"name":"respondToTaskFeeLimit","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"blsApkRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IBLSApkRegistry"}],"stateMutability":"view"},{"type":"function","name":"checkPublicInput","inputs":[{"name":"publicInput","type":"bytes","internalType":"bytes"},{"name":"hash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"checkSignatures","inputs":[{"name":"msgHash","type":"bytes32","internalType":"bytes32"},{"name":"referenceBlockNumber","type":"uint32","internalType":"uint32"},{"name":"params","type":"tuple","internalType":"struct IBLSSignatureChecker.NonSignerStakesAndSignature","components":[{"name":"nonSignerQuorumBitmapIndices","type":"uint32[]","internalType":"uint32[]"},{"name":"nonSignerPubkeys","type":"tuple[]","internalType":"struct BN254.G1Point[]","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"quorumApks","type":"tuple[]","internalType":"struct BN254.G1Point[]","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"apkG2","type":"tuple","internalType":"struct BN254.G2Point","components":[{"name":"X","type":"uint256[2]","internalType":"uint256[2]"},{"name":"Y","type":"uint256[2]","internalType":"uint256[2]"}]},{"name":"sigma","type":"tuple","internalType":"struct BN254.G1Point","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"quorumApkIndices","type":"uint32[]","internalType":"uint32[]"},{"name":"totalStakeIndices","type":"uint32[]","internalType":"uint32[]"},{"name":"nonSignerStakeIndices","type":"uint32[][]","internalType":"uint32[][]"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct IBLSSignatureChecker.QuorumStakeTotals","components":[{"name":"signedStakeForQuorum","type":"uint96[]","internalType":"uint96[]"},{"name":"totalStakeForQuorum","type":"uint96[]","internalType":"uint96[]"}]},{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"createAVSRewardsSubmission","inputs":[{"name":"rewardsSubmissions","type":"tuple[]","internalType":"struct IRewardsCoordinator.RewardsSubmission[]","components":[{"name":"strategiesAndMultipliers","type":"tuple[]","internalType":"struct IRewardsCoordinator.StrategyAndMultiplier[]","components":[{"name":"strategy","type":"address","internalType":"contract IStrategy"},{"name":"multiplier","type":"uint96","internalType":"uint96"}]},{"name":"token","type":"address","internalType":"contract IERC20"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"startTimestamp","type":"uint32","internalType":"uint32"},{"name":"duration","type":"uint32","internalType":"uint32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createNewTask","inputs":[{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"batchDataPointer","type":"string","internalType":"string"},{"name":"respondToTaskFeeLimit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"delegation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IDelegationManager"}],"stateMutability":"view"},{"type":"function","name":"depositToBatcher","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"deregisterOperatorFromAVS","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"disableVerifier","inputs":[{"name":"verifierIdx","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"disabledVerifiers","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"enableVerifier","inputs":[{"name":"verifierIdx","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getOperatorRestakedStrategies","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getRestakeableStrategies","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_initialOwner","type":"address","internalType":"address"},{"name":"_rewardsInitiator","type":"address","internalType":"address"},{"name":"_alignedAggregator","type":"address","internalType":"address"},{"name":"_pauserRegistry","type":"address","internalType":"contract IPauserRegistry"},{"name":"_initialPausedStatus","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isVerifierDisabled","inputs":[{"name":"verifierIdx","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[{"name":"newPausedStatus","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pauseAll","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[{"name":"index","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"pauserRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPauserRegistry"}],"stateMutability":"view"},{"type":"function","name":"registerOperatorToAVS","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":"registryCoordinator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRegistryCoordinator"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"respondToTaskV2","inputs":[{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"senderAddress","type":"address","internalType":"address"},{"name":"nonSignerStakesAndSignature","type":"tuple","internalType":"struct IBLSSignatureChecker.NonSignerStakesAndSignature","components":[{"name":"nonSignerQuorumBitmapIndices","type":"uint32[]","internalType":"uint32[]"},{"name":"nonSignerPubkeys","type":"tuple[]","internalType":"struct BN254.G1Point[]","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"quorumApks","type":"tuple[]","internalType":"struct BN254.G1Point[]","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"apkG2","type":"tuple","internalType":"struct BN254.G2Point","components":[{"name":"X","type":"uint256[2]","internalType":"uint256[2]"},{"name":"Y","type":"uint256[2]","internalType":"uint256[2]"}]},{"name":"sigma","type":"tuple","internalType":"struct BN254.G1Point","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"quorumApkIndices","type":"uint32[]","internalType":"uint32[]"},{"name":"totalStakeIndices","type":"uint32[]","internalType":"uint32[]"},{"name":"nonSignerStakeIndices","type":"uint32[][]","internalType":"uint32[][]"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rewardsInitiator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setAggregator","inputs":[{"name":"_alignedAggregator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDisabledVerifiers","inputs":[{"name":"bitmap","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPauserRegistry","inputs":[{"name":"newPauserRegistry","type":"address","internalType":"contract IPauserRegistry"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRewardsInitiator","inputs":[{"name":"newRewardsInitiator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStaleStakesForbidden","inputs":[{"name":"value","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stakeRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IStakeRegistry"}],"stateMutability":"view"},{"type":"function","name":"staleStakesForbidden","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"trySignatureAndApkVerification","inputs":[{"name":"msgHash","type":"bytes32","internalType":"bytes32"},{"name":"apk","type":"tuple","internalType":"struct BN254.G1Point","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]},{"name":"apkG2","type":"tuple","internalType":"struct BN254.G2Point","components":[{"name":"X","type":"uint256[2]","internalType":"uint256[2]"},{"name":"Y","type":"uint256[2]","internalType":"uint256[2]"}]},{"name":"sigma","type":"tuple","internalType":"struct BN254.G1Point","components":[{"name":"X","type":"uint256","internalType":"uint256"},{"name":"Y","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"pairingSuccessful","type":"bool","internalType":"bool"},{"name":"siganatureIsValid","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"unpause","inputs":[{"name":"newPausedStatus","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateAVSMetadataURI","inputs":[{"name":"_metadataURI","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifyBatchInclusion","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"pubInputCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"senderAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"BatchVerified","inputs":[{"name":"batchMerkleRoot","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"senderAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BatcherBalanceUpdated","inputs":[{"name":"batcher","type":"address","indexed":true,"internalType":"address"},{"name":"newBalance","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"NewBatchV2","inputs":[{"name":"batchMerkleRoot","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"senderAddress","type":"address","indexed":false,"internalType":"address"},{"name":"taskCreatedBlock","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"batchDataPointer","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"NewBatchV3","inputs":[{"name":"batchMerkleRoot","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"senderAddress","type":"address","indexed":false,"internalType":"address"},{"name":"taskCreatedBlock","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"batchDataPointer","type":"string","indexed":false,"internalType":"string"},{"name":"respondToTaskFeeLimit","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":"Paused","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"newPausedStatus","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PauserRegistrySet","inputs":[{"name":"pauserRegistry","type":"address","indexed":false,"internalType":"contract IPauserRegistry"},{"name":"newPauserRegistry","type":"address","indexed":false,"internalType":"contract IPauserRegistry"}],"anonymous":false},{"type":"event","name":"RewardsInitiatorUpdated","inputs":[{"name":"prevRewardsInitiator","type":"address","indexed":false,"internalType":"address"},{"name":"newRewardsInitiator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StaleStakesForbiddenUpdate","inputs":[{"name":"value","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"newPausedStatus","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"VerifierDisabled","inputs":[{"name":"verifierIdx","type":"uint8","indexed":true,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"VerifierEnabled","inputs":[{"name":"verifierIdx","type":"uint8","indexed":true,"internalType":"uint8"}],"anonymous":false},{"type":"error","name":"BatchAlreadyResponded","inputs":[{"name":"batchIdentifierHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"BatchAlreadySubmitted","inputs":[{"name":"batchIdentifierHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"BatchDoesNotExist","inputs":[{"name":"batchIdentifierHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"InsufficientFunds","inputs":[{"name":"batcher","type":"address","internalType":"address"},{"name":"required","type":"uint256","internalType":"uint256"},{"name":"available","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidAddress","inputs":[{"name":"param","type":"string","internalType":"string"}]},{"type":"error","name":"InvalidDepositAmount","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidQuorumThreshold","inputs":[{"name":"signedStake","type":"uint256","internalType":"uint256"},{"name":"requiredStake","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SenderIsNotAggregator","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"alignedAggregator","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x61018060405234801561001157600080fd5b50604051616065380380616065833981016040819052610030916103fb565b6001600160a01b0380851660805280841660a05280831660c052811660e052818484828461005c610327565b50505050806001600160a01b0316610100816001600160a01b031681525050806001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100dd919061045a565b6001600160a01b0316610120816001600160a01b031681525050806001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610135573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610159919061045a565b6001600160a01b0316610140816001600160a01b031681525050610120516001600160a01b031663df5cf7236040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d8919061045a565b6001600160a01b03908116610160528516905061022c57604051630b0f5aa160e11b815260206004820152600c60248201526b6176734469726563746f727960a01b60448201526064015b60405180910390fd5b6001600160a01b03831661027857604051630b0f5aa160e11b81526020600482015260126024820152713932bbb0b93239a1b7b7b93234b730ba37b960711b6044820152606401610223565b6001600160a01b0382166102cf57604051630b0f5aa160e11b815260206004820152601360248201527f7265676973747279436f6f7264696e61746f72000000000000000000000000006044820152606401610223565b6001600160a01b03811661031657604051630b0f5aa160e11b815260206004820152600d60248201526c7374616b65526567697374727960981b6044820152606401610223565b61031e610327565b5050505061047e565b600054610100900460ff161561038f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401610223565b60005460ff90811610156103e1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146103f857600080fd5b50565b6000806000806080858703121561041157600080fd5b845161041c816103e3565b602086015190945061042d816103e3565b604086015190935061043e816103e3565b606086015190925061044f816103e3565b939692955090935050565b60006020828403121561046c57600080fd5b8151610477816103e3565b9392505050565b60805160a05160c05160e05161010051610120516101405161016051615ada61058b600039600081816107d80152611c690152600081816105290152611e7c01526000818161055d0152818161206901526122590152600081816105c40152818161146f0152818161192f01528181611ad60152611d1d0152600081816111a7015281816112f80152818161138f01528181612e8201528181612ffb015261309a015260008181610fce0152818161105d015281816110dd01528181612619015281816126e501528181612dbd0152612f560152600081816137580152818161381401526138f701526000818161058e0152818161266d0152818161274101526127c00152615ada6000f3fe60806040526004361061026b5760003560e01c8063886f119511610144578063df5cf723116100b6578063f7013ef61161007a578063f7013ef614610872578063f9120af614610892578063fabc1cbc146108b2578063fc299dee146108d2578063fce36c7d146108f2578063fd4c3b7c1461091257600080fd5b8063df5cf723146107c6578063e481af9d146107fa578063ea5ca34b1461080f578063f2fde38b14610825578063f474b5201461084557600080fd5b8063a98fb35511610108578063a98fb355146106cf578063ab21739a146106ef578063b099627e1461070f578063b753645e14610779578063b98d090814610799578063d66eaabd146107b357600080fd5b8063886f1195146106315780638da5cb5b1461065157806395c6d6041461066f5780639926ee7d1461068f578063a364f4da146106af57600080fd5b80634a5bf632116101dd5780635df45946116101a15780635df4594614610517578063683048351461054b5780636b3aa72e1461057f5780636d14a987146105b257806370a08231146105e6578063715018a61461061c57600080fd5b80634a5bf6321461044d5780634ae07c3714610485578063595c6a67146104b35780635ac86ab7146104c85780635c975abb146104f857600080fd5b806318daeeaf1161022f57806318daeeaf1461038d5780632e1a7d4d146103ad57806333cfb7b7146103cd5780633bc28c8c146103fa578063416c7e5e1461041a5780634223d5511461043a57600080fd5b806306045a91146102b257806310d67a2f146102e7578063136439dd14610307578063137122b514610327578063171f1d5b1461035657600080fd5b366102ad5760fc546005906020908116036102a15760405162461bcd60e51b81526004016102989061495a565b60405180910390fd5b6102ab3334610932565b005b600080fd5b3480156102be57600080fd5b506102d26102cd366004614ab9565b6109c2565b60405190151581526020015b60405180910390f35b3480156102f357600080fd5b506102ab610302366004614b5a565b610ae4565b34801561031357600080fd5b506102ab610322366004614b77565b610b97565b34801561033357600080fd5b506102d2610342366004614b9f565b60cc54600160ff9092169190911b16151590565b34801561036257600080fd5b50610376610371366004614c7d565b610cd6565b6040805192151583529015156020830152016102de565b34801561039957600080fd5b506102ab6103a8366004614b9f565b610e60565b3480156103b957600080fd5b506102ab6103c8366004614b77565b610ea8565b3480156103d957600080fd5b506103ed6103e8366004614b5a565b610fa9565b6040516102de9190614cce565b34801561040657600080fd5b506102ab610415366004614b5a565b61145c565b34801561042657600080fd5b506102ab610435366004614d1d565b61146d565b6102ab610448366004614b5a565b6115a4565b34801561045957600080fd5b5060cb5461046d906001600160a01b031681565b6040516001600160a01b0390911681526020016102de565b34801561049157600080fd5b506104a56104a0366004615015565b6115da565b6040516102de9291906150b0565b3480156104bf57600080fd5b506102ab61250e565b3480156104d457600080fd5b506102d26104e3366004614b9f565b60fc54600160ff9092169190911b9081161490565b34801561050457600080fd5b5060fc545b6040519081526020016102de565b34801561052357600080fd5b5061046d7f000000000000000000000000000000000000000000000000000000000000000081565b34801561055757600080fd5b5061046d7f000000000000000000000000000000000000000000000000000000000000000081565b34801561058b57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061046d565b3480156105be57600080fd5b5061046d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105f257600080fd5b50610509610601366004614b5a565b6001600160a01b0316600090815260ca602052604090205490565b34801561062857600080fd5b506102ab6125d5565b34801561063d57600080fd5b5060fb5461046d906001600160a01b031681565b34801561065d57600080fd5b506033546001600160a01b031661046d565b34801561067b57600080fd5b506102d261068a366004615141565b6125e9565b34801561069b57600080fd5b506102ab6106aa36600461518c565b61260e565b3480156106bb57600080fd5b506102ab6106ca366004614b5a565b6126da565b3480156106db57600080fd5b506102ab6106ea366004615243565b6127a1565b3480156106fb57600080fd5b506102ab61070a366004615293565b6127f5565b34801561071b57600080fd5b5061075761072a366004614b77565b60c9602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b6040805163ffffffff90941684529115156020840152908201526060016102de565b34801561078557600080fd5b506102ab610794366004614b77565b612bc7565b3480156107a557600080fd5b506097546102d29060ff1681565b6102ab6107c13660046152ba565b612bd4565b3480156107d257600080fd5b5061046d7f000000000000000000000000000000000000000000000000000000000000000081565b34801561080657600080fd5b506103ed612db7565b34801561081b57600080fd5b5061050960cc5481565b34801561083157600080fd5b506102ab610840366004614b5a565b613163565b34801561085157600080fd5b50610509610860366004614b5a565b60ca6020526000908152604090205481565b34801561087e57600080fd5b506102ab61088d36600461530c565b6131d9565b34801561089e57600080fd5b506102ab6108ad366004614b5a565b6133f9565b3480156108be57600080fd5b506102ab6108cd366004614b77565b613423565b3480156108de57600080fd5b5060655461046d906001600160a01b031681565b3480156108fe57600080fd5b506102ab61090d366004615370565b61357f565b34801561091e57600080fd5b506102ab61092d366004614b9f565b61392e565b8060000361095657604051632097692160e11b815260048101829052602401610298565b6001600160a01b038216600090815260ca60205260408120805483929061097e9084906153fb565b90915550506001600160a01b038216600081815260ca6020908152604091829020549151918252600080516020615a65833981519152910160405180910390a25050565b60fc546000906002906004908116036109ed5760405162461bcd60e51b81526004016102989061495a565b60006001600160a01b038416610a04575085610a30565b8684604051602001610a1792919061540e565b6040516020818303038152906040528051906020012090505b600081815260c9602052604081205463ffffffff169003610a55576000925050610ad7565b600081815260c96020526040902054640100000000900460ff16610a7d576000925050610ad7565b60408051602081018d90529081018b9052606081018a90526001600160601b03198916608082015260009060940160408051601f1981840301815291905280516020820120909150610ad1888a838a613975565b94505050505b5098975050505050505050565b60fb60009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5b9190615429565b6001600160a01b0316336001600160a01b031614610b8b5760405162461bcd60e51b815260040161029890615446565b610b948161398d565b50565b60fb5460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610bdf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c039190615490565b610c1f5760405162461bcd60e51b8152600401610298906154ad565b60fc5481811614610c985760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610298565b60fc81905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000187876000015188602001518860000151600060028110610d1e57610d1e6154f5565b60200201518951600160200201518a60200151600060028110610d4357610d436154f5565b60200201518b60200151600160028110610d5f57610d5f6154f5565b602090810291909101518c518d830151604051610dbc9a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c610ddf919061550b565b9050610e52610df8610df18884613a84565b8690613b15565b610e00613baa565b610e48610e3985610e33604080518082018252600080825260209182015281518083019092526001825260029082015290565b90613a84565b610e428c613c6a565b90613b15565b886201d4c0613cf9565b909890975095505050505050565b610e68613f13565b60cc8054600160ff841690811b199091169091556040517f5f52704e8e0190647930ccde0e43e14e89902d7d8c49c5f9e2544029f45ec12a90600090a250565b60fc54600390600890811603610ed05760405162461bcd60e51b81526004016102989061495a565b33600090815260ca6020526040902054821115610f215733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018490526044820152606401610298565b33600090815260ca602052604081208054849290610f4090849061552d565b909155505033600081815260ca6020908152604091829020549151918252600080516020615a65833981519152910160405180910390a2604051339083156108fc029084906000818181858888f19350505050158015610fa4573d6000803e3d6000fd5b505050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000000000000000000000000000000000000000000016906313542a4e90602401602060405180830381865afa158015611015573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110399190615540565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063871ef04990602401602060405180830381865afa1580156110a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c89190615559565b90506001600160c01b038116158061116257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611139573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115d9190615582565b60ff16155b156111825760408051600080825260208201909252905b50949350505050565b6000611196826001600160c01b0316613f6d565b90506000805b8251811015611262577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ca5a5f58483815181106111e6576111e66154f5565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa15801561122a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124e9190615540565b61125890836153fb565b915060010161119c565b506000816001600160401b0381111561127d5761127d614991565b6040519080825280602002602001820160405280156112a6578160200160208202803683370190505b5090506000805b845181101561144f5760008582815181106112ca576112ca6154f5565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ca5a5f590602401602060405180830381865afa15801561133f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113639190615540565b905060005b81811015611444576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa1580156113dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140191906155b4565b60000151868681518110611417576114176154f5565b6001600160a01b039092166020928302919091019091015284611439816155f7565b955050600101611368565b5050506001016112ad565b5090979650505050505050565b611464613f13565b610b948161402f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ef9190615429565b6001600160a01b0316336001600160a01b03161461159b5760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a401610298565b610b9481614098565b60fc546004906010908116036115cc5760405162461bcd60e51b81526004016102989061495a565b6115d68234610932565b5050565b6040805180820190915260608082526020820152600082604001515160405180604001604052806001815260200160008152505114801561163657508260a0015151604051806040016040528060018152602001600081525051145b801561165d57508260c0015151604051806040016040528060018152602001600081525051145b801561168457508260e0015151604051806040016040528060018152602001600081525051145b6116ee5760405162461bcd60e51b81526020600482015260416024820152600080516020615a8583398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a401610298565b825151602084015151146117665760405162461bcd60e51b815260206004820152604460248201819052600080516020615a85833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a401610298565b4363ffffffff168463ffffffff16106117d55760405162461bcd60e51b815260206004820152603c6024820152600080516020615a8583398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b000000006064820152608401610298565b60408051808201825260008082526020808301829052835180850185526060808252818301528451808601865260018082529083019390935284518381528086019095529293919082810190803683370190505060208281019190915260408051808201825260018082526000919093015280518281528082019091529081602001602082028036833701905050815260408051808201909152606080825260208201528560200151516001600160401b0381111561189657611896614991565b6040519080825280602002602001820160405280156118bf578160200160208202803683370190505b5081526020860151516001600160401b038111156118df576118df614991565b604051908082528060200260200182016040528015611908578160200160208202803683370190505b50816020018190525060006119b460405180604001604052806001815260200160008152507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561198b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119af9190615582565b6140df565b905060005b876020015151811015611c45576119fe886020015182815181106119df576119df6154f5565b6020026020010151805160009081526020918201519091526040902090565b83602001518281518110611a1457611a146154f5565b60209081029190910101528015611ad4576020830151611a3560018361552d565b81518110611a4557611a456154f5565b602002602001015160001c83602001518281518110611a6657611a666154f5565b602002602001015160001c11611ad4576040805162461bcd60e51b8152602060048201526024810191909152600080516020615a8583398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f727465646064820152608401610298565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166304ec635184602001518381518110611b1957611b196154f5565b60200260200101518b8b600001518581518110611b3857611b386154f5565b60200260200101516040518463ffffffff1660e01b8152600401611b759392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015611b92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb69190615559565b6001600160c01b031683600001518281518110611bd557611bd56154f5565b602002602001018181525050611c3b610df1611c0f8486600001518581518110611c0157611c016154f5565b602002602001015116614172565b8a602001518481518110611c2557611c256154f5565b602002602001015161419d90919063ffffffff16565b94506001016119b9565b5050611c5083614280565b60975490935060ff16600081611c67576000611ce9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce99190615540565b905060005b6040518060400160405280600181526020016000815250518110156123df578215611e7a578963ffffffff16827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663249a0c4260405180604001604052806001815260200160008152508581518110611d7257611d726154f5565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015611db6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dda9190615540565b611de491906153fb565b11611e7a5760405162461bcd60e51b81526020600482015260666024820152600080516020615a8583398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c401610298565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166368bccaac60405180604001604052806001815260200160008152508381518110611ed157611ed16154f5565b602001015160f81c60f81b60f81c8c8c60a001518581518110611ef657611ef66154f5565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611f52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f769190615610565b6001600160401b031916611f998a6040015183815181106119df576119df6154f5565b67ffffffffffffffff1916146120355760405162461bcd60e51b81526020600482015260616024820152600080516020615a8583398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c401610298565b6120658960400151828151811061204e5761204e6154f5565b602002602001015187613b1590919063ffffffff16565b95507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c8294c56604051806040016040528060018152602001600081525083815181106120be576120be6154f5565b602001015160f81c60f81b60f81c8c8c60c0015185815181106120e3576120e36154f5565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa15801561213f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612163919061563b565b85602001518281518110612179576121796154f5565b6001600160601b039092166020928302919091018201528501518051829081106121a5576121a56154f5565b6020026020010151856000015182815181106121c3576121c36154f5565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a60200151518110156123d5576122528660000151828151811061220d5761220d6154f5565b60200260200101516040518060400160405280600181526020016000815250858151811061223d5761223d6154f5565b016020015160f81c60ff161c60019081161490565b156123cd577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2be94ae604051806040016040528060018152602001600081525085815181106122ae576122ae6154f5565b602001015160f81c60f81b60f81c8e896020015185815181106122d3576122d36154f5565b60200260200101518f60e0015188815181106122f1576122f16154f5565b6020026020010151878151811061230a5761230a6154f5565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa15801561236e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612392919061563b565b87518051859081106123a6576123a66154f5565b602002602001018181516123ba9190615658565b6001600160601b03169052506001909101905b6001016121e7565b5050600101611cee565b5050506000806123f98a868a606001518b60800151610cd6565b915091508161246a5760405162461bcd60e51b81526020600482015260436024820152600080516020615a8583398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a401610298565b806124cb5760405162461bcd60e51b81526020600482015260396024820152600080516020615a8583398151915260448201527f7265733a207369676e617475726520697320696e76616c6964000000000000006064820152608401610298565b505060008782602001516040516020016124e6929190615677565b60408051808303601f1901815291905280516020909101209299929850919650505050505050565b60fb5460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015612556573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061257a9190615490565b6125965760405162461bcd60e51b8152600401610298906154ad565b60001960fc81905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6125dd613f13565b6125e7600061431b565b565b60008184846040516125fc9291906156bf565b60405180910390201490509392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146126565760405162461bcd60e51b8152600401610298906156cf565b604051639926ee7d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639926ee7d906126a4908590859060040161578d565b600060405180830381600087803b1580156126be57600080fd5b505af11580156126d2573d6000803e3d6000fd5b505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146127225760405162461bcd60e51b8152600401610298906156cf565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da906024015b600060405180830381600087803b15801561278657600080fd5b505af115801561279a573d6000803e3d6000fd5b5050505050565b6127a9613f13565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a98fb3559061276c9084906004016157d8565b60cb546001600160a01b031633146128355760cb54604051632cbe419560e01b81523360048201526001600160a01b039091166024820152604401610298565b60fc5460019060029081160361285d5760405162461bcd60e51b81526004016102989061495a565b60005a90506000858560405160200161287792919061540e565b60408051601f198184030181529181528151602092830120600081815260c990935290822080549193509163ffffffff90911690036128cc576040516311cb69a760e11b815260048101839052602401610298565b8054640100000000900460ff16156128fa57604051634e78d7f960e11b815260048101839052602401610298565b805464ff00000000191664010000000017815560018101546001600160a01b038716600090815260ca6020526040902054101561297d5760018101546001600160a01b038716600081815260ca602052604090819020549051632e2a182f60e11b8152600481019290925260248201929092526044810191909152606401610298565b805460009061299490849063ffffffff16886115da565b509050604360ff1681602001516000815181106129b3576129b36154f5565b60200260200101516129c591906157eb565b6001600160601b0316606482600001516000815181106129e7576129e76154f5565b60200260200101516001600160601b0316612a029190615814565b1015612a955760648160000151600081518110612a2157612a216154f5565b60200260200101516001600160601b0316612a3c9190615814565b604360ff168260200151600081518110612a5857612a586154f5565b6020026020010151612a6a91906157eb565b60405163530f5c4560e11b815260048101929092526001600160601b03166024820152604401610298565b6040516001600160a01b038816815288907f8511746b73275e06971968773119b9601fc501d7bdf3824d8754042d148940e29060200160405180910390a260003a5a612ae1908761552d565b612aee90620111706153fb565b612af89190615814565b9050600083600101548210612b11578360010154612b13565b815b6001600160a01b038a16600090815260ca6020526040812080549293508392909190612b4090849061552d565b90915550506001600160a01b038916600081815260ca6020908152604091829020549151918252600080516020615a65833981519152910160405180910390a260cb546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612bba573d6000803e3d6000fd5b5050505050505050505050565b612bcf613f13565b60cc55565b60fc54600090600190811603612bfc5760405162461bcd60e51b81526004016102989061495a565b60008533604051602001612c1192919061540e565b60408051601f198184030181529181528151602092830120600081815260c990935291205490915063ffffffff1615612c6057604051630c40bc4360e21b815260048101829052602401610298565b3415612cbd5733600090815260ca602052604081208054349290612c859084906153fb565b909155505033600081815260ca6020908152604091829020549151918252600080516020615a65833981519152910160405180910390a25b33600090815260ca6020526040902054831115612d0e5733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018590526044820152606401610298565b604080516060810182526000602080830182815263ffffffff4381811686528587018a815288865260c99094529386902085518154935115156401000000000264ffffffffff1990941692169190911791909117815590516001909101559151909188917f8801fc966deb2c8f563a103c35c9e80740585c292cd97518587e6e7927e6af5591612da6913391908b908b908b9061582b565b60405180910390a250505050505050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e3d9190615582565b60ff16905080600003612e5e57505060408051600081526020810190915290565b6000805b82811015612f0957604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612ed1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ef59190615540565b612eff90836153fb565b9150600101612e62565b506000816001600160401b03811115612f2457612f24614991565b604051908082528060200260200182016040528015612f4d578160200160208202803683370190505b5090506000805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fd69190615582565b60ff1681101561315957604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa15801561304a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061306e9190615540565b905060005b8181101561314f576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa1580156130e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061310c91906155b4565b60000151858581518110613122576131226154f5565b6001600160a01b039092166020928302919091019091015283613144816155f7565b945050600101613073565b5050600101612f54565b5090949350505050565b61316b613f13565b6001600160a01b0381166131d05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610298565b610b948161431b565b600054610100900460ff16158080156131f95750600054600160ff909116105b806132135750303b158015613213575060005460ff166001145b6132765760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610298565b6000805460ff191660011790558015613299576000805461ff0019166101001790555b6001600160a01b0386166132df57604051630b0f5aa160e11b815260206004820152600c60248201526b34b734ba34b0b627bbb732b960a11b6044820152606401610298565b6001600160a01b03851661332957604051630b0f5aa160e11b815260206004820152601060248201526f3932bbb0b93239a4b734ba34b0ba37b960811b6044820152606401610298565b6001600160a01b03841661337457604051630b0f5aa160e11b815260206004820152601160248201527030b634b3b732b220b3b3b932b3b0ba37b960791b6044820152606401610298565b61337e868661436d565b60cb80546001600160a01b0319166001600160a01b0386161790556133a28661431b565b6133ac83836143ea565b80156126d2576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b613401613f13565b60cb80546001600160a01b0319166001600160a01b0392909216919091179055565b60fb60009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613476573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061349a9190615429565b6001600160a01b0316336001600160a01b0316146134ca5760405162461bcd60e51b815260040161029890615446565b60fc5419811960fc541916146135485760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610298565b60fc81905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610ccb565b6065546001600160a01b031633146136145760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a401610298565b60005b818110156138df57828282818110613631576136316154f5565b90506020028101906136439190615882565b613654906040810190602001614b5a565b6001600160a01b03166323b872dd3330868686818110613676576136766154f5565b90506020028101906136889190615882565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af11580156136df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137039190615490565b506000838383818110613718576137186154f5565b905060200281019061372a9190615882565b61373b906040810190602001614b5a565b604051636eb1769f60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa1580156137a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137cd9190615540565b90508383838181106137e1576137e16154f5565b90506020028101906137f39190615882565b613804906040810190602001614b5a565b6001600160a01b031663095ea7b37f000000000000000000000000000000000000000000000000000000000000000083878787818110613846576138466154f5565b90506020028101906138589190615882565b6040013561386691906153fb565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156138b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138d59190615490565b5050600101613617565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063fce36c7d906126a49085908590600401615909565b613936613f13565b60cc8054600160ff841690811b9091179091556040517fec54a85c01b5fc7fb41be0f33eabc56f2981110da8317b9817bc7c718f6d7bfe90600090a250565b6000836139838685856144d0565b1495945050505050565b6001600160a01b038116613a1b5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610298565b60fb54604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a160fb80546001600160a01b0319166001600160a01b0392909216919091179055565b6040805180820190915260008082526020820152613aa0614880565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa90508080613acf57fe5b5080613b0d5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b6044820152606401610298565b505092915050565b6040805180820190915260008082526020820152613b3161489e565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa90508080613b6c57fe5b5080613b0d5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b6044820152606401610298565b613bb26148bc565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b604080518082019091526000808252602082015260008080613c9a600080516020615a458339815191528661550b565b90505b613ca6816145cd565b9093509150600080516020615a458339815191528283098303613cdf576040805180820190915290815260208101919091529392505050565b600080516020615a45833981519152600182089050613c9d565b604080518082018252868152602080820186905282518084019093528683528201849052600091829190613d2b6148e1565b60005b6002811015613ee6576000613d44826006615814565b9050848260028110613d5857613d586154f5565b60200201515183613d6a8360006153fb565b600c8110613d7a57613d7a6154f5565b6020020152848260028110613d9157613d916154f5565b60200201516020015183826001613da891906153fb565b600c8110613db857613db86154f5565b6020020152838260028110613dcf57613dcf6154f5565b6020020151515183613de28360026153fb565b600c8110613df257613df26154f5565b6020020152838260028110613e0957613e096154f5565b6020020151516001602002015183613e228360036153fb565b600c8110613e3257613e326154f5565b6020020152838260028110613e4957613e496154f5565b602002015160200151600060028110613e6457613e646154f5565b602002015183613e758360046153fb565b600c8110613e8557613e856154f5565b6020020152838260028110613e9c57613e9c6154f5565b602002015160200151600160028110613eb757613eb76154f5565b602002015183613ec88360056153fb565b600c8110613ed857613ed86154f5565b602002015250600101613d2e565b50613eef614900565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b6033546001600160a01b031633146125e75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610298565b6060600080613f7b84614172565b61ffff166001600160401b03811115613f9657613f96614991565b6040519080825280601f01601f191660200182016040528015613fc0576020820181803683370190505b5090506000805b825182108015613fd8575061010081105b15613159576001811b93508584161561401f578060f81b838381518110614001576140016154f5565b60200101906001600160f81b031916908160001a9053508160010191505b614028816155f7565b9050613fc7565b606554604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b6000806140eb8461464f565b9050808360ff166001901b116141695760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610298565b90505b92915050565b6000805b821561416c5761418760018461552d565b909216918061419581615a23565b915050614176565b60408051808201909152600080825260208201526102008261ffff16106141f95760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b6044820152606401610298565b8161ffff1660010361420c57508161416c565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff161061427557600161ffff871660ff83161c81169003614258576142558484613b15565b93505b6142628384613b15565b92506201fffe600192831b169101614228565b509195945050505050565b604080518082019091526000808252602082015281511580156142a557506020820151155b156142c3575050604080518082019091526000808252602082015290565b604051806040016040528083600001518152602001600080516020615a4583398151915284602001516142f6919061550b565b61430e90600080516020615a4583398151915261552d565b905292915050565b919050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166143d85760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610298565b6143e18261431b565b6115d68161402f565b60fb546001600160a01b031615801561440b57506001600160a01b03821615155b61448d5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610298565b60fc81905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26115d68261398d565b6000602084516144e0919061550b565b156145675760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a401610298565b8260205b855181116111795761457e60028561550b565b6000036145a2578160005280860151602052604060002091506002840493506145bb565b8086015160005281602052604060002091506002840493505b6145c66020826153fb565b905061456b565b60008080600080516020615a458339815191526003600080516020615a4583398151915286600080516020615a45833981519152888909090890506000614643827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615a458339815191526147d7565b91959194509092505050565b6000610100825111156146d85760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610298565b81516000036146e957506000919050565b600080836000815181106146ff576146ff6154f5565b0160200151600160f89190911c81901b92505b84518110156147ce5784818151811061472d5761472d6154f5565b0160200151600160f89190911c1b91508282116147c25760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610298565b91811791600101614712565b50909392505050565b6000806147e2614900565b6147ea61491e565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa9250828061482757fe5b50826148755760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610298565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b60405180604001604052806148cf61493c565b81526020016148dc61493c565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156149c9576149c9614991565b60405290565b60405161010081016001600160401b03811182821017156149c9576149c9614991565b604051601f8201601f191681016001600160401b0381118282101715614a1a57614a1a614991565b604052919050565b6000806001600160401b03841115614a3c57614a3c614991565b50601f8301601f1916602001614a51816149f2565b915050828152838383011115614a6657600080fd5b828260208301376000602084830101529392505050565b600082601f830112614a8e57600080fd5b614a9d83833560208501614a22565b9392505050565b6001600160a01b0381168114610b9457600080fd5b600080600080600080600080610100898b031215614ad657600080fd5b88359750602089013596506040890135955060608901356001600160601b031981168114614b0357600080fd5b94506080890135935060a08901356001600160401b03811115614b2557600080fd5b614b318b828c01614a7d565b93505060c0890135915060e0890135614b4981614aa4565b809150509295985092959890939650565b600060208284031215614b6c57600080fd5b813561416981614aa4565b600060208284031215614b8957600080fd5b5035919050565b60ff81168114610b9457600080fd5b600060208284031215614bb157600080fd5b813561416981614b90565b600060408284031215614bce57600080fd5b614bd66149a7565b823581526020928301359281019290925250919050565b600082601f830112614bfe57600080fd5b614c066149a7565b806040840185811115614c1857600080fd5b845b81811015614c32578035845260209384019301614c1a565b509095945050505050565b600060808284031215614c4f57600080fd5b614c576149a7565b9050614c638383614bed565b8152614c728360408401614bed565b602082015292915050565b6000806000806101208587031215614c9457600080fd5b84359350614ca58660208701614bbc565b9250614cb48660608701614c3d565b9150614cc38660e08701614bbc565b905092959194509250565b602080825282518282018190526000918401906040840190835b81811015614c325783516001600160a01b0316835260209384019390920191600101614ce8565b8015158114610b9457600080fd5b600060208284031215614d2f57600080fd5b813561416981614d0f565b803563ffffffff8116811461431657600080fd5b60006001600160401b03821115614d6757614d67614991565b5060051b60200190565b600082601f830112614d8257600080fd5b8135614d95614d9082614d4e565b6149f2565b8082825260208201915060208360051b860101925085831115614db757600080fd5b602085015b83811015614ddb57614dcd81614d3a565b835260209283019201614dbc565b5095945050505050565b600082601f830112614df657600080fd5b8135614e04614d9082614d4e565b8082825260208201915060208360061b860101925085831115614e2657600080fd5b602085015b83811015614ddb57614e3d8782614bbc565b8352602090920191604001614e2b565b600082601f830112614e5e57600080fd5b8135614e6c614d9082614d4e565b8082825260208201915060208360051b860101925085831115614e8e57600080fd5b602085015b83811015614ddb5780356001600160401b03811115614eb157600080fd5b614ec0886020838a0101614d71565b84525060209283019201614e93565b60006101808284031215614ee257600080fd5b614eea6149cf565b905081356001600160401b03811115614f0257600080fd5b614f0e84828501614d71565b82525060208201356001600160401b03811115614f2a57600080fd5b614f3684828501614de5565b60208301525060408201356001600160401b03811115614f5557600080fd5b614f6184828501614de5565b604083015250614f748360608401614c3d565b6060820152614f868360e08401614bbc565b60808201526101208201356001600160401b03811115614fa557600080fd5b614fb184828501614d71565b60a0830152506101408201356001600160401b03811115614fd157600080fd5b614fdd84828501614d71565b60c0830152506101608201356001600160401b03811115614ffd57600080fd5b61500984828501614e4d565b60e08301525092915050565b60008060006060848603121561502a57600080fd5b8335925061503a60208501614d3a565b915060408401356001600160401b0381111561505557600080fd5b61506186828701614ecf565b9150509250925092565b600081518084526020840193506020830160005b828110156150a65781516001600160601b031686526020958601959091019060010161507f565b5093949350505050565b60408152600083516040808401526150cb608084018261506b565b90506020850151603f198483030160608501526150e8828261506b565b925050508260208301529392505050565b60008083601f84011261510b57600080fd5b5081356001600160401b0381111561512257600080fd5b60208301915083602082850101111561513a57600080fd5b9250929050565b60008060006040848603121561515657600080fd5b83356001600160401b0381111561516c57600080fd5b615178868287016150f9565b909790965060209590950135949350505050565b6000806040838503121561519f57600080fd5b82356151aa81614aa4565b915060208301356001600160401b038111156151c557600080fd5b8301606081860312156151d757600080fd5b604051606081016001600160401b03811182821017156151f9576151f9614991565b60405281356001600160401b0381111561521257600080fd5b61521e87828501614a7d565b8252506020828101359082015260409182013591810191909152919491935090915050565b60006020828403121561525557600080fd5b81356001600160401b0381111561526b57600080fd5b8201601f8101841361527c57600080fd5b61528b84823560208401614a22565b949350505050565b6000806000606084860312156152a857600080fd5b83359250602084013561503a81614aa4565b600080600080606085870312156152d057600080fd5b8435935060208501356001600160401b038111156152ed57600080fd5b6152f9878288016150f9565b9598909750949560400135949350505050565b600080600080600060a0868803121561532457600080fd5b853561532f81614aa4565b9450602086013561533f81614aa4565b9350604086013561534f81614aa4565b9250606086013561535f81614aa4565b949793965091946080013592915050565b6000806020838503121561538357600080fd5b82356001600160401b0381111561539957600080fd5b8301601f810185136153aa57600080fd5b80356001600160401b038111156153c057600080fd5b8560208260051b84010111156153d557600080fd5b6020919091019590945092505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561416c5761416c6153e5565b91825260601b6001600160601b031916602082015260340190565b60006020828403121561543b57600080fd5b815161416981614aa4565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156154a257600080fd5b815161416981614d0f565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60008261552857634e487b7160e01b600052601260045260246000fd5b500690565b8181038181111561416c5761416c6153e5565b60006020828403121561555257600080fd5b5051919050565b60006020828403121561556b57600080fd5b81516001600160c01b038116811461416957600080fd5b60006020828403121561559457600080fd5b815161416981614b90565b6001600160601b0381168114610b9457600080fd5b600060408284031280156155c757600080fd5b506155d06149a7565b82516155db81614aa4565b815260208301516155eb8161559f565b60208201529392505050565b600060018201615609576156096153e5565b5060010190565b60006020828403121561562257600080fd5b815167ffffffffffffffff198116811461416957600080fd5b60006020828403121561564d57600080fd5b81516141698161559f565b6001600160601b03828116828216039081111561416c5761416c6153e5565b63ffffffff60e01b8360e01b16815260006004820183516020850160005b828110156156b3578151845260209384019390910190600101615695565b50919695505050505050565b8183823760009101908152919050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b8181101561576d57602081850181015186830182015201615751565b506000602082860101526020601f19601f83011685010191505092915050565b60018060a01b03831681526040602082015260008251606060408401526157b760a0840182615747565b90506020840151606084015260408401516080840152809150509392505050565b602081526000614a9d6020830184615747565b6001600160601b03818116838216029081169081811461580d5761580d6153e5565b5092915050565b808202811582820484141761416c5761416c6153e5565b6001600160a01b038616815263ffffffff851660208201526080604082018190528101839052828460a0830137600060a08483010152600060a0601f19601f86011683010190508260608301529695505050505050565b60008235609e1983360301811261589857600080fd5b9190910192915050565b803561431681614aa4565b81835260208301925060008160005b848110156150a65781356158cf81614aa4565b6001600160a01b0316865260208201356158e88161559f565b6001600160601b0316602087015260409586019591909101906001016158bc565b6020808252810182905260006040600584901b830181019083018583609e1936839003015b87821015615a1657868503603f19018452823581811261594d57600080fd5b8901803536829003601e1901811261596457600080fd5b81016020810190356001600160401b0381111561598057600080fd5b8060061b360382131561599257600080fd5b60a088526159a460a0890182846158ad565b9150506159b3602083016158a2565b6001600160a01b03166020880152604082810135908801526159d760608301614d3a565b63ffffffff1660608801526159ee60808301614d3a565b63ffffffff81166080890152915095505060209384019392909201916001919091019061592e565b5092979650505050505050565b600061ffff821661ffff8103615a3b57615a3b6153e5565b6001019291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd470ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0424c535369676e6174757265436865636b65722e636865636b5369676e617475a26469706673582212208755cc8934ae88fa5027fb1b5c2e8633ac3a93597ddef7c24271a5bf2132c78664736f6c634300081c0033","sourceMap":"1014:11385:115:-:0;;;1315:939;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1590:30:78;;;;;1630:42;;;;;1682:44;;;;;1736:32;;;;1541:21:115;1604:14;1632:20;1541:21;1701:15;2276:22:77::1;:20;:22::i;:::-;1894:411:::0;;;;1793:20:76;-1:-1:-1;;;;;1771:42:76;;;-1:-1:-1;;;;;1771:42:76;;;;;1839:20;-1:-1:-1;;;;;1839:34:76;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1823:52:76;;;-1:-1:-1;;;;;1823:52:76;;;;;1902:20;-1:-1:-1;;;;;1902:35:76;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1885:54:76;;;-1:-1:-1;;;;;1885:54:76;;;;;1962:13;;-1:-1:-1;;;;;1962:24:76;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1949:39:76;;;;;1745:37:115;::::2;::::0;-1:-1:-1;1741:105:115::2;;1805:30;::::0;-1:-1:-1;;;1805:30:115;;2079:2:123;1805:30:115::2;::::0;::::2;2061:21:123::0;2118:2;2098:18;;;2091:30;-1:-1:-1;;;2137:18:123;;;2130:42;2189:18;;1805:30:115::2;;;;;;;;1741:105;-1:-1:-1::0;;;;;1859:43:115;::::2;1855:117;;1925:36;::::0;-1:-1:-1;;;1925:36:115;;2420:2:123;1925:36:115::2;::::0;::::2;2402:21:123::0;2459:2;2439:18;;;2432:30;-1:-1:-1;;;2478:18:123;;;2471:48;2536:18;;1925:36:115::2;2218:342:123::0;1855:117:115::2;-1:-1:-1::0;;;;;1985:44:115;::::2;1981:119;;2052:37;::::0;-1:-1:-1;;;2052:37:115;;2767:2:123;2052:37:115::2;::::0;::::2;2749:21:123::0;2806:2;2786:18;;;2779:30;2845:21;2825:18;;;2818:49;2884:18;;2052:37:115::2;2565:343:123::0;1981:119:115::2;-1:-1:-1::0;;;;;2113:38:115;::::2;2109:107;;2174:31;::::0;-1:-1:-1;;;2174:31:115;;3115:2:123;2174:31:115::2;::::0;::::2;3097:21:123::0;3154:2;3134:18;;;3127:30;-1:-1:-1;;;3173:18:123;;;3166:43;3226:18;;2174:31:115::2;2913:337:123::0;2109:107:115::2;2225:22;:20;:22::i;:::-;1315:939:::0;;;;1014:11385;;5388:279:44;5456:13;;;;;;;5455:14;5447:66;;;;-1:-1:-1;;;5447:66:44;;3457:2:123;5447:66:44;;;3439:21:123;3496:2;3476:18;;;3469:30;3535:34;3515:18;;;3508:62;-1:-1:-1;;;3586:18:123;;;3579:37;3633:19;;5447:66:44;3255:403:123;5447:66:44;5527:12;;5542:15;5527:12;;;:30;5523:138;;;5573:12;:30;;-1:-1:-1;;5573:30:44;5588:15;5573:30;;;;;;5622:28;;3805:36:123;;;5622:28:44;;3793:2:123;3778:18;5622:28:44;;;;;;;5523:138;5388:279::o;14:146:123:-;-1:-1:-1;;;;;104:31:123;;94:42;;84:70;;150:1;147;140:12;84:70;14:146;:::o;165:818::-;366:6;374;382;390;443:3;431:9;422:7;418:23;414:33;411:53;;;460:1;457;450:12;411:53;492:9;486:16;511:46;551:5;511:46;:::i;:::-;626:2;611:18;;605:25;576:5;;-1:-1:-1;639:48:123;605:25;639:48;:::i;:::-;758:2;743:18;;737:25;706:7;;-1:-1:-1;771:48:123;737:25;771:48;:::i;:::-;890:2;875:18;;869:25;838:7;;-1:-1:-1;903:48:123;869:25;903:48;:::i;:::-;165:818;;;;-1:-1:-1;165:818:123;;-1:-1:-1;;165:818:123:o;988:290::-;1082:6;1135:2;1123:9;1114:7;1110:23;1106:32;1103:52;;;1151:1;1148;1141:12;1103:52;1183:9;1177:16;1202:46;1242:5;1202:46;:::i;:::-;1267:5;988:290;-1:-1:-1;;;988:290:123:o;3663:184::-;1014:11385:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061026b5760003560e01c8063886f119511610144578063df5cf723116100b6578063f7013ef61161007a578063f7013ef614610872578063f9120af614610892578063fabc1cbc146108b2578063fc299dee146108d2578063fce36c7d146108f2578063fd4c3b7c1461091257600080fd5b8063df5cf723146107c6578063e481af9d146107fa578063ea5ca34b1461080f578063f2fde38b14610825578063f474b5201461084557600080fd5b8063a98fb35511610108578063a98fb355146106cf578063ab21739a146106ef578063b099627e1461070f578063b753645e14610779578063b98d090814610799578063d66eaabd146107b357600080fd5b8063886f1195146106315780638da5cb5b1461065157806395c6d6041461066f5780639926ee7d1461068f578063a364f4da146106af57600080fd5b80634a5bf632116101dd5780635df45946116101a15780635df4594614610517578063683048351461054b5780636b3aa72e1461057f5780636d14a987146105b257806370a08231146105e6578063715018a61461061c57600080fd5b80634a5bf6321461044d5780634ae07c3714610485578063595c6a67146104b35780635ac86ab7146104c85780635c975abb146104f857600080fd5b806318daeeaf1161022f57806318daeeaf1461038d5780632e1a7d4d146103ad57806333cfb7b7146103cd5780633bc28c8c146103fa578063416c7e5e1461041a5780634223d5511461043a57600080fd5b806306045a91146102b257806310d67a2f146102e7578063136439dd14610307578063137122b514610327578063171f1d5b1461035657600080fd5b366102ad5760fc546005906020908116036102a15760405162461bcd60e51b81526004016102989061495a565b60405180910390fd5b6102ab3334610932565b005b600080fd5b3480156102be57600080fd5b506102d26102cd366004614ab9565b6109c2565b60405190151581526020015b60405180910390f35b3480156102f357600080fd5b506102ab610302366004614b5a565b610ae4565b34801561031357600080fd5b506102ab610322366004614b77565b610b97565b34801561033357600080fd5b506102d2610342366004614b9f565b60cc54600160ff9092169190911b16151590565b34801561036257600080fd5b50610376610371366004614c7d565b610cd6565b6040805192151583529015156020830152016102de565b34801561039957600080fd5b506102ab6103a8366004614b9f565b610e60565b3480156103b957600080fd5b506102ab6103c8366004614b77565b610ea8565b3480156103d957600080fd5b506103ed6103e8366004614b5a565b610fa9565b6040516102de9190614cce565b34801561040657600080fd5b506102ab610415366004614b5a565b61145c565b34801561042657600080fd5b506102ab610435366004614d1d565b61146d565b6102ab610448366004614b5a565b6115a4565b34801561045957600080fd5b5060cb5461046d906001600160a01b031681565b6040516001600160a01b0390911681526020016102de565b34801561049157600080fd5b506104a56104a0366004615015565b6115da565b6040516102de9291906150b0565b3480156104bf57600080fd5b506102ab61250e565b3480156104d457600080fd5b506102d26104e3366004614b9f565b60fc54600160ff9092169190911b9081161490565b34801561050457600080fd5b5060fc545b6040519081526020016102de565b34801561052357600080fd5b5061046d7f000000000000000000000000000000000000000000000000000000000000000081565b34801561055757600080fd5b5061046d7f000000000000000000000000000000000000000000000000000000000000000081565b34801561058b57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061046d565b3480156105be57600080fd5b5061046d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105f257600080fd5b50610509610601366004614b5a565b6001600160a01b0316600090815260ca602052604090205490565b34801561062857600080fd5b506102ab6125d5565b34801561063d57600080fd5b5060fb5461046d906001600160a01b031681565b34801561065d57600080fd5b506033546001600160a01b031661046d565b34801561067b57600080fd5b506102d261068a366004615141565b6125e9565b34801561069b57600080fd5b506102ab6106aa36600461518c565b61260e565b3480156106bb57600080fd5b506102ab6106ca366004614b5a565b6126da565b3480156106db57600080fd5b506102ab6106ea366004615243565b6127a1565b3480156106fb57600080fd5b506102ab61070a366004615293565b6127f5565b34801561071b57600080fd5b5061075761072a366004614b77565b60c9602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b6040805163ffffffff90941684529115156020840152908201526060016102de565b34801561078557600080fd5b506102ab610794366004614b77565b612bc7565b3480156107a557600080fd5b506097546102d29060ff1681565b6102ab6107c13660046152ba565b612bd4565b3480156107d257600080fd5b5061046d7f000000000000000000000000000000000000000000000000000000000000000081565b34801561080657600080fd5b506103ed612db7565b34801561081b57600080fd5b5061050960cc5481565b34801561083157600080fd5b506102ab610840366004614b5a565b613163565b34801561085157600080fd5b50610509610860366004614b5a565b60ca6020526000908152604090205481565b34801561087e57600080fd5b506102ab61088d36600461530c565b6131d9565b34801561089e57600080fd5b506102ab6108ad366004614b5a565b6133f9565b3480156108be57600080fd5b506102ab6108cd366004614b77565b613423565b3480156108de57600080fd5b5060655461046d906001600160a01b031681565b3480156108fe57600080fd5b506102ab61090d366004615370565b61357f565b34801561091e57600080fd5b506102ab61092d366004614b9f565b61392e565b8060000361095657604051632097692160e11b815260048101829052602401610298565b6001600160a01b038216600090815260ca60205260408120805483929061097e9084906153fb565b90915550506001600160a01b038216600081815260ca6020908152604091829020549151918252600080516020615a65833981519152910160405180910390a25050565b60fc546000906002906004908116036109ed5760405162461bcd60e51b81526004016102989061495a565b60006001600160a01b038416610a04575085610a30565b8684604051602001610a1792919061540e565b6040516020818303038152906040528051906020012090505b600081815260c9602052604081205463ffffffff169003610a55576000925050610ad7565b600081815260c96020526040902054640100000000900460ff16610a7d576000925050610ad7565b60408051602081018d90529081018b9052606081018a90526001600160601b03198916608082015260009060940160408051601f1981840301815291905280516020820120909150610ad1888a838a613975565b94505050505b5098975050505050505050565b60fb60009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5b9190615429565b6001600160a01b0316336001600160a01b031614610b8b5760405162461bcd60e51b815260040161029890615446565b610b948161398d565b50565b60fb5460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610bdf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c039190615490565b610c1f5760405162461bcd60e51b8152600401610298906154ad565b60fc5481811614610c985760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610298565b60fc81905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000187876000015188602001518860000151600060028110610d1e57610d1e6154f5565b60200201518951600160200201518a60200151600060028110610d4357610d436154f5565b60200201518b60200151600160028110610d5f57610d5f6154f5565b602090810291909101518c518d830151604051610dbc9a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c610ddf919061550b565b9050610e52610df8610df18884613a84565b8690613b15565b610e00613baa565b610e48610e3985610e33604080518082018252600080825260209182015281518083019092526001825260029082015290565b90613a84565b610e428c613c6a565b90613b15565b886201d4c0613cf9565b909890975095505050505050565b610e68613f13565b60cc8054600160ff841690811b199091169091556040517f5f52704e8e0190647930ccde0e43e14e89902d7d8c49c5f9e2544029f45ec12a90600090a250565b60fc54600390600890811603610ed05760405162461bcd60e51b81526004016102989061495a565b33600090815260ca6020526040902054821115610f215733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018490526044820152606401610298565b33600090815260ca602052604081208054849290610f4090849061552d565b909155505033600081815260ca6020908152604091829020549151918252600080516020615a65833981519152910160405180910390a2604051339083156108fc029084906000818181858888f19350505050158015610fa4573d6000803e3d6000fd5b505050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000000000000000000000000000000000000000000016906313542a4e90602401602060405180830381865afa158015611015573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110399190615540565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063871ef04990602401602060405180830381865afa1580156110a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c89190615559565b90506001600160c01b038116158061116257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611139573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115d9190615582565b60ff16155b156111825760408051600080825260208201909252905b50949350505050565b6000611196826001600160c01b0316613f6d565b90506000805b8251811015611262577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ca5a5f58483815181106111e6576111e66154f5565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa15801561122a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124e9190615540565b61125890836153fb565b915060010161119c565b506000816001600160401b0381111561127d5761127d614991565b6040519080825280602002602001820160405280156112a6578160200160208202803683370190505b5090506000805b845181101561144f5760008582815181106112ca576112ca6154f5565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ca5a5f590602401602060405180830381865afa15801561133f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113639190615540565b905060005b81811015611444576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa1580156113dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140191906155b4565b60000151868681518110611417576114176154f5565b6001600160a01b039092166020928302919091019091015284611439816155f7565b955050600101611368565b5050506001016112ad565b5090979650505050505050565b611464613f13565b610b948161402f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ef9190615429565b6001600160a01b0316336001600160a01b03161461159b5760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a401610298565b610b9481614098565b60fc546004906010908116036115cc5760405162461bcd60e51b81526004016102989061495a565b6115d68234610932565b5050565b6040805180820190915260608082526020820152600082604001515160405180604001604052806001815260200160008152505114801561163657508260a0015151604051806040016040528060018152602001600081525051145b801561165d57508260c0015151604051806040016040528060018152602001600081525051145b801561168457508260e0015151604051806040016040528060018152602001600081525051145b6116ee5760405162461bcd60e51b81526020600482015260416024820152600080516020615a8583398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a401610298565b825151602084015151146117665760405162461bcd60e51b815260206004820152604460248201819052600080516020615a85833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a401610298565b4363ffffffff168463ffffffff16106117d55760405162461bcd60e51b815260206004820152603c6024820152600080516020615a8583398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b000000006064820152608401610298565b60408051808201825260008082526020808301829052835180850185526060808252818301528451808601865260018082529083019390935284518381528086019095529293919082810190803683370190505060208281019190915260408051808201825260018082526000919093015280518281528082019091529081602001602082028036833701905050815260408051808201909152606080825260208201528560200151516001600160401b0381111561189657611896614991565b6040519080825280602002602001820160405280156118bf578160200160208202803683370190505b5081526020860151516001600160401b038111156118df576118df614991565b604051908082528060200260200182016040528015611908578160200160208202803683370190505b50816020018190525060006119b460405180604001604052806001815260200160008152507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561198b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119af9190615582565b6140df565b905060005b876020015151811015611c45576119fe886020015182815181106119df576119df6154f5565b6020026020010151805160009081526020918201519091526040902090565b83602001518281518110611a1457611a146154f5565b60209081029190910101528015611ad4576020830151611a3560018361552d565b81518110611a4557611a456154f5565b602002602001015160001c83602001518281518110611a6657611a666154f5565b602002602001015160001c11611ad4576040805162461bcd60e51b8152602060048201526024810191909152600080516020615a8583398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f727465646064820152608401610298565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166304ec635184602001518381518110611b1957611b196154f5565b60200260200101518b8b600001518581518110611b3857611b386154f5565b60200260200101516040518463ffffffff1660e01b8152600401611b759392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015611b92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb69190615559565b6001600160c01b031683600001518281518110611bd557611bd56154f5565b602002602001018181525050611c3b610df1611c0f8486600001518581518110611c0157611c016154f5565b602002602001015116614172565b8a602001518481518110611c2557611c256154f5565b602002602001015161419d90919063ffffffff16565b94506001016119b9565b5050611c5083614280565b60975490935060ff16600081611c67576000611ce9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce99190615540565b905060005b6040518060400160405280600181526020016000815250518110156123df578215611e7a578963ffffffff16827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663249a0c4260405180604001604052806001815260200160008152508581518110611d7257611d726154f5565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015611db6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dda9190615540565b611de491906153fb565b11611e7a5760405162461bcd60e51b81526020600482015260666024820152600080516020615a8583398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c401610298565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166368bccaac60405180604001604052806001815260200160008152508381518110611ed157611ed16154f5565b602001015160f81c60f81b60f81c8c8c60a001518581518110611ef657611ef66154f5565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611f52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f769190615610565b6001600160401b031916611f998a6040015183815181106119df576119df6154f5565b67ffffffffffffffff1916146120355760405162461bcd60e51b81526020600482015260616024820152600080516020615a8583398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c401610298565b6120658960400151828151811061204e5761204e6154f5565b602002602001015187613b1590919063ffffffff16565b95507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c8294c56604051806040016040528060018152602001600081525083815181106120be576120be6154f5565b602001015160f81c60f81b60f81c8c8c60c0015185815181106120e3576120e36154f5565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa15801561213f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612163919061563b565b85602001518281518110612179576121796154f5565b6001600160601b039092166020928302919091018201528501518051829081106121a5576121a56154f5565b6020026020010151856000015182815181106121c3576121c36154f5565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a60200151518110156123d5576122528660000151828151811061220d5761220d6154f5565b60200260200101516040518060400160405280600181526020016000815250858151811061223d5761223d6154f5565b016020015160f81c60ff161c60019081161490565b156123cd577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2be94ae604051806040016040528060018152602001600081525085815181106122ae576122ae6154f5565b602001015160f81c60f81b60f81c8e896020015185815181106122d3576122d36154f5565b60200260200101518f60e0015188815181106122f1576122f16154f5565b6020026020010151878151811061230a5761230a6154f5565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa15801561236e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612392919061563b565b87518051859081106123a6576123a66154f5565b602002602001018181516123ba9190615658565b6001600160601b03169052506001909101905b6001016121e7565b5050600101611cee565b5050506000806123f98a868a606001518b60800151610cd6565b915091508161246a5760405162461bcd60e51b81526020600482015260436024820152600080516020615a8583398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a401610298565b806124cb5760405162461bcd60e51b81526020600482015260396024820152600080516020615a8583398151915260448201527f7265733a207369676e617475726520697320696e76616c6964000000000000006064820152608401610298565b505060008782602001516040516020016124e6929190615677565b60408051808303601f1901815291905280516020909101209299929850919650505050505050565b60fb5460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015612556573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061257a9190615490565b6125965760405162461bcd60e51b8152600401610298906154ad565b60001960fc81905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6125dd613f13565b6125e7600061431b565b565b60008184846040516125fc9291906156bf565b60405180910390201490509392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146126565760405162461bcd60e51b8152600401610298906156cf565b604051639926ee7d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639926ee7d906126a4908590859060040161578d565b600060405180830381600087803b1580156126be57600080fd5b505af11580156126d2573d6000803e3d6000fd5b505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146127225760405162461bcd60e51b8152600401610298906156cf565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da906024015b600060405180830381600087803b15801561278657600080fd5b505af115801561279a573d6000803e3d6000fd5b5050505050565b6127a9613f13565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a98fb3559061276c9084906004016157d8565b60cb546001600160a01b031633146128355760cb54604051632cbe419560e01b81523360048201526001600160a01b039091166024820152604401610298565b60fc5460019060029081160361285d5760405162461bcd60e51b81526004016102989061495a565b60005a90506000858560405160200161287792919061540e565b60408051601f198184030181529181528151602092830120600081815260c990935290822080549193509163ffffffff90911690036128cc576040516311cb69a760e11b815260048101839052602401610298565b8054640100000000900460ff16156128fa57604051634e78d7f960e11b815260048101839052602401610298565b805464ff00000000191664010000000017815560018101546001600160a01b038716600090815260ca6020526040902054101561297d5760018101546001600160a01b038716600081815260ca602052604090819020549051632e2a182f60e11b8152600481019290925260248201929092526044810191909152606401610298565b805460009061299490849063ffffffff16886115da565b509050604360ff1681602001516000815181106129b3576129b36154f5565b60200260200101516129c591906157eb565b6001600160601b0316606482600001516000815181106129e7576129e76154f5565b60200260200101516001600160601b0316612a029190615814565b1015612a955760648160000151600081518110612a2157612a216154f5565b60200260200101516001600160601b0316612a3c9190615814565b604360ff168260200151600081518110612a5857612a586154f5565b6020026020010151612a6a91906157eb565b60405163530f5c4560e11b815260048101929092526001600160601b03166024820152604401610298565b6040516001600160a01b038816815288907f8511746b73275e06971968773119b9601fc501d7bdf3824d8754042d148940e29060200160405180910390a260003a5a612ae1908761552d565b612aee90620111706153fb565b612af89190615814565b9050600083600101548210612b11578360010154612b13565b815b6001600160a01b038a16600090815260ca6020526040812080549293508392909190612b4090849061552d565b90915550506001600160a01b038916600081815260ca6020908152604091829020549151918252600080516020615a65833981519152910160405180910390a260cb546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612bba573d6000803e3d6000fd5b5050505050505050505050565b612bcf613f13565b60cc55565b60fc54600090600190811603612bfc5760405162461bcd60e51b81526004016102989061495a565b60008533604051602001612c1192919061540e565b60408051601f198184030181529181528151602092830120600081815260c990935291205490915063ffffffff1615612c6057604051630c40bc4360e21b815260048101829052602401610298565b3415612cbd5733600090815260ca602052604081208054349290612c859084906153fb565b909155505033600081815260ca6020908152604091829020549151918252600080516020615a65833981519152910160405180910390a25b33600090815260ca6020526040902054831115612d0e5733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018590526044820152606401610298565b604080516060810182526000602080830182815263ffffffff4381811686528587018a815288865260c99094529386902085518154935115156401000000000264ffffffffff1990941692169190911791909117815590516001909101559151909188917f8801fc966deb2c8f563a103c35c9e80740585c292cd97518587e6e7927e6af5591612da6913391908b908b908b9061582b565b60405180910390a250505050505050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e3d9190615582565b60ff16905080600003612e5e57505060408051600081526020810190915290565b6000805b82811015612f0957604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612ed1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ef59190615540565b612eff90836153fb565b9150600101612e62565b506000816001600160401b03811115612f2457612f24614991565b604051908082528060200260200182016040528015612f4d578160200160208202803683370190505b5090506000805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fd69190615582565b60ff1681101561315957604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa15801561304a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061306e9190615540565b905060005b8181101561314f576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa1580156130e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061310c91906155b4565b60000151858581518110613122576131226154f5565b6001600160a01b039092166020928302919091019091015283613144816155f7565b945050600101613073565b5050600101612f54565b5090949350505050565b61316b613f13565b6001600160a01b0381166131d05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610298565b610b948161431b565b600054610100900460ff16158080156131f95750600054600160ff909116105b806132135750303b158015613213575060005460ff166001145b6132765760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610298565b6000805460ff191660011790558015613299576000805461ff0019166101001790555b6001600160a01b0386166132df57604051630b0f5aa160e11b815260206004820152600c60248201526b34b734ba34b0b627bbb732b960a11b6044820152606401610298565b6001600160a01b03851661332957604051630b0f5aa160e11b815260206004820152601060248201526f3932bbb0b93239a4b734ba34b0ba37b960811b6044820152606401610298565b6001600160a01b03841661337457604051630b0f5aa160e11b815260206004820152601160248201527030b634b3b732b220b3b3b932b3b0ba37b960791b6044820152606401610298565b61337e868661436d565b60cb80546001600160a01b0319166001600160a01b0386161790556133a28661431b565b6133ac83836143ea565b80156126d2576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b613401613f13565b60cb80546001600160a01b0319166001600160a01b0392909216919091179055565b60fb60009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613476573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061349a9190615429565b6001600160a01b0316336001600160a01b0316146134ca5760405162461bcd60e51b815260040161029890615446565b60fc5419811960fc541916146135485760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610298565b60fc81905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610ccb565b6065546001600160a01b031633146136145760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a401610298565b60005b818110156138df57828282818110613631576136316154f5565b90506020028101906136439190615882565b613654906040810190602001614b5a565b6001600160a01b03166323b872dd3330868686818110613676576136766154f5565b90506020028101906136889190615882565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af11580156136df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137039190615490565b506000838383818110613718576137186154f5565b905060200281019061372a9190615882565b61373b906040810190602001614b5a565b604051636eb1769f60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa1580156137a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137cd9190615540565b90508383838181106137e1576137e16154f5565b90506020028101906137f39190615882565b613804906040810190602001614b5a565b6001600160a01b031663095ea7b37f000000000000000000000000000000000000000000000000000000000000000083878787818110613846576138466154f5565b90506020028101906138589190615882565b6040013561386691906153fb565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156138b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138d59190615490565b5050600101613617565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063fce36c7d906126a49085908590600401615909565b613936613f13565b60cc8054600160ff841690811b9091179091556040517fec54a85c01b5fc7fb41be0f33eabc56f2981110da8317b9817bc7c718f6d7bfe90600090a250565b6000836139838685856144d0565b1495945050505050565b6001600160a01b038116613a1b5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610298565b60fb54604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a160fb80546001600160a01b0319166001600160a01b0392909216919091179055565b6040805180820190915260008082526020820152613aa0614880565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa90508080613acf57fe5b5080613b0d5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b6044820152606401610298565b505092915050565b6040805180820190915260008082526020820152613b3161489e565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa90508080613b6c57fe5b5080613b0d5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b6044820152606401610298565b613bb26148bc565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b604080518082019091526000808252602082015260008080613c9a600080516020615a458339815191528661550b565b90505b613ca6816145cd565b9093509150600080516020615a458339815191528283098303613cdf576040805180820190915290815260208101919091529392505050565b600080516020615a45833981519152600182089050613c9d565b604080518082018252868152602080820186905282518084019093528683528201849052600091829190613d2b6148e1565b60005b6002811015613ee6576000613d44826006615814565b9050848260028110613d5857613d586154f5565b60200201515183613d6a8360006153fb565b600c8110613d7a57613d7a6154f5565b6020020152848260028110613d9157613d916154f5565b60200201516020015183826001613da891906153fb565b600c8110613db857613db86154f5565b6020020152838260028110613dcf57613dcf6154f5565b6020020151515183613de28360026153fb565b600c8110613df257613df26154f5565b6020020152838260028110613e0957613e096154f5565b6020020151516001602002015183613e228360036153fb565b600c8110613e3257613e326154f5565b6020020152838260028110613e4957613e496154f5565b602002015160200151600060028110613e6457613e646154f5565b602002015183613e758360046153fb565b600c8110613e8557613e856154f5565b6020020152838260028110613e9c57613e9c6154f5565b602002015160200151600160028110613eb757613eb76154f5565b602002015183613ec88360056153fb565b600c8110613ed857613ed86154f5565b602002015250600101613d2e565b50613eef614900565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b6033546001600160a01b031633146125e75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610298565b6060600080613f7b84614172565b61ffff166001600160401b03811115613f9657613f96614991565b6040519080825280601f01601f191660200182016040528015613fc0576020820181803683370190505b5090506000805b825182108015613fd8575061010081105b15613159576001811b93508584161561401f578060f81b838381518110614001576140016154f5565b60200101906001600160f81b031916908160001a9053508160010191505b614028816155f7565b9050613fc7565b606554604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b6000806140eb8461464f565b9050808360ff166001901b116141695760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610298565b90505b92915050565b6000805b821561416c5761418760018461552d565b909216918061419581615a23565b915050614176565b60408051808201909152600080825260208201526102008261ffff16106141f95760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b6044820152606401610298565b8161ffff1660010361420c57508161416c565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff161061427557600161ffff871660ff83161c81169003614258576142558484613b15565b93505b6142628384613b15565b92506201fffe600192831b169101614228565b509195945050505050565b604080518082019091526000808252602082015281511580156142a557506020820151155b156142c3575050604080518082019091526000808252602082015290565b604051806040016040528083600001518152602001600080516020615a4583398151915284602001516142f6919061550b565b61430e90600080516020615a4583398151915261552d565b905292915050565b919050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166143d85760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610298565b6143e18261431b565b6115d68161402f565b60fb546001600160a01b031615801561440b57506001600160a01b03821615155b61448d5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610298565b60fc81905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26115d68261398d565b6000602084516144e0919061550b565b156145675760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a401610298565b8260205b855181116111795761457e60028561550b565b6000036145a2578160005280860151602052604060002091506002840493506145bb565b8086015160005281602052604060002091506002840493505b6145c66020826153fb565b905061456b565b60008080600080516020615a458339815191526003600080516020615a4583398151915286600080516020615a45833981519152888909090890506000614643827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615a458339815191526147d7565b91959194509092505050565b6000610100825111156146d85760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610298565b81516000036146e957506000919050565b600080836000815181106146ff576146ff6154f5565b0160200151600160f89190911c81901b92505b84518110156147ce5784818151811061472d5761472d6154f5565b0160200151600160f89190911c1b91508282116147c25760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610298565b91811791600101614712565b50909392505050565b6000806147e2614900565b6147ea61491e565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa9250828061482757fe5b50826148755760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610298565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b60405180604001604052806148cf61493c565b81526020016148dc61493c565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156149c9576149c9614991565b60405290565b60405161010081016001600160401b03811182821017156149c9576149c9614991565b604051601f8201601f191681016001600160401b0381118282101715614a1a57614a1a614991565b604052919050565b6000806001600160401b03841115614a3c57614a3c614991565b50601f8301601f1916602001614a51816149f2565b915050828152838383011115614a6657600080fd5b828260208301376000602084830101529392505050565b600082601f830112614a8e57600080fd5b614a9d83833560208501614a22565b9392505050565b6001600160a01b0381168114610b9457600080fd5b600080600080600080600080610100898b031215614ad657600080fd5b88359750602089013596506040890135955060608901356001600160601b031981168114614b0357600080fd5b94506080890135935060a08901356001600160401b03811115614b2557600080fd5b614b318b828c01614a7d565b93505060c0890135915060e0890135614b4981614aa4565b809150509295985092959890939650565b600060208284031215614b6c57600080fd5b813561416981614aa4565b600060208284031215614b8957600080fd5b5035919050565b60ff81168114610b9457600080fd5b600060208284031215614bb157600080fd5b813561416981614b90565b600060408284031215614bce57600080fd5b614bd66149a7565b823581526020928301359281019290925250919050565b600082601f830112614bfe57600080fd5b614c066149a7565b806040840185811115614c1857600080fd5b845b81811015614c32578035845260209384019301614c1a565b509095945050505050565b600060808284031215614c4f57600080fd5b614c576149a7565b9050614c638383614bed565b8152614c728360408401614bed565b602082015292915050565b6000806000806101208587031215614c9457600080fd5b84359350614ca58660208701614bbc565b9250614cb48660608701614c3d565b9150614cc38660e08701614bbc565b905092959194509250565b602080825282518282018190526000918401906040840190835b81811015614c325783516001600160a01b0316835260209384019390920191600101614ce8565b8015158114610b9457600080fd5b600060208284031215614d2f57600080fd5b813561416981614d0f565b803563ffffffff8116811461431657600080fd5b60006001600160401b03821115614d6757614d67614991565b5060051b60200190565b600082601f830112614d8257600080fd5b8135614d95614d9082614d4e565b6149f2565b8082825260208201915060208360051b860101925085831115614db757600080fd5b602085015b83811015614ddb57614dcd81614d3a565b835260209283019201614dbc565b5095945050505050565b600082601f830112614df657600080fd5b8135614e04614d9082614d4e565b8082825260208201915060208360061b860101925085831115614e2657600080fd5b602085015b83811015614ddb57614e3d8782614bbc565b8352602090920191604001614e2b565b600082601f830112614e5e57600080fd5b8135614e6c614d9082614d4e565b8082825260208201915060208360051b860101925085831115614e8e57600080fd5b602085015b83811015614ddb5780356001600160401b03811115614eb157600080fd5b614ec0886020838a0101614d71565b84525060209283019201614e93565b60006101808284031215614ee257600080fd5b614eea6149cf565b905081356001600160401b03811115614f0257600080fd5b614f0e84828501614d71565b82525060208201356001600160401b03811115614f2a57600080fd5b614f3684828501614de5565b60208301525060408201356001600160401b03811115614f5557600080fd5b614f6184828501614de5565b604083015250614f748360608401614c3d565b6060820152614f868360e08401614bbc565b60808201526101208201356001600160401b03811115614fa557600080fd5b614fb184828501614d71565b60a0830152506101408201356001600160401b03811115614fd157600080fd5b614fdd84828501614d71565b60c0830152506101608201356001600160401b03811115614ffd57600080fd5b61500984828501614e4d565b60e08301525092915050565b60008060006060848603121561502a57600080fd5b8335925061503a60208501614d3a565b915060408401356001600160401b0381111561505557600080fd5b61506186828701614ecf565b9150509250925092565b600081518084526020840193506020830160005b828110156150a65781516001600160601b031686526020958601959091019060010161507f565b5093949350505050565b60408152600083516040808401526150cb608084018261506b565b90506020850151603f198483030160608501526150e8828261506b565b925050508260208301529392505050565b60008083601f84011261510b57600080fd5b5081356001600160401b0381111561512257600080fd5b60208301915083602082850101111561513a57600080fd5b9250929050565b60008060006040848603121561515657600080fd5b83356001600160401b0381111561516c57600080fd5b615178868287016150f9565b909790965060209590950135949350505050565b6000806040838503121561519f57600080fd5b82356151aa81614aa4565b915060208301356001600160401b038111156151c557600080fd5b8301606081860312156151d757600080fd5b604051606081016001600160401b03811182821017156151f9576151f9614991565b60405281356001600160401b0381111561521257600080fd5b61521e87828501614a7d565b8252506020828101359082015260409182013591810191909152919491935090915050565b60006020828403121561525557600080fd5b81356001600160401b0381111561526b57600080fd5b8201601f8101841361527c57600080fd5b61528b84823560208401614a22565b949350505050565b6000806000606084860312156152a857600080fd5b83359250602084013561503a81614aa4565b600080600080606085870312156152d057600080fd5b8435935060208501356001600160401b038111156152ed57600080fd5b6152f9878288016150f9565b9598909750949560400135949350505050565b600080600080600060a0868803121561532457600080fd5b853561532f81614aa4565b9450602086013561533f81614aa4565b9350604086013561534f81614aa4565b9250606086013561535f81614aa4565b949793965091946080013592915050565b6000806020838503121561538357600080fd5b82356001600160401b0381111561539957600080fd5b8301601f810185136153aa57600080fd5b80356001600160401b038111156153c057600080fd5b8560208260051b84010111156153d557600080fd5b6020919091019590945092505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561416c5761416c6153e5565b91825260601b6001600160601b031916602082015260340190565b60006020828403121561543b57600080fd5b815161416981614aa4565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156154a257600080fd5b815161416981614d0f565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60008261552857634e487b7160e01b600052601260045260246000fd5b500690565b8181038181111561416c5761416c6153e5565b60006020828403121561555257600080fd5b5051919050565b60006020828403121561556b57600080fd5b81516001600160c01b038116811461416957600080fd5b60006020828403121561559457600080fd5b815161416981614b90565b6001600160601b0381168114610b9457600080fd5b600060408284031280156155c757600080fd5b506155d06149a7565b82516155db81614aa4565b815260208301516155eb8161559f565b60208201529392505050565b600060018201615609576156096153e5565b5060010190565b60006020828403121561562257600080fd5b815167ffffffffffffffff198116811461416957600080fd5b60006020828403121561564d57600080fd5b81516141698161559f565b6001600160601b03828116828216039081111561416c5761416c6153e5565b63ffffffff60e01b8360e01b16815260006004820183516020850160005b828110156156b3578151845260209384019390910190600101615695565b50919695505050505050565b8183823760009101908152919050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b8181101561576d57602081850181015186830182015201615751565b506000602082860101526020601f19601f83011685010191505092915050565b60018060a01b03831681526040602082015260008251606060408401526157b760a0840182615747565b90506020840151606084015260408401516080840152809150509392505050565b602081526000614a9d6020830184615747565b6001600160601b03818116838216029081169081811461580d5761580d6153e5565b5092915050565b808202811582820484141761416c5761416c6153e5565b6001600160a01b038616815263ffffffff851660208201526080604082018190528101839052828460a0830137600060a08483010152600060a0601f19601f86011683010190508260608301529695505050505050565b60008235609e1983360301811261589857600080fd5b9190910192915050565b803561431681614aa4565b81835260208301925060008160005b848110156150a65781356158cf81614aa4565b6001600160a01b0316865260208201356158e88161559f565b6001600160601b0316602087015260409586019591909101906001016158bc565b6020808252810182905260006040600584901b830181019083018583609e1936839003015b87821015615a1657868503603f19018452823581811261594d57600080fd5b8901803536829003601e1901811261596457600080fd5b81016020810190356001600160401b0381111561598057600080fd5b8060061b360382131561599257600080fd5b60a088526159a460a0890182846158ad565b9150506159b3602083016158a2565b6001600160a01b03166020880152604082810135908801526159d760608301614d3a565b63ffffffff1660608801526159ee60808301614d3a565b63ffffffff81166080890152915095505060209384019392909201916001919091019061592e565b5092979650505050505050565b600061ffff821661ffff8103615a3b57615a3b6153e5565b6001019291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd470ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0424c535369676e6174757265436865636b65722e636865636b5369676e617475a26469706673582212208755cc8934ae88fa5027fb1b5c2e8633ac3a93597ddef7c24271a5bf2132c78664736f6c634300081c0033","sourceMap":"1014:11385:115:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5724:7:29;;11978:1:115;;5695:10:29;5724:14;;;5723:24;2759:52;;;;-1:-1:-1;;;2759:52:29;;;;;;;:::i;:::-;;;;;;;;;11991:40:115::1;12009:10;12021:9;11991:17;:40::i;:::-;11933:105:::0;1014:11385;;;;9483:1303;;;;;;;;;;-1:-1:-1;9483:1303:115;;;;;:::i;:::-;;:::i;:::-;;;3541:14:123;;3534:22;3516:41;;3504:2;3489:18;9483:1303:115;;;;;;;;5826:138:29;;;;;;;;;;-1:-1:-1;5826:138:29;;;;;:::i;:::-;;:::i;3832:392::-;;;;;;;;;;-1:-1:-1;3832:392:29;;;;;:::i;:::-;;:::i;8815:183:115:-;;;;;;;;;;-1:-1:-1;8815:183:115;;;;;:::i;:::-;8929:17;;8950:1;:16;;;;;;;;8929:38;8984:7;;;8815:183;14547:1081:76;;;;;;;;;;-1:-1:-1;14547:1081:76;;;;;:::i;:::-;;:::i;:::-;;;;6473:14:123;;6466:22;6448:41;;6532:14;;6525:22;6520:2;6505:18;;6498:50;6421:18;14547:1081:76;6286:268:123;9187:176:115;;;;;;;;;;-1:-1:-1;9187:176:115;;;;;:::i;:::-;;:::i;10922:458::-;;;;;;;;;;-1:-1:-1;10922:458:115;;;;;:::i;:::-;;:::i;7697:1470:77:-;;;;;;;;;;-1:-1:-1;7697:1470:77;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5599:135::-;;;;;;;;;;-1:-1:-1;5599:135:77;;;;;:::i;:::-;;:::i;2232:123:76:-;;;;;;;;;;-1:-1:-1;2232:123:76;;;;;:::i;:::-;;:::i;11507:135:115:-;;;;;;:::i;:::-;;:::i;481:32:116:-;;;;;;;;;;-1:-1:-1;481:32:116;;;;-1:-1:-1;;;;;481:32:116;;;;;;-1:-1:-1;;;;;7986:32:123;;;7968:51;;7956:2;7941:18;481:32:116;7822:203:123;4387:9678:76;;;;;;;;;;-1:-1:-1;4387:9678:76;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;4299:136:29:-;;;;;;;;;;;;;:::i;5606:149::-;;;;;;;;;;-1:-1:-1;5606:149:29;;;;;:::i;:::-;5724:7;;5695:1;:10;;;;;;;;5724:14;;;5723:24;;5606:149;5418:87;;;;;;;;;;-1:-1:-1;5491:7:29;;5418:87;;;14071:25:123;;;14059:2;14044:18;5418:87:29;13925:177:123;1183:47:76;;;;;;;;;;;;;;;1132:45;;;;;;;;;;;;;;;9235:111:77;;;;;;;;;;-1:-1:-1;9325:13:77;9235:111;;1069:57:76;;;;;;;;;;;;;;;11386:115:115;;;;;;;;;;-1:-1:-1;11386:115:115;;;;;:::i;:::-;-1:-1:-1;;;;;11469:25:115;11443:7;11469:25;;;:16;:25;;;;;;;11386:115;2071:101:40;;;;;;;;;;;;;:::i;1825:37:29:-;;;;;;;;;;-1:-1:-1;1825:37:29;;;;-1:-1:-1;;;;;1825:37:29;;;1441:85:40;;;;;;;;;;-1:-1:-1;1513:6:40;;-1:-1:-1;;;;;1513:6:40;1441:85;;12044:173:115;;;;;;;;;;-1:-1:-1;12044:173:115;;;;;:::i;:::-;;:::i;4797:260:77:-;;;;;;;;;;-1:-1:-1;4797:260:77;;;;;:::i;:::-;;:::i;5262:158::-;;;;;;;;;;-1:-1:-1;5262:158:77;;;;;:::i;:::-;;:::i;2721:148::-;;;;;;;;;;-1:-1:-1;2721:148:77;;;;;:::i;:::-;;:::i;5839:2970:115:-;;;;;;;;;;-1:-1:-1;5839:2970:115;;;;;:::i;:::-;;:::i;284:50:116:-;;;;;;;;;;-1:-1:-1;284:50:116;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18869:10:123;18857:23;;;18839:42;;18924:14;;18917:22;18912:2;18897:18;;18890:50;18956:18;;;18949:34;18827:2;18812:18;284:50:116;18645:344:123;9369:108:115;;;;;;;;;;-1:-1:-1;9369:108:115;;;;;:::i;:::-;;:::i;1421:32:76:-;;;;;;;;;;-1:-1:-1;1421:32:76;;;;;;;;4432:1401:115;;;;;;:::i;:::-;;:::i;1236:46:76:-;;;;;;;;;;;;;;;6262:951:77;;;;;;;;;;;;;:::i;752:32:116:-;;;;;;;;;;;;;;;;2321:198:40;;;;;;;;;;-1:-1:-1;2321:198:40;;;;;:::i;:::-;;:::i;423:51:116:-;;;;;;;;;;-1:-1:-1;423:51:116;;;;;:::i;:::-;;;;;;;;;;;;;;2711:934:115;;;;;;;;;;-1:-1:-1;2711:934:115;;;;;:::i;:::-;;:::i;10793:123::-;;;;;;;;;;-1:-1:-1;10793:123:115;;;;;:::i;:::-;;:::i;4911:437:29:-;;;;;;;;;;-1:-1:-1;4911:437:29;;;;;:::i;:::-;;:::i;1212:31:78:-;;;;;;;;;;-1:-1:-1;1212:31:78;;;;-1:-1:-1;;;;;1212:31:78;;;3631:872:77;;;;;;;;;;-1:-1:-1;3631:872:77;;;;;:::i;:::-;;:::i;9004:177:115:-;;;;;;;;;;-1:-1:-1;9004:177:115;;;;;:::i;:::-;;:::i;11648:279::-;11731:6;11741:1;11731:11;11727:77;;11765:28;;-1:-1:-1;;;11765:28:115;;;;;14071:25:123;;;14044:18;;11765:28:115;13925:177:123;11727:77:115;-1:-1:-1;;;;;11813:25:115;;;;;;:16;:25;;;;;:35;;11842:6;;11813:25;:35;;11842:6;;11813:35;:::i;:::-;;;;-1:-1:-1;;;;;;;11863:57:115;;11894:25;;;;:16;:25;;;;;;;;;;11863:57;;14071:25:123;;;-1:-1:-1;;;;;;;;;;;11863:57:115;14044:18:123;11863:57:115;;;;;;;11648:279;;:::o;9483:1303::-;5724:7:29;;9858:4:115;;9846:1;;5695:10:29;5724:14;;;5723:24;2759:52;;;;-1:-1:-1;;;2759:52:29;;;;;;;:::i;:::-;9874:23:115::1;-1:-1:-1::0;;;;;9911:27:115;::::1;9907:229;;-1:-1:-1::0;9972:15:115;9907:229:::1;;;10080:15;10097:13;10063:48;;;;;;;;;:::i;:::-;;;;;;;;;;;;;10036:89;;;;;;10018:107;;9907:229;10150:29;::::0;;;:12:::1;:29;::::0;;;;:46;::::1;;:51:::0;;10146:94:::1;;10224:5;10217:12;;;;;10146:94;10255:29;::::0;;;:12:::1;:29;::::0;;;;:39;;;::::1;;;10250:83;;10317:5;10310:12;;;;;10250:83;10363:163;::::0;;::::1;::::0;::::1;22125:19:123::0;;;22160:12;;;22153:28;;;22197:12;;;22190:28;;;-1:-1:-1;;;;;;22248:44:123;;22234:12;;;22227:66;10343:17:115::1;::::0;22309:13:123;;10363:163:115::1;::::0;;-1:-1:-1;;10363:163:115;;::::1;::::0;;;;;;10558:15;;10363:163:::1;10558:15:::0;::::1;::::0;10363:163;;-1:-1:-1;10603:176:115::1;10649:11:::0;10678:15;10558;10739:26;10603:28:::1;:176::i;:::-;10584:195;;;;;2821:1:29;9483:1303:115::0;;;;;;;;;;;:::o;5826:138:29:-;2285:14;;;;;;;;;-1:-1:-1;;;;;2285:14:29;-1:-1:-1;;;;;2285:23:29;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2271:39:29;:10;-1:-1:-1;;;;;2271:39:29;;2263:94;;;;-1:-1:-1;;;2263:94:29;;;;;;;:::i;:::-;5920:37:::1;5939:17;5920:18;:37::i;:::-;5826:138:::0;:::o;3832:392::-;2125:14;;:35;;-1:-1:-1;;;2125:35:29;;2149:10;2125:35;;;7968:51:123;-1:-1:-1;;;;;2125:14:29;;;;:23;;7941:18:123;;2125:35:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2117:88;;;;-1:-1:-1;;;2117:88:29;;;;;;;:::i;:::-;4064:7:::1;::::0;4034:25;;::::1;4033:38;4025:107;;;::::0;-1:-1:-1;;;4025:107:29;;23861:2:123;4025:107:29::1;::::0;::::1;23843:21:123::0;23900:2;23880:18;;;23873:30;23939:34;23919:18;;;23912:62;24010:26;23990:18;;;23983:54;24054:19;;4025:107:29::1;23659:420:123::0;4025:107:29::1;4142:7;:25:::0;;;4182:35:::1;::::0;14071:25:123;;;4189:10:29::1;::::0;4182:35:::1;::::0;14059:2:123;14044:18;4182:35:29::1;;;;;;;;3832:392:::0;:::o;14547:1081:76:-;14745:22;14769;14878:13;2037:77:87;14980:7:76;15009:3;:5;;;15036:3;:5;;;15063;:7;;;15071:1;15063:10;;;;;;;:::i;:::-;;;;;15095:7;;15103:1;15095:10;;;;15127:5;:7;;;15135:1;15127:10;;;;;;;:::i;:::-;;;;;15159:5;:7;;;15167:1;15159:10;;;;;;;:::i;:::-;;;;;;;;;;15191:7;;15220;;;;14942:303;;;;;;;;;;;24569:19:123;;;24613:2;24604:12;;24597:28;;;;24650:2;24641:12;;24634:28;;;;24687:2;24678:12;;24671:28;;;;24724:3;24715:13;;24708:29;;;;24762:3;24753:13;;24746:29;24800:3;24791:13;;24784:29;24838:3;24829:13;;24822:29;24876:3;24867:13;;24860:29;24914:3;24905:13;;24216:708;14942:303:76;;;;;;;;;;;;;14915:344;;;;;;14894:375;;:394;;;;:::i;:::-;14878:410;-1:-1:-1;15371:250:76;15402:33;15413:21;:3;14878:410;15413:14;:21::i;:::-;15402:5;;:10;:33::i;:::-;15449:22;:20;:22::i;:::-;15485:67;15514:37;15545:5;15514:19;-1:-1:-1;;;;;;;;;;;;;;;;;2392:13:87;;;;;;;;2400:1;2392:13;;2403:1;2392:13;;;;;2313:99;15514:19:76;:30;;:37::i;:::-;15485:23;15500:7;15485:14;:23::i;:::-;:28;;:67::i;:::-;15566:5;1055:7;15371:17;:250::i;:::-;15330:291;;;;-1:-1:-1;14547:1081:76;-1:-1:-1;;;;;;14547:1081:76:o;9187:176:115:-;1334:13:40;:11;:13::i;:::-;9273:17:115::1;:40:::0;;9296:1:::1;:16;::::0;::::1;::::0;;::::1;9294:19;9273:40:::0;;::::1;::::0;;;9328:28:::1;::::0;::::1;::::0;-1:-1:-1;;9328:28:115::1;9187:176:::0;:::o;10922:458::-;5724:7:29;;10983:1:115;;5695:10:29;5724:14;;;5723:24;2759:52;;;;-1:-1:-1;;;2759:52:29;;;;;;;:::i;:::-;11017:10:115::1;11000:28;::::0;;;:16:::1;:28;::::0;;;;;:37;-1:-1:-1;10996:204:115::1;;;11095:10;11147:28;::::0;;;:16:::1;:28;::::0;;;;;;;11060:129;;-1:-1:-1;;;11060:129:115;;::::1;::::0;::::1;25477:51:123::0;;;;25544:18;;;25537:34;;;25587:18;;;25580:34;25450:18;;11060:129:115::1;25275:345:123::0;10996:204:115::1;11227:10;11210:28;::::0;;;:16:::1;:28;::::0;;;;:38;;11242:6;;11210:28;:38:::1;::::0;11242:6;;11210:38:::1;:::i;:::-;::::0;;;-1:-1:-1;;11285:10:115::1;11297:28;::::0;;;:16:::1;:28;::::0;;;;;;;;;11263:63;;14071:25:123;;;-1:-1:-1;;;;;;;;;;;11263:63:115;14044:18:123;11263:63:115::1;;;;;;;11337:36;::::0;11345:10:::1;::::0;11337:36;::::1;;;::::0;11366:6;;11337:36:::1;::::0;;;11366:6;11345:10;11337:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10922:458:::0;;:::o;7697:1470:77:-;7854:44;;-1:-1:-1;;;7854:44:77;;-1:-1:-1;;;;;7986:32:123;;;7854:44:77;;;7968:51:123;7801:16:77;;7833:18;;7854:20;:34;;;;7941:18:123;;7854:44:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7933:55;;-1:-1:-1;;;7933:55:77;;;;;14071:25:123;;;7833:65:77;;-1:-1:-1;7908:22:77;;-1:-1:-1;;;;;7933:20:77;:43;;;;14044:18:123;;7933:55:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7908:80;-1:-1:-1;;;;;;8003:19:77;;;;:62;;;8026:20;-1:-1:-1;;;;;8026:32:77;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:39;;;8003:62;7999:116;;;8088:16;;;8102:1;8088:16;;;;;;;;;;;-1:-1:-1;8081:23:77;7697:1470;-1:-1:-1;;;;7697:1470:77:o;7999:116::-;8196:36;8235:46;8266:14;-1:-1:-1;;;;;8235:46:77;:30;:46::i;:::-;8196:85;-1:-1:-1;8291:21:77;;8322:173;8346:23;:30;8342:1;:34;8322:173;;;8414:14;-1:-1:-1;;;;;8414:35:77;;8456:23;8480:1;8456:26;;;;;;;;:::i;:::-;;;;;8414:70;;-1:-1:-1;;;;;;8414:70:77;;;;;;;8456:26;;;;;8414:70;;;26818:36:123;26791:18;;8414:70:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8397:87;;;;:::i;:::-;;-1:-1:-1;8378:3:77;;8322:173;;;;8566:35;8618:13;-1:-1:-1;;;;;8604:28:77;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8604:28:77;;8566:66;;8642:13;8674:9;8669:457;8693:23;:30;8689:1;:34;8669:457;;;8744:12;8765:23;8789:1;8765:26;;;;;;;;:::i;:::-;;;;;8837:43;;-1:-1:-1;;;8837:43:77;;8765:26;;;;;8837:43;;;26818:36:123;;;8765:26:77;-1:-1:-1;;;;;;;;8837:14:77;:35;;;;26791:18:123;;8837:43:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8806:74;;8899:9;8894:222;8918:20;8914:1;:24;8894:222;;;9019:47;;-1:-1:-1;;;9019:47:77;;27254:4:123;27242:17;;9019:47:77;;;27224:36:123;27276:18;;;27269:34;;;9019:14:77;-1:-1:-1;;;;;9019:36:77;;;;27197:18:123;;9019:47:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:56;;;8963:18;8982:5;8963:25;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8963:113:77;;;:25;;;;;;;;;;;:113;9094:7;;;;:::i;:::-;;-1:-1:-1;;8940:3:77;;8894:222;;;-1:-1:-1;;;8725:3:77;;8669:457;;;-1:-1:-1;9142:18:77;;7697:1470;-1:-1:-1;;;;;;;7697:1470:77:o;5599:135::-;1334:13:40;:11;:13::i;:::-;5686:41:77::1;5707:19;5686:20;:41::i;2232:123:76:-:0;1537:19;-1:-1:-1;;;;;1537:25:76;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1523:41:76;:10;-1:-1:-1;;;;;1523:41:76;;1502:180;;;;-1:-1:-1;;;1502:180:76;;28333:2:123;1502:180:76;;;28315:21:123;28372:2;28352:18;;;28345:30;28411:34;28391:18;;;28384:62;28482:34;28462:18;;;28455:62;28554:30;28533:19;;;28526:59;28602:19;;1502:180:76;28131:496:123;1502:180:76;2317:31:::1;2342:5;2317:24;:31::i;11507:135:115:-:0;5724:7:29;;11585:1:115;;5695:10:29;5724:14;;;5723:24;2759:52;;;;-1:-1:-1;;;2759:52:29;;;;;;;:::i;:::-;11598:37:115::1;11616:7;11625:9;11598:17;:37::i;:::-;11507:135:::0;;:::o;4387:9678:76:-;-1:-1:-1;;;;;;;;;;;;;;;;;4578:7:76;4651:6;:17;;;:24;4619:21;;;;;;;;;;;;;;;;;:28;:56;4618:142;;;;;4729:6;:23;;;:30;4697:21;;;;;;;;;;;;;;;;;:28;:62;4618:142;:227;;;;;4813:6;:24;;;:31;4781:21;;;;;;;;;;;;;;;;;:28;:63;4618:227;:316;;;;;4898:6;:28;;;:35;4866:21;;;;;;;;;;;;;;;;;:28;:67;4618:316;4597:428;;;;-1:-1:-1;;;4597:428:76;;28834:2:123;4597:428:76;;;28816:21:123;28873:2;28853:18;;;28846:30;-1:-1:-1;;;;;;;;;;;28892:18:123;;;28885:62;28983:34;28963:18;;;28956:62;-1:-1:-1;;;29034:19:123;;;29027:32;29076:19;;4597:428:76;28632:469:123;4597:428:76;5107:35;;:42;5057:23;;;;:30;:92;5036:207;;;;-1:-1:-1;;;5036:207:76;;29308:2:123;5036:207:76;;;29290:21:123;29347:2;29327:18;;;29320:30;;;-1:-1:-1;;;;;;;;;;;29366:18:123;;;29359:62;29457:34;29437:18;;;29430:62;-1:-1:-1;;;29508:19:123;;;29501:35;29553:19;;5036:207:76;29106:472:123;5036:207:76;5305:12;5275:43;;:20;:43;;;5254:150;;;;-1:-1:-1;;;5254:150:76;;29785:2:123;5254:150:76;;;29767:21:123;29824:2;29804:18;;;29797:30;-1:-1:-1;;;;;;;;;;;29843:18:123;;;29836:62;29934:30;29914:18;;;29907:58;29982:19;;5254:150:76;29583:424:123;5254:150:76;5921:19;;;;;;;;-1:-1:-1;5921:19:76;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;6277:21:76;;;;;;;;;;;;;;;;;;6264:42;;;;;;;;;;;5921:19;;6264:42;6277:21;6264:42;;;;5921:19;6264:42;;;;;-1:-1:-1;;6230:31:76;;;;:76;;;;6364:21;;;;;;;;;;;;-1:-1:-1;6364:21:76;;;;;6351:42;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6316:77:76;;-1:-1:-1;;;;;;;;;;;;;;;;;6499:6:76;:23;;;:30;-1:-1:-1;;;;;6472:67:76;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6472:67:76;-1:-1:-1;6445:94:76;;6589:23;;;;:30;-1:-1:-1;;;;;6575:45:76;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6575:45:76;;6549:10;:23;;:71;;;;6799:27;6829:141;6884:21;;;;;;;;;;;;;;;;;6923:19;-1:-1:-1;;;;;6923:31:76;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6829:37;:141::i;:::-;6799:171;;6990:9;6985:1728;7009:6;:23;;;:30;7005:1;:34;6985:1728;;;7301:82;:6;:44;;;7346:1;7301:47;;;;;;;;:::i;:::-;;;;;;;10534:9:87;;10473:16;10524:20;;;10580:4;10576:13;;;10570:20;10557:34;;;10629:4;10616:18;;;10404:246;7301:82:76;7272:10;:23;;;7296:1;7272:26;;;;;;;;:::i;:::-;;;;;;;;;;:111;7405:6;;7401:305;;7542:23;;;;7566:5;7570:1;7566;:5;:::i;:::-;7542:30;;;;;;;;:::i;:::-;;;;;;;7534:39;;7476:10;:23;;;7500:1;7476:26;;;;;;;;:::i;:::-;;;;;;;7468:35;;:105;7435:252;;;;;-1:-1:-1;;;7435:252:76;;30214:2:123;7435:252:76;;;30196:21:123;30233:18;;;30226:30;;;;-1:-1:-1;;;;;;;;;;;30272:18:123;;;30265:62;30363:34;30343:18;;;30336:62;30415:19;;7435:252:76;30012:428:123;7435:252:76;7846:19;-1:-1:-1;;;;;7846:76:76;;7961:10;:23;;;7985:1;7961:26;;;;;;;;:::i;:::-;;;;;;;8026:20;8079:6;:35;;;8115:1;8079:38;;;;;;;;:::i;:::-;;;;;;;7846:294;;;;;;;;;;;;;;;;30644:25:123;;;30717:10;30705:23;;;30700:2;30685:18;;30678:51;30765:23;30760:2;30745:18;;30738:51;30632:2;30617:18;;30445:350;7846:294:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7816:324:76;:10;:24;;;7841:1;7816:27;;;;;;;;:::i;:::-;;;;;;:324;;;;;8431:267;8461:219;8529:129;8613:19;8583:10;:24;;;8608:1;8583:27;;;;;;;;:::i;:::-;;;;;;;:49;8529:24;:129::i;:::-;8461:6;:23;;;8485:1;8461:26;;;;;;;;:::i;:::-;;;;;;;:42;;:219;;;;:::i;8431:267::-;8425:273;-1:-1:-1;7041:3:76;;6985:1728;;;;6631:2092;8996:12;:3;:10;:12::i;:::-;9340:20;;8990:18;;-1:-1:-1;9340:20:76;;9311:26;9340:20;9406:97;;9502:1;9406:97;;;9446:10;-1:-1:-1;;;;;9446:35:76;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9374:129;;9523:9;9518:3499;9542:21;;;;;;;;;;;;;;;;;:28;9538:1;:32;9518:3499;;;9754:21;9750:486;;;10045:20;9832:233;;9993:21;9832:19;-1:-1:-1;;;;;9832:43:76;;9911:21;;;;;;;;;;;;;;;;;9933:1;9911:24;;;;;;;;:::i;:::-;;;;;9832:130;;-1:-1:-1;;;;;;9832:130:76;;;;;;;9911:24;;;;;9832:130;;;26818:36:123;26791:18;;9832:130:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:182;;;;:::i;:::-;:233;9799:418;;;;-1:-1:-1;;;9799:418:76;;31002:2:123;9799:418:76;;;30984:21:123;31041:3;31021:18;;;31014:31;-1:-1:-1;;;;;;;;;;;31061:18:123;;;31054:62;31152:34;31132:18;;;31125:62;31224:34;31203:19;;;31196:63;-1:-1:-1;;;31275:19:123;;;31268:37;31322:19;;9799:418:76;30800:547:123;9799:418:76;10504:14;-1:-1:-1;;;;;10504:46:76;;10601:21;;;;;;;;;;;;;;;;;10623:1;10601:24;;;;;;;;:::i;:::-;;;;;;;;;10595:31;;10669:20;10726:6;:23;;;10750:1;10726:26;;;;;;;;:::i;:::-;;;;;;;;;;;10504:275;;-1:-1:-1;;;;;;10504:275:76;;;;;;;31577:4:123;31565:17;;;10504:275:76;;;31547:36:123;10504:275:76;31619:23:123;;;31599:18;;;31592:51;31679:23;31659:18;;;31652:51;31520:18;;10504:275:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10433:346:76;;10441:34;:6;:17;;;10459:1;10441:20;;;;;;;;:::i;:34::-;-1:-1:-1;;10433:346:76;;10404:514;;;;-1:-1:-1;;;10404:514:76;;32215:2:123;10404:514:76;;;32197:21:123;32254:2;32234:18;;;32227:30;-1:-1:-1;;;;;;;;;;;32273:18:123;;;32266:62;32364:34;32344:18;;;32337:62;32436:34;32415:19;;;32408:63;-1:-1:-1;;;32487:19:123;;;32480:32;32529:19;;10404:514:76;32013:541:123;10404:514:76;10942:30;10951:6;:17;;;10969:1;10951:20;;;;;;;;:::i;:::-;;;;;;;10942:3;:8;;:30;;;;:::i;:::-;10936:36;;11126:13;-1:-1:-1;;;;;11126:70:76;;11243:21;;;;;;;;;;;;;;;;;11265:1;11243:24;;;;;;;;:::i;:::-;;;;;;;;;11237:31;;11307:20;11360:6;:24;;;11385:1;11360:27;;;;;;;;:::i;:::-;;;;;;;;;;;11126:284;;-1:-1:-1;;;;;;11126:284:76;;;;;;;31577:4:123;31565:17;;;11126:284:76;;;31547:36:123;11126:284:76;31619:23:123;;;31599:18;;;31592:51;31679:23;31659:18;;;31652:51;31520:18;;11126:284:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11089:11;:31;;;11121:1;11089:34;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11089:321:76;;;:34;;;;;;;;;;:321;11466:52;;;:55;;11519:1;;11466:55;;;;;;:::i;:::-;;;;;;;11428:11;:32;;;11461:1;11428:35;;;;;;;;:::i;:::-;;;;;;:93;-1:-1:-1;;;;;11428:93:76;;;-1:-1:-1;;;;;11428:93:76;;;;;11608:31;11891:9;11886:1117;11910:6;:23;;;:30;11906:1;:34;11886:1117;;;12107:161;12154:10;:24;;;12179:1;12154:27;;;;;;;;:::i;:::-;;;;;;;12217:21;;;;;;;;;;;;;;;;;12239:1;12217:24;;;;;;;;:::i;:::-;;;;;;;7387:13:88;;;7404:1;7386:19;;;7380:26;;7292:121;12107:161:76;12078:907;;;12356:13;-1:-1:-1;;;;;12356:72:76;;12483:21;;;;;;;;;;;;;;;;;12505:1;12483:24;;;;;;;;:::i;:::-;;;;;;;;;12477:31;;12555:20;12621:10;:23;;;12645:1;12621:26;;;;;;;;:::i;:::-;;;;;;;12688:6;:28;;;12717:1;12688:31;;;;;;;;:::i;:::-;;;;;;;12757:23;12688:126;;;;;;;;:::i;:::-;;;;;;;;;;;12356:489;;-1:-1:-1;;;;;;12356:489:76;;;;;;;33067:4:123;33055:17;;;12356:489:76;;;33037:36:123;12356:489:76;33109:23:123;;;33089:18;;;33082:51;33149:18;;;33142:34;;;;33212:23;33192:18;;;33185:51;33009:19;;12356:489:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12317:32;;:35;;12350:1;;12317:35;;;;;;:::i;:::-;;;;;;:528;;;;;;;:::i;:::-;-1:-1:-1;;;;;12317:528:76;;;-1:-1:-1;12911:25:76;;;;;12078:907;11942:3;;11886:1117;;;-1:-1:-1;;9572:3:76;;9518:3499;;;;9297:3730;;13104:22;13144:21;13182:170;13234:7;13263:3;13288:6;:12;;;13322:6;:12;;;13182:30;:170::i;:::-;13086:266;;;;13391:17;13366:143;;;;-1:-1:-1;;;13366:143:76;;33672:2:123;13366:143:76;;;33654:21:123;33711:2;33691:18;;;33684:30;-1:-1:-1;;;;;;;;;;;33730:18:123;;;33723:62;33821:34;33801:18;;;33794:62;-1:-1:-1;;;33872:19:123;;;33865:34;33916:19;;13366:143:76;33470:471:123;13366:143:76;13548:16;13523:132;;;;-1:-1:-1;;;13523:132:76;;34148:2:123;13523:132:76;;;34130:21:123;34187:2;34167:18;;;34160:30;-1:-1:-1;;;;;;;;;;;34206:18:123;;;34199:62;34297:27;34277:18;;;34270:55;34342:19;;13523:132:76;33946:421:123;13523:132:76;13036:630;;13740:27;13810:20;13832:10;:23;;;13793:63;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;13793:63:76;;;;;;13770:96;;13793:63;13770:96;;;;14025:11;;13770:96;;-1:-1:-1;4387:9678:76;;-1:-1:-1;;;;;;;4387:9678:76:o;4299:136:29:-;2125:14;;:35;;-1:-1:-1;;;2125:35:29;;2149:10;2125:35;;;7968:51:123;-1:-1:-1;;;;;2125:14:29;;;;:23;;7941:18:123;;2125:35:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2117:88;;;;-1:-1:-1;;;2117:88:29;;;;;;;:::i;:::-;-1:-1:-1;;4349:7:29::1;:27:::0;;;4391:37:::1;::::0;14071:25:123;;;4398:10:29::1;::::0;4391:37:::1;::::0;14059:2:123;14044:18;4391:37:29::1;;;;;;;4299:136::o:0;2071:101:40:-;1334:13;:11;:13::i;:::-;2135:30:::1;2162:1;2135:18;:30::i;:::-;2071:101::o:0;12044:173:115:-;12157:4;12206;12190:11;;12180:22;;;;;;;:::i;:::-;;;;;;;;:30;12173:37;;12044:173;;;;;:::o;4797:260:77:-;1358:10;-1:-1:-1;;;;;1380:20:77;1358:43;;1337:172;;;;-1:-1:-1;;;1337:172:77;;;;;;;:::i;:::-;4986:64:::1;::::0;-1:-1:-1;;;4986:64:77;;-1:-1:-1;;;;;4986:13:77::1;:35;::::0;::::1;::::0;:64:::1;::::0;5022:8;;5032:17;;4986:64:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4797:260:::0;;:::o;5262:158::-;1358:10;-1:-1:-1;;;;;1380:20:77;1358:43;;1337:172;;;;-1:-1:-1;;;1337:172:77;;;;;;;:::i;:::-;5364:49:::1;::::0;-1:-1:-1;;;5364:49:77;;-1:-1:-1;;;;;7986:32:123;;;5364:49:77::1;::::0;::::1;7968:51:123::0;5364:13:77::1;:39;::::0;::::1;::::0;7941:18:123;;5364:49:77::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5262:158:::0;:::o;2721:148::-;1334:13:40;:11;:13::i;:::-;2814:48:77::1;::::0;-1:-1:-1;;;2814:48:77;;-1:-1:-1;;;;;2814:13:77::1;:34;::::0;::::1;::::0;:48:::1;::::0;2849:12;;2814:48:::1;;;:::i;5839:2970:115:-:0;12277:17;;-1:-1:-1;;;;;12277:17:115;12263:10;:31;12259:121;;12351:17;;12317:52;;-1:-1:-1;;;12317:52:115;;12339:10;12317:52;;;37202:51:123;-1:-1:-1;;;;;12351:17:115;;;37269:18:123;;;37262:60;37175:18;;12317:52:115;37028:300:123;12259:121:115;5724:7:29;;6140:1:115::1;::::0;5695:10:29;5724:14;;;5723:24;2759:52:::1;;;;-1:-1:-1::0;;;2759:52:29::1;;;;;;;:::i;:::-;6153:22:115::2;6178:9;6153:34;;6198:27;6268:15;6285:13;6251:48;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;6251:48:115;;::::2;::::0;;;;;;6228:81;;6251:48:::2;6228:81:::0;;::::2;::::0;6320:31:::2;6354:33:::0;;;:12:::2;:33:::0;;;;;;6559:29;;6228:81;;-1:-1:-1;6354:33:115;6559:29:::2;::::0;;::::2;:34:::0;;6555:110:::2;;6616:38;::::0;-1:-1:-1;;;6616:38:115;;::::2;::::0;::::2;14071:25:123::0;;;14044:18;;6616:38:115::2;13925:177:123::0;6555:110:115::2;6727:22:::0;;;;::::2;;;6723:102;;;6772:42;::::0;-1:-1:-1;;;6772:42:115;;::::2;::::0;::::2;14071:25:123::0;;;14044:18;;6772:42:115::2;13925:177:123::0;6723:102:115::2;6834:29:::0;;-1:-1:-1;;6834:29:115::2;::::0;::::2;::::0;;6859:4:::2;6989:34:::0;::::2;::::0;-1:-1:-1;;;;;6955:31:115;::::2;6834:22;6955:31:::0;;;:16:::2;:31;::::0;;;;;:68:::2;6938:291;;;7121:34;::::0;::::2;::::0;-1:-1:-1;;;;;7173:31:115;::::2;;::::0;;;:16:::2;:31;::::0;;;;;;;7055:163;;-1:-1:-1;;;7055:163:115;;::::2;::::0;::::2;25477:51:123::0;;;;25544:18;;;25537:34;;;;25587:18;;;25580:34;;;;25450:18;;7055:163:115::2;25275:345:123::0;6938:291:115::2;7475:29:::0;;7365:42:::2;::::0;7413:142:::2;::::0;7442:19;;7475:29:::2;;7518:27:::0;7413:15:::2;:142::i;:::-;7364:191;;;1306:2;7748:86;;:17;:37;;;7786:1;7748:40;;;;;;;;:::i;:::-;;;;;;;:86;;;;:::i;:::-;-1:-1:-1::0;;;;;7668:166:115::2;1243:3;7668:17;:38;;;7707:1;7668:41;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;7668:65:115::2;;;;;:::i;:::-;:166;7651:473;;;1243:3;7906:17;:38;;;7945:1;7906:41;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;7906:85:115::2;;;;;:::i;:::-;1306:2;8009:90;;:17;:37;;;8047:1;8009:40;;;;;;;;:::i;:::-;;;;;;;:90;;;;:::i;:::-;7866:247;::::0;-1:-1:-1;;;7866:247:115;;::::2;::::0;::::2;37976:25:123::0;;;;-1:-1:-1;;;;;38037:39:123;38017:18;;;38010:67;37949:18;;7866:247:115::2;37803:280:123::0;7651:473:115::2;8139:45;::::0;-1:-1:-1;;;;;7986:32:123;;7968:51;;8153:15:115;;8139:45:::2;::::0;7956:2:123;7941:18;8139:45:115::2;;;;;;;8298:14;8355:11;8333:9;8316:26;::::0;:14;:26:::2;:::i;:::-;:35;::::0;8345:6:::2;8316:35;:::i;:::-;8315:51;;;;:::i;:::-;8298:68;;8435:22;8469:12;:34;;;8460:6;:43;:101;;8527:12;:34;;;8460:101;;;8518:6;8460:101;-1:-1:-1::0;;;;;8572:31:115;::::2;;::::0;;;:16:::2;:31;::::0;;;;:49;;8435:126;;-1:-1:-1;8435:126:115;;8572:31;;;:49:::2;::::0;8435:126;;8572:49:::2;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;8637:103:115;::::2;8699:31;::::0;;;:16:::2;:31;::::0;;;;;;;;;8637:103;;14071:25:123;;;-1:-1:-1;;;;;;;;;;;8637:103:115;14044:18:123;8637:103:115::2;;;;;;;8759:17;::::0;8751:51:::2;::::0;-1:-1:-1;;;;;8759:17:115;;::::2;::::0;8751:51;::::2;;;::::0;8787:14;;8759:17:::2;8751:51:::0;8759:17;8751:51;8787:14;8759:17;8751:51;::::2;;;;;;;;;;;;;::::0;::::2;;;;;;6143:2666;;;;;;12389:1:::1;5839:2970:::0;;;:::o;9369:108::-;1334:13:40;:11;:13::i;:::-;9444:17:115::1;:26:::0;9369:108::o;4432:1401::-;5724:7:29;;4610:1:115;;5695::29;5724:14;;;5723:24;2759:52;;;;-1:-1:-1;;;2759:52:29;;;;;;;:::i;:::-;4623:23:115::1;4689:15;4706:10;4672:45;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;4672:45:115;;::::1;::::0;;;;;;4649:78;;4672:45:::1;4649:78:::0;;::::1;::::0;4742:29:::1;::::0;;;:12:::1;:29:::0;;;;;:46;4649:78;;-1:-1:-1;4742:46:115::1;;:51:::0;4738:127:::1;;4816:38;::::0;-1:-1:-1;;;4816:38:115;;::::1;::::0;::::1;14071:25:123::0;;;14044:18;;4816:38:115::1;13925:177:123::0;4738:127:115::1;4879:9;:13:::0;4875:213:::1;;4925:10;4908:28;::::0;;;:16:::1;:28;::::0;;;;:41;;4940:9:::1;::::0;4908:28;:41:::1;::::0;4940:9;;4908:41:::1;:::i;:::-;::::0;;;-1:-1:-1;;5007:10:115::1;5035:28;::::0;;;:16:::1;:28;::::0;;;;;;;;;4968:109;;14071:25:123;;;-1:-1:-1;;;;;;;;;;;4968:109:115;14044:18:123;4968:109:115::1;;;;;;;4875:213;5119:10;5102:28;::::0;;;:16:::1;:28;::::0;;;;;:52;-1:-1:-1;5098:234:115::1;;;5212:10;5279:28;::::0;;;:16:::1;:28;::::0;;;;;;;5177:144;;-1:-1:-1;;;5177:144:115;;::::1;::::0;::::1;25477:51:123::0;;;;25544:18;;;25537:34;;;25587:18;;;25580:34;25450:18;;5177:144:115::1;25275:345:123::0;5098:234:115::1;-1:-1:-1::0;;;;;;;;;;;;;;;;5381:50:115::1;5418:12;5381:50:::0;;::::1;::::0;;-1:-1:-1;;;5479:56:115;;;5546:29;;;:12:::1;:29:::0;;;;;;;:42;;;;;;::::1;;::::0;::::1;-1:-1:-1::0;;5546:42:115;;;;::::1;::::0;;;;;;;::::1;::::0;;;;-1:-1:-1;5546:42:115;;::::1;::::0;5654:172;;-1:-1:-1;;5678:15:115;;5654:172:::1;::::0;::::1;::::0;5707:10:::1;::::0;5418:12;5765:16;;;;5479:56;;5654:172:::1;:::i;:::-;;;;;;;;4613:1220;;4432:1401:::0;;;;;:::o;6262:951:77:-;6321:16;6349:19;6371:20;-1:-1:-1;;;;;6371:32:77;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6349:56;;;;6420:11;6435:1;6420:16;6416:70;;-1:-1:-1;;6459:16:77;;;6473:1;6459:16;;;;;;;;;6262:951::o;6416:70::-;6496:21;;6527:129;6551:11;6547:1;:15;6527:129;;;6600:45;;-1:-1:-1;;;6600:45:77;;26848:4:123;26836:17;;6600:45:77;;;26818:36:123;6600:14:77;-1:-1:-1;;;;;6600:35:77;;;;26791:18:123;;6600:45:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6583:62;;;;:::i;:::-;;-1:-1:-1;6564:3:77;;6527:129;;;;6666:35;6718:13;-1:-1:-1;;;;;6704:28:77;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6704:28:77;;6666:66;;6742:13;6774:9;6769:403;6793:20;-1:-1:-1;;;;;6793:32:77;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6789:38;;:1;:38;6769:403;;;6879:45;;-1:-1:-1;;;6879:45:77;;26848:4:123;26836:17;;6879:45:77;;;26818:36:123;6848:28:77;;6879:14;-1:-1:-1;;;;;6879:35:77;;;;26791:18:123;;6879:45:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6848:76;;6943:9;6938:224;6962:20;6958:1;:24;6938:224;;;7063:49;;-1:-1:-1;;;7063:49:77;;27254:4:123;27242:17;;7063:49:77;;;27224:36:123;27276:18;;;27269:34;;;7063:14:77;-1:-1:-1;;;;;7063:36:77;;;;27197:18:123;;7063:49:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:58;;;7007:18;7026:5;7007:25;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7007:115:77;;;:25;;;;;;;;;;;:115;7140:7;;;;:::i;:::-;;-1:-1:-1;;6984:3:77;;6938:224;;;-1:-1:-1;;6829:3:77;;6769:403;;;-1:-1:-1;7188:18:77;;6262:951;-1:-1:-1;;;;6262:951:77:o;2321:198:40:-;1334:13;:11;:13::i;:::-;-1:-1:-1;;;;;2409:22:40;::::1;2401:73;;;::::0;-1:-1:-1;;;2401:73:40;;38944:2:123;2401:73:40::1;::::0;::::1;38926:21:123::0;38983:2;38963:18;;;38956:30;39022:34;39002:18;;;38995:62;-1:-1:-1;;;39073:18:123;;;39066:36;39119:19;;2401:73:40::1;38742:402:123::0;2401:73:40::1;2484:28;2503:8;2484:18;:28::i;2711:934:115:-:0;3111:19:44;3134:13;;;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:44;;3212:1;3197:12;;;;:16;3179:34;3178:108;;;-1:-1:-1;3258:4:44;1476:19:48;:23;;;3219:66:44;;-1:-1:-1;3268:12:44;;;;;:17;3219:66;3157:201;;;;-1:-1:-1;;;3157:201:44;;39351:2:123;3157:201:44;;;39333:21:123;39390:2;39370:18;;;39363:30;39429:34;39409:18;;;39402:62;-1:-1:-1;;;39480:18:123;;;39473:44;39534:19;;3157:201:44;39149:410:123;3157:201:44;3368:12;:16;;-1:-1:-1;;3368:16:44;3383:1;3368:16;;;3394:65;;;;3428:13;:20;;-1:-1:-1;;3428:20:44;;;;;3394:65;-1:-1:-1;;;;;2951:27:115;::::1;2947:95;;3001:30;::::0;-1:-1:-1;;;3001:30:115;;39766:2:123;3001:30:115::1;::::0;::::1;39748:21:123::0;39805:2;39785:18;;;39778:30;-1:-1:-1;;;39824:18:123;;;39817:42;39876:18;;3001:30:115::1;39564:336:123::0;2947:95:115::1;-1:-1:-1::0;;;;;3055:31:115;::::1;3051:103;;3109:34;::::0;-1:-1:-1;;;3109:34:115;;40107:2:123;3109:34:115::1;::::0;::::1;40089:21:123::0;40146:2;40126:18;;;40119:30;-1:-1:-1;;;40165:18:123;;;40158:46;40221:18;;3109:34:115::1;39905:340:123::0;3051:103:115::1;-1:-1:-1::0;;;;;3167:32:115;::::1;3163:105;;3222:35;::::0;-1:-1:-1;;;3222:35:115;;40452:2:123;3222:35:115::1;::::0;::::1;40434:21:123::0;40491:2;40471:18;;;40464:30;-1:-1:-1;;;40510:18:123;;;40503:47;40567:18;;3222:35:115::1;40250:341:123::0;3163:105:115::1;3277:59;3303:13;3318:17;3277:25;:59::i;:::-;3346:17;:38:::0;;-1:-1:-1;;;;;;3346:38:115::1;-1:-1:-1::0;;;;;3346:38:115;::::1;;::::0;;3461:33:::1;3480:13:::0;3461:18:::1;:33::i;:::-;3582:56;3600:15;3617:20;3582:17;:56::i;:::-;3483:14:44::0;3479:99;;;3529:5;3513:21;;-1:-1:-1;;3513:21:44;;;3553:14;;-1:-1:-1;26818:36:123;;3553:14:44;;26806:2:123;26791:18;3553:14:44;;;;;;;3101:483;2711:934:115;;;;;:::o;10793:123::-;1334:13:40;:11;:13::i;:::-;10871:17:115::1;:38:::0;;-1:-1:-1;;;;;;10871:38:115::1;-1:-1:-1::0;;;;;10871:38:115;;;::::1;::::0;;;::::1;::::0;;10793:123::o;4911:437:29:-;2285:14;;;;;;;;;-1:-1:-1;;;;;2285:14:29;-1:-1:-1;;;;;2285:23:29;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2271:39:29;:10;-1:-1:-1;;;;;2271:39:29;;2263:94;;;;-1:-1:-1;;;2263:94:29;;;;;;;:::i;:::-;5164:7:::1;;5163:8;5141:15;5140:16;5128:7;;5127:8;5126:31;5125:47;5104:150;;;::::0;-1:-1:-1;;;5104:150:29;;40997:2:123;5104:150:29::1;::::0;::::1;40979:21:123::0;41036:2;41016:18;;;41009:30;41075:34;41055:18;;;41048:62;41146:26;41126:18;;;41119:54;41190:19;;5104:150:29::1;40795:420:123::0;5104:150:29::1;5264:7;:25:::0;;;5304:37:::1;::::0;14071:25:123;;;5313:10:29::1;::::0;5304:37:::1;::::0;14059:2:123;14044:18;5304:37:29::1;13925:177:123::0;3631:872:77;1684:16;;-1:-1:-1;;;;;1684:16:77;1670:10;:30;1649:153;;;;-1:-1:-1;;;1649:153:77;;41422:2:123;1649:153:77;;;41404:21:123;41461:2;41441:18;;;41434:30;41500:34;41480:18;;;41473:62;41571:34;41551:18;;;41544:62;-1:-1:-1;;;41622:19:123;;;41615:43;41675:19;;1649:153:77;41220:480:123;1649:153:77;3815:9:::1;3810:610;3830:29:::0;;::::1;3810:610;;;4029:18;;4048:1;4029:21;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:27;::::0;;;;;::::1;;;:::i;:::-;-1:-1:-1::0;;;;;4029:40:77::1;;4070:10;4090:4;4097:18;;4116:1;4097:21;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:28;4029:97:::0;;-1:-1:-1;;;;;;4029:97:77::1;::::0;;;;;;-1:-1:-1;;;;;42680:32:123;;;4029:97:77::1;::::0;::::1;42662:51:123::0;42749:32;;;;42729:18;;;42722:60;4097:28:77::1;;42798:18:123::0;;;42791:34;42635:18;;4029:97:77::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4140:17;4176:18;;4195:1;4176:21;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:27;::::0;;;;;::::1;;;:::i;:::-;:82;::::0;-1:-1:-1;;;4176:82:77;;4222:4:::1;4176:82;::::0;::::1;37202:51:123::0;-1:-1:-1;;;;;4237:19:77::1;37289:32:123::0;;37269:18;;;37262:60;4176:37:77;;;::::1;::::0;::::1;::::0;37175:18:123;;4176:82:77::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4140:118;;4272:18;;4291:1;4272:21;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:27;::::0;;;;;::::1;;;:::i;:::-;-1:-1:-1::0;;;;;4272:35:77::1;;4333:19;4386:9;4355:18;;4374:1;4355:21;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:28;;;:40;;;;:::i;:::-;4272:137;::::0;-1:-1:-1;;;;;;4272:137:77::1;::::0;;;;;;-1:-1:-1;;;;;43028:32:123;;;4272:137:77::1;::::0;::::1;43010:51:123::0;43077:18;;;43070:34;42983:18;;4272:137:77::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;3861:3:77::1;;3810:610;;;-1:-1:-1::0;4430:66:77::1;::::0;-1:-1:-1;;;4430:66:77;;-1:-1:-1;;;;;4430:19:77::1;:46;::::0;::::1;::::0;:66:::1;::::0;4477:18;;;;4430:66:::1;;;:::i;9004:177:115:-:0;1334:13:40;:11;:13::i;:::-;9091:17:115::1;:39:::0;;9113:1:::1;:16;::::0;::::1;::::0;;::::1;9091:39:::0;;::::1;::::0;;;9145:29:::1;::::0;::::1;::::0;-1:-1:-1;;9145:29:115::1;9004:177:::0;:::o;1240:240:27:-;1395:4;1469;1418:47;1446:5;1453:4;1459:5;1418:27;:47::i;:::-;:55;;1240:240;-1:-1:-1;;;;;1240:240:27:o;6024:360:29:-;-1:-1:-1;;;;;6127:40:29;;6106:160;;;;-1:-1:-1;;;6106:160:29;;46231:2:123;6106:160:29;;;46213:21:123;46270:2;46250:18;;;46243:30;46309:34;46289:18;;;46282:62;46380:34;46360:18;;;46353:62;-1:-1:-1;;;46431:19:123;;;46424:40;46481:19;;6106:160:29;46029:477:123;6106:160:29;6299:14;;6281:52;;;-1:-1:-1;;;;;6299:14:29;;;37202:51:123;;37289:32;;;37284:2;37269:18;;37262:60;6281:52:29;;37175:18:123;6281:52:29;;;;;;;6343:14;:34;;-1:-1:-1;;;;;;6343:34:29;-1:-1:-1;;;;;6343:34:29;;;;;;;;;;6024:360::o;7084:580:87:-;-1:-1:-1;;;;;;;;;;;;;;;;;7184:23:87;;:::i;:::-;7228:3;;7217:14;;:8;7252:3;;;;7241:8;;;:14;7265:8;;;;:12;;;-1:-1:-1;;7452:1:87;7446:4;7217:14;7436:1;7429:4;7422:5;7418:16;7407:53;7396:64;-1:-1:-1;7396:64:87;;7530:75;7557:48;7582:9;7530:75;;7632:7;7624:33;;;;-1:-1:-1;;;7624:33:87;;47066:2:123;7624:33:87;;;47048:21:123;47105:2;47085:18;;;47078:30;-1:-1:-1;;;47124:18:123;;;47117:43;47177:18;;7624:33:87;46864:337:123;7624:33:87;7174:490;;7084:580;;;;:::o;4823:615::-;-1:-1:-1;;;;;;;;;;;;;;;;;4926:23:87;;:::i;:::-;4970:4;;4959:15;;:8;4995:4;;;;4984:8;;;:15;5020:4;;5009:8;;;;:15;;;;5045:4;;;;5034:8;;;:15;-1:-1:-1;;5225:1:87;5219:4;4959:15;5209:1;5202:4;5195:5;5191:16;5180:53;5169:64;-1:-1:-1;5169:64:87;;5303:75;5330:48;5355:9;5303:75;;5406:7;5398:33;;;;-1:-1:-1;;;5398:33:87;;47408:2:123;5398:33:87;;;47390:21:123;47447:2;47427:18;;;47420:30;-1:-1:-1;;;47466:18:123;;;47459:43;47519:18;;5398:33:87;47206:337:123;4070:128:87;4119:14;;:::i;:::-;-1:-1:-1;4152:39:87;;;;;;;;3635:77;4152:39;;;;;;3752:77;4152:39;;;;;;;;;;;;;;3869:77;4152:39;;3986:77;4152:39;;;;;;;;;;;;;;;4070:128::o;11044:451::-;-1:-1:-1;;;;;;;;;;;;;;;;;11123:12:87;;;11185:24;-1:-1:-1;;;;;;;;;;;11193:2:87;11185:24;:::i;:::-;11173:36;;11220:239;11259:13;11270:1;11259:10;:13::i;:::-;11247:25;;-1:-1:-1;11247:25:87;-1:-1:-1;;;;;;;;;;;;11336:1:87;11333;11326:24;11318:4;:32;11314:92;;11378:13;;;;;;;;;;;;;;;;;;;;11044:451;-1:-1:-1;;;11044:451:87:o;11314:92::-;-1:-1:-1;;;;;;;;;;;11434:1:87;11431;11424:24;11420:28;;11220:239;;9189:1112;9397:31;;;;;;;;;;;;;;;;;;9438;;;;;;;;;;;;;;;;9375:4;;;;9397:31;9480:24;;:::i;:::-;9520:9;9515:302;9539:1;9535;:5;9515:302;;;9561:9;9573:5;:1;9577;9573:5;:::i;:::-;9561:17;;9607:2;9610:1;9607:5;;;;;;;:::i;:::-;;;;;:7;9592:5;9598;:1;9607:7;9598:5;:::i;:::-;9592:12;;;;;;;:::i;:::-;;;;:22;9643:2;9646:1;9643:5;;;;;;;:::i;:::-;;;;;:7;;;9628:5;9634:1;9638;9634:5;;;;:::i;:::-;9628:12;;;;;;;:::i;:::-;;;;:22;9679:2;9682:1;9679:5;;;;;;;:::i;:::-;;;;;:7;:10;9664:5;9670;:1;9674;9670:5;:::i;:::-;9664:12;;;;;;;:::i;:::-;;;;:25;9718:2;9721:1;9718:5;;;;;;;:::i;:::-;;;;;:7;9726:1;9718:10;;;;9703:5;9709;:1;9713;9709:5;:::i;:::-;9703:12;;;;;;;:::i;:::-;;;;:25;9757:2;9760:1;9757:5;;;;;;;:::i;:::-;;;;;:7;;;9765:1;9757:10;;;;;;;:::i;:::-;;;;;9742:5;9748;:1;9752;9748:5;:::i;:::-;9742:12;;;;;;;:::i;:::-;;;;:25;9796:2;9799:1;9796:5;;;;;;;:::i;:::-;;;;;:7;;;9804:1;9796:10;;;;;;;:::i;:::-;;;;;9781:5;9787;:1;9791;9787:5;:::i;:::-;9781:12;;;;;;;:::i;:::-;;;;:25;-1:-1:-1;9542:3:87;;9515:302;;;;9827:21;;:::i;:::-;9858:12;10032:4;10027:3;10012:13;10005:5;10002:1;9990:10;9979:58;10282:6;;9968:69;;10282:11;;;;-1:-1:-1;10265:29:87;;-1:-1:-1;;;;;;;;;;9189:1112:87:o;1599:130:40:-;1513:6;;-1:-1:-1;;;;;1513:6:40;929:10:49;1662:23:40;1654:68;;;;-1:-1:-1;;;1654:68:40;;47750:2:123;1654:68:40;;;47732:21:123;;;47769:18;;;47762:30;47828:34;47808:18;;;47801:62;47880:18;;1654:68:40;47548:356:123;5465:1257:88;5532:12;5650:15;5728:23;5764:20;5777:6;5764:12;:20::i;:::-;5754:31;;-1:-1:-1;;;;;5754:31:88;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5754:31:88;;5728:57;;5841:18;6093:9;6088:601;6122:10;:17;6109:10;:30;6108:45;;;;;6149:3;6145:1;:7;6108:45;6088:601;;;6252:1;:6;;;-1:-1:-1;6339:16:88;;;:21;6335:344;;6524:1;6511:16;;6486:10;6497;6486:22;;;;;;;;:::i;:::-;;;;:41;-1:-1:-1;;;;;6486:41:88;;;;;;;;;6650:12;;;;;6335:344;6155:3;;;:::i;:::-;;;6088:601;;5740:200:77;5847:16;;5823:62;;;-1:-1:-1;;;;;5847:16:77;;;37202:51:123;;37289:32;;;37284:2;37269:18;;37262:60;5823:62:77;;37175:18:123;5823:62:77;;;;;;;5895:16;:38;;-1:-1:-1;;;;;;5895:38:77;-1:-1:-1;;;;;5895:38:77;;;;;;;;;;5740:200::o;15634:148:76:-;15699:20;:28;;-1:-1:-1;;15699:28:76;;;;;;;;;;15742:33;;3516:41:123;;;15742:33:76;;3504:2:123;3489:18;15742:33:76;;;;;;;15634:148;:::o;3308:360:88:-;3419:7;3438:14;3455:44;3481:17;3455:25;:44::i;:::-;3438:61;;3541:6;3524:13;3519:18;;:1;:18;;3518:29;3510:127;;;;-1:-1:-1;;;3510:127:88;;48111:2:123;3510:127:88;;;48093:21:123;48150:2;48130:18;;;48123:30;48189:34;48169:18;;;48162:62;48260:33;48240:18;;;48233:61;48311:19;;3510:127:88;47909:427:123;3510:127:88;3655:6;-1:-1:-1;3308:360:88;;;;;:::o;6797:406::-;6853:6;;6897:209;6904:5;;6897:209;;6931:5;6935:1;6931;:5;:::i;:::-;6925:12;;;;7020:7;;;;:::i;:::-;;;;6897:209;;5698:1197:87;-1:-1:-1;;;;;;;;;;;;;;;;;5824:4:87;5820:1;:8;;;5812:37;;;;-1:-1:-1;;;5812:37:87;;48728:2:123;5812:37:87;;;48710:21:123;48767:2;48747:18;;;48740:30;-1:-1:-1;;;48786:18:123;;;48779:46;48842:18;;5812:37:87;48526:340:123;5812:37:87;5893:1;:6;;5898:1;5893:6;5890:44;;-1:-1:-1;5922:1:87;5915:8;;5890:44;6016:19;;;;;;;;;5989:24;6016:19;;;;;;;;;6145:1;;6208;;6337:481;6348:1;6343:6;;:1;:6;;;6337:481;;6493:1;6483:6;;;;;;;6482:12;;:17;;6478:84;;6529:14;6534:3;6539;6529:4;:14::i;:::-;6523:20;;6478:84;6644:14;6649:3;6654;6644:4;:14::i;:::-;6638:20;-1:-1:-1;6765:7:87;6771:1;6765:7;;;;;6790:3;6337:481;;;-1:-1:-1;6885:3:87;;5698:1197;-1:-1:-1;;;;;5698:1197:87:o;4461:295::-;-1:-1:-1;;;;;;;;;;;;;;;;;4600:3:87;;:8;:20;;;;-1:-1:-1;4612:3:87;;;;:8;4600:20;4596:154;;;-1:-1:-1;;4643:13:87;;;;;;;;;-1:-1:-1;4643:13:87;;;;;;;;4461:295::o;4596:154::-;4694:45;;;;;;;;4702:1;:3;;;4694:45;;;;-1:-1:-1;;;;;;;;;;;4721:1:87;:3;;;:16;;;;:::i;:::-;4707:31;;-1:-1:-1;;;;;;;;;;;4707:31:87;:::i;:::-;4694:45;;4687:52;4461:295;-1:-1:-1;;4461:295:87:o;4596:154::-;4461:295;;;:::o;2673:187:40:-;2765:6;;;-1:-1:-1;;;;;2781:17:40;;;-1:-1:-1;;;;;;2781:17:40;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;2311:238:77:-;4910:13:44;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:44;;49073:2:123;4902:69:44;;;49055:21:123;49112:2;49092:18;;;49085:30;49151:34;49131:18;;;49124:62;-1:-1:-1;;;49202:18:123;;;49195:41;49253:19;;4902:69:44;48871:407:123;4902:69:44;2461:32:77::1;2480:12;2461:18;:32::i;:::-;2503:39;2524:17;2503:20;:39::i;2943:441:29:-:0;3077:14;;-1:-1:-1;;;;;3077:14:29;3069:37;:79;;;;-1:-1:-1;;;;;;3110:38:29;;;;3069:79;3048:197;;;;-1:-1:-1;;;3048:197:29;;49485:2:123;3048:197:29;;;49467:21:123;49524:2;49504:18;;;49497:30;49563:34;49543:18;;;49536:62;49634:34;49614:18;;;49607:62;-1:-1:-1;;;49685:19:123;;;49678:38;49733:19;;3048:197:29;49283:475:123;3048:197:29;3255:7;:26;;;3296:36;;14071:25:123;;;3303:10:29;;3296:36;;14059:2:123;14044:18;3296:36:29;;;;;;;3342:35;3361:15;3342:18;:35::i;1997:1172:27:-;2136:7;2191:2;2176:5;:12;:17;;;;:::i;:::-;:22;2155:144;;;;-1:-1:-1;;;2155:144:27;;49965:2:123;2155:144:27;;;49947:21:123;50004:2;49984:18;;;49977:30;50043:34;50023:18;;;50016:62;50114:34;50094:18;;;50087:62;-1:-1:-1;;;50165:19:123;;;50158:42;50217:19;;2155:144:27;49763:479:123;2155:144:27;2332:4;2363:2;2346:788;2372:5;:12;2367:1;:17;2346:788;;2413:9;2421:1;2413:5;:9;:::i;:::-;2426:1;2413:14;2409:715;;2572:12;2566:4;2559:26;2636:1;2629:5;2625:13;2619:20;2613:4;2606:34;2693:4;2687;2677:21;2661:37;;2739:1;2732:5;2728:13;2719:22;;2409:715;;;2940:1;2933:5;2929:13;2923:20;2917:4;2910:34;2978:12;2972:4;2965:26;3044:4;3038;3028:21;3012:37;;3090:1;3083:5;3079:13;3070:22;;2409:715;2386:7;2391:2;2386:7;;:::i;:::-;;;2346:788;;11616:433:87;11670:7;;;-1:-1:-1;;;;;;;;;;;11801:1:87;-1:-1:-1;;;;;;;;;;;11785:1:87;-1:-1:-1;;;;;;;;;;;11769:1:87;11766;11759:24;11752:47;11745:70;11730:85;;11912:9;11924:91;11931:4;11937:65;-1:-1:-1;;;;;;;;;;;11924:6:87;:91::i;:::-;12034:4;;11912:103;;-1:-1:-1;11616:433:87;;-1:-1:-1;;;11616:433:87:o;1188:1693:88:-;1278:7;571:3;1409:17;:24;:49;;1401:142;;;;-1:-1:-1;;;1401:142:88;;50449:2:123;1401:142:88;;;50431:21:123;50488:2;50468:18;;;50461:30;;;50527:34;50507:18;;;50500:62;50598:34;50578:18;;;50571:62;-1:-1:-1;;;50649:19:123;;;50642:35;50694:19;;1401:142:88;50247:472:123;1401:142:88;1619:17;:24;1647:1;1619:29;1615:77;;-1:-1:-1;1679:1:88;;1188:1693;-1:-1:-1;1188:1693:88:o;1615:77::-;1770:14;1873:15;2180:17;2198:1;2180:20;;;;;;;;:::i;:::-;;;;;2169:1;2180:20;;;;;2169:32;;;;-1:-1:-1;2284:568:88;2308:17;:24;2304:1;:28;2284:568;;;2480:17;2498:1;2480:20;;;;;;;;:::i;:::-;;;;;2469:1;2480:20;;;;;2469:32;;-1:-1:-1;2665:16:88;;;2657:100;;;;-1:-1:-1;;;2657:100:88;;50926:2:123;2657:100:88;;;50908:21:123;50965:2;50945:18;;;50938:30;51004:34;50984:18;;;50977:62;51075:34;51055:18;;;51048:62;-1:-1:-1;;;51126:19:123;;;51119:38;51174:19;;2657:100:88;50724:475:123;2657:100:88;2824:16;;;;2334:3;;2284:568;;;-1:-1:-1;2868:6:88;;1188:1693;-1:-1:-1;;;1188:1693:88:o;12055:874:87:-;12146:14;12172:12;12194:24;;:::i;:::-;12228:20;;:::i;:::-;12269:4;12258:15;;;12341:8;;;:15;;;12425:8;;;:15;;;12509:8;;;:16;;;12535:8;;;:20;;;12565:8;;;:19;;;12673:6;12667:4;12258:15;12571:1;12650:4;12643:5;12639:16;12628:58;12617:69;-1:-1:-1;12617:69:87;;12756:75;12783:48;12808:9;12756:75;;12858:7;12850:46;;;;-1:-1:-1;;;12850:46:87;;51406:2:123;12850:46:87;;;51388:21:123;51445:2;51425:18;;;51418:30;51484:28;51464:18;;;51457:56;51530:18;;12850:46:87;51204:350:123;12850:46:87;-1:-1:-1;12913:9:87;;;-1:-1:-1;;;;;12055:874:87:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:349:123:-;216:2;198:21;;;255:2;235:18;;;228:30;294:27;289:2;274:18;;267:55;354:2;339:18;;14:349::o;368:127::-;429:10;424:3;420:20;417:1;410:31;460:4;457:1;450:15;484:4;481:1;474:15;500:257;572:4;566:11;;;604:17;;-1:-1:-1;;;;;636:34:123;;672:22;;;633:62;630:88;;;698:18;;:::i;:::-;734:4;727:24;500:257;:::o;762:255::-;834:2;828:9;876:6;864:19;;-1:-1:-1;;;;;898:34:123;;934:22;;;895:62;892:88;;;960:18;;:::i;1022:275::-;1093:2;1087:9;1158:2;1139:13;;-1:-1:-1;;1135:27:123;1123:40;;-1:-1:-1;;;;;1178:34:123;;1214:22;;;1175:62;1172:88;;;1240:18;;:::i;:::-;1276:2;1269:22;1022:275;;-1:-1:-1;1022:275:123:o;1302:449::-;1366:5;1398:1;-1:-1:-1;;;;;1414:6:123;1411:30;1408:56;;;1444:18;;:::i;:::-;-1:-1:-1;1510:2:123;1489:15;;-1:-1:-1;;1485:29:123;1516:4;1481:40;1539:21;1481:40;1539:21;:::i;:::-;1530:30;;;1583:6;1576:5;1569:21;1623:3;1614:6;1609:3;1605:16;1602:25;1599:45;;;1640:1;1637;1630:12;1599:45;1689:6;1684:3;1677:4;1670:5;1666:16;1653:43;1743:1;1736:4;1727:6;1720:5;1716:18;1712:29;1705:40;1302:449;;;;;:::o;1756:220::-;1798:5;1851:3;1844:4;1836:6;1832:17;1828:27;1818:55;;1869:1;1866;1859:12;1818:55;1891:79;1966:3;1957:6;1944:20;1937:4;1929:6;1925:17;1891:79;:::i;:::-;1882:88;1756:220;-1:-1:-1;;;1756:220:123:o;1981:131::-;-1:-1:-1;;;;;2056:31:123;;2046:42;;2036:70;;2102:1;2099;2092:12;2117:1254;2248:6;2256;2264;2272;2280;2288;2296;2304;2357:3;2345:9;2336:7;2332:23;2328:33;2325:53;;;2374:1;2371;2364:12;2325:53;2419:23;;;-1:-1:-1;2539:2:123;2524:18;;2511:32;;-1:-1:-1;2642:2:123;2627:18;;2614:32;;-1:-1:-1;2724:2:123;2709:18;;2696:32;-1:-1:-1;;;;;;2759:45:123;;2747:58;;2737:86;;2819:1;2816;2809:12;2737:86;2842:7;-1:-1:-1;2922:3:123;2907:19;;2894:33;;-1:-1:-1;3004:3:123;2989:19;;2976:33;-1:-1:-1;;;;;3021:30:123;;3018:50;;;3064:1;3061;3054:12;3018:50;3087:49;3128:7;3119:6;3108:9;3104:22;3087:49;:::i;:::-;3077:59;-1:-1:-1;;3209:3:123;3194:19;;3181:33;;-1:-1:-1;3292:3:123;3277:19;;3264:33;3306;3264;3306;:::i;:::-;3358:7;3348:17;;;2117:1254;;;;;;;;;;;:::o;3568:271::-;3651:6;3704:2;3692:9;3683:7;3679:23;3675:32;3672:52;;;3720:1;3717;3710:12;3672:52;3759:9;3746:23;3778:31;3803:5;3778:31;:::i;3844:226::-;3903:6;3956:2;3944:9;3935:7;3931:23;3927:32;3924:52;;;3972:1;3969;3962:12;3924:52;-1:-1:-1;4017:23:123;;3844:226;-1:-1:-1;3844:226:123:o;4075:114::-;4159:4;4152:5;4148:16;4141:5;4138:27;4128:55;;4179:1;4176;4169:12;4194:243;4251:6;4304:2;4292:9;4283:7;4279:23;4275:32;4272:52;;;4320:1;4317;4310:12;4272:52;4359:9;4346:23;4378:29;4401:5;4378:29;:::i;4442:386::-;4496:5;4544:4;4532:9;4527:3;4523:19;4519:30;4516:50;;;4562:1;4559;4552:12;4516:50;4584:22;;:::i;:::-;4651:23;;4683:22;;4778:2;4763:18;;;4750:32;4798:14;;;4791:31;;;;-1:-1:-1;4575:31:123;4442:386;-1:-1:-1;4442:386:123:o;4833:542::-;4883:5;4936:3;4929:4;4921:6;4917:17;4913:27;4903:55;;4954:1;4951;4944:12;4903:55;4978:22;;:::i;:::-;5024:3;5062:2;5054:6;5050:15;5088:3;5080:6;5077:15;5074:35;;;5105:1;5102;5095:12;5074:35;5129:6;5144:200;5160:6;5155:3;5152:15;5144:200;;;5252:17;;5282:18;;5329:4;5320:14;;;;5177;5144:200;;;-1:-1:-1;5362:7:123;;4833:542;-1:-1:-1;;;;;4833:542:123:o;5380:320::-;5434:5;5482:4;5470:9;5465:3;5461:19;5457:30;5454:50;;;5500:1;5497;5490:12;5454:50;5522:22;;:::i;:::-;5513:31;;5567:40;5603:3;5592:9;5567:40;:::i;:::-;5560:5;5553:55;5642:51;5689:3;5682:4;5671:9;5667:20;5642:51;:::i;:::-;5635:4;5628:5;5624:16;5617:77;5380:320;;;;:::o;5705:576::-;5869:6;5877;5885;5893;5946:3;5934:9;5925:7;5921:23;5917:33;5914:53;;;5963:1;5960;5953:12;5914:53;6008:23;;;-1:-1:-1;6074:54:123;6120:7;6115:2;6100:18;;6074:54;:::i;:::-;6064:64;;6147:54;6193:7;6188:2;6177:9;6173:18;6147:54;:::i;:::-;6137:64;;6220:55;6267:7;6261:3;6250:9;6246:19;6220:55;:::i;:::-;6210:65;;5705:576;;;;;;;:::o;6811:637::-;7001:2;7013:21;;;7083:13;;6986:18;;;7105:22;;;6953:4;;7184:15;;;7158:2;7143:18;;;6953:4;7227:195;7241:6;7238:1;7235:13;7227:195;;;7306:13;;-1:-1:-1;;;;;7302:39:123;7290:52;;7371:2;7397:15;;;;7362:12;;;;7338:1;7256:9;7227:195;;7453:118;7539:5;7532:13;7525:21;7518:5;7515:32;7505:60;;7561:1;7558;7551:12;7576:241;7632:6;7685:2;7673:9;7664:7;7660:23;7656:32;7653:52;;;7701:1;7698;7691:12;7653:52;7740:9;7727:23;7759:28;7781:5;7759:28;:::i;8030:163::-;8097:20;;8157:10;8146:22;;8136:33;;8126:61;;8183:1;8180;8173:12;8198:182;8257:4;-1:-1:-1;;;;;8282:6:123;8279:30;8276:56;;;8312:18;;:::i;:::-;-1:-1:-1;8357:1:123;8353:14;8369:4;8349:25;;8198:182::o;8385:672::-;8438:5;8491:3;8484:4;8476:6;8472:17;8468:27;8458:55;;8509:1;8506;8499:12;8458:55;8549:6;8536:20;8576:63;8592:46;8631:6;8592:46;:::i;:::-;8576:63;:::i;:::-;8663:3;8687:6;8682:3;8675:19;8719:4;8714:3;8710:14;8703:21;;8780:4;8770:6;8767:1;8763:14;8755:6;8751:27;8747:38;8733:52;;8808:3;8800:6;8797:15;8794:35;;;8825:1;8822;8815:12;8794:35;8861:4;8853:6;8849:17;8875:151;8891:6;8886:3;8883:15;8875:151;;;8959:22;8977:3;8959:22;:::i;:::-;8947:35;;9011:4;9002:14;;;;8908;8875:151;;;-1:-1:-1;9044:7:123;8385:672;-1:-1:-1;;;;;8385:672:123:o;9062:693::-;9123:5;9176:3;9169:4;9161:6;9157:17;9153:27;9143:55;;9194:1;9191;9184:12;9143:55;9234:6;9221:20;9261:63;9277:46;9316:6;9277:46;:::i;9261:63::-;9348:3;9372:6;9367:3;9360:19;9404:4;9399:3;9395:14;9388:21;;9465:4;9455:6;9452:1;9448:14;9440:6;9436:27;9432:38;9418:52;;9493:3;9485:6;9482:15;9479:35;;;9510:1;9507;9500:12;9479:35;9546:4;9538:6;9534:17;9560:164;9576:6;9571:3;9568:15;9560:164;;;9644:35;9675:3;9670;9644:35;:::i;:::-;9632:48;;9709:4;9700:14;;;;9602:4;9593:14;9560:164;;9760:846;9823:5;9876:3;9869:4;9861:6;9857:17;9853:27;9843:55;;9894:1;9891;9884:12;9843:55;9934:6;9921:20;9961:63;9977:46;10016:6;9977:46;:::i;9961:63::-;10048:3;10072:6;10067:3;10060:19;10104:4;10099:3;10095:14;10088:21;;10165:4;10155:6;10152:1;10148:14;10140:6;10136:27;10132:38;10118:52;;10193:3;10185:6;10182:15;10179:35;;;10210:1;10207;10200:12;10179:35;10246:4;10238:6;10234:17;10260:315;10276:6;10271:3;10268:15;10260:315;;;10364:3;10351:17;-1:-1:-1;;;;;10387:11:123;10384:35;10381:55;;;10432:1;10429;10422:12;10381:55;10461:69;10526:3;10519:4;10505:11;10497:6;10493:24;10489:35;10461:69;:::i;:::-;10449:82;;-1:-1:-1;10560:4:123;10551:14;;;;10293;10260:315;;10611:1625;10685:5;10733:6;10721:9;10716:3;10712:19;10708:32;10705:52;;;10753:1;10750;10743:12;10705:52;10775:22;;:::i;:::-;10766:31;;10833:9;10820:23;-1:-1:-1;;;;;10858:6:123;10855:30;10852:50;;;10898:1;10895;10888:12;10852:50;10925:56;10977:3;10968:6;10957:9;10953:22;10925:56;:::i;:::-;10918:5;10911:71;;11035:2;11024:9;11020:18;11007:32;-1:-1:-1;;;;;11054:8:123;11051:32;11048:52;;;11096:1;11093;11086:12;11048:52;11132:66;11194:3;11183:8;11172:9;11168:24;11132:66;:::i;:::-;11127:2;11120:5;11116:14;11109:90;;11252:2;11241:9;11237:18;11224:32;-1:-1:-1;;;;;11271:8:123;11268:32;11265:52;;;11313:1;11310;11303:12;11265:52;11349:66;11411:3;11400:8;11389:9;11385:24;11349:66;:::i;:::-;11344:2;11337:5;11333:14;11326:90;;11448:50;11494:3;11489:2;11478:9;11474:18;11448:50;:::i;:::-;11443:2;11436:5;11432:14;11425:74;11533:51;11580:3;11574;11563:9;11559:19;11533:51;:::i;:::-;11526:4;11519:5;11515:16;11508:77;11638:3;11627:9;11623:19;11610:33;-1:-1:-1;;;;;11658:8:123;11655:32;11652:52;;;11700:1;11697;11690:12;11652:52;11738:58;11792:3;11781:8;11770:9;11766:24;11738:58;:::i;:::-;11731:4;11724:5;11720:16;11713:84;;11850:3;11839:9;11835:19;11822:33;-1:-1:-1;;;;;11870:8:123;11867:32;11864:52;;;11912:1;11909;11902:12;11864:52;11950:58;12004:3;11993:8;11982:9;11978:24;11950:58;:::i;:::-;11943:4;11936:5;11932:16;11925:84;;12062:3;12051:9;12047:19;12034:33;-1:-1:-1;;;;;12082:8:123;12079:32;12076:52;;;12124:1;12121;12114:12;12076:52;12161:68;12225:3;12214:8;12203:9;12199:24;12161:68;:::i;:::-;12155:3;12148:5;12144:15;12137:93;;10611:1625;;;;:::o;12241:572::-;12363:6;12371;12379;12432:2;12420:9;12411:7;12407:23;12403:32;12400:52;;;12448:1;12445;12438:12;12400:52;12493:23;;;-1:-1:-1;12559:37:123;12592:2;12577:18;;12559:37;:::i;:::-;12549:47;;12647:2;12636:9;12632:18;12619:32;-1:-1:-1;;;;;12666:6:123;12663:30;12660:50;;;12706:1;12703;12696:12;12660:50;12729:78;12799:7;12790:6;12779:9;12775:22;12729:78;:::i;:::-;12719:88;;;12241:572;;;;;:::o;12818:452::-;12870:3;12908:5;12902:12;12935:6;12930:3;12923:19;12967:4;12962:3;12958:14;12951:21;;13006:4;12999:5;12995:16;13029:1;13039:206;13053:6;13050:1;13047:13;13039:206;;;13118:13;;-1:-1:-1;;;;;13114:46:123;13102:59;;13190:4;13181:14;;;;13218:17;;;;13075:1;13068:9;13039:206;;;-1:-1:-1;13261:3:123;;12818:452;-1:-1:-1;;;;12818:452:123:o;13275:645::-;13504:2;13493:9;13486:21;13467:4;13542:6;13536:13;13585:2;13580;13569:9;13565:18;13558:30;13611:62;13668:3;13657:9;13653:19;13639:12;13611:62;:::i;:::-;13597:76;;13722:4;13714:6;13710:17;13704:24;13796:2;13792:7;13780:9;13772:6;13768:22;13764:36;13759:2;13748:9;13744:18;13737:64;13818:51;13862:6;13846:14;13818:51;:::i;:::-;13810:59;;;;13907:6;13900:4;13889:9;13885:20;13878:36;13275:645;;;;;:::o;15168:347::-;15219:8;15229:6;15283:3;15276:4;15268:6;15264:17;15260:27;15250:55;;15301:1;15298;15291:12;15250:55;-1:-1:-1;15324:20:123;;-1:-1:-1;;;;;15356:30:123;;15353:50;;;15399:1;15396;15389:12;15353:50;15436:4;15428:6;15424:17;15412:29;;15488:3;15481:4;15472:6;15464;15460:19;15456:30;15453:39;15450:59;;;15505:1;15502;15495:12;15450:59;15168:347;;;;;:::o;15520:523::-;15599:6;15607;15615;15668:2;15656:9;15647:7;15643:23;15639:32;15636:52;;;15684:1;15681;15674:12;15636:52;15724:9;15711:23;-1:-1:-1;;;;;15749:6:123;15746:30;15743:50;;;15789:1;15786;15779:12;15743:50;15828:58;15878:7;15869:6;15858:9;15854:22;15828:58;:::i;:::-;15905:8;;15802:84;;-1:-1:-1;16009:2:123;15994:18;;;;15981:32;;15520:523;-1:-1:-1;;;;15520:523:123:o;16048:1161::-;16160:6;16168;16221:2;16209:9;16200:7;16196:23;16192:32;16189:52;;;16237:1;16234;16227:12;16189:52;16276:9;16263:23;16295:31;16320:5;16295:31;:::i;:::-;16345:5;-1:-1:-1;16401:2:123;16386:18;;16373:32;-1:-1:-1;;;;;16417:30:123;;16414:50;;;16460:1;16457;16450:12;16414:50;16483:22;;16539:4;16521:16;;;16517:27;16514:47;;;16557:1;16554;16547:12;16514:47;16610:2;16604:9;16652:4;16640:17;;-1:-1:-1;;;;;16672:34:123;;16708:22;;;16669:62;16666:88;;;16734:18;;:::i;:::-;16770:2;16763:22;16810:16;;-1:-1:-1;;;;;16838:32:123;;16835:52;;;16883:1;16880;16873:12;16835:52;16911:44;16947:7;16936:8;16932:2;16928:17;16911:44;:::i;:::-;16896:60;;-1:-1:-1;17022:2:123;17014:11;;;17001:25;17042:15;;;17035:32;17133:2;17125:11;;;17112:25;17153:15;;;17146:32;;;;16048:1161;;16903:6;;-1:-1:-1;16048:1161:123;;-1:-1:-1;;16048:1161:123:o;17214:450::-;17283:6;17336:2;17324:9;17315:7;17311:23;17307:32;17304:52;;;17352:1;17349;17342:12;17304:52;17392:9;17379:23;-1:-1:-1;;;;;17417:6:123;17414:30;17411:50;;;17457:1;17454;17447:12;17411:50;17480:22;;17533:4;17525:13;;17521:27;-1:-1:-1;17511:55:123;;17562:1;17559;17552:12;17511:55;17585:73;17650:7;17645:2;17632:16;17627:2;17623;17619:11;17585:73;:::i;:::-;17575:83;17214:450;-1:-1:-1;;;;17214:450:123:o;17669:641::-;17792:6;17800;17808;17861:2;17849:9;17840:7;17836:23;17832:32;17829:52;;;17877:1;17874;17867:12;17829:52;17922:23;;;-1:-1:-1;18021:2:123;18006:18;;17993:32;18034:33;17993:32;18034:33;:::i;18994:644::-;19083:6;19091;19099;19107;19160:2;19148:9;19139:7;19135:23;19131:32;19128:52;;;19176:1;19173;19166:12;19128:52;19221:23;;;-1:-1:-1;19319:2:123;19304:18;;19291:32;-1:-1:-1;;;;;19335:30:123;;19332:50;;;19378:1;19375;19368:12;19332:50;19417:58;19467:7;19458:6;19447:9;19443:22;19417:58;:::i;:::-;18994:644;;19494:8;;-1:-1:-1;19391:84:123;;19602:2;19587:18;19574:32;;18994:644;-1:-1:-1;;;;18994:644:123:o;19878:816::-;19997:6;20005;20013;20021;20029;20082:3;20070:9;20061:7;20057:23;20053:33;20050:53;;;20099:1;20096;20089:12;20050:53;20138:9;20125:23;20157:31;20182:5;20157:31;:::i;:::-;20207:5;-1:-1:-1;20264:2:123;20249:18;;20236:32;20277:33;20236:32;20277:33;:::i;:::-;20329:7;-1:-1:-1;20388:2:123;20373:18;;20360:32;20401:33;20360:32;20401:33;:::i;:::-;20453:7;-1:-1:-1;20512:2:123;20497:18;;20484:32;20525:33;20484:32;20525:33;:::i;:::-;19878:816;;;;-1:-1:-1;19878:816:123;;20657:3;20642:19;20629:33;;19878:816;-1:-1:-1;;19878:816:123:o;20699:647::-;20822:6;20830;20883:2;20871:9;20862:7;20858:23;20854:32;20851:52;;;20899:1;20896;20889:12;20851:52;20939:9;20926:23;-1:-1:-1;;;;;20964:6:123;20961:30;20958:50;;;21004:1;21001;20994:12;20958:50;21027:22;;21080:4;21072:13;;21068:27;-1:-1:-1;21058:55:123;;21109:1;21106;21099:12;21058:55;21149:2;21136:16;-1:-1:-1;;;;;21167:6:123;21164:30;21161:50;;;21207:1;21204;21197:12;21161:50;21260:7;21255:2;21245:6;21242:1;21238:14;21234:2;21230:23;21226:32;21223:45;21220:65;;;21281:1;21278;21271:12;21220:65;21312:2;21304:11;;;;;21334:6;;-1:-1:-1;20699:647:123;-1:-1:-1;;;20699:647:123:o;21351:127::-;21412:10;21407:3;21403:20;21400:1;21393:31;21443:4;21440:1;21433:15;21467:4;21464:1;21457:15;21483:125;21548:9;;;21569:10;;;21566:36;;;21582:18;;:::i;21613:294::-;21770:19;;;21827:2;21823:15;-1:-1:-1;;;;;;21819:53:123;21814:2;21805:12;;21798:75;21898:2;21889:12;;21613:294::o;22333:251::-;22403:6;22456:2;22444:9;22435:7;22431:23;22427:32;22424:52;;;22472:1;22469;22462:12;22424:52;22504:9;22498:16;22523:31;22548:5;22523:31;:::i;22589:406::-;22791:2;22773:21;;;22830:2;22810:18;;;22803:30;22869:34;22864:2;22849:18;;22842:62;-1:-1:-1;;;22935:2:123;22920:18;;22913:40;22985:3;22970:19;;22589:406::o;23000:245::-;23067:6;23120:2;23108:9;23099:7;23095:23;23091:32;23088:52;;;23136:1;23133;23126:12;23088:52;23168:9;23162:16;23187:28;23209:5;23187:28;:::i;23250:404::-;23452:2;23434:21;;;23491:2;23471:18;;;23464:30;23530:34;23525:2;23510:18;;23503:62;-1:-1:-1;;;23596:2:123;23581:18;;23574:38;23644:3;23629:19;;23250:404::o;24084:127::-;24145:10;24140:3;24136:20;24133:1;24126:31;24176:4;24173:1;24166:15;24200:4;24197:1;24190:15;25061:209;25093:1;25119;25109:132;;25163:10;25158:3;25154:20;25151:1;25144:31;25198:4;25195:1;25188:15;25226:4;25223:1;25216:15;25109:132;-1:-1:-1;25255:9:123;;25061:209::o;25625:128::-;25692:9;;;25713:11;;;25710:37;;;25727:18;;:::i;25758:184::-;25828:6;25881:2;25869:9;25860:7;25856:23;25852:32;25849:52;;;25897:1;25894;25887:12;25849:52;-1:-1:-1;25920:16:123;;25758:184;-1:-1:-1;25758:184:123:o;26129:290::-;26199:6;26252:2;26240:9;26231:7;26227:23;26223:32;26220:52;;;26268:1;26265;26258:12;26220:52;26294:16;;-1:-1:-1;;;;;26339:31:123;;26329:42;;26319:70;;26385:1;26382;26375:12;26424:247;26492:6;26545:2;26533:9;26524:7;26520:23;26516:32;26513:52;;;26561:1;26558;26551:12;26513:52;26593:9;26587:16;26612:29;26635:5;26612:29;:::i;27314:137::-;-1:-1:-1;;;;;27392:5:123;27388:38;27381:5;27378:49;27368:77;;27441:1;27438;27431:12;27456:530;27559:6;27619:2;27607:9;27598:7;27594:23;27590:32;27634:2;27631:22;;;27649:1;27646;27639:12;27631:22;-1:-1:-1;27691:22:123;;:::i;:::-;27743:9;27737:16;27762:33;27787:7;27762:33;:::i;:::-;27804:22;;27871:2;27856:18;;27850:25;27884:32;27850:25;27884:32;:::i;:::-;27943:2;27932:14;;27925:31;27936:5;27456:530;-1:-1:-1;;;27456:530:123:o;27991:135::-;28030:3;28051:17;;;28048:43;;28071:18;;:::i;:::-;-1:-1:-1;28118:1:123;28107:13;;27991:135::o;31714:294::-;31784:6;31837:2;31825:9;31816:7;31812:23;31808:32;31805:52;;;31853:1;31850;31843:12;31805:52;31879:16;;-1:-1:-1;;31924:35:123;;31914:46;;31904:74;;31974:1;31971;31964:12;32559:249;32628:6;32681:2;32669:9;32660:7;32656:23;32652:32;32649:52;;;32697:1;32694;32687:12;32649:52;32729:9;32723:16;32748:30;32772:5;32748:30;:::i;33247:218::-;-1:-1:-1;;;;;33353:34:123;;;33317;;;33313:75;;33400:36;;33397:62;;;33439:18;;:::i;34372:627::-;34620:10;34615:3;34611:20;34602:6;34597:3;34593:16;34589:43;34584:3;34577:56;34559:3;34664:1;34659:3;34655:11;34695:6;34689:13;34760:4;34752:6;34748:17;34783:1;34793:179;34807:6;34804:1;34801:13;34793:179;;;34870:13;;34856:28;;34917:4;34906:16;;;;34945:17;;;;34829:1;34822:9;34793:179;;;-1:-1:-1;34988:5:123;;34372:627;-1:-1:-1;;;;;;34372:627:123:o;35004:271::-;35187:6;35179;35174:3;35161:33;35143:3;35213:16;;35238:13;;;35213:16;35004:271;-1:-1:-1;35004:271:123:o;35280:486::-;35482:2;35464:21;;;35521:2;35501:18;;;35494:30;35560:34;35555:2;35540:18;;35533:62;35631:34;35626:2;35611:18;;35604:62;-1:-1:-1;;;35697:3:123;35682:19;;35675:49;35756:3;35741:19;;35280:486::o;35771:399::-;35812:3;35850:5;35844:12;35877:6;35872:3;35865:19;35902:1;35912:139;35926:6;35923:1;35920:13;35912:139;;;36034:4;36019:13;;;36015:24;;36009:31;35989:11;;;35985:22;;35978:63;35941:12;35912:139;;;35916:3;36096:1;36089:4;36080:6;36075:3;36071:16;36067:27;36060:38;36159:4;36152:2;36148:7;36143:2;36135:6;36131:15;36127:29;36122:3;36118:39;36114:50;36107:57;;;35771:399;;;;:::o;36175:624::-;36449:1;36445;36440:3;36436:11;36432:19;36424:6;36420:32;36409:9;36402:51;36489:2;36484;36473:9;36469:18;36462:30;36383:4;36527:6;36521:13;36570:4;36565:2;36554:9;36550:18;36543:32;36598:51;36644:3;36633:9;36629:19;36615:12;36598:51;:::i;:::-;36584:65;;36705:2;36697:6;36693:15;36687:22;36680:4;36669:9;36665:20;36658:52;36765:2;36757:6;36753:15;36747:22;36741:3;36730:9;36726:19;36719:51;36787:6;36779:14;;;36175:624;;;;;:::o;36804:219::-;36953:2;36942:9;36935:21;36916:4;36973:44;37013:2;37002:9;36998:18;36990:6;36973:44;:::i;37333:292::-;-1:-1:-1;;;;;37417:34:123;;;37453;;;37413:75;37508:44;;;;37571:24;;;37561:58;;37599:18;;:::i;:::-;37561:58;37333:292;;;;:::o;37630:168::-;37703:9;;;37734;;37751:15;;;37745:22;;37731:37;37721:71;;37772:18;;:::i;38088:649::-;-1:-1:-1;;;;;38329:32:123;;38311:51;;38410:10;38398:23;;38393:2;38378:18;;38371:51;38458:3;38453:2;38438:18;;38431:31;;;38478:19;;38471:35;;;38499:6;38549;38349:3;38528:19;;38515:49;38614:1;38608:3;38599:6;38588:9;38584:22;38580:32;38573:43;38292:4;38684:3;38677:2;38673:7;38668:2;38660:6;38656:15;38652:29;38641:9;38637:45;38633:55;38625:63;;38724:6;38719:2;38708:9;38704:18;38697:34;38088:649;;;;;;;;:::o;41705:335::-;41808:4;41866:11;41853:25;41960:3;41956:8;41945;41929:14;41925:29;41921:44;41901:18;41897:69;41887:97;;41980:1;41977;41970:12;41887:97;42001:33;;;;;41705:335;-1:-1:-1;;41705:335:123:o;42045:142::-;42121:20;;42150:31;42121:20;42150:31;:::i;43115:716::-;43245:6;43240:3;43233:19;43277:4;43272:3;43268:14;43261:21;;43215:3;43305:5;43328:1;43338:468;43352:6;43349:1;43346:13;43338:468;;;43429:6;43416:20;43449:33;43474:7;43449:33;:::i;:::-;-1:-1:-1;;;;;43507:33:123;43495:46;;43594:4;43582:17;;43569:31;43613:32;43569:31;43613:32;:::i;:::-;-1:-1:-1;;;;;43681:40:123;43674:4;43665:14;;43658:64;43751:4;43742:14;;;;43779:17;;;;;43374:1;43367:9;43338:468;;43836:2188;44108:2;44120:21;;;44093:18;;44176:22;;;-1:-1:-1;44229:2:123;44278:1;44274:14;;;44259:30;;44255:39;;;44214:18;;44317:6;-1:-1:-1;;;44369:14:123;44365:27;;;44361:42;44412:1583;44426:6;44423:1;44420:13;44412:1583;;;44491:22;;;-1:-1:-1;;44487:36:123;44475:49;;44563:20;;44606:27;;;44596:55;;44647:1;44644;44637:12;44596:55;44677:31;;44749:19;;44825:14;44821:26;;;-1:-1:-1;;44817:40:123;44791:67;;44781:95;;44872:1;44869;44862:12;44781:95;44904:32;;45025:2;45012:16;;;44963:21;-1:-1:-1;;;;;45044:30:123;;45041:50;;;45087:1;45084;45077:12;45041:50;45147:6;45144:1;45140:14;45124;45120:35;45111:7;45107:49;45104:69;;;45169:1;45166;45159:12;45104:69;45201:4;45193:6;45186:20;45233:103;45330:4;45322:6;45318:17;45310:6;45301:7;45233:103;:::i;:::-;45219:117;;;45369:42;45407:2;45400:5;45396:14;45369:42;:::i;:::-;-1:-1:-1;;;;;14190:31:123;45486:2;45474:15;;14178:44;45567:2;45556:14;;;45543:28;45591:15;;;45584:32;45651:35;45680:4;45669:16;;45651:35;:::i;:::-;18622:10;18611:22;45745:4;45733:17;;18599:35;45786;45815:4;45804:16;;45786:35;:::i;:::-;18622:10;18611:22;;45880:4;45868:17;;18599:35;45764:57;-1:-1:-1;45909:6:123;-1:-1:-1;;45950:2:123;45973:12;;;;45938:15;;;;;44448:1;44441:9;;;;;44412:1583;;;-1:-1:-1;46012:6:123;;43836:2188;-1:-1:-1;;;;;;;43836:2188:123:o;48341:180::-;48379:3;48423:6;48416:5;48412:18;48454:6;48445:7;48442:19;48439:45;;48464:18;;:::i;:::-;48513:1;48500:15;;48341:180;-1:-1:-1;;48341:180:123:o","linkReferences":{},"immutableReferences":{"19039":[{"start":1476,"length":32},{"start":5231,"length":32},{"start":6447,"length":32},{"start":6870,"length":32},{"start":7453,"length":32}],"19042":[{"start":1373,"length":32},{"start":8297,"length":32},{"start":8793,"length":32}],"19045":[{"start":1321,"length":32},{"start":7804,"length":32}],"19048":[{"start":2008,"length":32},{"start":7273,"length":32}],"20260":[{"start":1422,"length":32},{"start":9837,"length":32},{"start":10049,"length":32},{"start":10176,"length":32}],"20263":[{"start":14168,"length":32},{"start":14356,"length":32},{"start":14583,"length":32}],"20266":[{"start":4046,"length":32},{"start":4189,"length":32},{"start":4317,"length":32},{"start":9753,"length":32},{"start":9957,"length":32},{"start":11709,"length":32},{"start":12118,"length":32}],"20269":[{"start":4519,"length":32},{"start":4856,"length":32},{"start":5007,"length":32},{"start":11906,"length":32},{"start":12283,"length":32},{"start":12442,"length":32}]}},"methodIdentifiers":{"alignedAggregator()":"4a5bf632","avsDirectory()":"6b3aa72e","balanceOf(address)":"70a08231","batchersBalances(address)":"f474b520","batchesState(bytes32)":"b099627e","blsApkRegistry()":"5df45946","checkPublicInput(bytes,bytes32)":"95c6d604","checkSignatures(bytes32,uint32,(uint32[],(uint256,uint256)[],(uint256,uint256)[],(uint256[2],uint256[2]),(uint256,uint256),uint32[],uint32[],uint32[][]))":"4ae07c37","createAVSRewardsSubmission(((address,uint96)[],address,uint256,uint32,uint32)[])":"fce36c7d","createNewTask(bytes32,string,uint256)":"d66eaabd","delegation()":"df5cf723","depositToBatcher(address)":"4223d551","deregisterOperatorFromAVS(address)":"a364f4da","disableVerifier(uint8)":"fd4c3b7c","disabledVerifiers()":"ea5ca34b","enableVerifier(uint8)":"18daeeaf","getOperatorRestakedStrategies(address)":"33cfb7b7","getRestakeableStrategies()":"e481af9d","initialize(address,address,address,address,uint256)":"f7013ef6","isVerifierDisabled(uint8)":"137122b5","owner()":"8da5cb5b","pause(uint256)":"136439dd","pauseAll()":"595c6a67","paused()":"5c975abb","paused(uint8)":"5ac86ab7","pauserRegistry()":"886f1195","registerOperatorToAVS(address,(bytes,bytes32,uint256))":"9926ee7d","registryCoordinator()":"6d14a987","renounceOwnership()":"715018a6","respondToTaskV2(bytes32,address,(uint32[],(uint256,uint256)[],(uint256,uint256)[],(uint256[2],uint256[2]),(uint256,uint256),uint32[],uint32[],uint32[][]))":"ab21739a","rewardsInitiator()":"fc299dee","setAggregator(address)":"f9120af6","setDisabledVerifiers(uint256)":"b753645e","setPauserRegistry(address)":"10d67a2f","setRewardsInitiator(address)":"3bc28c8c","setStaleStakesForbidden(bool)":"416c7e5e","stakeRegistry()":"68304835","staleStakesForbidden()":"b98d0908","transferOwnership(address)":"f2fde38b","trySignatureAndApkVerification(bytes32,(uint256,uint256),(uint256[2],uint256[2]),(uint256,uint256))":"171f1d5b","unpause(uint256)":"fabc1cbc","updateAVSMetadataURI(string)":"a98fb355","verifyBatchInclusion(bytes32,bytes32,bytes32,bytes20,bytes32,bytes,uint256,address)":"06045a91","withdraw(uint256)":"2e1a7d4d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IAVSDirectory\",\"name\":\"__avsDirectory\",\"type\":\"address\"},{\"internalType\":\"contract IRewardsCoordinator\",\"name\":\"__rewardsCoordinator\",\"type\":\"address\"},{\"internalType\":\"contract IRegistryCoordinator\",\"name\":\"__registryCoordinator\",\"type\":\"address\"},{\"internalType\":\"contract IStakeRegistry\",\"name\":\"__stakeRegistry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"batchIdentifierHash\",\"type\":\"bytes32\"}],\"name\":\"BatchAlreadyResponded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"batchIdentifierHash\",\"type\":\"bytes32\"}],\"name\":\"BatchAlreadySubmitted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"batchIdentifierHash\",\"type\":\"bytes32\"}],\"name\":\"BatchDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"batcher\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"}],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"param\",\"type\":\"string\"}],\"name\":\"InvalidAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"InvalidDepositAmount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"signedStake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requiredStake\",\"type\":\"uint256\"}],\"name\":\"InvalidQuorumThreshold\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"alignedAggregator\",\"type\":\"address\"}],\"name\":\"SenderIsNotAggregator\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"senderAddress\",\"type\":\"address\"}],\"name\":\"BatchVerified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"batcher\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"}],\"name\":\"BatcherBalanceUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"senderAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"taskCreatedBlock\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"batchDataPointer\",\"type\":\"string\"}],\"name\":\"NewBatchV2\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"senderAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"taskCreatedBlock\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"batchDataPointer\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"respondToTaskFeeLimit\",\"type\":\"uint256\"}],\"name\":\"NewBatchV3\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contract IPauserRegistry\",\"name\":\"pauserRegistry\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract IPauserRegistry\",\"name\":\"newPauserRegistry\",\"type\":\"address\"}],\"name\":\"PauserRegistrySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"prevRewardsInitiator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newRewardsInitiator\",\"type\":\"address\"}],\"name\":\"RewardsInitiatorUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"StaleStakesForbiddenUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"verifierIdx\",\"type\":\"uint8\"}],\"name\":\"VerifierDisabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"verifierIdx\",\"type\":\"uint8\"}],\"name\":\"VerifierEnabled\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"alignedAggregator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"avsDirectory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"batchersBalances\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"batchesState\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"taskCreatedBlock\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"responded\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"respondToTaskFeeLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blsApkRegistry\",\"outputs\":[{\"internalType\":\"contract IBLSApkRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"publicInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"checkPublicInput\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"referenceBlockNumber\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"uint32[]\",\"name\":\"nonSignerQuorumBitmapIndices\",\"type\":\"uint32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point[]\",\"name\":\"nonSignerPubkeys\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point[]\",\"name\":\"quorumApks\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256[2]\",\"name\":\"X\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"Y\",\"type\":\"uint256[2]\"}],\"internalType\":\"struct BN254.G2Point\",\"name\":\"apkG2\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"sigma\",\"type\":\"tuple\"},{\"internalType\":\"uint32[]\",\"name\":\"quorumApkIndices\",\"type\":\"uint32[]\"},{\"internalType\":\"uint32[]\",\"name\":\"totalStakeIndices\",\"type\":\"uint32[]\"},{\"internalType\":\"uint32[][]\",\"name\":\"nonSignerStakeIndices\",\"type\":\"uint32[][]\"}],\"internalType\":\"struct IBLSSignatureChecker.NonSignerStakesAndSignature\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"checkSignatures\",\"outputs\":[{\"components\":[{\"internalType\":\"uint96[]\",\"name\":\"signedStakeForQuorum\",\"type\":\"uint96[]\"},{\"internalType\":\"uint96[]\",\"name\":\"totalStakeForQuorum\",\"type\":\"uint96[]\"}],\"internalType\":\"struct IBLSSignatureChecker.QuorumStakeTotals\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"multiplier\",\"type\":\"uint96\"}],\"internalType\":\"struct IRewardsCoordinator.StrategyAndMultiplier[]\",\"name\":\"strategiesAndMultipliers\",\"type\":\"tuple[]\"},{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"startTimestamp\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"}],\"internalType\":\"struct IRewardsCoordinator.RewardsSubmission[]\",\"name\":\"rewardsSubmissions\",\"type\":\"tuple[]\"}],\"name\":\"createAVSRewardsSubmission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"batchDataPointer\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"respondToTaskFeeLimit\",\"type\":\"uint256\"}],\"name\":\"createNewTask\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegation\",\"outputs\":[{\"internalType\":\"contract IDelegationManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"depositToBatcher\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"deregisterOperatorFromAVS\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"verifierIdx\",\"type\":\"uint8\"}],\"name\":\"disableVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disabledVerifiers\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"verifierIdx\",\"type\":\"uint8\"}],\"name\":\"enableVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"getOperatorRestakedStrategies\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRestakeableStrategies\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initialOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_rewardsInitiator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_alignedAggregator\",\"type\":\"address\"},{\"internalType\":\"contract IPauserRegistry\",\"name\":\"_pauserRegistry\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_initialPausedStatus\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"verifierIdx\",\"type\":\"uint8\"}],\"name\":\"isVerifierDisabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauserRegistry\",\"outputs\":[{\"internalType\":\"contract IPauserRegistry\",\"name\":\"\",\"type\":\"address\"}],\"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\":\"registerOperatorToAVS\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registryCoordinator\",\"outputs\":[{\"internalType\":\"contract IRegistryCoordinator\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"senderAddress\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32[]\",\"name\":\"nonSignerQuorumBitmapIndices\",\"type\":\"uint32[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point[]\",\"name\":\"nonSignerPubkeys\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point[]\",\"name\":\"quorumApks\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256[2]\",\"name\":\"X\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"Y\",\"type\":\"uint256[2]\"}],\"internalType\":\"struct BN254.G2Point\",\"name\":\"apkG2\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"sigma\",\"type\":\"tuple\"},{\"internalType\":\"uint32[]\",\"name\":\"quorumApkIndices\",\"type\":\"uint32[]\"},{\"internalType\":\"uint32[]\",\"name\":\"totalStakeIndices\",\"type\":\"uint32[]\"},{\"internalType\":\"uint32[][]\",\"name\":\"nonSignerStakeIndices\",\"type\":\"uint32[][]\"}],\"internalType\":\"struct IBLSSignatureChecker.NonSignerStakesAndSignature\",\"name\":\"nonSignerStakesAndSignature\",\"type\":\"tuple\"}],\"name\":\"respondToTaskV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardsInitiator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_alignedAggregator\",\"type\":\"address\"}],\"name\":\"setAggregator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bitmap\",\"type\":\"uint256\"}],\"name\":\"setDisabledVerifiers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IPauserRegistry\",\"name\":\"newPauserRegistry\",\"type\":\"address\"}],\"name\":\"setPauserRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newRewardsInitiator\",\"type\":\"address\"}],\"name\":\"setRewardsInitiator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"setStaleStakesForbidden\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakeRegistry\",\"outputs\":[{\"internalType\":\"contract IStakeRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"staleStakesForbidden\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"apk\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256[2]\",\"name\":\"X\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"Y\",\"type\":\"uint256[2]\"}],\"internalType\":\"struct BN254.G2Point\",\"name\":\"apkG2\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"X\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"Y\",\"type\":\"uint256\"}],\"internalType\":\"struct BN254.G1Point\",\"name\":\"sigma\",\"type\":\"tuple\"}],\"name\":\"trySignatureAndApkVerification\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"pairingSuccessful\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"siganatureIsValid\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_metadataURI\",\"type\":\"string\"}],\"name\":\"updateAVSMetadataURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"pubInputCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"senderAddress\",\"type\":\"address\"}],\"name\":\"verifyBatchInclusion\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"checkSignatures(bytes32,uint32,(uint32[],(uint256,uint256)[],(uint256,uint256)[],(uint256[2],uint256[2]),(uint256,uint256),uint32[],uint32[],uint32[][]))\":{\"details\":\"Before signature verification, the function verifies operator stake information. This includes ensuring that the provided `referenceBlockNumber` is correct, i.e., ensure that the stake returned from the specified block number is recent enough and that the stake is either the most recent update for the total stake (of the operator) or latest before the referenceBlockNumber.NOTE: Be careful to ensure `msgHash` is collision-resistant! This method does not hash `msgHash` in any way, so if an attacker is able to pass in an arbitrary value, they may be able to tamper with signature verification.\",\"params\":{\"msgHash\":\"is the hash being signed\",\"params\":\"is the struct containing information on nonsigners, stakes, quorum apks, and the aggregate signature\",\"referenceBlockNumber\":\"is the block number at which the stake information is being verified\"},\"returns\":{\"_0\":\"quorumStakeTotals is the struct containing the total and signed stake for each quorum\",\"_1\":\"signatoryRecordHash is the hash of the signatory record, which is used for fraud proofs\"}},\"createAVSRewardsSubmission(((address,uint96)[],address,uint256,uint32,uint32)[])\":{\"details\":\"Only callabe by the permissioned rewardsInitiator addressThe duration of the `rewardsSubmission` cannot exceed `MAX_REWARDS_DURATION`The tokens are sent to the `RewardsCoordinator` contractStrategies must be in ascending order of addresses to check for duplicatesThis function will revert if the `rewardsSubmission` is malformed, e.g. if the `strategies` and `weights` arrays are of non-equal lengths\",\"params\":{\"rewardsSubmissions\":\"The rewards submissions being created\"}},\"deregisterOperatorFromAVS(address)\":{\"params\":{\"operator\":\"The address of the operator to deregister.\"}},\"getOperatorRestakedStrategies(address)\":{\"details\":\"This function is intended to be called off-chainNo guarantee is made on whether the operator has shares for a strategy in a quorum or uniqueness of each element in the returned array. The off-chain service should do that validation separately\",\"params\":{\"operator\":\"The address of the operator to get restaked strategies for\"}},\"getRestakeableStrategies()\":{\"details\":\"This function is intended to be called off-chainNo guarantee is made on uniqueness of each element in the returned array. The off-chain service should do that validation separately\"},\"initialize(address,address,address,address,uint256)\":{\"params\":{\"_alignedAggregator\":\"The address of the aggregator.\",\"_initialOwner\":\"The initial owner of the contract.\",\"_initialPausedStatus\":\"pause status after calling initialize\",\"_pauserRegistry\":\"a registry of addresses that can pause the contract\",\"_rewardsInitiator\":\"The address which is allowed to create AVS rewards submissions.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pause(uint256)\":{\"details\":\"This function can only pause functionality, and thus cannot 'unflip' any bit in `_paused` from 1 to 0.\",\"params\":{\"newPausedStatus\":\"represents the new value for `_paused` to take, which means it may flip several bits at once.\"}},\"registerOperatorToAVS(address,(bytes,bytes32,uint256))\":{\"params\":{\"operator\":\"The address of the operator to register.\",\"operatorSignature\":\"The signature, salt, and expiry of the operator's signature.\"}},\"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.\"},\"setRewardsInitiator(address)\":{\"details\":\"only callable by the owner\",\"params\":{\"newRewardsInitiator\":\"The new rewards initiator address\"}},\"setStaleStakesForbidden(bool)\":{\"params\":{\"value\":\"to toggle staleStakesForbidden\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"trySignatureAndApkVerification(bytes32,(uint256,uint256),(uint256[2],uint256[2]),(uint256,uint256))\":{\"params\":{\"apk\":\"is the claimed G1 public key\",\"apkG2\":\"is provided G2 public key\",\"msgHash\":\"is the hash being signed\",\"sigma\":\"is the G1 point signature\"},\"returns\":{\"pairingSuccessful\":\"is true if the pairing precompile call was successful\",\"siganatureIsValid\":\"is true if the signature is valid\"}},\"unpause(uint256)\":{\"details\":\"This function can only unpause functionality, and thus cannot 'flip' any bit in `_paused` from 0 to 1.\",\"params\":{\"newPausedStatus\":\"represents the new value for `_paused` to take, which means it may flip several bits at once.\"}},\"updateAVSMetadataURI(string)\":{\"details\":\"only callable by the owner\",\"params\":{\"_metadataURI\":\"is the metadata URI for the AVS\"}}},\"title\":\"Primary entrypoint for procuring services from Aligned.\",\"version\":1},\"userdoc\":{\"events\":{\"Paused(address,uint256)\":{\"notice\":\"Emitted when the pause is triggered by `account`, and changed to `newPausedStatus`.\"},\"PauserRegistrySet(address,address)\":{\"notice\":\"Emitted when the `pauserRegistry` is set to `newPauserRegistry`.\"},\"StaleStakesForbiddenUpdate(bool)\":{\"notice\":\"Emitted when `staleStakesForbiddenUpdate` is set\"},\"Unpaused(address,uint256)\":{\"notice\":\"Emitted when the pause is lifted by `account`, and changed to `newPausedStatus`.\"}},\"kind\":\"user\",\"methods\":{\"avsDirectory()\":{\"notice\":\"Returns the EigenLayer AVSDirectory contract.\"},\"checkSignatures(bytes32,uint32,(uint32[],(uint256,uint256)[],(uint256,uint256)[],(uint256[2],uint256[2]),(uint256,uint256),uint32[],uint32[],uint32[][]))\":{\"notice\":\"This function is called by disperser when it has aggregated all the signatures of the operators that are part of the quorum for a particular taskNumber and is asserting them into onchain. The function checks that the claim for aggregated signatures are valid. The thesis of this procedure entails: - getting the aggregated pubkey of all registered nodes at the time of pre-commit by the disperser (represented by apk in the parameters), - subtracting the pubkeys of all the signers not in the quorum (nonSignerPubkeys) and storing the output in apk to get aggregated pubkey of all operators that are part of quorum. - use this aggregated pubkey to verify the aggregated signature under BLS scheme.\"},\"createAVSRewardsSubmission(((address,uint96)[],address,uint256,uint32,uint32)[])\":{\"notice\":\"Creates a new rewards submission to the EigenLayer RewardsCoordinator contract, to be split amongst the set of stakers delegated to operators who are registered to this `avs`\"},\"deregisterOperatorFromAVS(address)\":{\"notice\":\"Forwards a call to EigenLayer's AVSDirectory contract to confirm operator deregistration from the AVS\"},\"getOperatorRestakedStrategies(address)\":{\"notice\":\"Returns the list of strategies that the operator has potentially restaked on the AVS\"},\"getRestakeableStrategies()\":{\"notice\":\"Returns the list of strategies that the AVS supports for restaking\"},\"initialize(address,address,address,address,uint256)\":{\"notice\":\"Initializes the contract with the initial owner.\"},\"pause(uint256)\":{\"notice\":\"This function is used to pause an EigenLayer contract's functionality. It is permissioned to the `pauser` address, which is expected to be a low threshold multisig.\"},\"pauseAll()\":{\"notice\":\"Alias for `pause(type(uint256).max)`.\"},\"paused()\":{\"notice\":\"Returns the current paused status as a uint256.\"},\"paused(uint8)\":{\"notice\":\"Returns 'true' if the `indexed`th bit of `_paused` is 1, and 'false' otherwise\"},\"pauserRegistry()\":{\"notice\":\"Address of the `PauserRegistry` contract that this contract defers to for determining access control (for pausing).\"},\"registerOperatorToAVS(address,(bytes,bytes32,uint256))\":{\"notice\":\"Forwards a call to EigenLayer's AVSDirectory contract to confirm operator registration with the AVS\"},\"rewardsInitiator()\":{\"notice\":\"The address of the entity that can initiate rewards\"},\"setPauserRegistry(address)\":{\"notice\":\"Allows the unpauser to set a new pauser registry\"},\"setRewardsInitiator(address)\":{\"notice\":\"Sets the rewards initiator address\"},\"setStaleStakesForbidden(bool)\":{\"notice\":\"/** RegistryCoordinator owner can either enforce or not that operator stakes are staler than the delegation.minWithdrawalDelayBlocks() window.\"},\"staleStakesForbidden()\":{\"notice\":\"If true, check the staleness of the operator stakes and that its within the delegation withdrawalDelayBlocks window.\"},\"trySignatureAndApkVerification(bytes32,(uint256,uint256),(uint256[2],uint256[2]),(uint256,uint256))\":{\"notice\":\"trySignatureAndApkVerification verifies a BLS aggregate signature and the veracity of a calculated G1 Public key\"},\"unpause(uint256)\":{\"notice\":\"This function is used to unpause an EigenLayer contract's functionality. It is permissioned to the `unpauser` address, which is expected to be a high threshold multisig or governance contract.\"},\"updateAVSMetadataURI(string)\":{\"notice\":\"Updates the metadata URI for the AVS\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/core/AlignedLayerServiceManager.sol\":\"AlignedLayerServiceManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":@openzeppelin-upgrades/contracts/=lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/\",\":@sp1-contracts/=lib/sp1-contracts/contracts/src/\",\":ds-test/=lib/eigenlayer-middleware/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/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/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/\",\":sp1-contracts/=lib/sp1-contracts/contracts/\"]},\"sources\":{\"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"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\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"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/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"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\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"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/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a\",\"dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0x5232f4f3b98f4c17b0172080890c310829155d929be477b184cd3b20cfcacede\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acd39817a907dfd467a2375a1ca1f25af1b60dd465a62a92e0b6dbbc99339837\",\"dweb:/ipfs/QmVBAjmRsrEsCkxSpApyBQQ1qJUWVVDizhY6kk3pbpvXcK\"]},\"src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0x7359959b102fcb5f313d7a0a4a2497ff651c1836ec5259f4f86bd5d20da502ce\",\"urls\":[\"bzz-raw://e1990be0b54c7ab6734ff3096aac61c951d762e0dc6d52d3890a364fc1d92569\",\"dweb:/ipfs/QmevhuweQnjTVBmxTyWucznnQ68kU1U5uHvtYm5FvkBfRR\"]},\"src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xcba5fa6ebd839dc0992a21e6de1415fdce22bfdfd3c06633a5f74d1405b545f1\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://39ce84bf46b1ed2504673badf4d9553b852104c6cfe5d822831fa5551007ee99\",\"dweb:/ipfs/QmVZhpKG2azSnb9npqm1Rd2DrJKEyFgW4z85kxNQBmvaXJ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IAVSDirectory","name":"__avsDirectory","type":"address"},{"internalType":"contract IRewardsCoordinator","name":"__rewardsCoordinator","type":"address"},{"internalType":"contract IRegistryCoordinator","name":"__registryCoordinator","type":"address"},{"internalType":"contract IStakeRegistry","name":"__stakeRegistry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"batchIdentifierHash","type":"bytes32"}],"type":"error","name":"BatchAlreadyResponded"},{"inputs":[{"internalType":"bytes32","name":"batchIdentifierHash","type":"bytes32"}],"type":"error","name":"BatchAlreadySubmitted"},{"inputs":[{"internalType":"bytes32","name":"batchIdentifierHash","type":"bytes32"}],"type":"error","name":"BatchDoesNotExist"},{"inputs":[{"internalType":"address","name":"batcher","type":"address"},{"internalType":"uint256","name":"required","type":"uint256"},{"internalType":"uint256","name":"available","type":"uint256"}],"type":"error","name":"InsufficientFunds"},{"inputs":[{"internalType":"string","name":"param","type":"string"}],"type":"error","name":"InvalidAddress"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"InvalidDepositAmount"},{"inputs":[{"internalType":"uint256","name":"signedStake","type":"uint256"},{"internalType":"uint256","name":"requiredStake","type":"uint256"}],"type":"error","name":"InvalidQuorumThreshold"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"alignedAggregator","type":"address"}],"type":"error","name":"SenderIsNotAggregator"},{"inputs":[{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32","indexed":true},{"internalType":"address","name":"senderAddress","type":"address","indexed":false}],"type":"event","name":"BatchVerified","anonymous":false},{"inputs":[{"internalType":"address","name":"batcher","type":"address","indexed":true},{"internalType":"uint256","name":"newBalance","type":"uint256","indexed":false}],"type":"event","name":"BatcherBalanceUpdated","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32","indexed":true},{"internalType":"address","name":"senderAddress","type":"address","indexed":false},{"internalType":"uint32","name":"taskCreatedBlock","type":"uint32","indexed":false},{"internalType":"string","name":"batchDataPointer","type":"string","indexed":false}],"type":"event","name":"NewBatchV2","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32","indexed":true},{"internalType":"address","name":"senderAddress","type":"address","indexed":false},{"internalType":"uint32","name":"taskCreatedBlock","type":"uint32","indexed":false},{"internalType":"string","name":"batchDataPointer","type":"string","indexed":false},{"internalType":"uint256","name":"respondToTaskFeeLimit","type":"uint256","indexed":false}],"type":"event","name":"NewBatchV3","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":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"newPausedStatus","type":"uint256","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"contract IPauserRegistry","name":"pauserRegistry","type":"address","indexed":false},{"internalType":"contract IPauserRegistry","name":"newPauserRegistry","type":"address","indexed":false}],"type":"event","name":"PauserRegistrySet","anonymous":false},{"inputs":[{"internalType":"address","name":"prevRewardsInitiator","type":"address","indexed":false},{"internalType":"address","name":"newRewardsInitiator","type":"address","indexed":false}],"type":"event","name":"RewardsInitiatorUpdated","anonymous":false},{"inputs":[{"internalType":"bool","name":"value","type":"bool","indexed":false}],"type":"event","name":"StaleStakesForbiddenUpdate","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"newPausedStatus","type":"uint256","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"uint8","name":"verifierIdx","type":"uint8","indexed":true}],"type":"event","name":"VerifierDisabled","anonymous":false},{"inputs":[{"internalType":"uint8","name":"verifierIdx","type":"uint8","indexed":true}],"type":"event","name":"VerifierEnabled","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"alignedAggregator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"avsDirectory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"batchersBalances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"batchesState","outputs":[{"internalType":"uint32","name":"taskCreatedBlock","type":"uint32"},{"internalType":"bool","name":"responded","type":"bool"},{"internalType":"uint256","name":"respondToTaskFeeLimit","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"blsApkRegistry","outputs":[{"internalType":"contract IBLSApkRegistry","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"publicInput","type":"bytes"},{"internalType":"bytes32","name":"hash","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"checkPublicInput","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"msgHash","type":"bytes32"},{"internalType":"uint32","name":"referenceBlockNumber","type":"uint32"},{"internalType":"struct IBLSSignatureChecker.NonSignerStakesAndSignature","name":"params","type":"tuple","components":[{"internalType":"uint32[]","name":"nonSignerQuorumBitmapIndices","type":"uint32[]"},{"internalType":"struct BN254.G1Point[]","name":"nonSignerPubkeys","type":"tuple[]","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"struct BN254.G1Point[]","name":"quorumApks","type":"tuple[]","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"struct BN254.G2Point","name":"apkG2","type":"tuple","components":[{"internalType":"uint256[2]","name":"X","type":"uint256[2]"},{"internalType":"uint256[2]","name":"Y","type":"uint256[2]"}]},{"internalType":"struct BN254.G1Point","name":"sigma","type":"tuple","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"uint32[]","name":"quorumApkIndices","type":"uint32[]"},{"internalType":"uint32[]","name":"totalStakeIndices","type":"uint32[]"},{"internalType":"uint32[][]","name":"nonSignerStakeIndices","type":"uint32[][]"}]}],"stateMutability":"view","type":"function","name":"checkSignatures","outputs":[{"internalType":"struct IBLSSignatureChecker.QuorumStakeTotals","name":"","type":"tuple","components":[{"internalType":"uint96[]","name":"signedStakeForQuorum","type":"uint96[]"},{"internalType":"uint96[]","name":"totalStakeForQuorum","type":"uint96[]"}]},{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct IRewardsCoordinator.RewardsSubmission[]","name":"rewardsSubmissions","type":"tuple[]","components":[{"internalType":"struct IRewardsCoordinator.StrategyAndMultiplier[]","name":"strategiesAndMultipliers","type":"tuple[]","components":[{"internalType":"contract IStrategy","name":"strategy","type":"address"},{"internalType":"uint96","name":"multiplier","type":"uint96"}]},{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint32","name":"startTimestamp","type":"uint32"},{"internalType":"uint32","name":"duration","type":"uint32"}]}],"stateMutability":"nonpayable","type":"function","name":"createAVSRewardsSubmission"},{"inputs":[{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"string","name":"batchDataPointer","type":"string"},{"internalType":"uint256","name":"respondToTaskFeeLimit","type":"uint256"}],"stateMutability":"payable","type":"function","name":"createNewTask"},{"inputs":[],"stateMutability":"view","type":"function","name":"delegation","outputs":[{"internalType":"contract IDelegationManager","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"payable","type":"function","name":"depositToBatcher"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deregisterOperatorFromAVS"},{"inputs":[{"internalType":"uint8","name":"verifierIdx","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"disableVerifier"},{"inputs":[],"stateMutability":"view","type":"function","name":"disabledVerifiers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint8","name":"verifierIdx","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"enableVerifier"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"getOperatorRestakedStrategies","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getRestakeableStrategies","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"_initialOwner","type":"address"},{"internalType":"address","name":"_rewardsInitiator","type":"address"},{"internalType":"address","name":"_alignedAggregator","type":"address"},{"internalType":"contract IPauserRegistry","name":"_pauserRegistry","type":"address"},{"internalType":"uint256","name":"_initialPausedStatus","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"uint8","name":"verifierIdx","type":"uint8"}],"stateMutability":"view","type":"function","name":"isVerifierDisabled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"newPausedStatus","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pauseAll"},{"inputs":[{"internalType":"uint8","name":"index","type":"uint8"}],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pauserRegistry","outputs":[{"internalType":"contract IPauserRegistry","name":"","type":"address"}]},{"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":"registerOperatorToAVS"},{"inputs":[],"stateMutability":"view","type":"function","name":"registryCoordinator","outputs":[{"internalType":"contract IRegistryCoordinator","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"address","name":"senderAddress","type":"address"},{"internalType":"struct IBLSSignatureChecker.NonSignerStakesAndSignature","name":"nonSignerStakesAndSignature","type":"tuple","components":[{"internalType":"uint32[]","name":"nonSignerQuorumBitmapIndices","type":"uint32[]"},{"internalType":"struct BN254.G1Point[]","name":"nonSignerPubkeys","type":"tuple[]","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"struct BN254.G1Point[]","name":"quorumApks","type":"tuple[]","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"struct BN254.G2Point","name":"apkG2","type":"tuple","components":[{"internalType":"uint256[2]","name":"X","type":"uint256[2]"},{"internalType":"uint256[2]","name":"Y","type":"uint256[2]"}]},{"internalType":"struct BN254.G1Point","name":"sigma","type":"tuple","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"uint32[]","name":"quorumApkIndices","type":"uint32[]"},{"internalType":"uint32[]","name":"totalStakeIndices","type":"uint32[]"},{"internalType":"uint32[][]","name":"nonSignerStakeIndices","type":"uint32[][]"}]}],"stateMutability":"nonpayable","type":"function","name":"respondToTaskV2"},{"inputs":[],"stateMutability":"view","type":"function","name":"rewardsInitiator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_alignedAggregator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAggregator"},{"inputs":[{"internalType":"uint256","name":"bitmap","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDisabledVerifiers"},{"inputs":[{"internalType":"contract IPauserRegistry","name":"newPauserRegistry","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPauserRegistry"},{"inputs":[{"internalType":"address","name":"newRewardsInitiator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setRewardsInitiator"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setStaleStakesForbidden"},{"inputs":[],"stateMutability":"view","type":"function","name":"stakeRegistry","outputs":[{"internalType":"contract IStakeRegistry","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"staleStakesForbidden","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"bytes32","name":"msgHash","type":"bytes32"},{"internalType":"struct BN254.G1Point","name":"apk","type":"tuple","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]},{"internalType":"struct BN254.G2Point","name":"apkG2","type":"tuple","components":[{"internalType":"uint256[2]","name":"X","type":"uint256[2]"},{"internalType":"uint256[2]","name":"Y","type":"uint256[2]"}]},{"internalType":"struct BN254.G1Point","name":"sigma","type":"tuple","components":[{"internalType":"uint256","name":"X","type":"uint256"},{"internalType":"uint256","name":"Y","type":"uint256"}]}],"stateMutability":"view","type":"function","name":"trySignatureAndApkVerification","outputs":[{"internalType":"bool","name":"pairingSuccessful","type":"bool"},{"internalType":"bool","name":"siganatureIsValid","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"newPausedStatus","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[{"internalType":"string","name":"_metadataURI","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateAVSMetadataURI"},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"pubInputCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"address","name":"senderAddress","type":"address"}],"stateMutability":"view","type":"function","name":"verifyBatchInclusion","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"checkSignatures(bytes32,uint32,(uint32[],(uint256,uint256)[],(uint256,uint256)[],(uint256[2],uint256[2]),(uint256,uint256),uint32[],uint32[],uint32[][]))":{"details":"Before signature verification, the function verifies operator stake information. This includes ensuring that the provided `referenceBlockNumber` is correct, i.e., ensure that the stake returned from the specified block number is recent enough and that the stake is either the most recent update for the total stake (of the operator) or latest before the referenceBlockNumber.NOTE: Be careful to ensure `msgHash` is collision-resistant! This method does not hash `msgHash` in any way, so if an attacker is able to pass in an arbitrary value, they may be able to tamper with signature verification.","params":{"msgHash":"is the hash being signed","params":"is the struct containing information on nonsigners, stakes, quorum apks, and the aggregate signature","referenceBlockNumber":"is the block number at which the stake information is being verified"},"returns":{"_0":"quorumStakeTotals is the struct containing the total and signed stake for each quorum","_1":"signatoryRecordHash is the hash of the signatory record, which is used for fraud proofs"}},"createAVSRewardsSubmission(((address,uint96)[],address,uint256,uint32,uint32)[])":{"details":"Only callabe by the permissioned rewardsInitiator addressThe duration of the `rewardsSubmission` cannot exceed `MAX_REWARDS_DURATION`The tokens are sent to the `RewardsCoordinator` contractStrategies must be in ascending order of addresses to check for duplicatesThis function will revert if the `rewardsSubmission` is malformed, e.g. if the `strategies` and `weights` arrays are of non-equal lengths","params":{"rewardsSubmissions":"The rewards submissions being created"}},"deregisterOperatorFromAVS(address)":{"params":{"operator":"The address of the operator to deregister."}},"getOperatorRestakedStrategies(address)":{"details":"This function is intended to be called off-chainNo guarantee is made on whether the operator has shares for a strategy in a quorum or uniqueness of each element in the returned array. The off-chain service should do that validation separately","params":{"operator":"The address of the operator to get restaked strategies for"}},"getRestakeableStrategies()":{"details":"This function is intended to be called off-chainNo guarantee is made on uniqueness of each element in the returned array. The off-chain service should do that validation separately"},"initialize(address,address,address,address,uint256)":{"params":{"_alignedAggregator":"The address of the aggregator.","_initialOwner":"The initial owner of the contract.","_initialPausedStatus":"pause status after calling initialize","_pauserRegistry":"a registry of addresses that can pause the contract","_rewardsInitiator":"The address which is allowed to create AVS rewards submissions."}},"owner()":{"details":"Returns the address of the current owner."},"pause(uint256)":{"details":"This function can only pause functionality, and thus cannot 'unflip' any bit in `_paused` from 1 to 0.","params":{"newPausedStatus":"represents the new value for `_paused` to take, which means it may flip several bits at once."}},"registerOperatorToAVS(address,(bytes,bytes32,uint256))":{"params":{"operator":"The address of the operator to register.","operatorSignature":"The signature, salt, and expiry of the operator's signature."}},"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."},"setRewardsInitiator(address)":{"details":"only callable by the owner","params":{"newRewardsInitiator":"The new rewards initiator address"}},"setStaleStakesForbidden(bool)":{"params":{"value":"to toggle staleStakesForbidden"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"trySignatureAndApkVerification(bytes32,(uint256,uint256),(uint256[2],uint256[2]),(uint256,uint256))":{"params":{"apk":"is the claimed G1 public key","apkG2":"is provided G2 public key","msgHash":"is the hash being signed","sigma":"is the G1 point signature"},"returns":{"pairingSuccessful":"is true if the pairing precompile call was successful","siganatureIsValid":"is true if the signature is valid"}},"unpause(uint256)":{"details":"This function can only unpause functionality, and thus cannot 'flip' any bit in `_paused` from 0 to 1.","params":{"newPausedStatus":"represents the new value for `_paused` to take, which means it may flip several bits at once."}},"updateAVSMetadataURI(string)":{"details":"only callable by the owner","params":{"_metadataURI":"is the metadata URI for the AVS"}}},"version":1},"userdoc":{"kind":"user","methods":{"avsDirectory()":{"notice":"Returns the EigenLayer AVSDirectory contract."},"checkSignatures(bytes32,uint32,(uint32[],(uint256,uint256)[],(uint256,uint256)[],(uint256[2],uint256[2]),(uint256,uint256),uint32[],uint32[],uint32[][]))":{"notice":"This function is called by disperser when it has aggregated all the signatures of the operators that are part of the quorum for a particular taskNumber and is asserting them into onchain. The function checks that the claim for aggregated signatures are valid. The thesis of this procedure entails: - getting the aggregated pubkey of all registered nodes at the time of pre-commit by the disperser (represented by apk in the parameters), - subtracting the pubkeys of all the signers not in the quorum (nonSignerPubkeys) and storing the output in apk to get aggregated pubkey of all operators that are part of quorum. - use this aggregated pubkey to verify the aggregated signature under BLS scheme."},"createAVSRewardsSubmission(((address,uint96)[],address,uint256,uint32,uint32)[])":{"notice":"Creates a new rewards submission to the EigenLayer RewardsCoordinator contract, to be split amongst the set of stakers delegated to operators who are registered to this `avs`"},"deregisterOperatorFromAVS(address)":{"notice":"Forwards a call to EigenLayer's AVSDirectory contract to confirm operator deregistration from the AVS"},"getOperatorRestakedStrategies(address)":{"notice":"Returns the list of strategies that the operator has potentially restaked on the AVS"},"getRestakeableStrategies()":{"notice":"Returns the list of strategies that the AVS supports for restaking"},"initialize(address,address,address,address,uint256)":{"notice":"Initializes the contract with the initial owner."},"pause(uint256)":{"notice":"This function is used to pause an EigenLayer contract's functionality. It is permissioned to the `pauser` address, which is expected to be a low threshold multisig."},"pauseAll()":{"notice":"Alias for `pause(type(uint256).max)`."},"paused()":{"notice":"Returns the current paused status as a uint256."},"paused(uint8)":{"notice":"Returns 'true' if the `indexed`th bit of `_paused` is 1, and 'false' otherwise"},"pauserRegistry()":{"notice":"Address of the `PauserRegistry` contract that this contract defers to for determining access control (for pausing)."},"registerOperatorToAVS(address,(bytes,bytes32,uint256))":{"notice":"Forwards a call to EigenLayer's AVSDirectory contract to confirm operator registration with the AVS"},"rewardsInitiator()":{"notice":"The address of the entity that can initiate rewards"},"setPauserRegistry(address)":{"notice":"Allows the unpauser to set a new pauser registry"},"setRewardsInitiator(address)":{"notice":"Sets the rewards initiator address"},"setStaleStakesForbidden(bool)":{"notice":"/** RegistryCoordinator owner can either enforce or not that operator stakes are staler than the delegation.minWithdrawalDelayBlocks() window."},"staleStakesForbidden()":{"notice":"If true, check the staleness of the operator stakes and that its within the delegation withdrawalDelayBlocks window."},"trySignatureAndApkVerification(bytes32,(uint256,uint256),(uint256[2],uint256[2]),(uint256,uint256))":{"notice":"trySignatureAndApkVerification verifies a BLS aggregate signature and the veracity of a calculated G1 Public key"},"unpause(uint256)":{"notice":"This function is used to unpause an EigenLayer contract's functionality. It is permissioned to the `unpauser` address, which is expected to be a high threshold multisig or governance contract."},"updateAVSMetadataURI(string)":{"notice":"Updates the metadata URI for the AVS"}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","@openzeppelin-upgrades/contracts/=lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/","@sp1-contracts/=lib/sp1-contracts/contracts/src/","ds-test/=lib/eigenlayer-middleware/lib/ds-test/src/","eigenlayer-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/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/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/","sp1-contracts/=lib/sp1-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/core/AlignedLayerServiceManager.sol":"AlignedLayerServiceManager"},"evmVersion":"paris","libraries":{}},"sources":{"lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"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":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"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/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"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":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"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/lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol":{"keccak256":"0xce8ee0ab28f2bce9e94aa19fffe55bebef080327632ac98ff3ab14994b369bc0","urls":["bzz-raw://5c7e2be97a8840fa2a0434077a36136553a84efd9bff4b46712ce9fddb813a6a","dweb:/ipfs/QmZKvgPxLAbGo1CqTA4AX6MCDPFLSSNt43ZKWRjvvzFp7S"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"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/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"src/core/AlignedLayerServiceManager.sol":{"keccak256":"0x5232f4f3b98f4c17b0172080890c310829155d929be477b184cd3b20cfcacede","urls":["bzz-raw://acd39817a907dfd467a2375a1ca1f25af1b60dd465a62a92e0b6dbbc99339837","dweb:/ipfs/QmVBAjmRsrEsCkxSpApyBQQ1qJUWVVDizhY6kk3pbpvXcK"],"license":"UNLICENSED"},"src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0x7359959b102fcb5f313d7a0a4a2497ff651c1836ec5259f4f86bd5d20da502ce","urls":["bzz-raw://e1990be0b54c7ab6734ff3096aac61c951d762e0dc6d52d3890a364fc1d92569","dweb:/ipfs/QmevhuweQnjTVBmxTyWucznnQ68kU1U5uHvtYm5FvkBfRR"],"license":null},"src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xcba5fa6ebd839dc0992a21e6de1415fdce22bfdfd3c06633a5f74d1405b545f1","urls":["bzz-raw://39ce84bf46b1ed2504673badf4d9553b852104c6cfe5d822831fa5551007ee99","dweb:/ipfs/QmVZhpKG2azSnb9npqm1Rd2DrJKEyFgW4z85kxNQBmvaXJ"],"license":"UNLICENSED"}},"version":1},"id":115}